ESP8266 - IR-Fernbedienung

Du bist wahrscheinlich schon einmal auf die Infrarot-Fernbedienung, auch IR-Fernbedienung genannt, gestoßen, wenn du zu Hause Geräte wie Fernseher und Klimaanlagen benutzt... Dieses Tutorial erklärt dir, wie du die Infrarot-Fernbedienung (IR-Fernbedienung) und einen Infrarotempfänger verwendest, um den ESP8266 zu steuern. Im Detail werden wir lernen:

Infrarot-Steuergerät - Infrarot-Empfänger - ESP8266 NodeMCU

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 Remote Controller and Receiver Kit
1×CR2025 Batterie (für IR-Fernbedienung)
1×Verbindungskabel
1×(Optional) 5V Power Adapter
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-Fernbedienung

Ein IR-Steuerungssystem hat zwei Bestandteile: eine IR-Fernbedienung und ein IR-Empfänger.

  • Die IR-Fernbedienung wird verwendet, um Befehle mittels Infrarotsignalen zu senden.
  • Der IR-Empfänger erfasst und interpretiert diese Signale, um das Gerät zu steuern.

Ein IR-Kit besteht typischerweise aus den beiden oben genannten Komponenten: einer IR-Fernbedienung und einem IR-Empfänger.

Infrarot-Fernbedienung

Die Infrarot-Fernbedienung ist ein tragbares Gerät, das Infrarotsignale sendet. Sie ist mit einer Tastatur ausgestattet, die mehrere Tasten bietet:

  • Jede Taste der Fernbedienung erfüllt eine eindeutige Funktion oder einen Befehl.
  • Wenn eine Taste gedrückt wird, sendet die Fernbedienung ein unsichtbares Infrarotsignal aus. Dieses Signal enthält einen speziellen Code oder ein Muster, das mit der gedrückten Taste verknüpft ist.
  • Da diese Infrarotsignale zum Infrarotspektrum gehören, können sie vom menschlichen Auge nicht gesehen werden.
Infrarot-Controller
image source: diyables.io

Infrarotempfänger

Das IR-Empfängermodul ist ein Sensor, der die von der Fernbedienung ausgestrahlten Infrarotsignale erkennt und empfängt.

Der Infrarotempfänger erkennt die eingehenden Infrarotsignale und wandelt sie in den Code (Befehl) um, der die auf der Fernbedienung gedrückte Taste repräsentiert.

Der IR-Empfänger kann ein Sensor oder ein Modul sein. Sie können die folgenden Optionen verwenden:

  • Nur IR-Empfängermodul
  • Nur IR-Empfängersensor
  • IR-Empfängersensor + Adapter
Infrarot-Empfänger-Sensor-Modul
image source: diyables.io
Infrarot-Empfänger-Sensoradapter
image source: diyables.io

IR-Empfänger-Pinbelegung

Das IR-Empfängermodul oder -Sensor hat drei Pins:

  • VCC-Pin: Verbinden Sie diesen Pin mit dem 3,3-V- oder dem 5-V-Pin des ESP8266 oder einer externen Stromquelle.
  • GND-Pin: Verbinden Sie diesen Pin mit dem GND-Pin des ESP8266 oder einer externen Stromquelle.
  • OUT (Ausgang) Pin: Dieser Pin ist der Ausgangspin des IR-Empfängermoduls und mit einem digitalen Eingangspin des ESP8266 verbunden.

Wie es funktioniert

Wenn ein Benutzer eine Taste auf der IR-Fernbedienung drückt, erfolgen die folgenden Aktionen:

  • Die IR-Fernbedienung wandelt den Befehl der Taste in ein Infrarotsignal um, wobei ein bestimmtes Protokoll verwendet wird.
  • Die IR-Fernbedienung sendet das codierte Infrarotsignal.
  • Der IR-Empfänger empfängt das Infrarotsignal, das ausgesendet wurde.
  • Der IR-Empfänger decodiert das Infrarotsignal und übersetzt es zurück in den ursprünglichen Befehl.
  • Der ESP8266 liest und empfängt den Befehl vom IR-Empfänger.
  • Der ESP8266 ordnet den empfangenen Befehl dem entsprechenden Knopf zu, der auf der IR-Fernbedienung gedrückt wurde.

Zusammenfassend veranschaulichen diese Schritte, wie der Tastendruck der IR-Fernbedienung in einen verständlichen Befehl umgewandelt wird, der vom ESP8266 genutzt werden kann.

Machen Sie sich keine Sorgen, wenn es kompliziert erscheint. Mit der Hilfe der DIYables_IRcontroller-Bibliothek wird es unglaublich einfach.

Verdrahtungsdiagramm

Verdrahtungsdiagramm zwischen ESP8266 und IR-Empfängermodul

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

Verdrahtungsdiagramm zwischen ESP8266 und IR-Empfängersensor

ESP8266 NodeMCU IR-Fernbedienung Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Schaltplan zwischen ESP8266 und IR-Empfänger-Sensor sowie Adapter

