Mafunzo ya ESP32 27/55 - Kupima Umbali kwa Sensor ya Ultrasonic | Kifurushi cha Kujifunza cha ESP32 IoT cha SunFounder
Katika mafunzo haya, tutajifunza jinsi ya kutumia kihisi cha umbali cha ultrasonic na ESP32 kupima umbali na kuonyesha matokeo kwenye skrini. Pia tutachunguza jinsi ya kuamsha buzzer wakati kitu kinapogunduliwa ndani ya eneo maalum. Mradi huu unaangazia uwezo mwingi wa microcontroller ya ESP32, ambayo inajumuisha uwezo wa Wi-Fi na Bluetooth, na kuifanya kufaa kwa matumizi mbalimbali ya IoT.
Katika mwongozo huu wote, utapata maelezo ya vipengele vya vifaa, maagizo ya wiring, na sehemu za msimbo ili kukusaidia kutekeleza mradi kwa mafanikio. Kwa uwazi zaidi, tafadhali rejelea video (katika video saa 00:00).
Vifaa Vimeelezwa
Vipengele vikuu vya mradi huu ni pamoja na microcontroller ya ESP32, kihisi cha ultrasonic (HC-SR04), na buzzer. Kihisi cha ultrasonic kina sehemu kuu mbili: kisambazaji kinachotoa mawimbi ya ultrasonic na kipokezi kinachosikiliza mawimbi yaliyoakisiwa. Kwa kupima muda unaochukuliwa na mawimbi kurudi, tunaweza kuhesabu umbali wa kitu.
ESP32 hutumika kama kidhibiti kikuu, kuchakata data kutoka kwa kihisi cha ultrasonic na kudhibiti buzzer kulingana na umbali uliopimwa. Buzzer italia wakati umbali unaogunduliwa ni chini ya kiwango maalum, ikionyesha kwamba kitu kiko karibu sana.
Maelezo ya Datasheet
| Mtengenezaji | HC-SR04 |
|---|---|
| Nambari ya sehemu | HC-SR04 |
| Voltage ya Logic/IO | 5 V |
| Voltage ya usambazaji | 5 V |
| Mkondo wa pato (kwa kila chaneli) | 16 mA |
| Mkondo wa kilele (kwa kila chaneli) | … |
| Mwongozo wa mzunguko wa PWM | … |
| Viwango vya kizingiti vya logic ya kuingiza | … |
| Kushuka kwa voltage / RDS(on) / kueneza | … |
| Mipaka ya joto | … |
| Kifurushi | … |
| Vidokezo / lahaja | Kipimo cha umbali: 2 cm hadi 400 cm |
- Hakikisha usambazaji sahihi wa umeme wa 5 V kwa kihisi.
- Weka njia wazi kwa mawimbi ya ultrasonic ili kuepuka usumbufu.
- Tumia nyaya fupi ili kupunguza ucheleweshaji wa ishara na kelele.
- Hakikisha miunganisho ya pini ni sahihi ili kuepuka mawasiliano yasiyo sahihi.
- Jaribu kihisi katika mazingira mbalimbali ili kuangalia usahihi.
Maagizo ya Wiring

Ili kuunganisha kihisi cha ultrasonic kwenye ESP32, unganisha pini ya VCC ya kihisi kwenye pini ya 5V kwenye ESP32. Kisha, unganisha pini ya GND ya kihisi kwenye moja ya pini za ardhi (GND) kwenye ESP32. Pini ya trigger (Trig) kutoka kwa kihisi inapaswa kuunganishwa kwenye GPIO 26 kwenye ESP32, wakati pini ya echo (Echo) inapaswa kuunganishwa kwenye GPIO 25. Mpangilio huu unaruhusu ESP32 kutuma ishara kwa kihisi na kupokea ishara ya echo ili kuhesabu umbali.
Kwa buzzer, unganisha mguu chanya (mrefu) kwenye GPIO 12 kwenye ESP32 na mguu hasi (mfupi) kwenye GND. Hakikisha miunganisho yote ni thabiti ili kuzuia wiring iliyolegea wakati wa operesheni. Ikiwa unatumia breadboard, panga miunganisho ya buzzer vizuri ili kuepuka wiring isiyo sahihi. Hakikisha unarejelea video kwa uthibitisho wa wiring (katika video saa 05:12).
Mifano ya Msimbo & Maelezo ya Hatua kwa Hatua
Msimbo huanzisha pini za kihisi cha ultrasonic na kuanzisha mawasiliano ya serial. Kazi kuu, readSensorData(), inawajibika kutuma ishara ya trigger na kupima muda wa majibu kutoka kwa pini ya echo.
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Kihisi cha ultrasonic:");
}
Msimbo unafafanua echoPin na trigPin kama viwango vya pini zilizounganishwa kwenye kihisi cha ultrasonic. Katika kazi ya setup(), tunaanzisha mawasiliano ya serial na kuweka hali za pini ipasavyo.
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;
}
Sehemu hii inaonyesha kazi ya readSensorData(), ambayo hutuma pulse ya mikrosekunde 10 kwenye pini ya trigger. Kisha hupima muda unaochukuliwa na pini ya echo kupokea ishara kurudi, huhesabu umbali, na kurudisha thamani hii.
Hatimaye, kazi ya loop inasoma umbali mara kwa mara na kuuchapisha kwenye monitor ya serial. Ikiwa umbali ni chini ya 20 cm, buzzer itaamilishwa.
Maonyesho / Nini cha Kutarajia
Unapoendesha programu, ESP32 itaonyesha umbali uliopimwa kwa sentimita kwenye monitor ya serial. Ikiwa kitu kitaingia ndani ya 20 cm kutoka kwa kihisi, buzzer italia. Tabia hii inaweza kujaribiwa kwa kuweka vitu kwa umbali mbalimbali mbele ya kihisi. Kuwa mwangalifu kuhusu polarity iliyogeuzwa na hakikisha miunganisho imefanywa kama ilivyoelezwa ili kuepuka matatizo yoyote wakati wa operesheni (katika video saa 08:00).
Vidokezo vya Muda wa Video
- 00:00 Anza
- 1:46 Utangulizi wa Sensor ya Ultrasonic
- 6:02 Uelekezaji wa waya umeelezwa
- 7:37 Msimbo wa ESP32 Arduino umeelezwa
- 11:33 Kuchagua bodi ya ESP32 na mlango wa COM katika Arduino IDE
- 13:15 Maonyesho ya kupima umbali
- 16:43 Kuchukua hatua kwa umbali: 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
Tänker att du kanske behöver
-
eBay
-
BanggoodPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
Resurser och referenser
-
DokumentationESP32 Tutorial 27/55- SunFounder doc page for Ultrasonic distance sensordocs.sunfounder.com
-
Extern.HC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Filer📁
Inga filer tillgängliga.