ESP01 (ESP8266) : Google Home e Alexa | Documentazione in Italiano con IFTTT e Adafruit.IO!

Condividi questo articolo :

Premessa

Per continuare con guida questa bisogna, vi consigliamo di seguire la nostra documentazione su ESP01. In questo manuale è possibile scoprire come realizzare delle applicazioni domotiche fai da te compatibili con Google Home e Alexa, per fare ciò è ovvio che abbiamo bisogno di un account Google e/o un account Amazon, quest’ultimi saranno necessari per far funzionare il tutto!

CAPITOLO 1 | Registrarsi sul servizio Adafruit.IO e il codice!

Iniziamo dal principio 😁, per utilizzare i vari assistenti vocali e aggiungere delle SKILL speciali e personalizzate a quest’ultimi bisogna registrare due account. Il primo sito su cui registrarsi è Adafruit.IO e permette di dialogare con la nostra schedina dalle mille meraviglie, https://io.adafruit.com/ :

Fate click su Sign in o in alternativa potete accedere direttamente a questa pagina.

Registrate il vostro account, consigliandovi di registrare un’email che poi andrete a utilizzare anche per i servizi e siti successivi.

Successivamente, una volta effettuato l’accesso sul sito, ci troviamo davanti a questa pagina :

Nel menu a sinistra fate click su Feeds, poi su Actions e infine su Create a New Feed :

Ogni feed permette di incanalare uno o più comandi per gestire successivamente ESP01, anche da fuori casa! 😍 Possiamo inviare all’interno del feed numerosi comandi come “on”, “off”, “on_lavatrice”, “on_computer”, “off_lampada_da_ufficio” e via dicendo, l’importante che questi comandi siano privi di spazi. Ogni scheda può avere un feed e ogni feed deve avere un nome, quindi potete dargli il nome che volete :

Potete anche aggiungere una descrizione per identificare in modo semplice i vari Feed che andate a creare.

Subito dopo troverete il vostro feed all’interno dell’elenco Feeds. Volevamo informarvi inoltre, che il piano gratuito di Adafruit.IO ha un limite massimo di 10 feed (ogni feed corrisponde a una scheda programmabile) :

Fate click sul feed appena creato per avere una panoramica dell’uso che ne farete di quest’ultimo, nella stessa pagina potete trovare anche lo storico dei comandi ricevuti e che verranno successivamente inviati a ESP01 :

Questa fase di configurazione è quasi conclusa, adesso aprite l’ide di Arduino e installate la libreria Adafruit MQTT, ovviamente mantenendo aperto il sito che ci servirà a breve :

Chiudete il Gestore librerie e scaricate il file di esempio da questo link.

Nella prima parte del codice dovete inserire i dati della vostra connessione Wi-Fi :

Successivamente tornate sul sito Adafruit.IO (che speriamo abbiate tenuto aperto 😜) e fate click sul link di colore giallo, sempre presente nel menu a sinistra, con la dicitura View AIO Key :

E copiamo nel codice che abbiamo sull’Ide di Arduino sia l’Username e l’Active Key :

Scendendo un po più in giù con il codice potete trovare la riga che deve essere personalizzata con il nome del feed precedentemente creato :

Noi lo abbiamo modifcato di conseguenza :

Andiamo poi ad analizzare un altro aspetto del codice e cioè quali comandi dovrà riconoscere la nostra scheda ?

Nel codice troviamo questa sezione che vi spiegheremo :

I comandi on e off potete anche lasciarli cosi ma è importante capirne il meccanismo per personalizzare in futuro le vostre applicazioni fai da te. La prima cosa da dire è che questi due if (costrutti decisionali) abilitano rispettivamente le due funzioni accendi_il_led() e spegni_il_led() , anche queste ultime funzioni possono essere personalizzate e/o create di nuove e quindi volevamo mostrarvi un esempio per aggiungere i vostri comandi.

Mettiamo il caso che voi abbiate la necessità di comandare un pin, per esempio il pin GPIO2 e volete chiamare il comando “accendi_lampanda”, che poi vi faremo vedere che questo non sarà il comando che andrete a pronunciare, ma potete fare questo :

if(!strcmp((char *)openDoorFeed.lastread, "accendi_lampada")) funzione_accendi_lampada();

dove la funzione funzione_accendi_lampanda() potrete crearla in questo modo sotto il void loop() (fuori dalla parentesi graffe) :

void funzione_accendi_lampada() { digitalWrite(pin_lampada,HIGH); }

e quindi nel codice andrebbe fatto in questo modo :

Per ora non modificate il codice, vi lasceremo sperimentare a fine lettura!

Bene, possiamo caricare il codice e controllare che ESP01 si connetta correttamente alla piattaforma Adafruit.IO e successivamente passeremo a configurare il resto per Google Home e Alexa.

Per caricare il codice vi consigliamo di nuovo di dare una sbirciata alla nostra documentazione, ricordandovi che per caricare uno sketch su ESP01 dovete collegare il tutto seguendo il collegamento A1 del Capitolo 2 del nostro manuale su ESP01.

Caricate il codice su ESP01 e subito dopo la conferma di caricamento completato, aprite il Monitor Seriale per verificare la corretta connessione tra ESP01 e la piattaforma :

Se la scheda è connessa correttamente possiamo continuare! 😍😍😍

CAPITOLO 2 | Semplifichiamo le cose!

Il codice di default utilizza il pin GPIO0, ma come ben sapete il pin in questione è utilizzato per mandare ESP01 in flash mode e quindi potete modificare il codice in modo tale che non sarete costretti, in fase di sperimentazione, a staccare e a riattaccare il pin al GND ogni volta che dovete testarne il funzionamento. Tutto questo è molto semplice potete utilizzare in alternativa il pin GPIO2 modificando la variabile DOOR_PIN presente a inizio codice con il valore 2 :

CAPITOLO 3 | Registrarsi sul servizio IFTTT!

IFTTT è un servizio molto interessante che permette di aggiungere SKILL personalizzate sia a Google Home e Alexa, ma il core veramente spettacolare del sito è quello di dare la possibilità di far comunicare vari servizi e piattaforme tra loro creando miliardi di possibilità e automatismi!

Come Adafruit.IO è un servizio gratuito e possiamo utilizzarlo anche sul nostro cellulare tramite una comodissima APP https://ifttt.com/ :

Per comodità effettuate l’accesso al servizio con il vostro account Google facendo click su Continue with Google, anche perché sicuramente ne avrai uno e poi ti servirà per forza di cose per Google Home! 😜

Una volta effettuato l’accesso vi troverete davanti una pagina cosi :

Per iniziare potete fare click su My Applets e successivamente su New Applet :

A questo punto ci troveremo in questa pagina :

Da qui dovremmo scegliere in base al nostro assistente vocale il capitolo attinente.

CAPITOLO 4 | Creare un Applet per Google Home

Fate click sul pulsante +this e successivamente cercate “google assistant” :

fate click sull’applet Google Assistant , effettuate l’accesso con il vostro account Google, se viene richiesto e successivamente andate a cliccare sull’opzione Say a simple phrase, poiché questa opzione ci permette di creare comandi personalizzati per “Ok Google” :

Nella pagina successiva potente inserire varie frasi che Google Home deve riconoscere per accendere il led e successivamente potete impostare una risposta di conferma che l’assistente addirittura può darvi a voce e infine potete selezionare la vostra lingua preferita.

Cliccate su Create trigger e nella pagina successiva dovreste avere un qualcosa del genere :

Fate click su +that e nella pagina che compare cercare “adafruit” per andare a selezionare il servizio Adafruit :

Fate click sul servizio Adafruit e accedete con l’account precedentemente creato e successivamente cliccate su Send data to Adafruit IO :

IFTTT provvederà a prelevare i feed creati precedentemente su Adafruit.IO e nel nostro caso ne avremo solo uno. Nel campo Data to save dovete inserire il comando che la scheda deve leggere, ricordate i due if presi in analisi inizialmente nel codice ? 😁

Ebbene, avrete per il momento a disposizione il comando on e il comando off, quindi tenendo in considerazione il fatto che poco fa abbiamo creato la frase per accendere il led, nel campo Data to save inserite on.

In fine fate click su Create action.

Prima di cliccare su Finish sappiate che ogni volta che direte “accendi il led” IFTTT invierà una notifica per avvertirvi che è stato chiesto l’avvio dell’applet collegato al comando e che quindi se avete un cellulare con l’applicazione IFTTT installata, sappiate che vi riempierà di notifiche, quindi disattivate le notifiche per non diventare pazzi. 🤣🤣🤣🤣

Adesso potete fare click su Finish per completare la creazione del primo Applet per Google Home!

La pagina che compare, oltre a confermarvi la corretta creazione dell’applet, vi permetterà anche di testare se tutto funziona e quindi per fare ciò fate click su Check now .

La conferma ci viene mostrata con una barra superiore di colore azzurro con scritto Applet checked, se viene mostrata è tutto regolare!

Adesso, senza che vi mostriamo di nuovo tutto l’iter per creare un nuovo applet, vi invitiamo a eseguire di nuovo tutte le operazioni fatte fino ad adesso stando attenti questa volta a creare una frase di spegnimento del led e successivamente nel campo Data to save, al momento che ci viene richiesto, dovrà essere riempito con il comando off.

Tornate alla pagina My Applets cliccando sulla voce relativa presente nel menu del sito e successivamente di nuovo su New applet, provate voi a fare un nuovo applet per spegnere il led e ci rivediamo tra poco! 😁😁😁

Mentre eravate alle prese nella creazione di un nuovo applet per spegnere il led, anche noi abbiamo creato il nostro applet :

Aspettate almeno 5 minuti per dare il tempo a IFTTT di finalizzare la configurazione dei comandi sul nostro account Google e sopratutto mentre aspettiamo accertiamoci che il nostro assistente vocale sia collegato con lo stesso account che abbiamo utilizzato precedentemente su IFTTT al momento della creazione del primo Applet, accedendo con quest’ultimo quando è stato richiesto.

Per vedere a quale account è collegato il tuo assistente è necessario aprire l’assistente sul tuo cellulare, e fare click sul pulsante schede :

In alto a destra trovate l’immagine del vostro profilo, se corrisponde allo stesso account utilizzato precedentemente, è tutto configurato correttamente e quindi non resta altro che premere il pulsante microfono e pronunciare la fatitica frase “accendi il led” o in alternativa chiudere tutto per fare i più fighi e pronunciamo “Ok Google… accendi il led!”.

Funziona ? Sappiate che potete farlo anche se non vi trovate a casa! Pensateci, tornate da lavoro e dite a Google… “Hei, accendi il riscaldamento!” e non servono nemmeno mila e mila euro di climatizzatore smart 😍

CAPITOLO 5 | Creare un Applet per Alexa

Ok, non vogliamo fare una guida con 30 capitoli simili e ripetitivi, quindi vi indichiamo solo alcune cose. Il procedimento per Alexa è praticamente lo stesso del capitolo precedente, anche se ci sono dei dettagli da prendere in considerazione per non impazzire dietro la prima configurazione!

Abbiamo deciso di elencare tutte le cose che non ci sono tanto piaciute per quanto riguarda la creazione di un Applet per Alexa :

  1. Non è possibile inserire varie frasi diverse per impartire lo stesso comando, quindi tutto diventa poco versatile dal punto di vista comunicativo con l’assistente.
  2. Non è possibile creare una risposta personalizzata, anche se non è importante sarebbe bello avere una risposta attinente al comando inviato e invece ci verrà detto solamente “Sto inviando il comando a IFTTT”.
  3. E’ sempre necessario dare il comando “trigger” prima di dare il comando personalizzato (es, “Alexa, trigger, comando scelto”).
  4. Non è possibile utilizzare parole chiave che i programmatori di Alexa hanno inserito all’interno dell’assistente, per esempio se creiamo il comando “Accendi il led” non funzionerà poiché il comando “Accendi” è inserito all’interno dell’assistente e è utilizzato per i dispositivi commerciali compatibili.

Per il resto, gli Applet di Alexa sono utilizzabili allo stesso modo di quelli di Google Home. Che fortuna…🤣

Tutto questo funziona su tutte le schede con ESP8266, magari se avete necessità di più pin, potete usare questa o quest’altra scheda!

CONTENUTI AGGIUNTIVI | I nostri video

Condividi questo articolo :

Redazione Filo Connesso

Redazione Filo Connesso

Siamo un gruppo di ragazzi appassionati di Informatica, elettronica e robotica. Abbiamo creato Filo Connesso per offrire materiale educativo e informativo dedicato ai nostri settori di interesse.

Potrebbero interessarti anche...

5 risposte

  1. Redazione Filo Connesso Redazione Filo Connesso ha detto:

    Qui la documentazione aggiornata su ESP01 (l’articolo precedente è stato eliminato) :
    https://www.filoconnesso.it/update-26-04-2019-esp01esp8266-e-iot-da-4-lire-documentazione-in-italiano/

  2. Massimiliano ha detto:

    Ciao, come al solito guida utilissima. Come faccio a controllare due GPIO diversi per controllare con una sola scheda NodeMCU Esp8266 due relè. Ho la necessità, infatti, di controllare due lampade indipendentemente l’una dall’altra e quindi penso che dovrei collegare un relè ad un GPIO e l’altro relè ad un altro GPIO. Se è così, come devo compilare lo sketch? Ciao e grazie mille

    • Ciao! Scusa il ritardo nel rispondere ma ci siamo ingolfati con le cose da fare 😀 … Prima di tutto dovresti creare due nuovi applet per il secondo relé, il feed può restare lo stesso basta che all’applet fai inviare dei comandi diversi magari “rele2on” e “rele2off” e nel codice devi duplicare le funzioni e gli if che trovi verso la fine (cambiandogli ovviamemte nome) in modo tale da avere due controlli anche per il secondo relé 🙂 é una questione di semplice copia e incolla alla fine! Grazie, se hai problemi torna a scriverci, siamo qui! Saluti e buona sperimentazione!

  3. Leonardo ha detto:

    Ciao, ho aggiunto un secondo led allo sketch ma quando lo faccio accendere si accende anche il primo da solo. Come posso fare per risolvere?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *