ESP32 Оқулық 27/55 - Ультрадыбыстық сенсормен қашықтықты өлшеу | SunFounder-дің ESP32 IoT оқу жиынтығы
Осы оқулықта біз ESP32-мен ультрадыбыстық қашықтық сенсорын қолданып, қашықтықтарды өлшеуді және нәтижелерді экранда көрсетуді үйренеміз. Сондай-ақ, белгілі бір диапазонда нысан анықталған кезде дыбыстық сигналды қалай іске қосу керектігін зерттейміз. Бұл жоба ESP32 микроконтроллерінің әмбебаптығын көрсетеді, ол Wi-Fi және Bluetooth мүмкіндіктерін біріктіреді, бұл оны әртүрлі IoT қолданбаларына қолайлы етеді.
Осы нұсқаулық бойы сіз жобаны сәтті жүзеге асыруға көмектесетін аппараттық құрамдас бөліктердің түсіндірмелерін, сым қосу нұсқауларын және код үзінділерін табасыз. Қосымша түсініктілік үшін бейнені қараңыз (бейнеде 00:00).
Аппараттық құрал түсіндірмесі
Бұл жобаның негізгі құрамдас бөліктеріне ESP32 микроконтроллері, ультрадыбыстық сенсор (HC-SR04) және дыбыстық сигнал кіреді. Ультрадыбыстық сенсор екі негізгі бөліктен тұрады: ультрадыбыстық толқындарды шығаратын таратқыш және шағылысқан толқындарды тыңдайтын қабылдағыш. Толқындардың қайту уақытын өлшеу арқылы біз нысанға дейінгі қашықтықты есептей аламыз.
ESP32 орталық контроллер ретінде қызмет етеді, ультрадыбыстық сенсордан деректерді өңдейді және өлшенген қашықтыққа негізделген дыбыстық сигналды басқарады. Анықталған қашықтық белгіленген шектен аз болғанда, дыбыстық сигнал шығады, бұл нысанның тым жақын екенін көрсетеді.
Деректер парағының мәліметтері
| Өндіруші | HC-SR04 |
|---|---|
| Бөлшек нөмірі | HC-SR04 |
| Логика/IO кернеуі | 5 В |
| Қоректендіру кернеуі | 5 В |
| Шығыс тогы (арнаға) | 16 мА |
| Ең жоғары ток (арнаға) | … |
| ШИМ жиілігі бойынша нұсқау | … |
| Кіріс логикалық шектері | … |
| Кернеудің төмендеуі / RDS(on) / қанығу | … |
| Жылулық шектеулер | … |
| Қаптама | … |
| Ескертулер / нұсқалар | Өлшеу диапазоны: 2 см-ден 400 см-ге дейін |
- Сенсор үшін 5 В қоректендіруді дұрыс қамтамасыз етіңіз.
- Кедергілерді болдырмау үшін ультрадыбыстық толқындарға ашық жолды сақтаңыз.
- Сигнал кідірісі мен шуды азайту үшін қысқа сымдарды қолданыңыз.
- Қате байланысты болдырмау үшін түйреуіш қосылымдарының дұрыстығын қамтамасыз етіңіз.
- Дәлдікті тексеру үшін сенсорды әртүрлі орталарда сынап көріңіз.
Сым қосу нұсқаулары

