Innholdsfortegnelse:

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

Video: Alexa Voice Control TV Remote ESP8266: 9 trinn

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

Mister noen i huset fjernkontrollen, går du inn i et tomt rom for å finne at TV -en blar ut. Batterier begynner å svikte og ingen kontroll fra baksiden av rommet. Nå kan du kontrollere TV -en, DVR, alt med IR -kontroll du kan fange IR -signalet for. Jeg laget dette systemet for å kontrollere SKY DVR med et enkelt stemmegrensesnitt.

Nødvendig maskinvare:

  1. Amazon Echo eller Dot
  2. En wifi -ruter som kan portes videre (tjenesteleverandøren min gjorde dette for meg)
  3. En Arduino NANO konvertert til 3V3
  4. ESP8266 -01 eller lignende
  5. IR -sendermodul eller krets
  6. IR -mottakermodul hvis du vil fange koder.

Nødvendig programvare og tjenester:

  1. Arduino IDE, jeg brukte 1.6.11
  2. Amazon Alexa ferdighetskonto (gratis)
  3. Amazon AWS -konto (gratis nivå, men krever kredittkort for å åpne konto) eller alternativ server.

Trinn 1: Oppsett av Alexa ferdigheter

Oppsett av Alexa ferdigheter
Oppsett av Alexa ferdigheter
Oppsett av Alexa ferdigheter
Oppsett av Alexa ferdigheter
Oppsett av Alexa ferdigheter
Oppsett av Alexa ferdigheter

Alexas ferdighetssett tar stemmekommandoen og filtrerer den ved hjelp av en liste over 'verdier'

Etter registrering:

I Amazon Developer -konsollen velger du kategorien Alexa> Alexa Skills Kit [Kom i gang]

[Legg til en ny ferdighet]

Ferdighetstype: Custom Interaction Model

Språk: velg den riktige. Når den var satt til engelsk (USA), ville den ikke svare!

Navn: dette er ikke viktig nå, siden vi ikke publiserer.

Tilkallingsnavn: Velg et kort navn, det er ordet som ble brukt til å åpne appen.

[NESTE]

Intensjonsskjema, lim inn koden

Egendefinerte spilletyper {Legg til spaltype], angi EFFECT_ON_TV

i Slot -verdier, lim inn koden

Eksempel på ytringer, put, TVCommandIntent tv {TVAction}

[LAGRE], på den neste ferdighetssiden må vi legge til en lenke til koden vi skal kjøre når "Intent" utløses av enten appens startord "klikk" eller etter det av "tv {slot value}".

Vi kommer tilbake til Alexa etter at vi har konfigurert Lambda -serverens python -skript.

Trinn 2: AWS Lambda Server Python Script

Registrer deg for gratis nivå av AWS, jeg var bekymret for at dette kan koste meg ekte penger, men etter å ha brukt det en stund og lest forumer er bruksgrensene så høye for personlig og utviklingsmessig bruk at det aldri bør nå et ladepunkt. Det er et alternativ å bruke din egen HTTPS -server, og kanskje er dette noe esp8266 kan gjøre, en annen instruerbar!

Dette er koden som kjøres når påkallingsnavnet blir uttalt (f.eks. "Alexa open clicker") og mottar det magiske ordet fra Alexa. Når appen er startet trenger du bare å si "tv play, tv jump five" og Alexa sender "play", "jump 5" til dette python -skriptet. Appen blir tidsavbrutt hvis den ikke har svar etter en stund.

I AWS Services, velg først posisjonen din, øverst til høyre er det et alternativ.

for USA velg N Virginia, for EU velg Irland.

velg Lambda fra Compute -overskrift.

[Lag en Lambda -funksjon]

[Tom funksjon]

Konfigurer trigger: klikk på den prikkede boksen og velg Alexa Skills Kit

[NESTE]

Konfigurer funksjon

Nevn hva du vil

Beskrivelse, opp til deg

Runtine: Python 2.7

lim inn python -kode,

i koden må URL -HTTP -adressen endres til din egen eksterne ip -adresse senere

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

lavere på skjermen er en ROLLE, klikk på fanen og velg Velg en egendefinert rolle

Dette åpner et nytt skjermbilde og klikker tillat., Det går tilbake til skjermbildet Konfigurer funksjon med Lamda grunnleggende kjøring valgt som Eksisterende rolle.

[NESTE] anmeldelsen, trykk på [Create Function], og den skal kompilere og gi deg et ARN -nummer. KOPIER denne koden, så legger vi den inn i alexa skills kit.

Trinn 3:

Trinn 4: Sett Alexa Skills Kit Link til AWS Lambda

Sett lenken til Alexa Skills Kit til AWS Lambda
Sett lenken til Alexa Skills Kit til AWS Lambda

I Alexa ferdighetssett, velg konfigurasjonssiden, med overskriften Globale felt og velg AWS Lambda og din region, og lim inn ARN -koden i boksen, [NESTE], i test, sjekk ENABLED er valgt.

VI er ferdige her for nå, nå for litt maskinvare.

Trinn 5: Arduino NANO 3V3 -konvertering

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

