ESP32 Tutorijal 27/55 - Mjerenje udaljenosti ultrazvučnim senzorom | SunFounder's ESP32 IoT Learning kit
U ovom tutorijalu naučit ćemo kako koristiti ultrazvučni senzor udaljenosti s ESP32 mikrokontrolerom za mjerenje udaljenosti i prikaz rezultata na ekranu. Također ćemo istražiti kako aktivirati zujalicu kada se objekt detektira unutar određenog raspona. Ovaj projekat naglašava svestranost ESP32 mikrokontrolera, koji integrira Wi-Fi i Bluetooth mogućnosti, što ga čini pogodnim za različite IoT aplikacije.
Kroz ovaj vodič pronaći ćete objašnjenja hardverskih komponenti, upute za povezivanje i isječke koda koji će vam pomoći da uspješno implementirate projekat. Za dodatnu jasnoću, molimo pogledajte video (u videu na 00:00).
Objašnjenje hardvera
Primarne komponente ovog projekta uključuju ESP32 mikrokontroler, ultrazvučni senzor (HC-SR04) i zujalicu. Ultrazvučni senzor sastoji se od dva glavna dijela: predajnika koji emituje ultrazvučne valove i prijemnika koji sluša reflektirane valove. Mjerenjem vremena potrebnog da se valovi vrate, možemo izračunati udaljenost do objekta.
ESP32 služi kao centralni kontroler, obrađuje podatke s ultrazvučnog senzora i kontrolira zujalicu na osnovu izmjerene udaljenosti. Zujalica će se oglasiti kada je detektirana udaljenost manja od definiranog praga, što ukazuje da je objekt preblizu.
Detalji iz tehničke dokumentacije
| Proizvođač | HC-SR04 |
|---|---|
| Broj dijela | HC-SR04 |
| Logički/IO napon | 5 V |
| Napon napajanja | 5 V |
| Izlazna struja (po kanalu) | 16 mA |
| Vršna struja (po kanalu) | … |
| Smjernice za PWM frekvenciju | … |
| Ulazni logički pragovi | … |
| Pad napona / RDS(on) / zasićenje | … |
| Toplinska ograničenja | … |
| Kućište | … |
| Napomene / varijante | Mjerni raspon: 2 cm do 400 cm |
- Osigurajte odgovarajuće napajanje od 5 V za senzor.
- Održavajte čist put za ultrazvučne valove kako biste izbjegli smetnje.
- Koristite kratke žice kako biste smanjili kašnjenje signala i šum.
- Osigurajte ispravne pin veze kako biste izbjegli pogrešnu komunikaciju.
- Testirajte senzor u različitim okruženjima kako biste provjerili tačnost.
Upute za povezivanje

Da biste povezali ultrazvučni senzor s ESP32, spojite VCC pin senzora na 5V pin na ESP32. Zatim spojite GND pin senzora na jedan od uzemljenih (GND) pinova na ESP32. Trigger pin (Trig) sa senzora treba spojiti na GPIO 26 na ESP32, dok echo pin (Echo) treba spojiti na GPIO 25. Ova postavka omogućava ESP32 da pošalje signal senzoru i primi echo signal za izračunavanje udaljenosti.
Za zujalicu, spojite pozitivnu (dugu) nogicu na GPIO 12 na ESP32 i negativnu (kratku) nogicu na GND. Osigurajte da su sve veze čvrste kako biste spriječili labave žice tokom rada. Ako koristite breadboard, pravilno poravnajte veze zujalice kako biste izbjegli pogrešno povezivanje. Obavezno pogledajte video za potvrdu povezivanja (u videu na 05:12).
Primjeri koda i objašnjenje
Kod inicijalizira pinove za ultrazvučni senzor i postavlja serijsku komunikaciju. Glavna funkcija, readSensorData(), odgovorna je za slanje trigger signala i mjerenje vremena odziva s echo pina.
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Ultrasonic sensor:");
}
Kod definira echoPin i trigPin kao konstante za pinove spojene na ultrazvučni senzor. U funkciji setup() inicijaliziramo serijsku komunikaciju i postavljamo pin modove u skladu s tim.
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;
}
Ovaj isječak prikazuje funkciju readSensorData(), koja šalje 10-mikrosekundni puls na trigger pin. Zatim mjeri vrijeme potrebno da echo pin primi signal natrag, izračunava udaljenost i vraća ovu vrijednost.
Konačno, loop funkcija kontinuirano čita udaljenost i ispisuje je na serijski monitor. Ako je udaljenost ispod 20 cm, zujalica će se aktivirati.
Demonstracija / Šta očekivati
Kada pokrenete program, ESP32 će prikazati izmjerenu udaljenost u centimetrima na serijskom monitoru. Ako objekt uđe unutar 20 cm od senzora, zujalica će se oglasiti. Ovo ponašanje može se testirati postavljanjem objekata na različite udaljenosti ispred senzora. Budite oprezni s obrnutim polaritetom i osigurajte da su veze napravljene kako je navedeno kako biste izbjegli probleme tokom rada (u videu na 08:00).
Vremenske oznake videa
- 00:00 Početak
- 1:46 Uvod u ultrazvučni senzor
- 6:02 Objašnjeno povezivanje žica
- 7:37 Objašnjen ESP32 Arduino kod
- 11:33 Odabir ESP32 ploče i COM porta u Arduino IDE-u
- 13:15 Demonstracija mjerenja udaljenosti
- 16:43 Praćenje akcije s udaljenosti: zujalica
// 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
Things you might need
-
eBay
-
BanggoodPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
Resources & references
-
DocumentationESP32 Tutorial 27/55- SunFounder doc page for Ultrasonic distance sensordocs.sunfounder.com
-
ExternalHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Files📁
No files available.