Ultraschallsensor HC-SR04 – ESP32 Tutorial
Einleitung
In diesem Tutorial erfährst du, wie du den HC-SR04 Ultraschallsensor mit deinem ESP32 verbindest und programmierst, um Entfernungen zu messen. Wir führen dich Schritt für Schritt durch den gesamten Prozess, von den benötigten Komponenten über den Schaltungsaufbau bis hin zur detaillierten Erklärung des Codes und der praktischen Anwendung. Die Programmierung erfolgt dabei unkompliziert in der Arduino IDE. Du lernst, welche Komponenten du benötigst, wie du alles richtig verkabelst und wie der Code funktioniert, um deine eigenen Projekte zur Entfernungsmessung umzusetzen.
Verschaltung
Teile
1x ESP32
1x HC-SR04 Ultraschallsensor
4x Verbindungskabel
Bibliotheken
–
Code
Pinout des HC-SR04 Ultraschallsensor
Der HC-SR04 Ultraschallsensor verfügt über vier Pins, die für seine Funktion unerlässlich sind. Jeder Pin hat eine spezifische Aufgabe, um die Messungen zu ermöglichen und die Kommunikation mit deinem ESP32 herzustellen.
Hier sind die vier Pins und ihre Funktionen im Detail:
VCC: Dies ist der Stromversorgungs-Pin, den du mit der 5V-Leitung deines ESP32 verbindest.
GND: Der Masse-Pin, der mit dem GND-Pin deines ESP32 verbunden wird.
Trig (Trigger): Über diesen Pin sendest du einen kurzen Impuls, um den Ultraschall auszulösen.
Echo: Dieser Pin wird HIGH, sobald der Ultraschall vom Objekt reflektiert wird und zum Sensor zurückkehrt. Die Dauer des HIGH-Signals gibt dir die Entfernung an.

Auf der Vorderseite des Moduls befindet sich neben dem Empfänger und dem Sender der Oszillator, welcher mit 4MHz arbeitet. Dreht man das Modul um und betrachtet die Rückseite des Moduls finden sich hier einige elektronische Bauteile.
Neben den klassischen elektronischen Bauteilen findet sich 2 mal der LM324 und einmal der MAX3232.
Beim LM324 handelt es sich um einen vierfachen Operationsverstärker (OPV), er ist für das Empfangen zuständig. Dabei besteht die Aufgabe darin, das Signal vom Ultraschall-Empfänger zu verstärken und elektrisch umzuwandeln, damit es vom Mikrocontroller verarbeitet werden kann.
Der MAX3232 verarbeitet die elektrischen Signale, welche vom Mikrocontroller kommen. Er verstärkt die Signale, um den Ultraschallsender in Schwingung zu versetzen.
Hardware Aufbau / Verkabelung / Schaltungsaufbau
Der Hardware-Aufbau des HC-SR04 Ultraschallsensors mit deinem ESP32 ist unkompliziert. Du musst lediglich vier Verbindungen herstellen, um die Kommunikation zwischen den beiden Komponenten zu ermöglichen. Verbinde den VCC-Pin des HC-SR04 mit dem VIN-Pin deines ESP32 und den GND-Pin des Sensors mit dem GND-Pin des ESP32. Für die Datenübertragung schließt du den Echo-Pin des HC-SR04 an den digitalen Pin D4 deines ESP32 an und den Trig-Pin des Sensors an den digitalen Pin D5.
ESP32 VIN → Ultraschallsensor Vcc Pin
ESP32 GND → Ultraschallsensor GND Pin
ESP32 D4 → Ultraschallsensor Echo Pin
ESP32 D5 → Ultraschallsensor Trig Pin