ESP8266 går fra 3v3, så enten kjører du den fra en ekstern regulator eller konverterer en nano. Jeg har brukt en klon nano med en CH340 usb -brikke. Jeg har to forskjellige PCB -oppsett jeg vet om, men forhåpentligvis vil dette dekke de fleste oppsettene.

Vi må bytte ut 5V-regulatoren med en pin-kompatibel 3v3 one, 1117-3. deretter rute 5V inn fra usb -kontakten bare til regulatoren og koble alt annet til utgangen. heldigvis kan dette oppnås ved å fjerne inngangsdioden, erstatte regulatoren og legge en ledning fra inngangssiden av dioden til Vin på nanokortet.

sjekk at du kan programmere nano etter konverteringen.

Trinn 6: NANO -kode

NANO -kode
NANO -kode
NANO -kode
NANO -kode

Denne brukte koder for min SKY UK fjernkontroll, den kan være modellspesifikk, og det er verdt å sjekke kodene dine i en egen skisse som ikke er knyttet til esp8266.

Jeg brukte IRremote -biblioteket av shirriff versjon 2.0.1

Bruk eksempelet IRrecord for å fange eksterne kommandoer som krever en IR -mottakermodul, eller kan du finne kodene dine på nettet? Jeg skal ikke gå inn på det her, men det er her du kan velge hva du kontrollerer og hvordan.

Koble til en IR -sender som er tilgjengelig på ebay, eller bygg en. Du bør bruke en 850 nm IR -led, ettersom disse er de vanligste i mottakere. IR -biblioteket brukte D3 som TX -pin

Alexa -ordet blir overført til nano, så herfra er det nano med stemmestyring.

Trinn 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Det er mange ESP8266-moduler, jeg brukte en jeg måtte koble til under et mikroskop, ESP8266-01 har en 2x4-topptekst og alle pinnene du trenger, og den er billig. Masse eksempler på nettet,. Min tur opp, GPIO_0 må kobles til gnd under oppstart (kan deretter flytes) når du programmerer, det er en config -pin, trukket høyt internt. Når den er programmert, la GPIO_0 flyte og slå på igjen. CHPD kobles permanent til V+.

Styrelederen i arduino 1.6.11 har ikke esp8622 -lenken, i Arduino IDEfile> preferanser> ytterligere Board Manager -URL -er, legg til:

arduino.esp8266.com/stable/package_esp8266c…

Gå deretter til styringsleder og finn esp8266 -pakken. dette skulle nå gi deg en stor liste over esp8266 -kort, velg Verktøy> Kort> ESP8266 Generisk modul. Ved å bruke en usb til uart -modul kan du nå programmere esp -delen med esp8266_server_text. Strøm med 3V3, koble til TX-RX, RX-TX og Gnd.

Du må angi nettverks -SSID og passord i skriptet og porten du vil angi for portvideresending, f.eks. 777.

Du kan kjøre koden ved å slå esp på nytt mens du er koblet til usb til uart-omformeren, og arduino-serievinduet (9600 baud) skal vise den lokale ip-adressen til esp-modulen. skriv inn denne koden og programmer på nytt.

Trinn 8: Nettverksoppsett

Nettverksoppsett
Nettverksoppsett
Nettverksoppsett
Nettverksoppsett

Så for å la Lambda URL -anropet koble seg til ESP HTTP -serveren må vi sette ruteren til portvideresending. Jeg fikk min eksterne ip -adresse fra https://www.whatsmyip.org/, jeg er på en mikrobølgeovnkobling, så leverandøren min har ruteren, og jeg måtte be om portvideresending fra dem. Jeg måtte oppgi IP -adressen til ESP8266 på nettverket mitt og porten jeg valgte, f.eks. 777. Den eksterne IP -adressen må angis i lambda python -skriptet, og din lokale esp -adresse vises når du kjører esp8266 -koden lenken usb til uart.

ESP -modulen på usb til uart -tilkoblingen skal vise det innkommende ordet fra lambda på en terminal.

Koble ESP til nano som vist 3v3, gnd og TX til nano D2 soft serial. hvis du har nano på usb til en seriell kommando -skjerm på epc, bør den vise hva den mottar fra esp.

Hvis ESP ikke er koblet til nettverket eller ikke svarer på URL -anropet fra lambda, stopper lambda og Alexa rapporterer et mislykket ferdighetsrespons

Trinn 9: Alexa Open Clicker TV -pause

Alexa Open Clicker TV -pause
Alexa Open Clicker TV -pause

Jeg la modulen ved siden av mottakeren, men med høyere effekt IR -utgang kan den være hvor som helst i et rom. Jeg bruker en kjent USB -strømadapter for å mate strøm gjennom usb.

Len deg tilbake og si "Alexa open Clicker"

tv guide

tv gå ned

tv velg

tv -avspilling

tv hopp fem

for å hoppe frem et angitt antall minutter vil makroene gå til 30x vente på en ønsket tid og deretter spille.

UK -annonser er omtrent fem minutter.

For å gå ut av appen, si fra Alexa.

Nyt.

Anbefalt: