- Laitteistovaatimukset
- Projektivirta Alexa-ääniohjatulle LED-valolle
- Perustetaan Adafruit-tili viestintää varten
- Yhdistä Alexa Adafruit IO: een IFTTT: n avulla
- ESP12-koodin selitys
- Työskentely:
Aikaisemmissa opetusohjelmissa olemme nähneet, kuinka voimme rakentaa Amazon Echo -kaiuttimen ja miten sitten hallita mitä tahansa Raspberry Pi GPIO: ta Alexa Voicella. Nyt teemme IoT-projektin kodinkoneiden ohjaamiseksi mistä päin maailmaa tahansa, AlexaPi: n ja ESP-12E: n (tai minkä tahansa ESP-kortin) avulla.
Laitteistovaatimukset
- Raspberry Pi, johon on asennettu AVS
- USB 2.0 -mikrofoni / verkkokamera
- ESP-12E
- Relemoduuli
- LED / AC-lamppu
Sinun pitäisi olla Raspberry Pi valmiina Alexa-puhepalvelun kanssa asennettuna oikein määritetyllä Amazon-kehittäjätilillä. Joten käy läpi alla oleva opetusohjelma saadaksesi Alexa-palvelut valmiiksi.
- Rakenna oma Amazon Echo Raspberry Pi: llä
Projektivirta Alexa-ääniohjatulle LED-valolle
Seuraamme tätä vuokaaviota tälle IoT-ohjatulle LED-projektille:
Joten prosessi on jotain tällaista. Ensin syötetään Vadelma Pi: lle USB- mikrofonin kautta. Nyt tämä tallenne lähetetään Alexan puhepalveluihin ja äänentunnistuksen jälkeen AVS lähetti tiedot IFTTT: lle ja se laukaisee ehton IFTTT: ssä. Reseptin mukaan IFTTT lähettää komennon Adafruit IO: lle, joka on MQTT-välittäjä suorittamaan toiminnon. Sitten ESP 12e vastaanottaa tietoja Adafruit IO: lta MQTT-protokollan kautta ja LED syttyy / sammuu komennon mukaisesti.
Tässä olemme käyttäneet USB-verkkokameraa mikrofonille. Olemme jo käyttäneet Alexa Voice -palvelua polttimon kytkemiseen päälle, mutta se pystyy käsittelemään vain paikallisesti kytkettyjä laitteita.
Koska oletamme, että sinulla on jo Raspberry Pi, johon on asennettu Alexa Voice -palvelut, jäljellä on kaksi vaihetta, jotka selitämme yksi kerrallaan:
- Perustetaan Adafruit-tili viestintää varten
- Yhdistä Alexa Adafruit IO: een IFTTT: n avulla
- Lähetä koodi ESP12: ssa
Perustetaan Adafruit-tili viestintää varten
Ensin teemme syötteen Adafruit IO: ssa. Feed tallentaa IFTTT: n lähettämät tiedot. Voit tehdä syötteen seuraavasti:
Vaihe 1: - Kirjaudu Adafruit IO : hon kirjautumistiedoillasi tai rekisteröidy, jos sinulla ei ole tiliä.
Vaihe 2: - Napsauta Oma tili -> Hallintapaneeli
Vaihe 3: - Napsauta Toiminnot ja luo uusi hallintapaneeli .
Vaihe 4: - Anna syötteelle nimi ja kuvaus ja napsauta Luo .
Vaihe 5: - Napsauta Avain- painiketta ja kirjoita AIO-avaimet muistiin, käytämme tätä avainta koodissamme.
Vaihe 6: - Luo uusi lohko napsauttamalla + -painiketta ja napsauta Toggle-painiketta.
Vaihe 7: - Anna nyt syötteen nimi ja napsauta Luo . Valitse sitten syöte ja napsauta Seuraava vaihe.
Vaihe 8: - Lohkoasetuksissa Kirjoita '1' Button ON -tekstikenttään ja '0' Button OFF Text -kenttään.
Vaihe 9: - Syötteen luominen onnistui.
Yhdistä Alexa Adafruit IO: een IFTTT: n avulla
Noudata näitä ohjeita, jos haluat luoda Appletin / Reseptin IFTTT: ssä:
Vaihe 1: - Kirjaudu IFTTT kanssa tunnistetiedot tai Rekisteröidy jos sinulla ei ole tiliä siitä.
Vaihe 2: - Napsauta Omat sovelmat -kohdassa Uusi sovelma
Vaihe 3: - Napsauta + tätä
Vaihe 4: - Hae Amazon Alexasta ja napsauta sitä, kirjaudu sisään Amazon-kehittäjätilisi tiedoilla.
Vaihe 5: - Valitse liipaisin, Sano tietty lause
Vaihe 6: - Antaa ” valon päälle” , kuten sanonta napsauttamalla Luo Trigger.
Vaihe 7: - Napsauta + that
Vaihe 8: - Etsi Adafruitista ja napsauta sitä.
Vaihe 9: - Kirjaudu Adafruit-tilille kirjautumistiedoillasi. Napsauta Lähetä tiedot Adafruitille .
Valitse syötteen nimi, jonka olet juuri luonut Adafruit IO: ssa. Anna nyt '1' dataa tallentaaksesi, mikä tarkoittaa, että LED palaa. Napsauta Luo toiminto .
Vaihe 10: - Sammuta LED-valot pois päältä noudattamalla samoja ohjeita. Laita vain "0" Data to save -kenttään. Kaikki vaiheet pysyvät samana.
Olet tehnyt puolet työstäsi. Nyt on aika ohjelmoida ESP-12E.
ESP12-koodin selitys
Ohjelmoimme ESP12: n Arduino IDE: llä. Täydellinen koodi annetaan tämän opetusohjelman lopussa.
Ensinnäkin tarvitsemme Adafruit Mqtt -kirjaston, joka voidaan ladata tältä linkiltä. Avaa vain Arduino IDE. Siirry esimerkkeihin -> adafruit mqtt -kirjasto -> mqtt_esp8266
Tulemme muokata tätä koodia saamiemme AIO avaimet ja Wi-Fi-tunnuksia.
Ensinnäkin sisällytimme kaikki ESP8266WIFI: n ja Adafruit MQTT: n kirjastot .
#sisältää
Me määritelty SSID ja salasana Wi-Fi, josta haluat liittää ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Tässä osassa määritetään Adafruit-palvelin ja palvelinportti, jotka on korjattu vastaavasti nimellä " io.adafruit.com " ja " 1883 ".
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Korvaa alla olevat kentät käyttäjätunnuksellasi ja AIO-avaimillasi, jotka olet kopioinut Adafruit-sivustolta Syötettä tehdessäsi.
# määrittele AIO_USERNAME "********" # määrittele AIO_KEY "************************
Luo sitten ESP8266 WiFiClient -luokka muodostaaksesi yhteyden MQTT-palvelimeen.
WiFiClient-asiakas;
Määritä MQTT-asiakasluokka syöttämällä WiFi-asiakas ja MQTT-palvelin sekä kirjautumistiedot.
Adafruit_MQTT_Client mqtt (& asiakas, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Määritä syöte nimeltä "kevyt" muutosten tilaamista varten.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ syötteet / light");
Vuonna setup toiminto, me julistamme PIN ESP-12e, johon haluat saada lähtöön. Käytän D0-nastaa ulostulona. Sitten yhdistämme ESP-12e: n Wi-Fi-tukiasemaan.
void setup () { Sarja.alku (115200); viive (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT -demo")); // Yhdistä WiFi-tukiasemaan. Sarja.println (); Sarja.println (); Serial.print ("Yhdistetään kohteeseen"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); kun (WiFi.status ()! = WL_CONNECTED) { …. …. …
Määritä MQTT-tilaus kevyelle syötteelle.
mqtt.subscribe (& light); }
In silmukka toiminto, me varmistaa, että yhteys MQTT palvelin on elossa käyttäen MQTT_connect (); toiminto.
void loop () { MQTT_connect ();
Nyt me tilata meidän 'kevyt' rehujen ja saada merkkijonon Adafruit IO ja muuntaa tämän merkkijonon numeron atoi (); toiminto ja kirjoita tämä numero PIND0: een digitaalisella kirjoituksella (); toiminto.
Adafruit_MQTT_Subscribe * -tilaus; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:"))); Sarja.println ((char *) kevyt. Jatkettu); uint16_t numero = atoi ((char *) kevyt. jatkettu); digitalWrite (16, numero); }
Työskentely:
Yhdistä ESP-12E kannettavaan tietokoneeseen ja lataa koodi alle (älä unohda muokata tunnistetietoja koodissa).
Liitä LED tai rele napaan D0. Varmista nyt, että Alexa-palvelusi on käynnissä RPi-laitteellasi.
Jos haluat antaa minkä tahansa komennon, sinun täytyy herättää Alexa-palvelu soittamalla “Alexalle” aina, kun haluat lähettää komennon. Kuulet äänimerkin. Kun kuulet äänimerkin, sano " Alexa Trigger Kytke valo päälle. ”Voit nähdä, että valo syttyy hetkessä. Ja jos sanot “ Alexa Trigger Sammuta valo ”, valon pitäisi sammua.
Se siitä…. Voit lisätä laitteita yllä olevaan koodiin lisäämällä ESP-12E: n GPIO-nastat ja tekemällä erilaisia sovelmia eri lauseilla IFTTT: ssä.
Tarkista koko koodi ja esittelyvideo alla. Tarkista myös kaikki kodiautomaatioprojektimme täältä