Tutorial ESP32 27/55 - Cabbirista Fogga Kala Duwan ee Sensor-ka Ultrasonic | Qalabka Barashada ESP32 IoT ee SunFounder
Cashigarkani, waxaan ku baran doonaa sida loo isticmaalo dareeme masaafada ultrasonic-ka ah ee ESP32 si loo cabbiro masaafada oo natiijada loo muujiyo shaashadda. Waxaan sidoo kale sahamin doonaa sida loo hawlgeliyo buzzer-ka marka shay lagu ogaado gudaha masaafo gaar ah. Mashruucani wuxuu muujinayaa kala-duwanaanshaha kontoroolka ESP32, kaas oo isku daraya awoodaha Wi-Fi iyo Bluetooth, taasoo ka dhigaysa mid ku habboon codsiyada IoT ee kala duwan.
Inta lagu guda jiro hagahan, waxaad ka heli doontaa sharaxaad ka mid ah qaybaha qalabka, tilmaamaha fiilada, iyo qaybo kood ah si ay kuu caawiyaan inaad si guul leh u hirgeliso mashruuca. Si faahfaahin dheeri ah loo helo, fadlan fiiri fiidiyowga (fiidiyowga 00:00).
Qalabka La Sharaxay
Qaybaha ugu muhiimsan ee mashruucan waxaa ka mid ah kontoroolka ESP32, dareemaha ultrasonic-ka (HC-SR04), iyo buzzer-ka. Dareemaha ultrasonic-ku wuxuu ka kooban yahay laba qaybood oo waaweyn: gudbiye ka soo saara mowjadaha ultrasonic-ka iyo qaate ka dhageysta mowjadaha dib u soo noqday. Marka la cabbiro waqtiga ay ku qaadanayso mowjaduhu inay soo noqdaan, waxaan xisaabin karnaa masaafada shayga.
ESP32 wuxuu u shaqeeyaa sidii kontorool dhexe, isagoo ka shaqeeya xogta ka timaadda dareemaha ultrasonic-ka oo uu xakameynayo buzzer-ka iyadoo lagu salaynayo masaafada la cabbiray. Buzzer-ku wuxuu dhawaaqi doonaa marka masaafada la ogaaday ay ka yar tahay heerka la qeexay, taasoo muujinaysa in shay uu aad ugu dhow yahay.
Faahfaahinta Xogta
| Soo saaraha | HC-SR04 |
|---|---|
| Nambarka qaybta | HC-SR04 |
| Danabka Logic/IO | 5 V |
| Danabka sahayda | 5 V |
| Korontada soo saarta (kanal kasta) | 16 mA |
| Korontada ugu sarreysa (kanal kasta) | … |
| Hagaha soo noqnoqoshada PWM | … |
| Heerarka caqabadaha gelinta | … |
| Hoos u dhaca danabka / RDS(on) / dheregsanaanta | … |
| Xadka kulaylka | … |
| Baakad | … |
| Qoraallo / noocyo kala duwan | Xadka cabbiraadda: 2 cm ilaa 400 cm |
- Hubi inaad siiso sahayda danab ee 5 V ee saxda ah ee dareemaha.
- Ka ilaali dariiqa mowjadaha ultrasonic-ka inuu cad yahay si looga fogaado faragelinta.
- Isticmaal fiilooyin gaagaaban si loo yareeyo dib u dhaca signal-ka iyo buuqa.
- Hubi in isku xirka biinanka uu sax yahay si looga fogaado isgaarsiin khaldan.
- Tijaabi dareemaha jawiyo kala duwan si loo hubiyo saxnaanta.
Tilmaamaha Fiilada