Eine sorgfältige und korrekte Verdrahtung ist entscheidend, damit dein ESP32 die Signale des HC-SR04 richtig erfassen kann. Wenn du diese Verbindungen erfolgreich hergestellt hast, bist du bereit, mit der Programmierung des ESP32 fortzufahren. Im nächsten Abschnitt gehen wir detailliert darauf ein, wie du die benötigte Bibliothek einbindest und den Code für den HC-SR04 programmierst.
Software Programmierung
Sobald der Hardware-Aufbau erfolgreich abgeschlossen ist, widmen wir uns der Programmierung deines ESP32. In diesem Abschnitt erläutern wir detailliert die wesentlichen Schritte zur Codeerstellung und die Schlüsselfunktionen, die du verwenden wirst.
Schritt 1: IDE Projekt
Beginne damit, die Arduino-IDE zu öffnen und ein neues Projekt zu erstellen. Um mit der Arduino-IDE zu arbeiten, starte zuerst die Anwendung auf deinem Computer. Falls du die Arduino-IDE noch nicht installiert hast, findest du unter folgendem Link eine Anleitung dazu:
>
Nachdem du die Arduino-IDE geöffnet hast, erstellst du ein neues Projekt, indem du auf „Datei“ und dann auf „Neu“ klickst. Dies öffnet ein neues Sketch-Fenster, in das du deinen Code eingeben kannst.
Schritt 2: Bibliothek einbinden
Für dieses spezielle Projekt mit dem HC-SR04 Ultraschallsensor ist keine zusätzliche Bibliothek notwendig. Der Code zur Steuerung des Sensors kann direkt mit den Standardfunktionen der Arduino-IDE geschrieben werden, was den Einstieg besonders einfach macht.
Schritt 3: Initialisierung
Vor dem void setup()-Abschnitt deklarieren wir globale Variablen und Konstanten, die im gesamten Programm verwendet werden. Hier legen wir die Pins fest, an die der HC-SR04 angeschlossen ist – den Trigger-Pin an D5 und den Echo-Pin an D4. Außerdem initialisieren wir Variablen für die Dauer des Echosignals (dauer) und die berechnete Entfernung (entfernung) mit dem Datentyp long, um auch größere Werte speichern zu können.
[Code3]
Schritt 4: Void Setup
Im void setup()-Abschnitt, der einmalig beim Start des ESP32 ausgeführt wird, konfigurieren wir die grundlegenden Einstellungen. Wir starten die serielle Kommunikation mit einer Baudrate von 9600, um die Messwerte später am PC auslesen zu können. Außerdem definieren wir den Trigger-Pin als Ausgang (OUTPUT), da er das Ultraschallsignal sendet, und den Echo-Pin als Eingang (INPUT), da er das reflektierte Signal empfängt.
[Code4]
Schritt 5: Loop Setup
Der void loop()-Abschnitt enthält den Hauptcode, der sich kontinuierlich wiederholt. Hier wird der HC-SR04 aktiviert, um ein Ultraschallsignal auszusenden und das Echo zu empfangen. Zuerst wird der Trigger-Pin kurz auf LOW gesetzt, dann für 10 Mikrosekunden auf HIGH, um das Signal auszusenden, und wieder auf LOW. Die pulseIn()-Funktion misst die Zeit, die das Signal benötigt, um zurückzukehren. Anschließend wird die Entfernung basierend auf der Schallgeschwindigkeit berechnet und auf dem seriellen Monitor ausgegeben. Eine kurze Pause von einer Sekunde (delay(1000)) stellt sicher, dass die Messungen nicht zu schnell aufeinanderfolgen.
[Code5]
Gesamter Code
Hier findest du zur besseren Übersicht noch einmal den kompletten Programmier-Code.
[Code6]
Ausführung / Anwendung
Nachdem du den Code in die IDE eingegeben hast, muss dieser noch ausgeführt und auf deinen ESP32 übertragen werden.
Gehe dazu wie folgt vor:
Schritt 1: Kompilieren
Klicke auf das Häkchen-Symbol in der Arduino-IDE, um deinen Code zu kompilieren. Dieser Schritt überprüft den Code auf Fehler und bereitet ihn für das Hochladen vor.
Schritt 2: Hochladen
Sobald der Code erfolgreich kompiliert wurde, klicke auf das Pfeil-Symbol, um ihn auf deinen ESP32 hochzuladen. Stelle sicher, dass dein ESP32 korrekt mit deinem Computer verbunden ist und der richtige Port in der IDE ausgewählt ist.
Schritt 3: Serieller Monitor öffnen
Nachdem der Code auf den ESP32 hochgeladen wurde, öffne den seriellen Monitor in der Arduino-IDE (Werkzeuge > Serieller Monitor). Hier siehst du die Ausgaben deines HC-SR04 Sensors in Echtzeit.
Schritt 4: Entfernung wird angezeigt
Auf dem seriellen Monitor wird dir nun die gemessene Entfernung in Zentimetern angezeigt. Halte verschiedene Objekte vor den HC-SR04 Ultraschallsensor, um die Messwerte zu beobachten.
Auf folgendem Bild ist ebenfalls die Anwendung gezeigt.
