Innehållsförteckning:

Alexa Voice Control TV Remote ESP8266: 9 steg
Alexa Voice Control TV Remote ESP8266: 9 steg

Video: Alexa Voice Control TV Remote ESP8266: 9 steg

Video: Alexa Voice Control TV Remote ESP8266: 9 steg
Video: Smart Home with Google Assistant & Alexa using NodeMCU ESP8266 (Manual + Voice) | IoT Projects 2021 2024, November
Anonim
Alexa Voice Control TV Remote ESP8266
Alexa Voice Control TV Remote ESP8266

Förlorar någon i ditt hus fjärrkontrollen, går du in i ett tomt rum för att se att TV: n bråkar ut. Batterier börjar gå sönder och ingen kontroll från baksidan av rummet. Nu kan du styra din TV, DVR, allt med IR -kontroll som du kan fånga IR -signalen för. Jag gjorde det här systemet för att styra min SKY DVR med ett enkelt röstgränssnitt.

Nödvändig hårdvara:

  1. Amazon Echo eller Dot
  2. En wifi -router som kan gå vidare (min tjänsteleverantör gjorde det här för mig)
  3. En Arduino NANO konverterad till 3V3
  4. ESP8266 -01 eller liknande
  5. IR -sändarmodul eller krets
  6. IR -mottagarmodul om du vill fånga koder.

Nödvändig programvara och tjänster:

  1. Arduino IDE, jag använde 1.6.11
  2. Amazon Alexa -färdighetskonto (gratis)
  3. Amazon AWS -konto (gratis nivå men kräver kreditkort för att öppna konto) eller alternativ server.

Steg 1: Alexa Skills Setup

Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup

Alexas färdighetssats tar röstkommandot och filtrerar det med hjälp av en lista med 'värden'

Efter registrering:

I Amazon Developer -konsolen väljer du fliken Alexa> Alexa Skills Kit [Kom igång]

[Lägg till en ny skicklighet]

Färdighetstyp: Anpassad interaktionsmodell

Språk: välj rätt, när det här ställts in på engelska (USA) skulle det inte svara!

Namn: det här är inte viktigt nu eftersom vi inte publicerar.

Uppmaningsnamn: välj ett kort namn, det är ordet som används för att öppna appen.

[NÄSTA]

Intent Schema, klistra in koden

Anpassade kortplatser {Lägg till platstyp], ange EFFECT_ON_TV

i Slot -värden, klistra in koden

Exempel på yttranden, put, TVCommandIntent tv {TVAction}

[SPARA], på nästa kompetenssida måste vi lägga till en länk till koden som vi ska köra när "Avsikten" utlöses av antingen appstartordet "klickare" eller därefter av "tv {slot value}".

Vi återkommer till Alexa när vi har konfigurerat Lambda -serverns python -skript.

Steg 2: AWS Lambda Server Python Script

Registrera dig för den kostnadsfria nivån för AWS, jag var orolig för att detta kan kosta mig riktiga pengar, men efter att ha använt det ett tag och läst forum är användningsgränserna så höga för personlig och utvecklingsanvändning att det aldrig borde nå en laddningspunkt. Det finns ett alternativ att använda din egen HTTPS -server och kanske är detta något esp8266 kan göra, en annan instruerbar!

Detta är koden som körs när anropsnamnet uttalas (t.ex. "Alexa open clicker") och tar emot det magiska ordet från Alexa. När appen väl har startats behöver du bara säga "tv play, tv jump five" och Alexa skickar "play", "jump 5" till detta python -skript. Appen tar timeout om den inte har några svar efter ett tag.

I AWS Services, välj först din plats, längst upp till höger finns ett alternativ.

för USA välj N Virginia, för EU välj Irland.

välj Lambda från Compute -rubrik.

[Skapa en Lambda -funktion]

[Tom funktion]

Konfigurera trigger: klicka på den prickade rutan och välj Alexa Skills Kit

[NÄSTA]

Konfigurera funktion

Namnge vad du vill

Beskrivning, upp till dig

Runtine: Python 2.7

klistra in pythonkod,

i koden måste URL -HTTP -adressen ändras till din egen externa ip -adress senare

link = "https://185.255.255.255:777/text?data=" + favorit_färg

lägre på skärmen är en ROL, klicka på fliken och välj Välj en anpassad roll

Detta öppnar en ny skärm och klickar på Tillåt., Den återgår till skärmen Konfigurera funktion med Lamda grundläggande körning vald som Befintlig roll.

[NÄSTA] granskningen, tryck på [Skapa funktion] så ska den kompilera och ge dig ett ARN -nummer. KOPIERA den här koden så lägger vi in den i alexa skills kit.

Steg 3:

Steg 4: Ställ in Alexa Skills Kit Link till AWS Lambda

Ställ in Alexa Skills Kit Link till AWS Lambda
Ställ in Alexa Skills Kit Link till AWS Lambda

I Alexa skills kit, välj konfigurationssidan, rubriken Global Fields och välj AWS Lambda och din region och klistra in ARN -koden i rutan, [NÄSTA], i test, kontrollera att ENABLED är valt.

VI är klara här för nu, nu för lite hårdvara.

Steg 5: Arduino NANO 3V3 -konvertering

