- Requisits de maquinari
- Flux del projecte per LED controlat per veu Alexa
- Configuració d’un compte d’Adafruit per a la comunicació
- Enllaça Alexa amb Adafruit IO mitjançant IFTTT
- Explicació del codi ESP12
- Treball:
En tutorials anteriors hem vist com podem construir un altaveu Amazon Echo i després com podem controlar qualsevol Raspberry Pi GPIO mitjançant Alexa Voice. Ara estem realitzant un projecte IoT per controlar els electrodomèstics des de qualsevol part del món mitjançant AlexaPi i ESP-12E (o qualsevol placa ESP).
Requisits de maquinari
- Raspberry Pi amb AVS instal·lat
- Micròfon USB 2.0 / càmera web
- ESP-12E
- Mòdul de relés
- Bombeta LED / AC
Hauríeu de tenir a punt el vostre Raspberry Pi amb el servei de veu Alexa instal·lat amb un compte de desenvolupador d'Amazon correctament configurat. Per tant, consulteu el tutorial següent per preparar els serveis d’Alexa.
- Creeu el vostre propi Amazon Echo amb un Raspberry Pi
Flux del projecte per LED controlat per veu Alexa
Seguirem aquest diagrama de flux per a aquest projecte de LED controlat per IoT:


Per tant, el procés és una cosa així. En primer lloc, es dóna entrada a Raspberry Pi mitjançant el micròfon USB. Ara, aquest enregistrament s’envia als serveis de veu d’Alexa i, després del reconeixement de veu, AVS ha enviat les dades a IFTTT i activa la condició a IFTTT. Segons la recepta, IFTTT enviarà l'ordre a Adafruit IO, que és l'agent MQTT per realitzar una acció. A continuació, l' ESP 12e rebrà les dades d'Adafruit IO mitjançant el protocol MQTT i el LED s'encendrà / apagarà segons l'ordre.
Aquí hem utilitzat una càmera web USB per a micròfon. Ja hem utilitzat el servei Alexa Voice per encendre una bombeta, però només pot manejar aparells connectats localment.
Com que suposem que ja teniu instal·lat Raspberry Pi amb els serveis d'Alexa Voice, ens quedem amb dos passos següents, que us explicarem un per un:
- Configuració d’un compte d’Adafruit per a la comunicació
- Enllaça Alexa amb Adafruit IO mitjançant IFTTT
- Pengeu el codi a ESP12
Configuració d’un compte d’Adafruit per a la comunicació
En primer lloc, farem un feed a Adafruit IO. El feed emmagatzema les dades enviades per IFTTT. Per crear un feed, seguiu aquests passos:
Pas 1: - Inicieu la sessió a Adafruit IO amb les vostres credencials o registreu-vos si no teniu cap compte.

Pas 2: - Feu clic a El meu compte -> Tauler

Pas 3: - Feu clic a Accions i creeu un tauler nou .

Pas 4: - Doneu nom i descripció al vostre feed i feu clic a Crea .

Pas 5: - Feu clic al botó Tecla i anoteu les tecles AIO, utilitzarem aquesta clau al nostre codi.


Pas 6: - Feu clic al botó "+" per crear un bloc nou i feu clic al botó Alterna.

Pas 7: - Ara, introduïu el nom del feed i feu clic a Crea . A continuació, seleccioneu el feed i feu clic a Pas següent.

Pas 8: - A la configuració del bloc, escriviu "1" al camp de text del botó ON i "0" al camp de text del botó OFF .

Pas 9: - El vostre feed s'ha creat correctament.

Enllaça Alexa amb Adafruit IO mitjançant IFTTT
Seguiu aquests passos per fer una miniaplicació / recepta a IFTTT:
Pas 1: - Inicieu sessió a IFTTT amb les vostres credencials o registreu- vos si no teniu cap compte.

Pas 2: - A Els meus applets, feu clic a Applet nou

Pas 3: - Feu clic a + això
Pas 4: cerqueu Amazon Alexa i feu-hi clic, inicieu la sessió amb els detalls del compte de desenvolupador d'Amazon.

Pas 5: - Trieu el disparador, digueu una frase específica

Pas 6: - Proporcioneu " enceneu el llum" com a frase i feu clic a Crea activador.

Pas 7: - Feu clic a + això

Pas 8: - Cerqueu Adafruit i feu-hi clic.

Pas 9: - Inicieu la sessió al compte Adafruit mitjançant les vostres credencials. Feu clic a Envia dades a Adafruit .
Seleccioneu el nom del feed que acabeu de crear a Adafruit IO. Ara, doneu "1" a les dades que vulgueu desar, això implica que el LED estarà engegat. Feu clic a Crea acció .

Pas 10: - Seguiu els mateixos passos per crear miniaplicacions per apagar el LED . Simplement poseu "0" al camp Dades per desar. Tots els passos segueixen sent els mateixos.
Heu fet la meitat del vostre treball. Ara és el moment de programar el vostre ESP-12E.
Explicació del codi ESP12
Programarem ESP12 amb Arduino IDE. Es dóna un codi complet al final d’aquest tutorial.
En primer lloc, necessitem una biblioteca Adafruit Mqtt que es pot descarregar des d’aquest enllaç. Simplement obriu Arduino IDE. Aneu a exemples -> biblioteca maft adafruit -> mqtt_esp8266
Anem a editar el codi d'acord amb les claus de la AIO i credencials de Wi-Fi.
En primer lloc, hem inclòs totes les biblioteques per a ESP8266WIFI i Adafruit MQTT .
#incloure
Hem definit el SSID i la contrasenya per al vostre Wi-Fi, des del qual voleu connectar el vostre ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Aquesta secció defineix el servidor i el port del servidor Adafruit que es fixen com a “ io.adafruit.com ” i “ 1883 ” respectivament.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Substituïu els camps següents amb el vostre nom d'usuari i les claus AIO que heu copiat del lloc d'Adafruit mentre feia el feed.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
A continuació, creeu una classe WiFiClient ESP8266 per connectar-vos al servidor MQTT.
Client WiFiClient;
Configureu la classe de client MQTT passant el client WiFi i el servidor MQTT i les dades d'inici de sessió.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Configureu un feed anomenat "light" per subscriure-us a canvis.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
A la funció de configuració, declarem el PIN de l’ESP-12e en què voleu obtenir la sortida. Estic fent servir el pin D0 com a sortida. A continuació, connectem l’ESP-12e al punt d’accés Wi-Fi.
configuració nul·la () { Serial.begin (115200); retard (10); pinMode (D0, OUTPUT); Serial.println (F ("demostració d'Adafruit MQTT")); // Connecteu-vos al punt d’accés WiFi. Serial.println (); Serial.println (); Serial.print ("Connexió a"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. ...
Configureu la subscripció MQTT per al feed lleuger.
mqtt.subscribe (& light); }
En funció de bucle , ens assegurarem que la connexió amb el servidor MQTT estigui activa mitjançant MQTT_connect (); funció.
bucle buit () { MQTT_connect ();
Ara, subscrivim el nostre feed 'light' i obtenim la cadena d'Adafruit IO i convertim aquesta cadena en número mitjançant atoi (); funcionar i escriure aquest número a PIND0 mitjançant digitalWrite (); funció.
Adafruit_MQTT_Subscribe * subscripció; while ((subscripció = mqtt.readSubscription (5000))) { if (subscripció == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Treball:
Connecteu el vostre ESP-12E amb l'ordinador portàtil i pengeu el codi següent (no oblideu editar les vostres credencials al codi).
Connecteu un LED o un relé al pin D0. Ara, assegureu-vos que el vostre servei Alexa s’executi al vostre RPi.

Per donar qualsevol ordre, cal que activeu el servei Alexa trucant a "Alexa" cada vegada que vulgueu enviar una ordre. Sentireu un so sonor. Un cop sentiu el pit, digueu " Alexa Trigger Enceneu la llum. ”Podeu veure que la llum s’encén en un moment. I després, si dieu " Alexa Trigger Apagueu la llum ", la llum s'hauria d'apagar.
Això és…. Podeu afegir més electrodomèstics al codi anterior afegint els pins GPIO de l’ESP-12E i fent diferents applets amb frases diferents a IFTTT.
Consulteu el codi complet i el vídeo de demostració a continuació. Consulteu també tots els nostres projectes domòtics aquí
