Inhoudsopgave:

Alexa spraakbediening tv-afstandsbediening ESP8266 - Ajarnpa
Alexa spraakbediening tv-afstandsbediening ESP8266 - Ajarnpa

Video: Alexa spraakbediening tv-afstandsbediening ESP8266 - Ajarnpa

Video: Alexa spraakbediening tv-afstandsbediening ESP8266 - Ajarnpa
Video: SONOFF L2 - RGB LED-strip met wifi en bluetooth, Ewelink, Google Home, Home Assistant 2024, November
Anonim
Alexa spraakbediening tv-afstandsbediening ESP8266
Alexa spraakbediening tv-afstandsbediening ESP8266

Raakt iemand in je huis de afstandsbediening kwijt, loop je een lege kamer binnen en zie je de tv schalmen. Batterijen beginnen te falen en geen controle vanaf de achterkant van de kamer. Nu kunt u uw tv, DVR en alles bedienen met IR-bediening waarvoor u het IR-signaal kunt vastleggen. Ik heb dit systeem gemaakt om mijn SKY DVR te bedienen met een eenvoudige spraakinterface.

Vereiste hardware:

  1. Amazon Echo of Dot
  2. Een wifi-router die port forward kan (mijn serviceprovider heeft dit voor mij gedaan)
  3. Een Arduino NANO geconverteerd naar 3V3
  4. ESP8266 -01 of vergelijkbaar
  5. IR-zendermodule of circuit
  6. IR-ontvangermodule als u codes wilt vastleggen.

Benodigde software en diensten:

  1. Arduino IDE, ik gebruikte 1.6.11
  2. Amazon Alexa-vaardighedenaccount (gratis)
  3. Amazon AWS-account (gratis niveau maar vereist creditcard om account te openen) of alternatieve server.

Stap 1: Alexa Vaardigheden instellen

Alexa Vaardigheden instellen
Alexa Vaardigheden instellen
Alexa Vaardigheden instellen
Alexa Vaardigheden instellen
Alexa Vaardigheden instellen
Alexa Vaardigheden instellen

De Alexas-vaardighedenkit neemt de spraakopdracht en filtert deze met behulp van een lijst met 'waarden'

Eenmaal geregistreerd:

Selecteer in de Amazon Developer-console het tabblad Alexa> Alexa Skills Kit [Aan de slag]

[Voeg een nieuwe vaardigheid toe]

Vaardigheidstype:Aangepast interactiemodel

Taal: selecteer de juiste, als dit op Engels (VS) was ingesteld, zou het niet reageren!

Naam: dit is nu niet belangrijk omdat we niet publiceren.

Aanroepnaam:, kies een korte naam, dit is het woord dat wordt gebruikt om de app te openen.

[DE VOLGENDE]

Intentieschema, in code plakken

Aangepaste slottypes {Voeg slottype toe], voer EFFECT_ON_TV in

in Slot-waarden, in code plakken

Voorbeelduitingen, put, TVCommandIntent tv {TVAction}

[SAVE], op de volgende vaardighedenpagina moeten we een link toevoegen naar de code die we gaan uitvoeren wanneer de "Intent" wordt geactiveerd door ofwel het app-startwoord "clicker" of daarna door "tv {slot value}".

We komen terug op Alexa nadat we het Lambda-serverpythonscript hebben ingesteld.

Stap 2: AWS Lambda Server Python-script

Meld je aan voor de gratis laag van AWS, ik was bang dat dit me echt geld zou gaan kosten, maar na een tijdje gebruik en het lezen van forums zijn de gebruikslimieten zo hoog voor persoonlijk en ontwikkelingsgebruik dat het nooit een oplaadpunt zou moeten bereiken. Er is een alternatief om uw eigen HTTPS-server te gebruiken en misschien is dit iets wat de esp8266 zou kunnen doen, een andere instructable!