Ультрадыбыстық сенсорды ESP32-ге қосу үшін сенсордың VCC түйреуішін ESP32-дегі 5V түйреуішіне қосыңыз. Әрі қарай, сенсордың GND түйреуішін ESP32-дегі жерге (GND) түйреуіштерінің біріне қосыңыз. Сенсордағы триггер түйреуіші (Trig) ESP32-дегі GPIO 26-ға, ал эхо түйреуіші (Echo) GPIO 25-ке қосылуы керек. Бұл орнату ESP32-ге сенсорға сигнал жіберуге және қашықтықты есептеу үшін эхо сигналын қабылдауға мүмкіндік береді.
Дыбыстық сигнал үшін оң (ұзын) аяқшаны ESP32-дегі GPIO 12-ге, ал теріс (қысқа) аяқшаны GND-ге қосыңыз. Жұмыс кезінде бос сымдарды болдырмау үшін барлық қосылымдардың берік екеніне көз жеткізіңіз. Егер макет тақтасын қолдансаңыз, қате қосуды болдырмау үшін дыбыстық сигнал қосылымдарын дұрыс туралаңыз. Сым қосуды растау үшін бейнені қараңыз (бейнеде 05:12).
Код мысалдары және түсіндірме
Код ультрадыбыстық сенсорға арналған түйреуіштерді инициализациялайды және сериялық байланысты орнатады. Негізгі функция readSensorData() триггер сигналын жіберуге және эхо түйреуішінен жауап уақытын өлшеуге жауапты.
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Ultrasonic sensor:");
}
Код ультрадыбыстық сенсорға қосылған түйреуіштер үшін echoPin және trigPin тұрақтыларын анықтайды. setup() функциясында біз сериялық байланысты инициализациялаймыз және түйреуіш режимдерін сәйкесінше орнатамыз.
float readSensorData() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long microsecond = pulseIn(echoPin, HIGH);
float distance = microsecond / 29.00 / 2;
return distance;
}
Бұл үзінді триггер түйреуішіне 10 микросекундтық импульс жіберетін readSensorData() функциясын көрсетеді. Содан кейін ол эхо түйреуішінің сигналды қабылдау уақытын өлшейді, қашықтықты есептейді және осы мәнді қайтарады.
Соңында, цикл функциясы қашықтықты үздіксіз оқиды және оны сериялық мониторға басып шығарады. Егер қашықтық 20 см-ден төмен болса, дыбыстық сигнал іске қосылады.
Демонстрация / Не күтуге болады
Бағдарламаны іске қосқанда, ESP32 өлшенген қашықтықты сантиметрмен сериялық мониторда көрсетеді. Егер нысан сенсорға 20 см ішінде кірсе, дыбыстық сигнал шығады. Бұл әрекетті сенсордың алдына әртүрлі қашықтықтағы нысандарды қою арқылы тексеруге болады. Полярлықтың ауысуына абай болыңыз және жұмыс кезінде ақауларды болдырмау үшін қосылымдардың көрсетілгендей жасалғанына көз жеткізіңіз (бейнеде 08:00).
Бейне уақыт белгілері
- 00:00 Бастау
- 1:46 Ультрадыбыстық сенсорға кіріспе
- 6:02 Сымдарды қосу түсіндірілді
- 7:37 ESP32 Arduino коды түсіндірілді
- 11:33 Arduino IDE-де ESP32 платасын және COM портын таңдау
- 13:15 Қашықтықты өлшеу демонстрациясы
- 16:43 Қашықтықпен әрекет: дыбыстық сигнал
// Define pins for the ultrasonic sensor
const int echoPin = 25;
const int trigPin = 26;
// Function prototype for reading sensor data
float readSensorData();
void setup() {
// Begin serial communication at 115200 baud rate
Serial.begin(115200);
// Set echoPin as input and trigPin as output
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
// Print sensor information to the serial monitor
Serial.println("Ultrasonic sensor:");
}
void loop() {
// Read distance from the ultrasonic sensor
float distance = readSensorData();
// Print the measured distance to the serial monitor
Serial.print(distance);
Serial.println(" cm");
// Delay between readings
delay(200);
}
// Function to read data from the ultrasonic sensor
float readSensorData() {
// Trigger a low signal before sending a high signal
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Send a 10-microsecond high signal to the trigPin
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
// Return to low signal
digitalWrite(trigPin, LOW);
// Measure the duration of the high signal on the echoPin
unsigned long microsecond = pulseIn(echoPin, HIGH);
// Calculate the distance using the speed of sound (29.00µs per centimeter)
float distance = microsecond / 29.00 / 2;
// Return the calculated distance
return distance;
}
Common Course Links
Common Course Files
Сізге қажет болуы мүмкін нәрселер
-
eBay
-
BanggoodPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
Ресурстар мен сілтемелер
-
ҚұжаттамаESP32 Tutorial 27/55- SunFounder doc page for Ultrasonic distance sensordocs.sunfounder.com
-
СыртқыHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Файлдар📁
Файлдар жоқ.