Non ci sono prodotti a carrello.
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.
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).
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).
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.
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).
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.
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.
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.