Dit is de code die wordt uitgevoerd wanneer de aanroepnaam wordt uitgesproken (bijv. "Alexa open clicker") en het toverwoord van Alexa ontvangt. Zodra de app is gestart, hoef je alleen maar "tv play, tv jump five" te zeggen en Alexa stuurt "play", "jump 5" naar dit python-script. De app geeft een time-out als deze na een tijdje geen reacties heeft.

Selecteer in AWS Services eerst je locatie, rechtsboven staat een optie.

voor de VS selecteert u N Virginia, voor de EU selecteert u Ierland.

selecteer Lambda in de kop Compute.

[Maak een Lambda-functie]

[Blanco Functie]

Trigger configureren: klik op het gestippelde vak en selecteer Alexa Skills Kit

[DE VOLGENDE]

Functie configureren:

Noem wat je wilt

Beschrijving, aan jou

Runtine: Python 2.7

plakken in python-code,

in de code moet de URL HTTP-adres later worden gewijzigd in uw eigen externe ip-adres

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

lager op het scherm staat een ROL, klik op het tabblad en selecteer Selecteer een aangepaste rol

Dit opent een nieuw scherm en klikt op toestaan. Het keert terug naar het scherm Functie configureren met Lamda-basisuitvoering geselecteerd als Bestaande rol.

[VOLGENDE] de recensie, druk op [Create Function] en het zou moeten compileren en je een ARN-nummer geven. KOPIEER deze code en we zullen het in de alexa skills kit plaatsen.

Stap 3:

Stap 4: Stel de Alexa Skills Kit-link in op AWS Lambda

Stel de Alexa Skills Kit Link in op AWS Lambda
Stel de Alexa Skills Kit Link in op AWS Lambda

Selecteer in de Alexa-vaardighedenkit de configuratiepagina, ga naar Global Fields en selecteer AWS Lambda en uw regio en plak de ARN-code in het vak [NEXT], controleer in test ENABLED is geselecteerd.

We zijn hier voorlopig klaar, nu wat hardware.

Stap 5: Arduino NANO 3V3-conversie

Arduino NANO 3V3-conversie
Arduino NANO 3V3-conversie
Arduino NANO 3V3-conversie
Arduino NANO 3V3-conversie

De ESP8266 loopt van 3v3, dus je voert hem uit vanaf een externe regelaar of converteert een nano. Ik heb een kloon nano gebruikt met een CH340 usb-chip. Ik heb twee verschillende pcb-lay-outs die ik ken, maar hopelijk zal dit de meeste lay-outs dekken.

We moeten de 5V-regelaar vervangen door een pin-compatibele 3v3-regelaar, 1117-3. Leid vervolgens de 5V van de USB-aansluiting naar de regelaar en sluit al het andere aan op de uitgang. gelukkig kan dit worden bereikt door de ingangsdiode te verwijderen en de regelaar te vervangen en een draad van de ingangszijde van de diode toe te voegen aan de Vin op het nanobord.

controleer of je de nano kunt programmeren na de conversie.

Stap 6: NANO-code

NANO-code
NANO-code
NANO-code
NANO-code

Dit gebruikte codes voor mijn SKY UK-afstandsbediening, het kan modelspecifiek zijn en het is de moeite waard om uw codes te controleren in een aparte schets die niet is gekoppeld aan de esp8266.

Ik heb de IRremote-bibliotheek van shirriff versie 2.0.1 gebruikt

Gebruik het IRrecord-voorbeeld om opdrachten op afstand vast te leggen waarvoor een IR-ontvangermodule nodig is, of u kunt uw codes op internet vinden? Ik ga daar hier niet op in, maar hier kun je kiezen wat je controleert en hoe.

Sluit een IR-zender aan die beschikbaar is op ebay of bouw er een. U moet een 850nm IR-led gebruiken, omdat deze de meest voorkomende zijn in ontvangers. De IR-bibliotheek gebruikte D3 als TX-pin

