Inhaltsverzeichnis:

Alexa Sprachsteuerung TV-Fernbedienung ESP8266 - Gunook
Alexa Sprachsteuerung TV-Fernbedienung ESP8266 - Gunook

Video: Alexa Sprachsteuerung TV-Fernbedienung ESP8266 - Gunook

Video: Alexa Sprachsteuerung TV-Fernbedienung ESP8266 - Gunook
Video: Wie man einen ESP/NodeMCU per Sprache mit Amazon Alexa steuert (FauxmoESP) 2024, November
Anonim
Alexa Sprachsteuerung TV-Fernbedienung ESP8266
Alexa Sprachsteuerung TV-Fernbedienung ESP8266

Verliert jemand in Ihrem Haus die Fernbedienung, gehen Sie in einen leeren Raum und sehen, dass der Fernseher dröhnt. Batterien beginnen zu versagen und keine Kontrolle von der Rückseite des Raumes. Jetzt können Sie Ihren Fernseher, DVR und alles mit IR-Steuerung steuern, für das Sie das IR-Signal erfassen können. Ich habe dieses System entwickelt, um meinen SKY DVR mit einer einfachen Sprachschnittstelle zu steuern.

Erforderliche Hardware:

  1. Amazon Echo oder Dot
  2. Ein WLAN-Router, der eine Portweiterleitung durchführen kann (mein Dienstanbieter hat dies für mich getan)
  3. Ein Arduino NANO umgebaut auf 3V3
  4. ESP8266-01 oder ähnlich
  5. IR-Sendermodul oder -Schaltung
  6. IR-Empfängermodul, wenn Sie Codes erfassen möchten.

Erforderliche Software und Dienste:

  1. Arduino IDE, ich habe 1.6.11 verwendet
  2. Amazon Alexa Skills-Konto (kostenlos)
  3. Amazon AWS-Konto (Kostenloses Kontingent, erfordert jedoch eine Kreditkarte zur Kontoeröffnung) oder alternativer Server.

Schritt 1: Alexa Skills einrichten

Einrichtung von Alexa-Skills
Einrichtung von Alexa-Skills
Einrichtung von Alexa-Skills
Einrichtung von Alexa-Skills
Einrichtung von Alexa-Skills
Einrichtung von Alexa-Skills

Das Alexas Skills Kit nimmt den Sprachbefehl und filtert ihn anhand einer Liste von 'Werten'

Einmal registriert:

Wählen Sie in der Amazon Developer Console die Registerkarte Alexa > Alexa Skills Kit [Erste Schritte]

[Neue Fähigkeit hinzufügen]

Fertigkeitstyp: Benutzerdefiniertes Interaktionsmodell

Sprache: Wählen Sie die richtige Sprache aus, wenn diese auf Englisch (US) eingestellt wäre, würde sie nicht reagieren!

Name: Dies ist jetzt nicht wichtig, da wir nicht veröffentlichen.

Aufrufname:, wählen Sie einen kurzen Namen, das ist das Wort, das zum Öffnen der App verwendet wird.

[NÄCHSTE]

Intent-Schema, Code einfügen

Benutzerdefinierte Slot-Typen {Add Slot-Typ], geben Sie EFFECT_ON_TV ein

in Slot-Werte, Code einfügen

Beispieläußerungen, put, TVCommandIntent tv {TVAction}

[SAVE], auf der nächsten Skills-Seite müssen wir einen Link zu dem Code hinzufügen, den wir ausführen werden, wenn die "Intent" entweder durch das App-Startwort "clicker" oder danach durch "tv {slot value}" ausgelöst wird..

Wir werden zu Alexa zurückkehren, nachdem wir das Python-Skript des Lambda-Servers eingerichtet haben.

Schritt 2: AWS Lambda Server Python-Skript

Melden Sie sich für das kostenlose Kontingent von AWS an. Ich hatte Bedenken, dass dies mich echtes Geld kosten könnte, aber nachdem ich es eine Weile benutzt und Foren gelesen habe, sind die Nutzungslimits für den persönlichen Gebrauch und die Entwicklung so hoch, dass es nie eine Ladestation erreichen sollte. Es gibt eine Alternative, um Ihren eigenen HTTPS-Server zu verwenden, und vielleicht ist dies etwas, das der ESP8266 tun könnte, ein weiteres anweisbares!