Bevor Sie den IR-Empfängersensor mit dem ESP8266 verbinden, haben Sie die Möglichkeit, ihn an den Adapter anzuschließen. Dadurch wird die Einrichtung erleichtert und eine ordnungsgemäße Verbindung zwischen dem IR-Empfängersensor und dem ESP8266 sichergestellt.

ESP8266 NodeMCU IR-Fernbedienungsempfänger-Adapter
image source: diyables.io

Wie man eine Infrarot-Fernbedienung programmiert

  • Die Bibliothek einbinden:
#include <DIYables_IRcontroller.h> // Bibliothek für IR-Empfänger
  • Deklariere ein Objekt DIYables_IRcontroller_17 oder DIYables_IRcontroller_21, das 17-Tasten- bzw. 21-Tasten-IR-Fernbedienungen entspricht:
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200ms // OR DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200ms
  • Initialisiere den IR-Controller.
irController.begin();
  • In der Schleife wird geprüft, ob eine Taste gedrückt wird oder nicht. Falls ja, hole die Taste
Key17 key = irController.getKey(); // Wenn Sie einen 17-Tasten IR-Controller verwenden // ODER Key21 key = irController.getKey(); // Wenn Sie einen 21-Tasten IR-Controller verwenden
  • Nachdem eine Taste gedrückt wurde, können Sie je nach Taste spezifische Aktionen ausführen.

ESP8266-Code

/* * 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-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D5 // The ESP8266 pin D5 connected to IR controller DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key17::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key17::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key17::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key17::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key17::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key17::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key17::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key17::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; case Key17::KEY_STAR: Serial.println("*"); // TODO: YOUR CONTROL break; case Key17::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key17::KEY_SHARP: Serial.println("#"); // TODO: YOUR CONTROL break; case Key17::KEY_UP: Serial.println("UP"); // TODO: YOUR CONTROL break; case Key17::KEY_DOWN: Serial.println("DOWN"); // TODO: YOUR CONTROL break; case Key17::KEY_LEFT: Serial.println("LEFT"); // TODO: YOUR CONTROL break; case Key17::KEY_RIGHT: Serial.println("RIGHT"); // TODO: YOUR CONTROL break; case Key17::KEY_OK : Serial.println("OK"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }
/* * 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-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D5 // The ESP8266 pin D5 connected to IR controller DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key21 key = irController.getKey(); if (key != Key21::NONE) { switch (key) { case Key21::KEY_CH_MINUS: Serial.println("CH-"); // TODO: YOUR CONTROL break; case Key21::KEY_CH: Serial.println("CH"); // TODO: YOUR CONTROL break; case Key21::KEY_CH_PLUS: Serial.println("CH+"); // TODO: YOUR CONTROL break; case Key21::KEY_PREV: Serial.println("<<"); // TODO: YOUR CONTROL break; case Key21::KEY_NEXT: Serial.println(">>"); // TODO: YOUR CONTROL break; case Key21::KEY_PLAY_PAUSE: Serial.println(">||"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_MINUS: Serial.println("–"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_PLUS: Serial.println("+"); // TODO: YOUR CONTROL break; case Key21::KEY_EQ: Serial.println("EQ"); // TODO: YOUR CONTROL break; case Key21::KEY_100_PLUS: Serial.println("100+"); // TODO: YOUR CONTROL break; case Key21::KEY_200_PLUS: Serial.println("200+"); // TODO: YOUR CONTROL break; case Key21::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key21::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key21::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key21::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key21::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key21::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key21::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key21::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key21::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key21::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }

Schnelle Schritte

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

  • Schauen Sie sich das Tutorial Wie man die Umgebung für ESP8266 in der Arduino IDE einrichtet an, falls Sie ESP8266 zum ersten Mal verwenden.
  • Verdrahten Sie die Komponenten wie im Diagramm gezeigt.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie "DIYables_IRcontroller", und finden Sie dann die DIYables_IRcontroller-Bibliothek von DIYables.
  • Klicken Sie auf die Schaltfläche Installieren, um die DIYables_IRcontroller-Bibliothek zu installieren.
ESP8266 NodeMCU DIYables_IRcontroller-Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren, wie im untenstehenden Bild gezeigt:
ESP8266 NodeMCU IRremote-Bibliothek
  • Klicken Sie auf die Schaltfläche Alle installieren, um die Abhängigkeit zu installieren
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP8266 hochzuladen
  • Drücken Sie nacheinander die Tasten der Fernbedienung
  • Überprüfen Sie das Ergebnis im seriellen Monitor
  • Wenn Sie die Tasten einer 17-Tasten IR-Fernbedienung nacheinander drücken, ergibt sich Folgendes:
COM6
Send
UP DOWN LEFT RIGHT OK # 0 * 9 8 7 6 5 4 3 2 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie haben jetzt die Möglichkeit, den Code anzupassen und verschiedene Geräte wie LEDs, Ventilatoren, Pumpen, Aktoren und mehr mithilfe von IR-Fernbedienungen zu steuern. Das bedeutet, dass Sie Änderungen am Code vornehmen können, damit diese Geräte auf Ihre über die Fernbedienung gesendeten Befehle reagieren.

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.

※ 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!