ESP8266 - Hindernissensor

Dieses Tutorial zeigt Ihnen, wie man den ESP8266 mit dem Infrarot-Hindernisvermeidungssensor verwendet. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×IR-Hinderniserkennungssensor
1×(Alternativ) TCRT5000 Obstacle Avoidance Sensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Infrarot-Hinderniserkennungssensor

Der Infrarot-Hindernissensor ist darauf ausgelegt, das Vorhandensein eines Hindernisses auf seinem Weg mithilfe eines Infrarotsignals zu erkennen. Er verfügt über einen Erkennungsbereich von 2 cm bis 30 cm, der mit einem integrierten Potentiometer eingestellt werden kann.

Pinbelegung des Infrarot-Hinderniserkennungssensors

Der Infrarot-Hinderniserkennungssensor hat drei Anschlüsse:

  • GND-Pin: muss mit GND (0V) verbunden werden.
  • VCC-Pin: muss mit VCC (5V oder 3.3V) verbunden werden.
  • OUT-Pin: ist ein Ausgangspin, LOW wenn ein Hindernis vorhanden ist, HIGH wenn keines vorhanden ist. Dieser Pin muss mit einem ESP8266-Eingangspin verbunden werden.
Pinbelegung des IR-Hindernisvermeidungssensors

Wie es funktioniert

Das Infrarot-Hindernissensor-Modul verfügt über integrierte Infrarot-Sender und -Empfänger. Der Sender sendet ein Infrarotsignal. Der Empfänger sucht nach dem reflektierten Signal, um festzustellen, ob ein Objekt vorhanden ist oder nicht. Der OUT-Pin zeigt das Vorhandensein eines Hindernisses an:

  • Wenn etwas den Sensor blockiert, wird der OUT-Pin LOW sein
  • Wenn nichts den Sensor blockiert, wird der OUT-Pin HIGH sein

※ Notiz:

Während des Versands besteht die Möglichkeit, dass sich dieser Sensor verformt, was zu einer Fehlfunktion führen kann. Wenn Sie feststellen, dass der Sensor nicht ordnungsgemäß funktioniert, versuchen Sie, den IR-Sender und den IR-Empfänger so auszurichten, dass sie parallel zueinander ausgerichtet sind.

Verdrahtungsdiagramm

ESP8266 NodeMCU IR-Hindernisvermeidungssensor 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.

Wie programmiert man einen IR-Hindernisvermeidungssensor?

  • Initialisiert den ESP8266-Pin in den digitalen Eingangsmodus, indem die pinMode()-Funktion verwendet wird. Zum Beispiel: Pin D7:
pinMode(D7, INPUT_PULLUP);
  • Den Status des ESP8266-Pins über die Funktion digitalRead() abfragen.
int state = digitalRead(D7);

ESP8266-Code

Es gibt zwei Ansätze zur Programmierung einer Anwendung zur Hindernisvermeidung:

  • Maßnahmen ergreifen, wenn das Hindernis vorhanden ist oder nicht vorhanden ist
  • Maßnahmen ergreifen, wenn das Hindernis erkannt wird oder beseitigt wird

ESP8266-Code zur Überprüfung, ob ein Hindernis vorhanden ist

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-obstacle-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to OUT pin of IR obstacle avoidance sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("The obstacle is present"); else Serial.println("The obstacle is NOT present"); delay(100); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Sieh dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE Tutorial an, falls du ESP8266 zum ersten Mal verwendest.
  • 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 aus, zum Beispiel NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke auf die Upload-Schaltfläche, um den Code an den ESP8266 zu senden.
  • Platziere ein Hindernis vor dem Sensor und entferne es anschließend wieder.
  • Sieh dir das Ergebnis im Serial Monitor an.
COM6
Send
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP8266-Code zur Hinderniserkennung

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-obstacle-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to OUT pin of IR obstacle avoidance sensor int prev_state = HIGH; // The previous state from the input pin int obstacle_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: obstacle_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && obstacle_state == LOW) Serial.println("The obstacle is detected"); else if (prev_state == LOW && obstacle_state == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state prev_state = obstacle_state; }

Schnelle Schritte

  • Verdrahten Sie die Komponenten gemäß dem Diagramm.
  • Verbinden Sie das ESP8266-Board per USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E Modul), und seinen entsprechenden COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Upload in der Arduino IDE, um den Code an den ESP8266 zu senden.
  • Legen Sie für eine Weile ein Hindernis vor den Sensor und entfernen Sie es anschließend wieder.
  • Überprüfen Sie die Ergebnisse im Serial Monitor.
COM6
Send
The obstacle is detected The obstacle is cleared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

Funktionsreferenzen

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!