Dies ist der Code, der ausgeführt wird, wenn der Aufrufname ausgesprochen wird (zB „Alexa open clicker“) und das Zauberwort von Alexa erhält. Sobald die App gestartet ist, müssen Sie nur "tv play, tv jump five" sagen und Alexa sendet "play", "jump 5" an dieses Python-Skript. Die App läuft ab, wenn nach einiger Zeit keine Antworten mehr eingehen.

Wählen Sie in AWS Services zuerst Ihren Standort aus, oben rechts gibt es eine Option.

für die USA wählen Sie N Virginia, für die EU wählen Sie Irland.

Wählen Sie Lambda aus der Überschrift Compute aus.

[Erstellen einer Lambda-Funktion]

[Leerfunktion]

Trigger konfigurieren: Klicken Sie auf das gepunktete Feld und wählen Sie Alexa Skills Kit

[NÄCHSTE]

Funktion konfigurieren

Nenne was du willst

Beschreibung, bis zu Ihnen

Runtine: Python 2.7

Python-Code einfügen,

Im Code muss die URL-HTTP-Adresse später in Ihre eigene externe IP-Adresse geändert werden

link="https://185.255.255.255:777/text?data=" + favorite_color

unten auf dem Bildschirm ist eine ROLLE, klicken Sie auf die Registerkarte und wählen Sie Benutzerdefinierte Rolle auswählen

Dadurch wird ein neuer Bildschirm geöffnet und auf Zulassen geklickt. Der Bildschirm kehrt zum Bildschirm Funktion konfigurieren zurück, wobei die Lamda-Basisausführung als Vorhandene Rolle ausgewählt ist.

[WEITER] die Überprüfung, klicken Sie auf [Funktion erstellen] und es sollte kompilieren und Ihnen eine ARN-Nummer geben. KOPIEREN Sie diesen Code und wir werden ihn in das Alexa Skills Kit aufnehmen.

Schritt 3:

Schritt 4: Festlegen des Alexa Skills Kit-Links zu AWS Lambda

Festlegen des Alexa Skills Kit-Links zu AWS Lambda
Festlegen des Alexa Skills Kit-Links zu AWS Lambda

Wählen Sie im Alexa Skills Kit die Konfigurationsseite mit der Überschrift Globale Felder und wählen Sie AWS Lambda und Ihre Region aus und fügen Sie den ARN-Code in das Feld [NEXT] ein. Aktivieren Sie im Test die Option AKTIVIERT.

WIR sind hier vorerst fertig, jetzt für etwas Hardware.

Schritt 5: Arduino NANO 3V3-Konvertierung

Arduino NANO 3V3-Konvertierung
Arduino NANO 3V3-Konvertierung
Arduino NANO 3V3-Konvertierung
Arduino NANO 3V3-Konvertierung

Der ESP8266 läuft von 3v3, so dass Sie ihn entweder über einen externen Regler betreiben oder einen Nano konvertieren. Ich habe einen Klon-Nano mit einem CH340-USB-Chip verwendet. Ich habe zwei verschiedene PCB-Layouts, die ich kenne, aber hoffentlich deckt dies die meisten Layouts ab.

Wir müssen den 5V-Regler durch einen pinkompatiblen 3v3-Regler ersetzen, 1117-3. Leiten Sie dann die 5V von der USB-Buchse nur zum Regler und schließen Sie alles andere an seinen Ausgang an. glücklicherweise kann dies erreicht werden, indem die Eingangsdiode entfernt wird, die den Regler ersetzt und einen Draht von der Eingangsseite der Diode zum Vin auf der Nanoplatine hinzufügt.

Überprüfen Sie, ob Sie den Nano nach der Konvertierung programmieren können.

Schritt 6: NANO-Code

NANO-Code
NANO-Code
NANO-Code
NANO-Code

Dies verwendete Codes für meine SKY UK-Fernbedienung, es könnte modellspezifisch sein und es lohnt sich zu überprüfen, ob Ihre Codes in einer separaten Skizze funktionieren, die nicht mit dem esp8266 verknüpft ist.

Ich habe die IRremote-Bibliothek von shirriff Version 2.0.1 verwendet

Verwenden Sie das IRrecord-Beispiel, um Fernbefehle zu erfassen, für die ein IR-Empfängermodul erforderlich ist, oder finden Sie Ihre Codes im Internet? Ich gehe hier nicht darauf ein, aber hier können Sie wählen, was Sie kontrollieren und wie.

Schließen Sie einen bei ebay erhältlichen IR-Sender an oder bauen Sie einen. Sie sollten eine 850-nm-IR-LED verwenden, da diese in Empfängern am häufigsten verwendet werden. Die IR-Bibliothek verwendet D3 als TX-Pin