Arduino NANO 3V3 -konvertering
Arduino NANO 3V3 -konvertering
Arduino NANO 3V3 -konvertering
Arduino NANO 3V3 -konvertering

ESP8266 körs från 3v3 så antingen kör du den från en extern regulator eller konverterar en nano. Jag har använt en klon nano med ett CH340 usb -chip. Jag har två olika PCB -layouter jag känner till, men förhoppningsvis täcker detta de flesta layouter.

Vi måste byta ut 5V-regulatorn med en stiftkompatibel 3v3, 1117-3. dirigera sedan in 5V från usb -uttaget till regulatorn och anslut allt annat till dess utgång. lyckligtvis kan detta uppnås genom att ta bort ingångsdioden som ersätter regulatorn och lägga till en ledning från ingångssidan av dioden till Vin på nanokortet.

kontrollera att du kan programmera nano efter konverteringen.

Steg 6: NANO -kod

NANO -kod
NANO -kod
NANO -kod
NANO -kod

Detta använde koder för min SKY UK -fjärrkontroll, det kan vara modellspecifikt och det är värt att kontrollera dina koder fungerar i en separat skiss som inte är kopplad till esp8266.

Jag använde IRremote -biblioteket av shirriff version 2.0.1

Använd IRrecord -exempel för att fånga fjärrkommandon som kräver en IR -mottagarmodul eller kanske du hittar dina koder på webben? Jag går inte in på det här men det är här du kan välja vad du kontrollerar och hur.

Anslut en IR -sändare tillgänglig på ebay eller bygg en. Du bör använda en 850 nm IR -led eftersom dessa är de vanligaste i mottagare. IR -biblioteket använde D3 som sin TX -pin

Alexasordet överförs till nano, så härifrån är det nano med röststyrning.

Steg 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Det finns många ESP8266-moduler, jag använde en jag var tvungen att köra under ett mikroskop, ESP8266-01 har en 2x4-header och alla stiften du behöver och den är billig. Massor av exempel på webben,. Min tripp, GPIO_0 måste anslutas till gnd under uppstart (kan sedan flyttas) när programmering, det är en konfigurationsstift, dras högt internt. Låt GPIO_0 flyta och slå på strömmen igen när den är programmerad. CHPD -anslutning till V+ permanent.

Styrelsechefen i arduino 1.6.11 har inte esp8622 -länken, i Arduino IDEfile> inställningar> ytterligare Board Manager -URL: er, lägg till:

arduino.esp8266.com/stable/package_esp8266c…

Gå sedan till styrelsechefen och hitta paketet esp8266. detta borde nu ge dig en stor lista över esp8266 -kort, välj Verktyg> Kort> ESP8266 Generic Module. Med hjälp av en usb to uart -modul kan du nu programmera esp -delen med esp8266_server_text. Ström med 3V3, anslut TX-RX, RX-TX och Gnd.

Du måste ange ditt nätverks -SSID och lösenord i skriptet och porten som du kommer att ställa in för vidarebefordran av port, t.ex. 777.

Du kan köra koden genom att slå på espressen igen medan den är ansluten till usb till uart-omvandlaren och det arduino seriella fönstret (9600 baud) ska visa den lokala ip-adressen för esp-modulen. ange detta i koden och programmera om.

Steg 8: Nätverksinställning

Nätverksinställningar
Nätverksinställningar
Nätverksinställningar
Nätverksinställningar

Så för att Lambda URL -samtalet ska kunna ansluta till ESP HTTP -servern måste vi ställa in din router på port vidarebefordran. Jag fick min externa ip -adress från https://www.whatsmyip.org/, jag är på en mikrovågslänk så min leverantör har routern och jag var tvungen att begära vidarebefordran av port från dem. Jag var tvungen att ange IP -adressen för ESP8266 i mitt nätverk och porten jag valde, t.ex. 777. Den externa IP -adressen måste anges i lambda python -skriptet och din lokala esp -adress visas när du kör esp8266 -koden igenom länken usb till uart.

ESP -modulen på usb till uart -anslutningen bör visa det inkommande ordet från lambda på en terminal.

Anslut ESP till nano som visas 3v3, gnd och TX till nano D2 soft serial. om du har nano på usb till en seriell kommando på epc: n ska den visa vad den får från esp.

Om ESP inte är ansluten till nätverket eller inte svarar på URL -samtalet från lambda, kommer lambda att ta timeout och Alexa rapporterar ett misslyckat skicklighetssvar

Steg 9: Alexa Open Clicker TV -paus

Alexa Open Clicker TV -paus
Alexa Open Clicker TV -paus

Jag lägger modulen bredvid mottagaren men med högre effekt IR -utgång kan den vara var som helst i ett rum. Jag använder en känd USB -nätadapter för att mata ström via usb.

Luta dig tillbaka och säg "Alexa open Clicker"

TV Guide

tv gå ner

tv välj

tv -spel

tv hoppa fem

för att hoppa fram ett bestämt antal minuter går makron till 30x vänta på en begärd tid och sedan spela.

Storbritanniens annonser är cirka fem minuter.

Säg Alexa sluta för att avsluta appen.

Njut av.

Rekommenderad: