- Aparatinės įrangos reikalavimai
- „Alexa“ valdomo balso šviesos diodo projekto srautas
- „Adafruit“ paskyros sukūrimas bendravimui
- Susiekite „Alexa“ su „Adafruit IO“ naudodami IFTTT
- ESP12 kodo paaiškinimas
- Darbas:
Ankstesnėse pamokose mes matėme, kaip mes galime sukurti „Amazon Echo“ garsiakalbį ir kaip tada valdyti bet kurį „Raspberry Pi GPIO“ naudodami „Alexa Voice“. Dabar vykdome IoT projektą, norėdami valdyti buitinę techniką iš bet kurios pasaulio vietos naudodami „AlexaPi“ ir ESP-12E (arba bet kurią ESP plokštę).
Aparatinės įrangos reikalavimai
- „Raspberry Pi“ su jame įdiegtu AVS
- USB 2.0 mikrofonas / interneto kamera
- ESP-12E
- Relės modulis
- LED / AC lemputė
Turėtumėte paruošti savo „Raspberry Pi“ su įdiegta „Alexa“ balso paslauga su tinkamai sukonfigūruota „Amazon“ kūrėjo paskyra. Taigi atlikite toliau pateiktą mokymo programą, kad parengtumėte „Alexa“ paslaugas.
- Sukurkite savo „Amazon Echo“ naudodami „Raspberry Pi“
„Alexa“ valdomo balso šviesos diodo projekto srautas
Vadovausimės šia IoT valdomų LED projektų schema:
Taigi, procesas yra kažkas tokio. Pirma, įvestis „Raspberry Pi“ per USB mikrofoną. Dabar šis įrašas siunčiamas „Alexa“ balso tarnyboms, o po balso atpažinimo AVS nusiuntė duomenis į IFTTT ir tai sukelia IFTTT sąlygą. Pagal receptą IFTTT nusiųs komandą „ Adafruit IO“, kuri yra MQTT brokeris atlikti veiksmus. Tada ESP 12e gaus duomenis iš „Adafruit IO“ per MQTT protokolą, o šviesos diodas įsijungs / išsijungs pagal komandą.
Čia mes naudojome USB interneto kamerą mikrofonui. Mes jau naudojome „ Alexa Voice“ paslaugą, kad įjungtume lemputę, tačiau ji gali dirbti tik su prietaisais, kurie yra prijungti vietoje.
Kadangi manome, kad jūs jau turite „Raspberry Pi“ su įdiegtomis „Alexa Voice“ paslaugomis, mums lieka du žingsniai, kuriuos paaiškinsime po vieną:
- „Adafruit“ paskyros sukūrimas bendravimui
- Susiekite „Alexa“ su „Adafruit IO“ naudodami IFTTT
- Įkelkite kodą ESP12
„Adafruit“ paskyros sukūrimas bendravimui
Pirmiausia padarysime pašarą „ Adafruit IO“. „Feed“ saugo IFTTT siunčiamus duomenis. Norėdami pateikti sklaidos kanalą, atlikite šiuos veiksmus:
1 žingsnis: - Prisijunkite prie „Adafruit IO“ naudodami savo kredencialus arba prisiregistruokite, jei neturite paskyros.
2 žingsnis: - Spustelėkite Mano paskyra -> Informacijos suvestinė
3 žingsnis: - Spustelėkite Veiksmai ir sukurkite naują informacijos suvestinę .
4 žingsnis: - Nurodykite kanalui vardą ir aprašą ir spustelėkite Sukurti .
5 žingsnis: - Spustelėkite mygtuką Raktas ir užsirašykite AIO raktus, mes naudosime šį raktą savo kode.
6 žingsnis: - Spustelėkite mygtuką „+“, kad sukurtumėte naują bloką, ir spustelėkite mygtuką Perjungti.
7 žingsnis: - Dabar įveskite kanalo pavadinimą ir spustelėkite Sukurti . Tada pasirinkite kanalą ir spustelėkite Kitas žingsnis.
8 žingsnis: - Bloko nustatymuose „ ON“ teksto lauke parašykite „1“ ir lauke „ Button OFF “ teksto lauke „0“.
9 veiksmas: - jūsų kanalas sėkmingai sukurtas.
Susiekite „Alexa“ su „Adafruit IO“ naudodami IFTTT
Atlikite šiuos veiksmus, norėdami sukurti programėlę / receptą IFTTT:
1 žingsnis: - Prisijunkite prie IFTTT naudodami savo kredencialus arba prisiregistruokite, jei neturite paskyros.
2 žingsnis: - „ Mano programėlėse“ spustelėkite „ Nauja programėlė“
3 žingsnis: - Spustelėkite + tai
4 žingsnis: - Ieškokite „Amazon Alexa“ ir spustelėkite jį, prisijunkite naudodami savo „Amazon“ kūrėjo paskyros informaciją.
5 žingsnis: - Pasirinkite gaiduką, pasakykite konkrečią frazę
6 žingsnis: - kaip frazę nurodykite „ įjungti šviesą“ , spustelėkite „ Sukurti paleidiklį“.
7 žingsnis: - Spustelėkite + tai
8 žingsnis: - Ieškokite „ Adafruit“ ir spustelėkite jį.
9 žingsnis: - Prisijunkite prie „Adafruit“ paskyros naudodami savo kredencialus. Spustelėkite Siųsti duomenis „Adafruit“ .
Pasirinkite sklaidos kanalo pavadinimą, kurį ką tik sukūrėte „Adafruit IO“. Dabar įrašykite „1“ duomenyse, kad išsaugotumėte, tai reiškia, kad šviesos diodas bus įjungtas. Spustelėkite Sukurti veiksmą .
10 žingsnis: - atlikite tuos pačius veiksmus, kad programėlės išjungtų šviesos diodą . Tiesiog įrašykite „0“ į lauką Duomenys išsaugoti. Visi žingsniai lieka tie patys.
Jūs atlikote pusę savo darbo. Dabar atėjo laikas užprogramuoti ESP-12E.
ESP12 kodo paaiškinimas
Programuosime ESP12 su „Arduino IDE“. Pilnas kodas pateikiamas šios pamokos pabaigoje.
Pirma, mums reikia „ Adafruit Mqtt“ bibliotekos, kurią galima atsisiųsti iš šios nuorodos. Tiesiog atidarykite „Arduino IDE“. Eikite į pavyzdžius -> „adafruit mqtt library“ -> mqtt_esp8266
Mes redaguoti šį kodą pagal mūsų AIO raktus ir "Wi-Fi" kredencialus.
Pirmiausia įtraukėme visas ESP8266WIFI ir „Adafruit MQTT“ bibliotekas .
# įtraukti
Mes nustatėme jūsų „Wi-Fi“, iš kurio norite prijungti ESP-12e, SSID ir slaptažodį.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Šiame skyriuje apibrėžiamas „Adafruit“ serveris ir serverio prievadas, kurie yra atitinkamai „ io.adafruit.com “ ir „ 1883 “.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Žemiau esančius laukus pakeiskite savo vartotojo vardu ir AIO raktais, kuriuos nukopijavote iš „Adafruit“ svetainės, kai kuriate kanalą.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Tada sukurkite ESP8266 „WiFiClient“ klasę, kad prisijungtumėte prie MQTT serverio.
„WiFiClient“ klientas;
Nustatykite „MQTT“ kliento klasę, įvesdami „WiFi“ klientą ir MQTT serverį bei prisijungimo duomenis.
„Adafruit_MQTT_Client mqtt“ (& klientas, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Norėdami užsisakyti pakeitimus, nustatykite „light“ kanalą.
„Adafruit_MQTT_Subscribe light“ = „Adafruit_MQTT_Subscribe“ (& mqtt, AIO_USERNAME "/ feeds / light");
Be sąrankos funkcijai mes pareiškiame PIN ESP-12e, kurioje norite gauti išėjimą. Kaip išvestį naudoju D0 kaištį. Tada mes prijungiame ESP-12e prie „Wi-Fi“ prieigos taško.
negaliojanti sąranka () { Serial.begin (115200); vėlavimas (10); pinMode (D0, OUTPUT); Serial.println (F („Adafruit MQTT demo“)); // Prisijunkite prie „WiFi“ prieigos taško. Serijinis.println (); Serijinis.println (); Serial.print („Prisijungimas prie“); Serial.println (WLAN_SSID); „WiFi.begin“ (WLAN_SSID, WLAN_PASS); o („WiFi.status ()! = WL_CONNECTED] { …. …. …
Nustatykite lengvo tiekimo MQTT prenumeratą.
mqtt.subscribe (& light); }
Naudodamiesi ciklo funkcija, mes užtikrinsime, kad ryšys su MQTT serveriu yra gyvas, naudodami „MQTT_connect ()“; funkcija.
void loop () { MQTT_connect ();
Dabar mes užsiprenumeruojame „lengvąjį“ tiekimą ir gauname eilutę iš „Adafruit IO“ ir paverčiame šią eilutę į skaičių naudodami atoi (); funkcija ir užrašykite šį numerį į PIND0 naudodami „ digitalWrite“ (); funkcija.
„Adafruit_MQTT_Subscribe *“ prenumerata; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:"))); Serijinis.println ((char *) šviesa.paleista); uint16_t num = atoi ((char *) šviesa.paskelbta); „digitalWrite“ (16, skaičius); }
Darbas:
Prijunkite ESP-12E su nešiojamuoju kompiuteriu ir įkelkite žemiau esantį kodą (nepamirškite redaguoti savo kredencialų kode).
Prijunkite šviesos diodą arba relę prie D0 kaiščio. Dabar įsitikinkite, kad „Alexa“ paslauga veikia jūsų RPi.
Norėdami duoti bet kokią komandą, turite pažadinti „Alexa“ paslaugą skambindami „Alexa“ kiekvieną kartą, kai norite išsiųsti komandą. Išgirsite pyptelėjimą. Išgirdę pypsėjimą, pasakykite „ Alexa Trigger“ Įjunkite šviesą. Per akimirką galite pamatyti, kaip šviesa įsijungia. Ir tada, jei sakote „ Alexa Trigger Turn off Light “, šviesa turėtų išsijungti.
Viskas…. Galite pridėti daugiau prietaisų pagal pirmiau pateiktą kodą, pridėdami ESP-12E GPIO kaiščius ir IFTTT sukurdami skirtingas programėles su skirtingomis frazėmis.
Žemiau patikrinkite visą kodą ir demonstracinį vaizdo įrašą. Čia taip pat patikrinkite visus mūsų namų automatikos projektus