Si aad ugu xirto dareemaha ultrasonic-ka ee ESP32, ku xir biinka VCC ee dareemaha biinka 5V ee ESP32. Marka xigta, ku xir biinka GND ee dareemaha mid ka mid ah biinanka dhulka (GND) ee ESP32. Biinka kiciya (Trig) ee dareemaha waa in lagu xiraa GPIO 26 ee ESP32, halka biinka coodhka (Echo) uu ku xirnaan doono GPIO 25. Qaabkani wuxuu u oggolaanayaa ESP32 inuu u soo diro signal dareemaha oo uu helo signal-ka coodhka si loo xisaabiyo masaafada.
Buzzer-ka, ku xir lugta togan (dheer) ee GPIO 12 ee ESP32 iyo lugta taban (gaaban) ee GND. Hubi in dhammaan isku xirka ay adag yihiin si looga fogaado fiilooyin dabacsan inta lagu jiro hawlgalka. Haddii aad isticmaalayso breadboard, si fiican u toosi isku xirka buzzer-ka si aad uga fogaato isku xir khaldan. Hubi inaad fiirisid fiidiyowga si aad u xaqiijiso isku xirka (fiidiyowga 05:12).
Tusaalooyinka Koodka & Sharaxaad
Koodku wuxuu bilaabaa biinanka dareemaha ultrasonic-ka oo wuxuu dejiyaa isgaarsiinta serial-ka. Hawsha ugu weyn, readSensorData(), ayaa mas'uul ka ah dirista signal-ka kiciya iyo cabbiraadda waqtiga jawaabta ee biinka coodhka.
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Dareemaha ultrasonic-ka:");
}
Koodku wuxuu qeexayaa echoPin iyo trigPin sida joogto ah ee biinanka ku xiran dareemaha ultrasonic-ka. Hawsha setup(), waxaan bilaabnaa isgaarsiinta serial-ka oo waxaan u dejinaynaa qaababka biinanka si waafaqsan.
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;
}
Qaybtani waxay muujinaysaa hawsha readSensorData(), kaas oo u soo dira pulse 10-microsecond ah biinka kiciya. Kadib waxay cabbirtaa waqtiga ay ku qaadanayso biinka coodhka inuu helo signal-ka dib u soo noqday, waxay xisaabisaa masaafada, oo waxay soo celisaa qiimahan.
Ugu dambeyntii, hawsha loop-ka waxay si joogto ah u akhrisaa masaafada oo waxay ku daabacdaa kormeeraha serial-ka. Haddii masaafadu ka hoosayso 20 cm, buzzer-ka waa la hawlgelin doonaa.
Banaanbax / Waxa Laga Filan Karo
Markaad wado barnaamijka, ESP32 wuxuu ku muujin doonaa masaafada la cabbiray sentimitir kormeeraha serial-ka. Haddii shay uu soo galo gudaha 20 cm ee dareemaha, buzzer-ku wuu dhawaaqi doonaa. Dabeecaddan waxaa lagu tijaabin karaa iyadoo la dhigayo walxo masaafo kala duwan ah oo hortooda ah ee dareemaha. Ka digtoonow polarity-ga rogan oo hubi in isku xirka loo sameeyo sidii la qeexay si looga fogaado dhibaatooyinka inta lagu jiro hawlgalka (fiidiyowga 08:00).
Waqtiyada Fiidiyowga
- 00:00 Bilow
- 1:46 Hordhac ku saabsan Sensor-ka Ultrasonic
- 6:02 Sharaxaadda fiilooyinka
- 7:37 Sharaxaadda koodka ESP32 Arduino
- 11:33 Doorashada guddiga ESP32 iyo dekedda COM ee Arduino IDE
- 13:15 Tusaale lagu cabbirayo masaafada
- 16:43 Ficil ku xidhida masaafada: buzzer
// 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
Waad u baahan tahay
-
eBay
-
BanggoodPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
Kheyraadka & Tixraacyada
-
DukumentiESP32 Tutorial 27/55 - SunFounder doc page for ultrasonic distance sensordocs.sunfounder.com
-
DibeddaHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Faylasha📁
Fayl la'aan.