- Requisiti hardware
- Flusso di progetto per LED con controllo vocale Alexa
- Impostazione di un account Adafruit per la comunicazione
- Collega Alexa a Adafruit IO utilizzando IFTTT
- Spiegazione del codice ESP12
- Lavorando:
Nei tutorial precedenti abbiamo visto come possiamo costruire un Amazon Echo Speaker e poi come possiamo controllare qualsiasi GPIO Raspberry Pi usando Alexa Voice. Ora stiamo realizzando un progetto IoT per controllare gli elettrodomestici da qualsiasi parte del mondo utilizzando AlexaPi e ESP-12E (o qualsiasi scheda ESP).
Requisiti hardware
- Raspberry Pi con AVS installato al suo interno
- Microfono / webcam USB 2.0
- ESP-12E
- Modulo relè
- Lampadina LED / CA
Dovresti avere il tuo Raspberry Pi pronto con il servizio vocale Alexa installato al suo interno con un account sviluppatore Amazon configurato correttamente. Quindi segui il tutorial di seguito per preparare i servizi Alexa.
- Crea il tuo Amazon Echo utilizzando un Raspberry Pi
Flusso di progetto per LED con controllo vocale Alexa
Seguiremo questo diagramma di flusso per questo progetto LED controllato dall'IoT:
Quindi, il processo è qualcosa del genere. Innanzitutto, l'input viene fornito a Raspberry Pi tramite il microfono USB. Ora, questa registrazione viene inviata ai servizi vocali di Alexa e dopo il riconoscimento vocale, AVS ha inviato i dati a IFTTT e attiva la condizione in IFTTT. Secondo la ricetta, IFTTT invierà il comando ad Adafruit IO che è il broker MQTT per eseguire un'azione. Quindi ESP 12e riceverà i dati da Adafruit IO tramite protocollo MQTT e il LED si accenderà / spegnerà in base al comando.
Qui abbiamo utilizzato una WebCam USB per microfono. Abbiamo già utilizzato il servizio Alexa Voice per accendere una lampadina, ma può gestire solo dispositivi collegati localmente.
Poiché presumiamo che tu abbia già Raspberry Pi con i servizi Alexa Voice installati, quindi rimaniamo con i due passaggi seguenti, che spiegheremo uno per uno:
- Impostazione di un account Adafruit per la comunicazione
- Collega Alexa a Adafruit IO utilizzando IFTTT
- Carica il codice in ESP12
Impostazione di un account Adafruit per la comunicazione
Innanzitutto, creeremo un feed in Adafruit IO. Feed memorizza i dati inviati da IFTTT. Per creare feed segui questi passaggi:
Passaggio 1: - Accedi ad Adafruit IO con le tue credenziali o registrati se non hai un account.
Passaggio 2: - Fare clic su Il mio account -> Dashboard
Passaggio 3: - Fare clic su Azioni e creare una nuova dashboard .
Passaggio 4: - Dai un nome e una descrizione al tuo feed e fai clic su Crea .
Passaggio 5: - Fare clic sul pulsante Chiave e annotare le chiavi AIO, utilizzeremo questa chiave nel nostro codice.
Passaggio 6: - Fare clic sul pulsante "+" per creare un nuovo blocco e fare clic sul pulsante Attiva / disattiva.
Passaggio 7: - Ora, inserisci il nome del feed e fai clic su Crea . Quindi selezionare il feed e fare clic su Passaggio successivo.
Passaggio 8: - Nelle impostazioni del blocco, scrivere "1" nel campo di testo Pulsante ON e "0" nel campo di testo Pulsante OFF .
Passaggio 9: - Il tuo feed è stato creato con successo.
Collega Alexa a Adafruit IO utilizzando IFTTT
Segui questi passaggi per creare un'applet / ricetta in IFTTT:
Fase 1: - Accedere al IFTTT con le proprie credenziali o Registrati se non si dispone di un account su di esso.
Passaggio 2: - Nelle mie applet, fare clic su Nuova applet
Passaggio 3: - Fare clic su + questo
Passaggio 4: - Cerca in Amazon Alexa e fai clic su di esso, accedi con i dettagli del tuo account sviluppatore Amazon.
Passaggio 5: - Scegli il trigger, Pronuncia una frase specifica
Passaggio 6: - Fornire " accendi la luce" come frase, fare clic su Crea trigger.
Passaggio 7: - Fare clic su + quello
Passaggio 8: - Cerca Adafruit e fai clic su di esso.
Passaggio 9: - Accedi all'account Adafruit utilizzando le tue credenziali. Fare clic su Invia dati ad Adafruit .
Seleziona il nome del feed che hai appena creato in Adafruit IO. Ora, dai "1" nei dati da salvare, questo significa che il LED sarà acceso. Fare clic su Crea azione .
Passaggio 10: - Segui gli stessi passaggi per fare in modo che le applet spegnano il LED . Basta inserire "0" nel campo Dati da salvare. Tutti i passaggi rimangono gli stessi.
Hai fatto metà del tuo lavoro. Ora è il momento di programmare il tuo ESP-12E.
Spiegazione del codice ESP12
Programmeremo ESP12 con Arduino IDE. Il codice completo viene fornito alla fine di questo tutorial.
Innanzitutto, abbiamo bisogno di una libreria Adafruit Mqtt che può essere scaricata da questo link. Basta aprire Arduino IDE. Vai a esempi -> libreria mqtt adafruit -> mqtt_esp8266
Noi modificare il codice secondo le nostre chiavi AIO e le credenziali Wi-Fi.
Innanzitutto, abbiamo incluso tutte le librerie per ESP8266WIFI e Adafruit MQTT .
#includere
Abbiamo definito l'SSID e la password per il tuo Wi-Fi, da cui desideri connettere il tuo ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Questa sezione definisce il server Adafruit e la porta del server, fissati rispettivamente come " io.adafruit.com " e " 1883 ".
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Sostituisci i campi sottostanti con il tuo nome utente e le chiavi AIO che hai copiato dal sito Adafruit durante la creazione del feed.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Quindi creare una classe WiFiClient ESP8266 per connettersi al server MQTT.
Client WiFiClient;
Imposta la classe client MQTT passando il client WiFi e il server MQTT e i dettagli di accesso.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Imposta un feed chiamato "light" per iscriverti alle modifiche.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Nella funzione di configurazione, dichiariamo il PIN di ESP-12e su cui si desidera ottenere l'output. Sto usando il pin D0 come output. Quindi, colleghiamo ESP-12e al punto di accesso Wi-fi.
void setup () { Serial.begin (115200); ritardo (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT demo")); // Connetti al punto di accesso WiFi. Serial.println (); Serial.println (); Serial.print ("Connessione a"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. ...
Imposta l'abbonamento MQTT per il feed leggero.
mqtt.subscribe (& light); }
Nella funzione loop , ci assicureremo che la connessione al server MQTT sia attiva utilizzando MQTT_connect (); funzione.
void loop () { MQTT_connect ();
Ora, sottoscriviamo il nostro feed 'leggero' e otteniamo la stringa da adafruit IO e convertiamo questa stringa in numero usando atoi (); funzione e scrivi questo numero in PIND0 usando digitalWrite (); funzione.
Abbonamento Adafruit_MQTT_Subscribe *; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Lavorando:
Collega il tuo ESP-12E al laptop e carica il codice sottostante (non dimenticare di modificare le tue credenziali nel codice).
Collegare un LED o un relè al pin D0. Ora assicurati che il tuo servizio Alexa sia in esecuzione sul tuo RPi.
Per dare qualsiasi comando devi riattivare il servizio Alexa chiamando "Alexa" ogni volta che vuoi inviare un comando. Sentirai un segnale acustico. Quando senti il segnale acustico, dì " Alexa Trigger Turn on the Light. "Puoi vedere la luce che si accende in un attimo. E poi se dici " Alexa Trigger Spegni la luce ", la luce dovrebbe spegnersi.
Questo è tutto…. Puoi aggiungere più dispositivi nel codice sopra aggiungendo i pin GPIO di ESP-12E e creando diverse applet con frasi diverse in IFTTT.
Controlla il codice completo e il video dimostrativo di seguito. Controlla anche tutti i nostri progetti di automazione domestica qui