ESP8266 ed EspAlexa, integrazione Alexa e Arduino IDE

Come abbiamo visto nei molteplici esperimenti eseguiti con il NodeMCU e le sue versioni (modulo che ospita il famoso ESP8266), questo piccolo microprocessore con Wi-Fi è adatto a tantissime situazione di progettazione. Riesce a controllare non solo luci, interruttori e strisce RGB. Ma anche sensori, come quello di temperatura, fino ad arrivare alla costruzione di un semplice Web Server, per ospitare delle pagine di base, per lo più inerenti ai sensori stessi. Interessanti anche le integrazioni vocali, soprattutto con ESP8266 ed EspAlexa, la libreria per Arduino IDE del bravissimo e gentilissimo Aircoookie, noto da queste parti soprattutto per il firmware WLED. Vediamo di cosa si tratta. Anticipo che per seguire il discorso, bisogna avere un minimo di esperienza con il NodeMCU e Arduino.

ESP8266 ed EspAlexa

ESP8266 ed EspAlexa

La cosa interessante è che attraverso alla libreria di Arduino IdeEspAlexa‘, riusciremo anche a integrare Alexa nel nostro progetto controllandolo con la voce. In maniera davvero semplice e veloce. Ricordiamo che Arduino Ide è probabilmente il modo più semplice per riuscire a programmare il modulo NodeMCU e comunque le schede compatibili con il microprocessore ESP8266. Attraverso la sua interfaccia e il suo monitor seriale, si riescono a gestire molte situazioni davvero interessanti. Vediamo in questo caso l’integrazione con i vostri progetti Arduino IDE già esistenti.

Integrazione semplice (senza Web Server presente)

Se nel vostro progetto non sarà presente la programmazione di un web server, allora l’integrazione sarà immediata. Basterà inserire le intestazioni, la configurazione iniziale all’interno del ‘setup’. Infine il richiamo ciclico all’interno del ciclo di LOOP, anche qui poche righe. Senza dimenticare naturalmente la funzione ( o le funzioni) che verrà richiamata quando cambia lo stato da Alexa. Per esempio nell’esempio EspalexaBasic, la funzione ‘firstLightChanged‘ e le due successive.

Se avrete completato il codice correttamente in ogni sua parte, come nell’esempio di EspalexaBasic, potrete aggiungere facilmente il dispositivo tramite l’applicazione Alexa del proprio Smartphone: selezionando Dispositivi e il simbolo ‘+‘ in alto a destra. Quindi ‘Aggiungi dispositivo‘ e scorrere in basso la lista fino ad ‘Altro‘. Infine confermare con ‘Trova dispositivi‘. Dopo un po’ di secondi il dispositivo verrà visualizzato e aggiunto, come qualsiasi altro.

ESP8266 ed EspAlexa

Integrazione di EspAlexa con un progetto che include un Web Server.

Se nel vostro progetto è già presente un web server allora dovrete comportarvi in modo leggermente diverso.

Mentre le intestazioni e le dichiarazioni iniziali rimarranno essenzialmente lo stesso, la fase di ‘Setup’ e il ‘Loop’ risulteranno differenti.

Se all’interno del vostro Loop, per esempio avrete il ‘server.handleClient();’, andrà sostituito con le classiche due righe:

espalexa.loop();
delay(1);

Se avrete configurato precedentemente il vostro web server, anche il ‘server.onNotFound‘ dovrà essere gestito in questo modo:

se prima era così:

  server.onNotFound(handleNotFound);

ora dovrà essere così:

  server.onNotFound([](){
  if (!espalexa.handleAlexaApiCall(server.uri(),server.arg(0)))
  {
    handleNotFound();
  }
});

Questo perchè anche l’integrazione con Alexa avviene tramite Web Server, e alla richiesta di Alexa il vostro Esp8266 dovrebbe rispondere in modo adeguato, altrimenti non riconoscerebbe il comando.

Dopodiché, dopo aver integrato il dispositivo con la riga di codice ‘espalexa.addDevice…‘ il vostro ‘server.begin();‘ potrà essere sostituito con la riga espalexa.begin(&server); . Infatti in quest’ultima riga è già integrato il comando ‘server.begin‘.

Come al solito, tutto il procedimento è più difficile a dirsi che a farsi. Ad operazioni concluse e, come in precedenza, dopo aver aggiunto il dispositivo ad Alexa, potrete gestire il tutto con la vostra voce. Seguite gli esempi già presenti nella libreria per maggiori delucidazioni. Rimanete sintonizzati per ulteriori aggiornamenti.

4 thoughts on “ESP8266 ed EspAlexa, integrazione Alexa e Arduino IDE

    1. Anche io in passato avevo iniziato a sviluppare qualcosa del genere, ma con scarsi risultati. Avevo calcolato anche l’integrazione di servizi ‘terzi’, come per esempio : sinric . Mi piacerebbe in futuro fare una sorta di tutorial, nel caso.

      Grazie per aver postato 😉

  1. Ho seguito queste istruzioni e funziona tutto perfettamente. Grazie.
    Mi stavo chiedendo se è possibile aggiungere una funzionalità che permetta di leggere lo stato di uno switch tramite Alexa.

Lascia un commento

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