Controllare le luci di casa con Google Assistant/Alexa e il modulo ESP8266

Accendiamo le luci di casa tramite comandi vocali impartiti attraverso Google Assistant e la demoboard ESP per la connessione WiFi.

Che Google sia tra le aziende piรน innovative nel settore informatico, lo testimonia il numero esorbitante di utenti che usufruiscono dei suoi servizi: dal piรน usato motore di ricerca al cloud per la gestione dei propri documenti (archiviabile ed editabili), i servizi offerti dal colosso di Mountain View sono davvero numerosi e soprattutto estremamente utili al grosso del pubblico.

Il piรน suggestivo servizio offerto da Google รจ attualmente lโ€™assistente vocale Google Assistant, che viene reso disponibile su tutti gli smartphone di ultima generazione in cui รจ installato il sistema operativo Android.

Recentemente รจ stata lanciata sul mercato anche la versione hardware per lโ€™utilizzo domestico, denominato Google Home che, nella versione piรน economica si presenta piรน o meno come una saponetta rotonda di circa 10cm di diametro. Esistono comunque delle alternative offerte da altre aziende, come ad esempio Siri della Apple, Alexa di Amazon e Svoice della Samsung ma attualmente la stragrande maggioranza degli utenti utilizza il sistema di Google.

Mentre per usufruire dellโ€™assistente vocale su dispositivi mobili Android รจ necessario sbloccare la schermata, la versione home รจ sempre attiva e risponderร  immediatamente ai vostri comandi.

A questo punto sorge spontanea una domanda: di preciso, che cosa fa un assistente vocale? Ebbene, a livello tecnico si tratta di un sistema di riconoscimento vocale molto sofisticato, in grado non solo di capire cosa avete detto ma, grazie allโ€™intelligenza artificiale, anche di interloquire con voi imparando nel tempo ad adattare le risposte alle vostre esigenze.

Raccogliendo sempre piรน informazioni su dove abitate e dove abitualmente vi muovete, puรฒ fornirvi messaggi vocali utili per i vostri spostamenti oppure sulle condizioni meteo. Conoscendo i vostri gusti musicali potrร  avviare piรน velocemente la vostra musica preferita.

Ovviamente saranno sempre disponibili le funzioni base di risposta alle piรน semplici domande, come ad esempio quelle per fare un calcolo matematico, per rispondere alla richiesta di un numero a caso o alla domanda sullโ€™etร  del vostro attore preferito. Analizzando le numerose domande che gli vengono poste, lโ€™assistente vocale sarร  sempre piรน abile nel rispondere in maniera coerente e sensata, quasi come se stessimo parlando con una persona in carne e ossa.

 

Prerequisito per poter implementare questo progetto รจ quello di disporre di un accesso alla rete internet tramite WiFi, disporre di una scheda di sviluppo basata su modulo ESP e lโ€™IDE di Arduino configurato per la programmazione di moduli ESP.

Il primo passo รจ disporre di un opportuno hardware in grado di ricevere comandi da Internet e poter attivare di conseguenza un carico alimentato alla tensione della rete elettrico: un economico modulo con chip ESP8266 interfacciato ad un relรฉ a comando TTL puรฒ fare al caso nostro. Tale hardware รจ a tutti gli effetti un vero e proprio dispositivo IOT (Internet Of Things).

Qualsiasi scheda basata su ESP2866 va benissimo, compresa la NodeMCU, Espresso Lite, oppure la nostra scheda Demoboard ESP03 (cod. FT1191M) utilizzata in questo articolo.

Per quando riguarda la commutazione del carico, un semplice modulo a relรฉ, come ad esempio quello proposto dalla Futura Elettronica con il codice 2846-RELAY1CH andrร  piรน che bene. Questo modulo viene fornito giร  montato e collaudato e contiene un relรฉ monoscambio con bobina a 5 volt, in grado di commutare 10A in impianti funzionanti fino a 240Vca; il comando gli va fornito sul contatto โ€œSโ€ e consiste in un livello di tensione positivo rispetto a massa, tipicamente di 5V.

Unico altro elemento necessario sarร  un piccolo alimentatore switching da rete (220V/50Hz) con unโ€™uscita a tensione continua stabilizzata a 5V (bastano 1,5A di corrente) necessario ad alimentare la scheda. Lo schema dei collegamenti รจ visibile in Fig. 2.

Il secondo passo รจ quello di fare in modo che il nostro dispositivo IOT sia raggiungibile dalla rete internet, non รจ infatti sufficiente la visibilitร  allโ€™interno della rete WiFi locale disponibile nella nostra abitazione.

Per fare questo dobbiamo utilizzare un servizio cloud come quello offerto dallโ€™americana Adafruit che ha istituito il server Adafruit IO, nato specificatamente per far connettere piccoli dispositivi IOT alla rete e poter cosรฌ interagire con loro. Seguendo i prossimi passaggi saremo in grado di comandare da un qualsiasi browser connesso in rete le luci della nostra casa.

Fig. 2 Cablaggio dei componenti del progetto.

Passo 1

Accediamo al sito https://io.adafruit.com e creiamo un account cliccando su Sign up for free; per piccoli progetti il servizio รจ del tutto gratuito (Fig. 3).

Fig. 3 Schermata principale di Adafruit IO.

Passo 2

Nella schermata principale selezionate feed poi su action e quindi create a new feed. Inserite quindi un nuovo feed di nome on/off il quale conterrร  il dato che sarร  scambiato con il vostro dispositivo IOT (Fig. 4).

Fig. 4 Creazione nuovo feed in Adafruit.

Passo3

Cliccate sopra il nuovo feed; vi si aprirร  la schermata relativa alla dashboard che potrete personalizzare a piacimento. Cliccate sul pulsantino + ed aggiungete un interruttore con funzione toggle (Fig. 5). Proseguite con le impostazioni e selezionate il feed al quale sarร  associato lโ€™interruttore (Fig. 6). Proseguite ancora e nel campo Button On Text inserite il testo ON, mentre nel campo Button Off Text inserite la stringa OFF (Fig. 7).

A questo punto avete completato la parte relativa al cloud e siete pronti per programmare il vostro dispositivo IOT.

Fig. 5 Aggiunta interruttore con funzione toggle.

Fig. 6 Selezione del feed associato allโ€™interruttore

Fig. 7 Impostazione parametri di funzionamento dellโ€™interruttore.

Passo 4

Aprite lโ€™IDE di Arduino e nella sezione relativa alla gestione delle librerie (comando di menu Sketch>Importa libreria) cercate ed installate la libreria di nome Adafruit MQTT library.

Questa libreria aggiungerร  i comandi che permetteranno di gestire la comunicazione tra la scheda IOT ed il cloud Adafruit tramite il protocollo MQTT (Fig. 8). Caricate lo sketch di nome AdafruitIO_IFTTT_ONOFF.ino scaricabile assieme ai file di questo numero della rivista e aggiornate i campi WIFI_SSID e WIFI_PASS con le credenziali di accesso alla vostra rete WiFi. Ritornate un attimo su Adafruit IO (Fig. 9) e dalla schermata principale selezionate la scheda View IO Key e copiate i due campi Username e Active key, quindi incollateli nel listato nelle rispettive voci; queste rappresentano le credenziali di accesso al cloud.

Assicuratevi che nella riga Adafruit_MQTT_Subscribe onoff = Adafruit_MQTT_Subscribe(&mqtt, MQTT_NAME โ€œ/f/onoffโ€) sia presente il nome del feed che avete creato e con il quale volete interagire (Fig. 10).

Caricate quindi lo sketch sulla scheda di sviluppo ed aprite Serial Monitor per visualizzare il debug, se la procedura รจ andata a buon fine la scheda si connetterร  alla vostra rete WiFi e successivamente si connetterร  al cloud Adafruit.

Verificate che il tutto funzioni correttamente: azionando lโ€™interruttore su Adafruit IO, dovete poter controllare lโ€™attivazione dellโ€™uscita e lโ€™accensione del relรฉ. Sia su Serial Monitor che sulla dashboard di Adafruit avrete lโ€™elenco dei comandi scambiati tra la il cloud e la scheda IOT (Fig. 11).

 

 

Fig. 8 Installazione libreria MQTT di Adafruit.

 

 

Fig. 9 Credenziali di accesso ad Adafruit IO da un dispositivo IOT.

 

 

Fig. 10 Impostazioni credenziali di accesso nello sketch.

 

 

Fig. 11 Serial Monitor con debug di funzionamento.

Passo 5

A questo punto siamo pronti ad implementare lโ€™attivazione del relรฉ tramite i comandi vocali. Dobbiamo mettere in comunicazione il servizio Google Assistant con il cloud di Adafruit e per questo dobbiamo utilizzare il servizio IFTTT, creato da una azienda Californiana appositamente per mettere in comunicazione diversi ed eterogenei servizi in rete.