Het alexa-woord wordt doorgegeven aan de nano, dus vanaf hier is het nano met spraakbesturing.

Stap 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Er zijn veel ESP8266-modules, ik heb er een gebruikt die ik onder een microscoop moest bedraden, de ESP8266-01 heeft een 2x4-header en alle pinnen die je nodig hebt en het is goedkoop. Tal van voorbeelden op het web,. Mijn trip-ups, GPIO_0 moet tijdens het opstarten met gnd worden verbonden (kan dan worden gefloten) tijdens het programmeren, het is een configuratiepin, intern hoog getrokken. Eenmaal geprogrammeerd laat GPIO_0 zweven en opnieuw inschakelen. CHPD maakt permanent verbinding met V+.

De bestuursmanager in arduino 1.6.11 heeft niet de esp8622-link, in Arduino IDEfile>voorkeuren>extra Board Manager-URL's, voeg toe:

arduino.esp8266.com/stable/package_esp8266c…

ga dan naar board manager en zoek het esp8266-pakket. dit zou je nu een grote lijst met esp8266-borden moeten geven, selecteer Tools> Board> ESP8266 Generic Module. Met behulp van een usb naar uart-module kunt u nu het esp-gedeelte programmeren met esp8266_server_text. Voeding met 3V3, sluit TX-RX, RX-TX en Gnd aan.

U moet uw netwerk-SSID en wachtwoord in het script invoeren en de poort die u instelt voor port forwarding, bijv. 777.

U kunt de code uitvoeren door de esp opnieuw aan te zetten terwijl deze is aangesloten op de usb naar uart-converter en het arduino seriële venster (9600 baud) moet het lokale ip-adres van de esp-module weergeven. voer dit in de code in en programmeer opnieuw.

Stap 8: Netwerkconfiguratie

Netwerkopzet
Netwerkopzet
Netwerkopzet
Netwerkopzet

Dus om de Lambda URL-aanroep verbinding te laten maken met de ESP HTTP-server, moeten we uw router instellen op port forwarding. Ik heb mijn externe ip-adres gekregen van https://www.whatsmyip.org/, ik heb een magnetronverbinding, dus mijn provider heeft de router en ik moest bij hen port forwarding aanvragen. Ik moest het IP-adres van de ESP8266 op mijn netwerk opgeven en de poort die ik heb gekozen, bijv. 777. Het externe IP-adres moet worden ingevoerd in het lambda python-script en je lokale esp-adres wordt weergegeven wanneer je de esp8266-code uitvoert de usb naar uart-link.

De ESP-module op de usb-naar-uart-verbinding moet op een terminal het binnenkomende woord van lambda weergeven.

Sluit de ESP aan op de nano zoals weergegeven 3v3, gnd en TX op nano D2 soft serial. als je de nano op usb naar een seriële communicatiedisplay op de epc hebt, zou deze moeten laten zien wat hij van de esp ontvangt.

Als de ESP niet is verbonden met het netwerk of niet reageert op de URL-aanroep van lambda, zal lambda een time-out geven en meldt Alexa een mislukte vaardigheidsreactie

Stap 9: Alexa Open Clicker Tv Pauze

Alexa Open Clicker Tv Pauze
Alexa Open Clicker Tv Pauze

Ik heb de module naast de ontvanger geplaatst, maar met een hoger vermogen IR-uitgang kan het overal in een kamer zijn. Ik gebruik een USB-stroomadapter van een bekend merk om stroom door de USB te voeren.

Leun achterover en zeg "Alexa open Clicker"

tv-gids

tv gaat uit

tv selecteren

tv spelen

tv sprong vijf

om een bepaald aantal minuten vooruit te springen, gaan de macro's naar 30x wachten op een gevraagde tijd en spelen dan af.

Britse advertenties duren ongeveer vijf minuten.

Zeg Alexa quit om de app af te sluiten.

Genieten van.

Aanbevolen: