- Aparatūras prasības
- Projekta plūsma Alexa balss kontrolētai LED
- Adafruit konta izveide saziņai
- Saistiet Alexa ar Adafruit IO, izmantojot IFTTT
- ESP12 koda skaidrojums
- Darbs:
Iepriekšējās apmācībās mēs esam redzējuši, kā mēs varam izveidot Amazon Echo skaļruni un kā tad mēs varam kontrolēt jebkuru Raspberry Pi GPIO, izmantojot Alexa Voice. Tagad mēs veidojam IoT projektu, lai kontrolētu sadzīves tehniku no jebkuras vietas pasaulē, izmantojot AlexaPi un ESP-12E (vai jebkuru ESP paneli).
Aparatūras prasības
- Aveņu Pi ar tajā instalētu AVS
- USB 2.0 mikrofons / tīmekļa kamera
- ESP-12E
- Releja modulis
- LED / maiņstrāvas spuldze
Jums vajadzētu būt gatavam Raspberry Pi ar instalētu Alexa balss pakalpojumu ar pareizi konfigurētu Amazon izstrādātāja kontu. Tāpēc, lai sagatavotos Alexa pakalpojumiem, apmeklējiet tālāk sniegto apmācību.
- Izveidojiet savu Amazon Echo, izmantojot Raspberry Pi
Projekta plūsma Alexa balss kontrolētai LED
Mēs sekosim šai IoT kontrolētā LED projekta shēmai:
Tātad, process ir kaut kas līdzīgs šim. Pirmkārt, Raspberry Pi tiek ievadīts caur USB mikrofonu. Tagad šis ieraksts tiek nosūtīts Alexa balss dienestiem, un pēc balss atpazīšanas AVS nosūtīja datus IFTTT, un tas izraisa IFTTT nosacījumu. Saskaņā ar recepti IFTTT nosūtīs komandu Adafruit IO, kas ir MQTT brokeris, lai veiktu darbību. Tad ESP 12e saņems datus no Adafruit IO, izmantojot MQTT protokolu, un gaismas diode ieslēgsies / izslēgsies atbilstoši komandai.
Šeit mēs izmantojām USB tīmekļa kameru mikrofonam. Mēs jau izmantojām Alexa Voice pakalpojumu, lai ieslēgtu spuldzi, taču tas var darboties tikai ar ierīcēm, kas ir savienotas lokāli.
Tā kā mēs pieņemam, ka jums jau ir Raspberry Pi ar instalētiem Alexa Voice pakalpojumiem, mēs paliksim zem diviem soļiem, kurus mēs paskaidrosim pa vienam:
- Adafruit konta izveide saziņai
- Saistiet Alexa ar Adafruit IO, izmantojot IFTTT
- Augšupielādējiet kodu ESP12
Adafruit konta izveide saziņai
Pirmkārt, mēs izveidosim padevi Adafruit IO. Plūsmā tiek saglabāti IFTTT nosūtītie dati. Lai izveidotu plūsmu, rīkojieties šādi:
1. solis: - piesakieties Adafruit IO, izmantojot savus akreditācijas datus, vai reģistrējieties, ja jums nav konta.
2. solis: - noklikšķiniet uz Mans konts -> Informācijas panelis
3. solis: - noklikšķiniet uz Darbības un izveidojiet jaunu informācijas paneli .
4. solis: - Norādiet savai plūsmai nosaukumu un aprakstu un noklikšķiniet uz Izveidot .
5. solis: - Noklikšķiniet uz pogas Atslēga un pierakstiet AIO taustiņus, mēs izmantosim šo atslēgu mūsu kodā.
6. solis: - noklikšķiniet uz pogas “+”, lai izveidotu jaunu bloku, un noklikšķiniet uz pogas Pārslēgt.
7. solis: - Tagad ievadiet plūsmas nosaukumu un noklikšķiniet uz Izveidot . Pēc tam atlasiet plūsmu un noklikšķiniet uz Nākamā darbība.
8. solis: - Bloka iestatījumos rakstiet “1” teksta laukā “ Poga ON ” un “0” laukā “ Poga OFF” .
9. solis: - jūsu plūsma ir veiksmīgi izveidota.
Saistiet Alexa ar Adafruit IO, izmantojot IFTTT
Veiciet šīs darbības, lai IFTTT izveidotu sīklietotni / recepti:
1. solis: - Piesakieties IFTTT, izmantojot savus akreditācijas datus, vai reģistrējieties, ja jums nav konta.
2. solis: - Manās sīklietotnēs noklikšķiniet uz Jauna sīklietotne
3. solis: - noklikšķiniet uz + this
4. solis: - meklējiet Amazon Alexa un noklikšķiniet uz tā, pierakstieties ar savu amazon izstrādātāja konta informāciju.
5. solis: - Izvēlieties aktivizētāju, pasakiet konkrētu frāzi
6. solis: - kā frāzi norādiet “ ieslēgt gaismu” , noklikšķiniet uz Izveidot trigeri.
7. solis: - noklikšķiniet uz + tas
8. solis: - meklējiet Adafruit un noklikšķiniet uz tā.
9. solis: - Piesakieties Adafruit kontā, izmantojot savus akreditācijas datus. Noklikšķiniet uz Sūtīt datus Adafruit .
Atlasiet plūsmas nosaukumu, kuru tikko izveidojāt Adafruit IO. Tagad, saglabājot datus, norādiet “1”, tas nozīmē, ka gaismas diode būs ieslēgta. Noklikšķiniet uz Izveidot darbību .
10. solis: - Izpildiet tās pašas darbības, lai izveidotu sīklietotnes, lai izslēgtu LED . Vienkārši ievadiet “0” laukā Dati, lai saglabātu. Visi soļi paliek nemainīgi.
Jūs esat paveicis pusi sava darba. Ir pienācis laiks ieprogrammēt ESP-12E.
ESP12 koda skaidrojums
Mēs ieprogrammēsim ESP12 ar Arduino IDE. Pilns kods ir norādīts šīs apmācības beigās.
Pirmkārt, mums ir nepieciešama Adafruit Mqtt bibliotēka, kuru var lejupielādēt no šīs saites. Vienkārši atveriet Arduino IDE. Pāriet uz piemēriem -> adafruit mqtt bibliotēka -> mqtt_esp8266
Mēs rediģēsim šo kodu atbilstoši mūsu AIO taustiņiem un Wi-Fi akreditācijas datiem.
Pirmkārt, mēs iekļāvām visas ESP8266WIFI un Adafruit MQTT bibliotēkas .
# iekļaut
Mēs definējām jūsu Wi-Fi SSID un paroli, no kuras vēlaties savienot savu ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Šajā sadaļā ir definēts Adafruit serveris un servera ports, kas attiecīgi ir fiksēti kā “ io.adafruit.com ” un “ 1883 ”.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Zemāk esošos laukus aizstājiet ar savu lietotājvārdu un AIO atslēgām, kuras esat kopējis no Adafruit vietnes, veidojot plūsmu.
#define AIO_USERNAME "********" #define AIO_KEY "*****************************
Pēc tam izveidojiet ESP8266 WiFiClient klasi, lai izveidotu savienojumu ar MQTT serveri.
WiFiClient klients;
Iestatiet MQTT klienta klasi, ievadot WiFi klientu un MQTT serveri un pieteikšanās datus.
Adafruit_MQTT_Client mqtt (& klients, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Lai abonētu izmaiņas, iestatiet plūsmu ar nosaukumu “light”.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Pēc iestatīšanas funkciju, mēs paziņojam PIN kodu ESP-12.e, uz kuru vēlaties saņemt produkciju. Kā izvadi izmantoju D0 tapu. Pēc tam mēs savienojam ESP-12e ar Wi-Fi piekļuves punktu.
void setup () { Serial.begin (115200); kavēšanās (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT demonstrācija")); // Savienojuma izveide ar WiFi piekļuves punktu. Seriālais.println (); Seriālais.println (); Serial.print ("Savienojums ar"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); kamēr (WiFi.status ()! = WL_CONNECTED) { …. …. …
Iestatiet MQTT abonementu vieglai padevei.
mqtt.subscribe (& light); }
In cilpas funkciju, mēs nodrošinātu to, ka savienojums ar MQTT serveris ir dzīvs, izmantojot MQTT_connect (); funkciju.
void loop () { MQTT_connect ();
Tagad mēs abonējam mūsu 'vieglo' plūsmu un iegūstam virkni no adafruit IO un pārvēršam šo virkni par numuru, izmantojot atoi (); funkcija un ierakstiet šo numuru PIND0, izmantojot digitalWrite (); funkciju.
Adafruit_MQTT_Subscribe * abonements; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:"))); Seriāls.println ((char *) gaisma. Ilgstoši); uint16_t num = atoi ((char *) gaisma. ilgstoši); digitalWrite (16, num); }
Darbs:
Savienojiet savu ESP-12E ar klēpjdatoru un augšupielādējiet zem koda (neaizmirstiet rediģēt akreditācijas datus kodā).
Pievienojiet gaismas diodi vai releju kontaktligzdai D0. Tagad pārliecinieties, vai jūsu Alexa pakalpojums darbojas jūsu RPi.
Lai dotu jebkuru komandu, jums ir nepieciešams pamodināt Alexa pakalpojumu, katru reizi zvanot uz Alexa, katru reizi, kad vēlaties nosūtīt komandu. Jūs dzirdēsiet pīkstiena skaņu. Kad dzirdat pīkstienu, sakiet: “ Alexa Trigger Turn the Light. "Jūs varat redzēt, kā gaisma ieslēdzas mirkļa laikā. Un tad, ja jūs sakāt “ Alexa Trigger Turn off Light ”, gaismai vajadzētu izslēgties.
Tieši tā…. Iepriekš minētajā kodā varat pievienot vairāk ierīču, pievienojot ESP-12E GPIO tapas un IFTTT izveidojot dažādas sīklietotnes ar dažādām frāzēm.
Tālāk pārbaudiet pilnu kodu un demonstrācijas video. Šeit pārbaudiet arī visus mūsu mājas automatizācijas projektus