Das Alexa-Wort wird an den Nano weitergegeben, also von hier aus sein Nano mit Sprachsteuerung.

Schritt 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Es gibt viele ESP8266-Module, ich habe eines verwendet, das ich unter einem Mikroskop verdrahten musste. Das ESP8266-01 hat einen 2x4-Header und alle Pins, die Sie brauchen, und es ist billig. Viele Beispiele im Web,. Meine Trip-Ups, GPIO_0 muss beim Einschalten mit Masse verbunden sein (kann dann gefloatet werden) beim Programmieren, es ist ein Config-Pin, der intern hochgezogen wird. Nach der Programmierung GPIO_0 schweben lassen und wieder einschalten. CHPD verbindet sich permanent mit V+.

Der Board-Manager in arduino 1.6.11 hat nicht den Link esp8622, Fügen Sie in Arduino IDEfile> Preferences> zusätzliche Board Manager URLs hinzu:

arduino.esp8266.com/stable/package_esp8266c…

dann gehe zum Board Manager und finde das esp8266-Paket. Dies sollte Ihnen nun eine große Liste von ESP8266-Boards anzeigen, wählen Sie Tools>Board>ESP8266 Generic Module. Mit einem USB-zu-Uart-Modul können Sie jetzt den ESP-Teil mit esp8266_server_text programmieren. Stromversorgung mit 3V3, TX-RX, RX-TX und Gnd verbinden.

Sie müssen Ihre Netzwerk-SSID und Ihr Passwort in das Skript eingeben und den Port, den Sie für die Portweiterleitung festlegen, z. B. 777.

Sie können den Code ausführen, indem Sie den ESP erneut einschalten, während er mit dem USB-zu-Uart-Konverter verbunden ist, und das serielle Arduino-Fenster (9600 Baud) sollte die lokale IP-Adresse des ESP-Moduls anzeigen. Geben Sie dies in den Code ein und programmieren Sie es neu.

Schritt 8: Netzwerkeinrichtung

Netzwerkeinrichtung
Netzwerkeinrichtung
Netzwerkeinrichtung
Netzwerkeinrichtung

Damit der Lambda-URL-Aufruf eine Verbindung zum ESP-HTTP-Server herstellen kann, müssen wir Ihren Router auf Portweiterleitung einstellen. Ich habe meine externe IP-Adresse von https://www.whatsmyip.org/ erhalten, ich bin auf einer Mikrowellenverbindung, also hat mein Provider den Router und ich musste eine Portweiterleitung von ihnen anfordern. Ich musste die IP-Adresse des ESP8266 in meinem Netzwerk und den von mir gewählten Port angeben, zB 777. Die externe IP-Adresse muss in das Lambda-Python-Skript eingegeben werden und Ihre lokale ESP-Adresse wird angezeigt, wenn Sie den ESP8266-Code ausführen der USB-zu-Uart-Link.

Das ESP-Modul an der USB-zu-Uart-Verbindung sollte auf einem Terminal das eingehende Wort von Lambda anzeigen.

Verbinden Sie das ESP mit dem Nano wie gezeigt 3v3, gnd und TX mit Nano D2 Soft Serial. Wenn Sie das Nano auf USB zu einer seriellen Kommunikationsanzeige auf dem EPC haben, sollte es anzeigen, was es vom ESP empfängt.

Wenn der ESP nicht mit dem Netzwerk verbunden ist oder nicht auf den URL-Aufruf von lambda antwortet, wird das Lambda-Zeitlimit überschritten und Alexa meldet eine fehlgeschlagene Skill-Antwort

Schritt 9: Alexa Open Clicker TV Pause

Alexa Open Clicker TV-Pause
Alexa Open Clicker TV-Pause

Ich habe das Modul neben den Empfänger gestellt, aber mit einer höheren IR-Leistung könnte es überall in einem Raum sein. Ich verwende ein bekanntes USB-Netzteil, um Strom über den USB zu speisen.

Lehnen Sie sich zurück und sagen Sie „Alexa öffne Clicker“

Fernsehprogramm

Fernseher geht aus

Fernseher auswählen

Fernsehspiel

TV Sprung fünf

Um eine bestimmte Anzahl von Minuten vorwärts zu springen, werden die Makros auf 30x gehen, warten Sie eine angeforderte Zeit und spielen Sie dann.

UK-Werbung dauert etwa fünf Minuten.

Um die App zu beenden, sagen Sie Alexa Beenden.

Genießen.

Empfohlen: