Web-IR-Fernbedienung mit Esp8266 (NodeMCU) - Gunook
Web-IR-Fernbedienung mit Esp8266 (NodeMCU) - Gunook
Anonim
Web-IR-Fernbedienung mit Esp8266 (NodeMCU)
Web-IR-Fernbedienung mit Esp8266 (NodeMCU)

Problem

Auf dem Wohnzimmertisch liegen drei Fernbedienungen. Um Ihre Lieblingssendung zu sehen, müssen Sie bei mindestens zwei von ihnen eine spezielle Abfolge von Tastendrücken genau befolgen. Und deine Mitbewohnerin, Mama, Freundin erinnert sich nie daran..

Lösung

Sie kaufen eine Logitech Harmony;-)

Aber wenn Sie dieses Geld nicht ausgeben möchten, können Sie für unter 10 $ etwas Ähnliches bauen. Durch den Anschluss einer Infrarot-LED an einen ESP8266 (s.th. wie ein Arduino, aber mit WiFi onboard) können wir leicht ein Gerät konstruieren, mit dem Wir können Geräte mit einer kleinen Webseite von jedem Computer oder Mobiltelefon in Ihrem WLAN steuern.

Was du brauchst

  • NodeMCU-Entwicklungsboard (sie versenden aus Asien für < 5 €)
  • IR-Sensor (OS-1838B oder TSOP38238)
  • Infrarot-LED
  • 100Ω Widerstand
  • NPN-Transistor (d. h. 2N2222)
  • kleines Stück Prototyp-Leiterplatte
  • vierpoliger Stecker, der auf die NodeMCU passt (z. B. Disketten-Netzteil)

Wenn Sie eine alte Fernbedienung haben, können Sie wahrscheinlich die IR-LED und den Transistor davon verwenden.

Schritt 1: Zusammenbau der Hardware

Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware
Zusammenbau der Hardware

Montieren Sie die Komponenten auf einem kleinen Stück auf einem kleinen Stück Prototyp-Leiterplatte und verbinden Sie die Komponenten wie in der Abbildung gezeigt.

Je nach LED kann der Schutzwiderstand entfallen. Wenn Sie feststellen, dass Sie sehr gut zielen müssen oder sehr nahe am Gerät sein müssen, können Sie es wahrscheinlich entfernen.

Ich habe alles an einen Stecker angeschlossen, den ich von einem defekten PC-Netzteil (dem für die Diskette) entfernt habe.

Schritt 2: Installieren der Anwendung auf der NodeMCU

Richten Sie Ihre Umgebung ein, um Programme für den esp8266 mit der Arduino IDE zu kompilieren: [https://github.com/espressif/arduino-esp32

Klonen oder laden Sie den Quellcode der Anwendung aus dem Github-Repository herunter

Installieren Sie in der Arduino IDE die Bibliothek IRremoteESP8266 (Menü: Sketch -> Manage Libraries). Kopieren Sie die Datei config.h.example und nennen Sie diese Kopie config.h. Sie müssen mindestens SSID und Passwort Ihres WLANs in der config.h angeben, um sich mit dem Webserver verbinden zu können. Der Arduino Sketch sollte nun kompiliert und hochgeladen werden können. Verbinden Sie die von Ihnen erstellte Breakout-Platine mit 3V, Ground, D5, D6.

Wenn alles funktioniert hat und Sie den mit der Arduino IDE verbundenen Chip ausführen, sollte die IP-Adresse des Servers im seriellen Monitor angezeigt werden.

Schritt 3: Anpassen der HTML-Seite zur Steuerung der NodeMCU

Der Ablauf in diesem Schritt wird auch im Video gezeigt.

Im Quellcodeverzeichnis gibt es auch eine 'ir.html'. Bei korrekter Konfiguration wird dies mit der NodeMCU "sprechen".

Der erste Schritt besteht also darin, der Datei mitzuteilen, unter welcher Adresse sie die NodeMCU finden kann. Öffnen Sie die Datei ir.html in einem Texteditor und suchen Sie nach einer Zeile, die so aussieht:

var-Host = '192.168.2.121';

Ändern Sie den Wert zwischen den Häkchen so, dass er mit der Adresse übereinstimmt, die der Webserver nach dem Start auf dem seriellen Monitor gedruckt hat.

AufnehmenDrücken Sie die Aufnahmetaste Richten Sie die Fernbedienung auf den Sensor und drücken Sie die gewünschte Taste auf der Fernbedienung. Danach sollte unter der Aufnahmetaste eine lange Liste von Zahlen erscheinen. Dies sind die Zeiten des Signals für die Taste, die Sie auf der Fernbedienung gedrückt haben.

Einrichten von Befehlen

Jetzt wollen wir eine Möglichkeit haben, ein Signal mit diesen Timings vom Chip selbst zu senden. Dazu müssen wir die soeben aufgezeichneten Timings zur Liste der bekannten Signale hinzufügen. Kopieren Sie die Werte (einschließlich der eckigen Klammern), die Ihnen der Aufnahmeprozess gegeben hat, und fügen Sie eine neue Zeile mit einem Namen und den Werten in der Datei ir.html nach der Zeile ein, die wie folgt aussieht:

var-Signale = {

"pgr1 btn": [1, 2, 3], Ersetzen Sie die 1, 2, 3 durch die aufgezeichneten Werte und vergessen Sie das Komma nach den umgebenden Klammern nicht. Um tatsächlich eine Schaltfläche hinzuzufügen, müssen wir auch einen Befehl hinzufügen. Ein Befehl kann aus mehreren Signalen bestehen, da wir möglicherweise mehrere Tasten auf der Fernbedienung "drücken" müssen, z. B. 1 und 2, um Kanal 12 auf dem Fernseher zu erreichen. Dies ermöglicht auch die Steuerung mehrerer Geräte mit einem Befehl. Suchen Sie nach der Zeile, die so aussieht

"Ton an/aus": ["Mute"], Kopieren Sie diese Zeile und ändern Sie den Text "Ton ein/aus" so, dass er mit dem übereinstimmt, was Sie auf der neuen Schaltfläche anzeigen möchten. Ändern Sie den Namen "mute" in den Namen des von Ihnen hinzugefügten Signals. Das Ergebnis könnte also sein:

"HBO": ["prg 1 btn"], Wenn Sie mehrere Signale ausführen möchten, fügen Sie sie wie folgt hinzu:

"HBO": ["prg 1 btn", "prg 2 btn"],

Schritt 4: Verwendung

Nachdem Sie Ihre gewünschten Signalsequenzen in die HTML-Datei eingefügt haben, können Sie diese auf jeden Computer oder jedes mobile Gerät kopieren, das über einen Browser verfügt und mit demselben WLAN wie die NodeMCU verbunden ist.

Empfohlen: