ESP32 Tutorial 29/55 - Lesen von IR-Fernbedienungstastendrücken mit ESP32 | SunFounders ESP32 IoT-Lernkit
In diesem Tutorial werden wir lernen, wie man Infrarot (IR) Signale mit dem ESP32 Modul und einem kompatiblen IR Empfänger erkennen kann. Wenn wir einen Knopf auf der Fernbedienung drücken, erkennt der ESP32 das Signal und führt bestimmte Aktionen aus, wie zum Beispiel einen Summer bei bestimmten Tastenanschlägen ertönen zu lassen. Dieses Projekt ist ideal für alle, die Fernbedienungsfunktionen in ihre ESP32-Anwendungen integrieren möchten (im Video bei 02:15).
Der ESP32 ist ein leistungsstarker Mikrocontroller, der Wi-Fi- und Bluetooth-Funktionen kombiniert, was ihn für eine Vielzahl von IoT-Anwendungen geeignet macht. In diesem Projekt verwenden wir einen IR-Empfänger, um Signale von einer Fernbedienung zu interpretieren. Die Tasteneingaben werden im Code verarbeitet, wodurch wir basierend auf den empfangenen Befehlen Maßnahmen ergreifen können.
Hardware erklärt
Die Hauptkomponenten für dieses Projekt umfassen den ESP32-Mikrocontroller, ein IR-Empfängermodul und einen Summer. Der ESP32 fungiert als das Gehirn des Betriebs und verarbeitet die Signale, die vom IR-Empfänger empfangen werden. Der IR-Empfänger erkennt die Infrarotsignale der Fernbedienung und wandelt sie in elektrische Signale um, die der ESP32 verstehen kann.
Der IR-Empfänger hat typischerweise drei Anschlüsse: VCC (Stromversorgung), GND (Masse) und OUT (Signal). Der VCC-Anschluss wird mit einer Stromquelle (3,3 V oder 5 V) verbunden, während der GND-Anschluss mit der Masse verbunden ist. Der OUT-Anschluss sendet das decodierte Signal an den ESP32, das dann verwendet werden kann, um verschiedene Aktionen auszulösen, wie z. B. einen Summer zu aktivieren, wenn eine bestimmte Taste gedrückt wird.
Technische Datenblätter
| Hersteller | Scharf |
|---|---|
| Teilenummer | GP1UXC41 |
| Logik/IO-Spannung | 3,3 - 5,0 V |
| Versorgungsspannung | 3,3 V (typ.) |
| Ausgangsstrom (pro Kanal) | 20 mA (max) |
| Spitzenstrom (pro Kanal) | 50 mA (max) |
| PWM-Frequenzrichtlinien | 38 kHz |
| Eingangslogikschwellen | 0,3 Vcc (hoch), 0,2 Vcc (niedrig) |
| Spannungsabfall / RDS(on)/ Sättigung | 0,5 V (max) |
| Thermische Grenzen | 85 °C (max) |
| Paket | TO-92 |
| Hinweise / Varianten | Verfügbar in mehreren Konfigurationen |
- Stellen Sie eine korrekte Stromversorgung sicher, um Schäden zu vermeiden.
- Verwenden Sie kurze Kabel, um Signalstörungen zu minimieren.
- Überprüfen Sie die Ausrichtung des IR-Empfängers vor dem Anschluss.
- Bestätigen Sie, dass die Batterie der Fernbedienung funktioniert.
- Verwenden Sie bei Bedarf Pull-up-Widerstände für die Stabilität.
Verdrahtungsanweisungen

Um den IR-Empfänger mit dem ESP32 zu verbinden, identifizieren Sie zunächst die drei Pins des IR-Empfängers: VCC, GND und OUT. Schließen Sie den VCC-Pin an eine 3,3V-Stromquelle am ESP32 an. Verbinden Sie dann den GND-Pin mit einem der GND-Pins am ESP32. Schließen Sie schließlich den OUT-Pin an den GPIO-Pin 14 am ESP32 an, der im Code für den IR-Empfänger vorgesehen ist.
Sobald die Verbindungen hergestellt sind, stellen Sie sicher, dass die Verkabelung sicher ist. Wenn Sie ein Steckbrett verwenden, stecken Sie den IR-Empfänger so ein, dass die flache Seite zu Ihnen zeigt und der Höcker auf der gegenüberliegenden Seite ist. Diese Ausrichtung hilft Ihnen, die Pins korrekt zu identifizieren. Stellen Sie sicher, dass Sie die Verbindungen überprüfen, bevor Sie den ESP32 einschalten.
Code-Beispiele & Anleitung
installieren dieIRremoteESP8266Bibliothek von David Conran, Sebastien.
Im Code definieren wir den IR-Empfänger-Pin mit der KonstanteIR_RECEIVE_PIN, die auf 14 festgelegt ist. Wir erstellen auch eine Instanz vonIRrecvdie IR-Signale zu verarbeiten.
const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;Dieses Setup ermöglicht es uns, Signale von der IR-Fernbedienung zu empfangen. In dersetup()Funktion, wir initialisieren die serielle Kommunikation und aktivieren den IR-Empfänger.
void setup() {
Serial.begin(115200);
irrecv.enableIRIn();
}Innerhalb derloop()Funktion, wir überprüfen, ob ein IR-Signal empfangen wurde. Wenn ja, decodieren wir den Schlüsselwert und geben ihn im seriellen Monitor aus.
if (irrecv.decode(&results)) {
String key = decodeKeyValue(results.value);
Serial.println(key);
irrecv.resume();
}Dieser Codeausschnitt zeigt, wie wir das empfangene Signal dekodieren und den entsprechenden Schlüsselwert im seriellen Monitor ausgeben. DerdecodeKeyValue()Die Funktion ordnet das empfangene Signal bestimmten Tastenwerten zu, wie "0", "1", "EQ" und anderen. Den vollständigen Code finden Sie im Text unter dem Artikel.
Demonstration / Was zu erwarten ist
Sobald die Verdrahtung abgeschlossen und der Code hochgeladen ist, sollte das Drücken einer Taste auf der Fernbedienung den entsprechenden Schlüsselwert im seriellen Monitor anzeigen. Zum Beispiel wird das Drücken der "2"-Taste "2" auf dem Monitor ausgeben. Wenn die Taste nicht erkannt wird, wird "ERROR" zurückgegeben. Der Summer wird ertönen, wenn die vorgesehene Taste (z.B. "EQ") gedrückt wird und sofortiges Feedback geben.
Seien Sie vorsichtig bei häufigen Fallstricken, wie umgekehrter Polarität in Ihren Verbindungen oder der Verwendung falscher Spannungspegel. Stellen Sie sicher, dass die Fernbedienung ordnungsgemäß funktioniert und eine funktionsfähige Batterie hat, bevor Sie Ihr Setup testen (im Video bei 15:30).
Video-Zeitstempel
- 00:00 Start
- 2:05 Einführung in den IR-Empfänger
- 4:24 Verdrahtung erklärt
- 6:08 Arduino-Code für IR-Empfänger erklärt
- 10:06 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
- 11:48 Projektvorführung
- 13:09 Aktiver Summer direkt mit ESP32 verbunden
- 14:40 Aktionen ausführen, wenn eine Taste gedrückt wird
- 15:30 Arduino-Code zum Handeln
- 16:54 Tastendruck- und Summer-Demonstration
Common Course Links
Common Course Files
Dinge, die Sie vielleicht brauchen
-
Amazon
-
eBay
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 23/55 - SunFounder Dokumentsseite für IR-Empfängerdocs.sunfounder.com
Dateien📁
Datenblatt (pdf)
-
XL6012: Kondensator entfernt.
robojax-IR-remote_TL1838-Infrared-Receiver-datasheet.pdf0.46 MB