ESP32 Tutorial 19/55 - Hindernisse mit einem Infrarotsensor erkennen | SunFounder's ESP32 IoT Lernkit
In diesem Tutorial werden wir lernen, wie man einen Infrarot-Hindernisvermeidungssensor mit dem ESP32-Modul verwendet, um Hindernisse zu erkennen. Dieses Projekt wird demonstrieren, wie der Sensor einen Summer auslösen kann, wenn ein Hindernis erkannt wird. Die Einrichtung zeigt außerdem den Erkennungsstatus auf dem seriellen Monitor an und bietet eine klare und interaktive Möglichkeit, die Funktionalität des Sensors zu beobachten.

Wir werden mit dem SunFounder ESP32 IoT Lernkit arbeiten, das den ESP32 Mikrocontroller mit Wi-Fi- und Bluetooth-Funktionen beinhaltet. Der Infrarotsensor funktioniert, indem er Infrarotlicht aussendet, das von nahegelegenen Hindernissen reflektiert wird. Wenn das Licht zurückreflektiert wird, löst der Sensor ein Ausgangssignal aus, das wir in unserem Code lesen werden. Wir werden auch einen Summer einfügen, der aktiviert wird, wenn ein Hindernis erkannt wird, um einen akustischen Alarm zu gewährleisten.
Hardware erklärt
Die Hauptkomponenten dieses Projekts umfassen das ESP32-Modul, den Infrarot-Hindernisvermeidungssensor und einen Summer. Das ESP32-Modul dient als zentrale Verarbeitungseinheit, die Sensor-Eingaben verarbeitet und Ausgänge steuert. Es kann mit einem Lithium-Akku betrieben werden, was es tragbar und flexibel für verschiedene Anwendungen macht.
Der Infrarot-Hindernisvermeidungssensor besteht aus einem Sender und einem Empfänger. Der Sender strahlt Infrarotlicht aus, während der Empfänger das reflektierte Licht von nahegelegenen Objekten detektiert. Wenn ein Hindernis vorhanden ist, wird der Ausgangspin des Sensors niedrig, was dem ESP32 signalisiert, Maßnahmen zu ergreifen, wie beispielsweise das Einschalten des Summers.
Datenblatt Einzelheiten
| Hersteller | SunFounder |
|---|---|
| Teilenummer | Infrarot-Hindernisvermeidungssensor |
| Betriebsspannung | 3,3 V - 5 V |
| Ausgabeart | Digital (Niedrig, wenn ein Hindernis erkannt wird) |
| Erkennungsbereich | Bis zu 20 cm |
| Antwortzeit | Weniger als 10 ms |
| Paket | Modul |
- Stromversorgung: 3,3 V bis 5 V für den Betrieb.
- Das Ausgangssignal wird niedrig, wenn ein Hindernis erkannt wird.
- Einstellbare Empfindlichkeit über Potentiometer.
- Typischer Erkennungsbereich beträgt bis zu 20 cm.
- Schnelle Reaktionszeit von unter 10 ms.
Verdrahtungsanweisungen

Um den Infrarot-Hindernisvermeidungssensor mit dem ESP32 zu verbinden, starten Sie, indem Sie den VCC-Pin des Sensors mit dem 5V-Pin des ESP32 verbinden. Anschließend verbinden Sie den GND-Pin des Sensors mit einem der GND-Pins des ESP32. Schließlich verbinden Sie den OUT-Pin des Sensors mit dem GPIO-Pin 14 des ESP32.
Für den Summer den negativen Anschluss mit GND und den positiven Anschluss mit GPIO-Pin 27 verbinden. Achten Sie darauf, dass alle Verbindungen sicher sind und dass der Sensor korrekt mit Strom versorgt wird. Die Verkabelung sollte einfach sein, da der Sensor und der Summer nur einfache Strom- und Signalverbindungen benötigen.
Codebeispiele und Schritt-für-Schritt-Anleitungen
Im Code definieren wir zunächst den Pin, der mit dem Hindernisvermeidungssensor verbunden ist. Dies geschieht mittels des IdentifikatorsavoidPinsetze auf 14. Wir deklarieren auch eine VariableavoidStateden Ausgangszustand des Sensors zu halten.
const int avoidPin = 14; // the number of the avoid module pin
int avoidState = 0;
Im Setup-Funktionsblock initialisieren wir die serielle Kommunikation und setzen dieavoidPinals Eingabe. Dies ermöglicht es dem ESP32, den Ausgangszustand des Sensors zu lesen.
void setup() {
Serial.begin(115200);
pinMode(avoidPin, INPUT);
}
Innerhalb der Schleifenfunktion lesen wir kontinuierlich die Ausgaben des Sensors.digitalRead(avoidPin)und speichere das Ergebnis inavoidStateDieser Wert wird dann auf dem seriellen Monitor ausgegeben, sodass wir sehen können, wann ein Hindernis erkannt wird (Ausgabe ist 0) oder nicht (Ausgabe ist 1).
void loop() {
avoidState = digitalRead(avoidPin);
Serial.println(avoidState);
}
Für den vollständigen Code siehe bitte den Ladebereich unterhalb des Artikels.
Demonstration / Was zu erwarten ist
Wenn die Einrichtung abgeschlossen ist und der Code hochgeladen wurde, sollte der serielle Monitor entweder eine 0 oder eine 1 anzeigen, je nachdem, ob ein Hindernis erkannt wird. Wenn ein Hindernis im Erkennungsbereich ist, wird die Ausgabe 0 sein, und der Summer wird ertönen. Wenn das Hindernis entfernt wird, wird die Ausgabe 1 sein, und der Summer wird aufhören. Diese Funktionalität wird im Video (im Video um 12:30) demonstriert.
Häufige Probleme können falsche Verkabelung umfassen, die dazu führen könnte, dass der Sensor nicht richtig funktioniert, oder nicht übereinstimmende Baudraten im seriellen Monitor, die verhindern, dass Daten korrekt angezeigt werden. Stellen Sie sicher, diese Aspekte zu überprüfen, wenn Sie auf Probleme stoßen.
Video-Zeitstempel
- 00:00 Start
- 1:57 Projektvorstellung
- 4:33 Verkabelung der Hindernisvermeidung
- 5:55 Arduino-Code zur Hindernisvermeidung
- 7:36 Auswahl des ESP32-Boards und des COM-Ports im Arduino IDE
- 9:18 Projektdemonstration
- 10:42 Anpassung des Empfindlichkeitserhöhungsbereichs
- 12:39 Maßnahmen ergreifen, wenn ein Hindernis erkannt wird
- 14:24 Verwendung eines Buzzers, wenn ein Hindernis erkannt wird.
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 19/55 - SunFounder Ressourcen-Seite zur Obstacle-Detectiondocs.sunfounder.com
Dateien📁
Keine Dateien verfügbar.