ESP32 Tutorial 27/55 - Entfernungsmessung mit Ultraschallsensor | SunFounders ESP32 IoT-Lernkit
In diesem Tutorial lernen wir, wie man einen Ultraschall-Abstandssensor mit dem ESP32 verwendet, um Entfernungen zu messen und die Ergebnisse auf einem Bildschirm anzuzeigen. Wir werden auch untersuchen, wie man einen Summer aktiviert, wenn ein Objekt innerhalb eines bestimmten Bereichs erkannt wird. Dieses Projekt hebt die Vielseitigkeit des ESP32-Mikrocontrollers hervor, der Wi-Fi- und Bluetooth-Funktionen integriert und ihn für verschiedene IoT-Anwendungen geeignet macht.
In diesem Handbuch finden Sie Erklärungen zu den Hardwarekomponenten, Verdrahtungsanleitungen und Codebeispiele, die Ihnen helfen, das Projekt erfolgreich umzusetzen. Zur weiteren Klarheit verweisen Sie bitte auf das Video (im Video um 00:00).
Hardware erklärt
Die Hauptkomponenten dieses Projekts sind der ESP32-Mikrocontroller, der Ultraschallsensor (HC-SR04) und ein Summer. Der Ultraschallsensor besteht aus zwei Hauptteilen: einem Sender, der Ultraschallwellen aussendet, und einem Empfänger, der die reflektierten Wellen abhört. Durch die Messung der Zeit, die die Wellen benötigen, um zurückzukehren, können wir die Entfernung zu einem Objekt berechnen.
Der ESP32 dient als zentrale Steuerungseinheit, verarbeitet Daten vom Ultraschallsensor und steuert den Summer basierend auf der gemessenen Entfernung. Der Summer ertönt, wenn die erkannte Entfernung einen definierten Schwellenwert unterschreitet, was darauf hinweist, dass sich ein Objekt zu nahe befindet.
Datenblattdetails
| Hersteller | HC-SR04 |
|---|---|
| Teilenummer | HC-SR04 |
| Logik/IO-Spannung | 5 V |
| Versorgungsspannung | 5 V |
| Ausgangsstrom (pro Kanal) | 16 mA |
| Gleichstromspitzenwert (pro Kanal) | ... |
| PWM-Frequenzrichtlinien | ... |
| Eingangslogikschwellenwerte | ... |
| Spannungsabfall / RDS(on)/ Sättigung | ... |
| Thermische Grenzen | ... |
| Paket | ... |
| Hinweise / Varianten | Messbereich: 2 cm bis 400 cm |
- Stellen Sie eine ordnungsgemäße Stromversorgung von 5 V für den Sensor sicher.
- Halten Sie einen klaren Weg für Ultraschallwellen frei, um Interferenzen zu vermeiden.
- Verwenden Sie kurze Kabel, um Signallatenz und Rauschen zu minimieren.
- Stellen Sie sicher, dass die richtigen Pin-Verbindungen hergestellt werden, um Fehlkommunikation zu vermeiden.
- Testen Sie den Sensor in verschiedenen Umgebungen, um die Genauigkeit zu überprüfen.
Verdrahtungsanweisungen

Um den Ultraschallsensor mit dem ESP32 zu verbinden, verbinden Sie den VCC-Pin des Sensors mit dem 5V-Pin des ESP32. Verbinden Sie als Nächstes den GND-Pin des Sensors mit einem der Ground (GND)-Pins des ESP32. Der Trigger-Pin (Trig) des Sensors sollte mit GPIO 26 des ESP32 verbunden werden, während der Echo-Pin (Echo) mit GPIO 25 verbunden werden sollte. Diese Konfiguration ermöglicht es dem ESP32, ein Signal an den Sensor zu senden und das Echosignal zu empfangen, um die Entfernung zu berechnen.
Für den Summer schließen Sie den positiven (langen) Anschluss an GPIO 12 auf dem ESP32 und den negativen (kurzen) Anschluss an GND an. Stellen Sie sicher, dass alle Verbindungen sicher sind, um loses Kabeln während des Betriebs vorzubeugen. Wenn Sie ein Breadboard verwenden, richten Sie die Verbindungen des Summers ordnungsgemäß aus, um Fehlverdrahtungen zu vermeiden. Stellen Sie sicher, dass Sie das Video zur Bestätigung der Verdrahtung (im Video bei 05:12) konsultieren.
Codebeispiele und Anleitung
Der Code initialisiert die Pins für den Ultraschallsensor und richtet die serielle Kommunikation ein. Die Hauptfunktion,readSensorData()ist verantwortlich für das Senden eines Trigger-Signals und das Messen der Reaktionszeit vom Echo-Pin.
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Ultrasonic sensor:");
}
Der Code definiertechoPinundtrigPinals Konstanten für die an den Ultraschallsensor angeschlossenen Pins. In dersetup()Funktion, wir initialisieren die serielle Kommunikation und setzen die Pin-Modi entsprechend.
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;
}
Diese Passage zeigt diereadSensorData()Funktion, die einen 10-Mikrosekunden-Puls an den Trigger-Pin sendet. Sie misst dann die Zeit, die der Echo-Pin benötigt, um das Signal zurückzubekommen, berechnet die Distanz und gibt diesen Wert zurück.
Schließlich liest die Schleifenfunktion kontinuierlich die Entfernung und gibt sie auf dem seriellen Monitor aus. Wenn die Entfernung unter 20 cm liegt, wird der Summer aktiviert.
Demonstration / Was Sie erwarten können
Wenn Sie das Programm ausführen, zeigt der ESP32 die gemessene Entfernung in Zentimetern im seriellen Monitor an. Wenn ein Objekt in einen Abstand von 20 cm zum Sensor kommt, ertönt der Summer. Dieses Verhalten kann getestet werden, indem Objekte in verschiedenen Entfernungen vor dem Sensor platziert werden. Seien Sie vorsichtig bei umgekehrter Polarität und stellen Sie sicher, dass die Anschlüsse wie angegeben hergestellt werden, um Probleme während des Betriebs zu vermeiden (im Video um 08:00).
Video-Zeiten
- 00:00 Start
- 1:46 Einführung in den Ultraschallsensor
- 6:02 Verdrahtung erklärt
- 7:37 ESP32 Arduino-Code erklärt
- 11:33 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
- 13:15 Demonstration der Messung von Distanzen
- 16:43 Wenden mit Abstand: Summer
Common Course Links
Common Course Files
Dinge, die Sie vielleicht brauchen
-
eBay
-
Banggood
Ressourcen & Referenzen
-
Dokumentation
-
ExternHC-SR04 Ultraschallbibliothek von der offiziellen Arduino-Websiteplayground.arduino.cc
Dateien📁
Keine Dateien verfügbar.