Sommario:

Telecomando TV Alexa con controllo vocale ESP8266: 9 passaggi
Telecomando TV Alexa con controllo vocale ESP8266: 9 passaggi

Video: Telecomando TV Alexa con controllo vocale ESP8266: 9 passaggi

Video: Telecomando TV Alexa con controllo vocale ESP8266: 9 passaggi
Video: Comando vocale per usare Home Assistant sul display di Echo Show di Alexa 2024, Luglio
Anonim
Telecomando TV con controllo vocale Alexa ESP8266
Telecomando TV con controllo vocale Alexa ESP8266

Qualcuno in casa tua perde il telecomando, entri in una stanza vuota e trovi la TV a tutto volume. Le batterie iniziano a guastarsi e nessun controllo dal fondo della stanza. Ora puoi controllare la tua TV, DVR, qualsiasi cosa con il controllo IR per cui puoi catturare il segnale IR. Ho realizzato questo sistema per controllare il mio DVR SKY con una semplice interfaccia vocale.

Hardware richiesto:

  1. Amazon Echo o Dot
  2. Un router wifi che può eseguire il port forwarding (il mio fornitore di servizi lo ha fatto per me)
  3. Un Arduino NANO convertito in 3V3
  4. ESP8266 -01 o simile
  5. Modulo o circuito trasmettitore IR
  6. Modulo ricevitore IR se si desidera acquisire codici.

Software e servizi richiesti:

  1. Arduino IDE, ho usato 1.6.11
  2. Account competenze Amazon Alexa (gratuito)
  3. Account Amazon AWS (livello gratuito ma richiede carta di credito per aprire l'account) o server alternativo.

Passaggio 1: configurazione delle abilità di Alexa

Configurazione delle competenze di Alexa
Configurazione delle competenze di Alexa
Configurazione delle competenze di Alexa
Configurazione delle competenze di Alexa
Configurazione delle competenze di Alexa
Configurazione delle competenze di Alexa

Il kit di abilità di Alexa prende il comando vocale e lo filtra utilizzando un elenco di "valori"

Una volta registrato:

Nella console Amazon Developer, seleziona la scheda Alexa> Alexa Skills Kit [Inizia]

[Aggiungi una nuova abilità]

Tipo di abilità: modello di interazione personalizzato

Lingua: seleziona quella corretta, se fosse impostata su English (US) non risponderebbe!

Nome: questo non è importante ora perché non stiamo pubblicando.

Nome di chiamata: scegli un nome breve, è la parola usata per aprire l'app.

[PROSSIMO]

Schema intento, incolla il codice

Tipi di slot personalizzati {Aggiungi tipo di slot], inserisci EFFECT_ON_TV

in Valori slot, incolla nel codice

Espressioni di esempio, put, TVCommandIntent tv {TVAction}

[SALVA], nella prossima pagina delle abilità dobbiamo aggiungere un collegamento al codice che eseguiremo quando "Intento" viene attivato dalla parola di avvio dell'app "clicker" o successivamente da "tv {valore slot}".

Torneremo ad Alexa dopo aver configurato lo script Python del server Lambda.

Fase 2: script Python del server AWS Lambda

Iscriviti al piano gratuito di AWS, temevo che potesse costarmi denaro reale, ma dopo averlo usato un po' e aver letto i forum i limiti di utilizzo sono così alti per uso personale e di sviluppo che non dovrebbe mai raggiungere un punto di ricarica. Esiste un'alternativa per utilizzare il proprio server HTTPS e forse questo è qualcosa che l'esp8266 potrebbe fare, un altro istruibile!

Questo è il codice che viene eseguito quando viene pronunciato il nome di invocazione (ad esempio "Alexa open clicker") e riceve la parola magica da Alexa. Una volta avviata l'app, devi solo dire "tv play, tv jump five" e Alexa invierà "play", "jump 5" a questo script Python. L'app scade se non riceve risposte dopo un po'.

In AWS Services, seleziona prima la tua posizione, in alto a destra c'è un'opzione.

per gli Stati Uniti selezionare N Virginia, per l'UE selezionare Irlanda.

selezionare Lambda dall'intestazione Compute.

[Crea una funzione Lambda]

[Funzione vuota]

Configura trigger: fai clic sulla casella tratteggiata e seleziona Alexa Skills Kit

[PROSSIMO]

Configura funzione

Nomina quello che vuoi

Descrizione, dipende da te

Runtine: Python 2.7

incolla il codice Python,

nel codice l'indirizzo HTTP dell'URL dovrà essere modificato in seguito con il proprio indirizzo IP esterno

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

in basso sullo schermo c'è un RUOLO, fai clic sulla scheda e seleziona Seleziona un ruolo personalizzato

Si aprirà una nuova schermata e fare clic su Consenti., si torna alla schermata della funzione Configura con l'esecuzione di base Lamda selezionata come Ruolo esistente.

[AVANTI] la recensione, premi [Crea funzione] e dovrebbe compilare e darti un numero ARN. COPIA questo codice e lo inseriremo nel kit di competenze di Alexa.

Passaggio 3:

Passaggio 4: imposta il collegamento Alexa Skills Kit su AWS Lambda

Imposta il collegamento Alexa Skills Kit su AWS Lambda
Imposta il collegamento Alexa Skills Kit su AWS Lambda

In Alexa Skill Kit, seleziona la pagina Configurazione, intitolata Global Fields e seleziona AWS Lambda e la tua regione e incolla il codice ARN nella casella, [NEXT], in test, seleziona ENABLED è selezionato.

Abbiamo finito qui per ora, ora per un po' di hardware.

Passaggio 5: conversione Arduino NANO 3V3

Conversione Arduino NANO 3V3
Conversione Arduino NANO 3V3
Conversione Arduino NANO 3V3
Conversione Arduino NANO 3V3

L'ESP8266 funziona da 3v3, quindi o lo esegui da un regolatore esterno o converti un nano. Ho usato un clone nano con un chip USB CH340. Ho due diversi layout di PCB che conosco, ma spero che questo copra la maggior parte dei layout.

Dobbiamo sostituire il regolatore 5V con uno 3v3 compatibile con pin, 1117-3. quindi instradare i 5V in ingresso dalla presa usb solo al regolatore e collegare tutto il resto alla sua uscita. fortunatamente questo può essere ottenuto rimuovendo il diodo di ingresso sostituendo il regolatore e aggiungendo un filo dal lato di ingresso del diodo al Vin sulla scheda nano.

controlla che puoi programmare il nano dopo la conversione.

Passaggio 6: codice NANO

Codice NANO
Codice NANO
Codice NANO
Codice NANO

Questo ha utilizzato i codici per il mio telecomando SKY UK, potrebbe essere specifico del modello e vale la pena controllare che i codici funzionino in uno schizzo separato non collegato all'esp8266.

Ho usato la libreria IRremote di shirriff versione 2.0.1

Usa l'esempio IRrecord per acquisire comandi remoti che richiedono un modulo ricevitore IR o potresti trovare i tuoi codici sul web? Non ne parlerò qui, ma qui è dove puoi scegliere cosa controllare e come.

Collega un trasmettitore IR disponibile su ebay o creane uno. Dovresti usare un led IR da 850 nm poiché questi sono i più comuni nei ricevitori. La libreria IR utilizzava D3 come pin TX

La parola Alexa viene passata al nano, quindi da qui il suo nano con controllo vocale.

Passaggio 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Ci sono molti moduli ESP8266, ne ho usato uno che dovevo cablare al microscopio, L'ESP8266-01 ha un'intestazione 2x4 e tutti i pin di cui hai bisogno ed è economico. Un sacco di esempi sul web,. Il mio trip up, GPIO_0 deve essere collegato a gnd durante l'accensione (può quindi essere flottato) durante la programmazione, è un pin di configurazione, tirato in alto internamente. Una volta programmato, lascia che GPIO_0 galleggi e riaccenda. CHPD si connette a V+ in modo permanente.

Il gestore della scheda in arduino 1.6.11 non ha il collegamento esp8622, in Arduino IDEfile>preferences>additional Board Manager URL, aggiungi:

arduino.esp8266.com/stable/package_esp8266c…

quindi vai a board manager e trova il pacchetto esp8266. questo dovrebbe ora darti un grande elenco di schede esp8266, seleziona Strumenti> Scheda> Modulo generico ESP8266. Usando un modulo da usb a uart ora puoi programmare la parte esp con esp8266_server_text. Alimenta con 3V3, collega TX-RX, RX-TX e Gnd.

Devi inserire il tuo SSID di rete e la password nello script e la porta che imposterai per il port forwarding, ad esempio 777.

È possibile eseguire il codice riaccendendo l'esp mentre è collegato al convertitore da usb a uart e la finestra seriale di arduino (9600 baud) dovrebbe visualizzare l'indirizzo IP locale del modulo esp. inseriscilo nel codice e riprogramma.

Passaggio 8: configurazione di rete

Configurazione di rete
Configurazione di rete
Configurazione di rete
Configurazione di rete

Quindi, per consentire alla chiamata URL Lambda di connettersi al server HTTP ESP, è necessario impostare il router sul port forwarding. Ho ottenuto il mio indirizzo IP esterno da https://www.whatsmyip.org/, sono su un collegamento a microonde quindi il mio provider ha il router e ho dovuto richiedere il port forwarding da loro. Ho dovuto fornire l'indirizzo IP di ESP8266 sulla mia rete e la porta che ho scelto, ad esempio 777. L'indirizzo IP esterno deve essere inserito nello script lambda python e il tuo indirizzo esp locale verrà mostrato quando esegui il codice esp8266 il collegamento da usb a uart.

Il modulo ESP sulla connessione da usb a uart dovrebbe mostrare su un terminale la parola in arrivo da lambda.

Collega l'ESP al nano come mostrato 3v3, gnd e TX a nano D2 soft serial. se hai il nano su usb su un display di comunicazione seriale su epc dovrebbe mostrare ciò che riceve dall'esp.

Se l'ESP non è connesso alla rete o non risponde alla chiamata URL da lambda, lambda andrà in timeout e Alexa segnalerà una risposta di abilità non riuscita

Passaggio 9: Alexa Apri Clicker Tv Pausa

Alexa Apri Clicker Tv Pausa
Alexa Apri Clicker Tv Pausa

Ho messo il modulo accanto al ricevitore ma con un'uscita IR di potenza maggiore potrebbe essere ovunque in una stanza. Uso un adattatore di alimentazione USB di marca nota per alimentare l'alimentazione tramite USB.

Siediti e dì "Alexa, apri Clicker"

guida tv

la tv va giù

selezione tv

giocare in tv

tv salta cinque

per saltare in avanti di un determinato numero di minuti le macro andranno a 30x attendere un tempo richiesto e poi riprodurre.

Gli annunci nel Regno Unito durano circa cinque minuti.

Per uscire dall'app, dì Alexa esci.

Godere.

Consigliato: