ESP8266 - Ultraschallsensor
Dieses Tutorial erklärt dir, wie man den ESP8266 und einen Ultraschallsensor verwendet, um den Abstand zu Hindernissen oder Objekten zu messen. Im Detail werden wir Folgendes lernen:
- Wie der Ultraschallsensor funktioniert
- Wie man den Ultraschallsensor mit ESP8266 verbindet
- Wie man den ESP8266 programmiert, um Entfernungen mit dem Ultraschallsensor zu messen
- Wie man Rauschen aus den Abstandsmessungen des Ultraschallsensors im ESP8266-Code herausfiltert
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Ultraschallsensor
Der HC-SR04-Ultraschallsensor wird verwendet, um den Abstand zu einem Objekt mittels Ultraschallwellen zu bestimmen.
Die Pinbelegung des Ultraschallsensors
Der HC-SR04-Ultraschallsensor hat vier Anschlüsse:
- VCC-Pin: muss mit VCC (5 V) verbunden sein
- GND-Pin: muss mit GND (0 V) verbunden sein
- TRIG-Pin: An diesem Pin wird das Steuersignal (Impuls) vom ESP8266 empfangen.
- ECHO-Pin: Dieser Pin sendet ein Signal (Impuls) an den ESP8266. Der ESP8266 misst die Länge des Impulses, um die Entfernung zu berechnen.

So funktioniert es
- Der Mikrocontroller erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin, der den Ultraschallsensor veranlasst, Ultraschallwellen auszusenden.
- Die Ultraschallwelle wird reflektiert, nachdem sie auf ein Hindernis getroffen hat.
- Der Ultraschallsensor erkennt dann die reflektierte Ultraschallwelle und misst deren Laufzeit.
- Der Ultraschallsensor erzeugt einen Impuls am ECHO-Pin, dessen Impulsdauer der Ausbreitungszeit der Ultraschallwelle entspricht.
- Der Mikrocontroller misst die Impulsdauer am ECHO-Pin und berechnet die Entfernung zwischen dem Sensor und dem Hindernis.
Wie man die Entfernung vom Ultraschallsensor bestimmt
- Um die Entfernung vom Ultraschallsensor zu berechnen, müssen zwei Schritte unternommen werden (1 und 6 im Abschnitt How It Works):
- Erzeuge einen 10-Mikrosekunden-Puls am TRIG-Pin.
- Messe die Pulsdauer am ECHO-Pin.
- Berechne die Entfernung zwischen dem Sensor und dem Hindernis.
Berechnung der Entfernung
Wir haben:
- Die Laufzeit der Ultraschallwelle (µs): travel_time = pulse_duration
- Die Geschwindigkeit der Ultraschallwelle: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Also:
- Die Wegstrecke der Ultraschallwelle (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- Der Abstand zwischen Sensor und Hindernis (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
ESP8266 - Ultraschallsensor
Wir können zwei Pins eines ESP8266 verwenden, um die Entfernung von einem Ultraschallsensor zu messen: Ein Pin ist mit dem TRIG-Pin verbunden, um einen 10-µs-Puls zu erzeugen, und der andere Pin ist mit dem ECHO-Pin verbunden, um den Impuls vom Sensor zu messen.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
So programmieren Sie einen Ultraschallsensor
- Erzeuge einen 10-Mikrosekunden-Puls am Pin D5 des ESP8266, indem du die Funktionen digitalWrite() und delayMicroseconds() verwendest. Zum Beispiel:
- Setze den Pin mit digitalWrite() auf HIGH, warte dann 10 Mikrosekunden mit delayMicroseconds(), und setze den Pin anschließend mit digitalWrite() wieder auf LOW.
- Messe die Pulsdauer (μs) am Pin D6 des Arduino mithilfe der Funktion pulseIn(). Zum Beispiel:
- Berechne die Entfernung (cm):
ESP8266-Code
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:
- Schau dir das Tutorial zur Einrichtung der Entwicklungsumgebung für ESP8266 in der Arduino IDE an, falls dies dein erster Umgang mit ESP8266 ist.
- Verdrahte die Bauteile wie im Diagramm gezeigt.
- Schließe das ESP8266-Board über ein USB-Kabel an deinen Computer an.
- Öffne die Arduino IDE auf deinem Computer.
- Wähle das richtige ESP8266-Board, zum Beispiel (z. B. NodeMCU 1.0 (ESP-12E Module)), und den jeweiligen COM-Port.
- Kopiere den Code und öffne ihn in der Arduino IDE.
- Klicke im Arduino IDE auf die Schaltfläche Hochladen, um den Code zu kompilieren und auf den ESP8266 hochzuladen.

- Öffne den seriellen Monitor
- Bewege deine Hand in der Nähe des Ultraschallsensors
- Schau dir den im seriellen Monitor angezeigten Abstand zwischen dem Sensor und deiner Hand an
Code-Erklärung
Schau dir die zeilenweise Erklärung an, die in den Kommentaren des Quellcodes enthalten ist!
Wie man Rauschen aus Abstandsmessungen eines Ultraschallsensors filtert
Das Messergebnis eines Ultraschallsensors kann Rauschen enthalten, was zu unerwünschten Abläufen in bestimmten Anwendungen führen kann. Um das Rauschen zu entfernen, kann der folgende Algorithmus verwendet werden:
- Nehmen Sie mehrere Messungen vor und speichern Sie sie in einem Array
- Sortieren Sie das Array in aufsteigender Reihenfolge
- Filtern Sie das Rauschen heraus
- Einige der kleinsten Messwerte werden als Rauschen angesehen → ignorieren Sie sie
- Einige der größten Messwerte werden als Rauschen angesehen → ignorieren Sie sie
- Berechnen Sie den Durchschnitt der mittleren Messwerte
- Die fünf kleinsten Proben sollten ignoriert werden.
- Die fünf größten Proben sollten ignoriert werden.
- Der Durchschnitt der 10 mittleren Proben (von der 5. bis zur 14. Probe) sollte berechnet werden.
Der nachstehende Beispielcode führt 20 Messungen durch:
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordere dich heraus
Verwenden Sie einen Ultraschallsensor für eines der folgenden Projekte:
- Konstruieren Sie ein Kollisionsvermeidungssystem für ein ferngesteuertes Auto.
- Schätzen Sie den Füllstand eines Mülleimers.
- Überwachen Sie den Füllstand eines Mülleimers.
- Automatisieren Sie das Öffnen und Schließen eines Mülleimers. Hinweis: Siehe ESP8266 - Servo Motor.
Ultraschallsensor-Anwendungen
- Vermeidung von Kollisionen
- Kapazitätsschätzung
- Höhenabschätzung
- Identifizierung naher Objekte