Accediamo alla pagina di IFTTTย e ci iscriviamo al servizio tramite lโ€™account Google, visto che comunque dovremmo utilizzare i suoi servizi. Appena entrati, IFTTT vi fornirร  una serie di esempi giร  pronti, noi invece cliccheremo su My Applets e poi sul pulsantino + per creare unโ€™applicazione tutta nostra.

Cliccate sul simbolo + accanto a this per avviare la procedura di creazione di una nuova applet. Cercate il servizio Google Assistant e selezionatelo, allorchรฉ si aprirร  una schermata in cui potrete impostare quello che ritenete debba essere il vostro trigger, vale a dire lโ€™evento che farร  attivare le luci di casa vostra.

Selezionate la prima voce (Say a simple phrase) e nel campo What do you want to say impostate la frase che pronuncerete per attivare le luci, ad esempio โ€œaccendi luciโ€ (Fig. 14). Nei successivi due campi potete inserire frasi alternative come ad esempio โ€œluci acceseโ€ oppure โ€œaccendi le luciโ€, mentre nel campo What do you want the Assistant to say in response? inserirete la frase di risposta dellโ€™assistente: ad esempio โ€œok, accendo le luciโ€ (Fig. 15).

Nellโ€™ultimo campo, ossia Language, selezionate la lingua italiana. A questo punto il trigger รจ pronto: dobbiamo solo impostare lโ€™azione corrispondente.

 

Fig. 14 Selezione modalitร  dellโ€™azione.

 

Fig. 15 Selezione del servizioGoogle Assistant.

Passo 6

Selezionate questa volta il โ€œthatโ€ e cercate Adafruit tra i servizi (Fig. 16), selezionate successivamente lโ€™unica voce disponibile (per il momento) Send data to Adafruit IO. Nel campo Feed name selezionate il feed precedentemente creato ovvero onoff mentre nel campo Data to save la stringa ON (Fig. 17), quindi cliccate su create action e confermate la creazione dellโ€™applet (Fig. 18).

Ripetete la procedura creando una nuova applet che utilizzeremo per spegnere le luci, quindi il comando vocale potrebbe essere โ€œspegni luciโ€ e lโ€™azione dovrร  inviare la stringa OFF.

A procedura conclusa vi ritroverete con due applet operative, una per attivare la luce e una per spegnerla (Fig. 19). Se necessario, รจ comunque possibile in qualunque momento apportarvi delle modifiche cliccando sullโ€™icona a forma di ingranaggio.

Non ci resta che richiamare lโ€™assistente di Google con il comando vocale โ€œok Googleโ€ ed impartire i comandi โ€œaccendi luciโ€ e โ€œspegni luciโ€, sempre su Serial Monitor di Arduino vedrete i comandi ricevuti.

Facciamo notare che nel firmware, le uniche righe necessarie a gestire i comandi sono quelle riportare nel Listato 1.

Si tratta di due semplici if che verificano la stringa ricevuta inviata dal cloud Adafruit a sua volta ricevuta dal servizio IFTTT; nulla di piรน facile. Facilmente potremmo modificate le frasi del trigger e il testo dellโ€™azione per poter realizzare la nostra specifica funzione.

Ad esempio potremmo modificare il listato precedente per poter gestire lโ€™apertura di un portone asservito da elettroserratura, in quello visibile nel Listato 2.

La frase relativa al trigger potrebbe essere del tipo โ€œapri il portoneโ€ con lโ€™invio della stringa โ€œDOORONโ€, compito del software quello di attivare per un attimo lโ€™elettroserratura, magari connessa ad unโ€™altra uscita della scheda, in modo da lasciare operativi entrambi i sistemi. In questo caso non serve una seconda applet che esegua il comando di off.

Fig. 16 Selezione del servizio Adafruit IO.

Fig. 17 Impostazione dei parametri per lโ€™azione.

 

Fig. 18 Azione configurata.

 

Fig. 19 Applet concluse e operative.

Conclusioni

Terminiamo questo articolo sicuri del fatto di avervi quantomeno incuriosito e certi che molti di voi vorranno sperimentare in pratica il nostro esempio applicativo, anche perchรฉ mettere insieme lโ€™hardware richiesto costa davvero poco ed รจ semplicissimo.

Potrete vedere subito come sia comodo gestire utilizzatori in ambiente domestico e se avrete ospiti, li stupirete facendo loro vedere come abbiate tutto sotto controllo, persino le luci di casa, semplicemente ordinando a voce ciรฒ che desiderate. Insomma, avrete giร  un piede nel futuro, che certamente vedrร  lโ€™impiego massiccio di sistemi di assistenza vocale.

Lascia un commento

Il tuo indirizzo email non sarร  pubblicato.

Menu