ESP32 - Infrarot-Fernbedienung

Du bist wahrscheinlich schon auf die Infrarot-Fernbedienung, auch IR-Fernbedienung genannt, gestoßen, wenn du zu Hause Geräte wie Fernseher und Klimaanlagen benutzt... In diesem Leitfaden lernen wir, wie man die Infrarot-Fernbedienung und einen Infrarotempfänger verwendet, um den ESP32 zu steuern. Im Detail werden wir Folgendes lernen:

Infrarot-Steuerung - Infrarot-Empfänger - ESP32

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
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 Komponenten: eine IR-Fernbedienung und einen IR-Empfänger.

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

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

Infrarot-Fernbedienung

Die Infrarot-Fernbedienung ist ein tragbares Gerät, das Infrarotsignale aussendet. Sie ist mit einem Tastenfeld ausgestattet, das mehrere Tasten umfasst:

  • Jede Taste der Fernbedienung ist einer bestimmten Funktion oder einem Befehl zugeordnet.
  • Wenn eine Taste gedrückt wird, sendet die Fernbedienung ein Infrarotsignal aus, das einen einzigartigen Code oder ein Muster enthält, das mit der gedrückten Taste verknüpft ist.
  • Diese Infrarotsignale liegen im Infrarotspektrum und sind für das menschliche Auge unsichtbar.
Infrarot-Controller
image source: diyables.io

Infrarot-Empfänger

Das IR-Empfängermodul ist ein Sensor, der die von der Fernbedienung ausgesendeten 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-Sensormodul
image source: diyables.io
Infrarot-Empfänger-Sensoradapter
image source: diyables.io

Infrarot-Empfänger-Pinbelegung

Das IR-Empfänger-Modul oder der Sensor hat drei Pins:

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

Wie es funktioniert

Wenn der Benutzer eine Taste auf der IR-Fernbedienung drückt.

  • Die IR-Fernbedienung kodiert den der Taste entsprechenden Befehl in das Infrarotsignal mittels eines bestimmten Protokolls
  • Die IR-Fernbedienung sendet das kodierte Infrarotsignal aus
  • Der Infrarotempfänger empfängt das kodierte Infrarotsignal
  • Der Infrarotempfänger decodierte das kodierte Infrarotsignal in den Befehl
  • Der ESP32 liest den Befehl vom Infrarotempfänger aus
  • Der ESP32 ordnet den Befehl der gedrückten Taste zu

Wenn eine Taste auf der IR-Fernbedienung gedrückt wird, tritt die folgende Abfolge von Ereignissen auf:

  • Die IR-Fernbedienung kodiert den Befehl der Taste in ein Infrarotsignal unter Verwendung eines bestimmten Protokolls.
  • Das codierte Infrarotsignal wird von der IR-Fernbedienung ausgesendet.
  • Der IR-Empfänger erfasst und empfängt das codierte Infrarotsignal.
  • Der IR-Empfänger decodiert das Infrarotsignal und wandelt es in den ursprünglichen Befehl zurück.
  • Der ESP32 liest den Befehl vom IR-Empfänger aus.
  • Der ESP32 ordnet dann den empfangenen Befehl der entsprechenden Taste zu, die auf der IR-Fernbedienung gedrückt wurde.

Im Wesentlichen skizzieren diese Schritte, wie der Tastendruck der IR-Fernbedienung in einen erkennbaren Befehl verwandelt wird, der vom ESP32 verstanden und verarbeitet werden kann.

Antwort neu generieren

Es mag kompliziert erscheinen, aber keine Sorge. Dank der benutzerfreundlichen DIYables_IRcontroller-Bibliothek wird es unglaublich einfach, dies zu erreichen.

Verdrahtungsdiagramm

Schaltplan zwischen ESP32 und IR-Empfängermodul

ESP32 IR-Fernbedienung Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Verdrahtungsdiagramm zwischen ESP32 und IR-Empfängersensor

ESP32 IR-Fernbedienungs-Verdrahtungsdiagramm

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

Verdrahtungsdiagramm zwischen ESP32 und IR-Empfängersensor und Adapter

Bevor Sie den IR-Empfängersensor mit dem ESP32 verbinden, haben Sie die Option, ihn an den Adapter anzuschließen. Dies ermöglicht eine einfachere Integration und Einrichtung des IR-Empfängersensors mit dem ESP32.

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

Wie man eine IR-Fernbedienung programmiert

  • Binde die Bibliothek ein:
#include <DIYables_IRcontroller.h> // Bibliothek für IR-Empfänger
  • Deklariere ein Objekt DIYables_IRcontroller_17 oder DIYables_IRcontroller_21, das mit 17-Tasten- bzw. 21-Tasten-Infrarot-Fernbedienungen korrespondiert:
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200ms // ODER DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200ms
  • Initialisieren Sie den Infrarot-Controller.
irController.begin();
  • In der Schleife prüfen, 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 Aktionen basierend auf jeder Taste ausführen.

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 19 // The ESP32 pin GPIO19 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 ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 19 // The ESP32 pin GPIO19 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

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich Anleitung zur Einrichtung der Umgebung für ESP32 in der Arduino IDE an.
  • 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 Installieren-Schaltfläche, um die DIYables_IRcontroller-Bibliothek zu installieren.
ESP32 DIYables_IRcontroller Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren, wie im folgenden Bild:
ESP32 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 Schaltfläche Hochladen in der Arduino IDE, um den Code auf den ESP32 hochzuladen
  • Drücken Sie nacheinander die Tasten der Fernbedienung
  • Sehen Sie das Ergebnis im seriellen Monitor
  • Wenn Sie nacheinander die Tasten einer 21-Tasten-IR-Fernbedienung drücken, ergibt sich Folgendes:
COM6
Send
9 8 7 6 5 4 3 2 1 0 200+ 100+ EQ + – || >> << CH+ CH CH-
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, Aktuatoren 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!