- Hardverkövetelmények
- Projektáramlás az Alexa hangvezérelt LED-hez
- Adafruit-fiók beállítása a kommunikációhoz
- Csatlakoztassa Alexát az Adafruit IO-hoz az IFTTT használatával
- ESP12 kód magyarázat
- Dolgozó:
Korábbi oktatóprogramokban láthattuk, hogyan építhetünk egy Amazon Echo hangszórót, majd hogyan vezérelhetünk bármilyen Raspberry Pi GPIO-t az Alexa Voice használatával. Most egy IoT projektet készítünk a háztartási gépek irányítására a világ bármely pontjáról az AlexaPi és az ESP-12E (vagy bármely ESP kártya) segítségével.
Hardverkövetelmények
- Raspberry Pi, benne AVS
- USB 2.0 mikrofon / webkamera
- ESP-12E
- Relé modul
- LED / AC izzó
A Raspberry Pi-t készen kell tartania, az Alexa hangszolgáltatással kell telepíteni egy megfelelően konfigurált Amazon fejlesztői fiókkal. Tehát menjen át az alábbi bemutatón, hogy készen álljon az Alexa szolgáltatásokra.
- Készítsen saját Amazon Echo-t egy Raspberry Pi segítségével
Projektáramlás az Alexa hangvezérelt LED-hez
Az IoT által vezérelt LED-projekt esetében ezt a folyamatábrát fogjuk követni:
Tehát a folyamat valami ilyesmi. Először is, a bemenet a Raspberry Pi-hez az USB mikrofonon keresztül történik. Most ezt a felvételt elküldjük az Alexa hangszolgáltatásainak, és a hangfelismerés után az AVS elküldte az adatokat az IFTTT-nek, és ez kiváltja az IFTTT állapotát. A recept szerint az IFTTT elküldi a parancsot az Adafruit IO-nak, amely az MQTT bróker egy művelet végrehajtására. Ezután az ESP 12e megkapja az Adafruit IO-tól az adatokat az MQTT protokollon keresztül, és a LED a parancsnak megfelelően be- / kikapcsol.
Itt egy USB webkamerát használtunk a mikrofonhoz. Az Alexa Voice szolgáltatást már használtuk az izzó bekapcsolásához, de az csak a helyileg csatlakoztatott készülékeket képes kezelni.
Mivel feltételezzük, hogy a Raspberry Pi már telepítve van az Alexa Voice szolgáltatásokkal, így két lépés alatt maradunk, amelyeket egyesével elmagyarázunk:
- Adafruit-fiók beállítása a kommunikációhoz
- Csatlakoztassa Alexát az Adafruit IO-hoz az IFTTT használatával
- Töltsön fel kódot az ESP12-ben
Adafruit-fiók beállítása a kommunikációhoz
Először elkészítünk egy tápszert az Adafruit IO-ban. A hírcsatorna tárolja az IFTTT által küldött adatokat. A hírcsatorna elkészítéséhez kövesse az alábbi lépéseket:
1. lépés: - Jelentkezzen be az Adafruit IO-ba a hitelesítő adatokkal, vagy regisztráljon, ha nincs fiókja.
2. lépés: - Kattintson a Saját fiók -> Irányítópult elemre
3. lépés: - Kattintson a Műveletek elemre, és hozzon létre egy új irányítópultot .
4. lépés: - Adjon nevet és leírást a hírcsatornának, és kattintson a Létrehozás gombra.
5. lépés: - Kattintson a Kulcs gombra, és jegyezze fel az AIO kulcsokat, ezt a kulcsot fogjuk használni a kódunkban.
6. lépés: - Kattintson a „+” gombra egy új blokk létrehozásához, majd kattintson a Váltás gombra.
7. lépés: - Most írja be a hírcsatorna nevét, és kattintson a Létrehozás gombra. Ezután válassza ki a hírcsatornát, és kattintson a Következő lépés gombra.
8. lépés: - A blokkbeállításokban írja be az „1” -t a Gomb BE szövegmezőbe és a „0” értéket a Gomb KI szövegmezőbe.
9. lépés: - A hírcsatorna sikeresen létrehozva.
Csatlakoztassa Alexát az Adafruit IO-hoz az IFTTT használatával
Kövesse az alábbi lépéseket kisalkalmazás / recept készítéséhez az IFTTT-ben:
1. lépés: - Bejelentkezés IFTTT a hitelesítő adatait vagy Regisztráció ha nem rendelkezik fiókkal rajta.
2. lépés: - A Saját kisalkalmazásokon kattintson az Új kisalkalmazások elemre
3. lépés: - Kattintson a + erre gombra
4. lépés: - Keressen az Amazon Alexában, és kattintson rá, jelentkezzen be az Amazon fejlesztői fiókjának adataival.
5. lépés: - Válassza ki a ravaszt, Mondjon egy konkrét kifejezést
6. lépés: - Adja meg a „ kapcsolja be a villanyt” kifejezést, kattintson a Trigger létrehozása gombra.
7. lépés: - Kattintson a + gombra
8. lépés: - Keressen rá az Adafruitra, és kattintson rá.
9. lépés: - Jelentkezzen be az Adafruit-fiókba a hitelesítő adatok használatával. Kattintson az Adatok küldése az Adafruit oldalra .
Válassza ki a hírcsatorna nevét, amelyet az Adafruit IO-ban hozott létre. Most adjon meg '1' értéket az adatok mentéséhez, ez azt jelenti, hogy a LED világít. Kattintson a Művelet létrehozása elemre.
10. lépés: - Ugyanezeket a lépéseket követve készítsen kisalkalmazásokat a LED kikapcsolására . Csak tegye a „0” értéket a Mentés mezőbe. Minden lépés ugyanaz marad.
Munkája felét elvégezte. Itt az ideje az ESP-12E programozásának.
ESP12 kód magyarázat
Az ESP12-et az Arduino IDE-vel programozzuk. A teljes kód a bemutató végén található.
Először is szükségünk van egy Adafruit Mqtt könyvtárra, amely letölthető erről a linkről. Csak nyissa meg az Arduino IDE-t. Ugrás a példákra -> adafruit mqtt könyvtár -> mqtt_esp8266
Ezt a kódot az AIO kulcsok és a Wi-Fi hitelesítő adatok alapján szerkesztjük.
Először az ESP8266WIFI és az Adafruit MQTT összes könyvtárát felvettük .
#include
Mi határozza meg az SSID és a jelszó a Wi-Fi, ahonnan szeretne csatlakozni az ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Ez a szakasz meghatározza az Adafruit kiszolgálót és a kiszolgáló portot, amelyek “ io.adafruit.com ”, illetve “ 1883 ” javítással vannak rögzítve.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Cserélje ki az alábbi mezőket a felhasználónevével és az AIO kulcsokkal, amelyeket az Adafruit webhelyéről másolt a Feed készítése közben.
#define AIO_USERNAME "********" #define AIO_KEY "*******************************"
Ezután hozzon létre egy ESP8266 WiFiClient osztályt, hogy csatlakozzon az MQTT szerverhez.
WiFiClient kliens;
Állítsa be az MQTT kliens osztályt a WiFi kliens és az MQTT szerver és a bejelentkezési adatok megadásával.
Adafruit_MQTT_Client mqtt (& kliens, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Állítson be egy „light” nevű hírcsatornát a változásokra való feliratkozáshoz.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
A beállítási funkcióban deklaráljuk az ESP-12e PIN kódját, amelyen kimenetet szeretne kapni. D0 tűt használok kimenetként. Ezután csatlakoztatjuk az ESP-12e-t a Wi-Fi hozzáférési ponthoz.
void setup () { Soros.kezdés (115200); késés (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT bemutató")); // Csatlakozás a WiFi hozzáférési ponthoz. Soros.println (); Soros.println (); Serial.print ("Csatlakozás a következőkhöz"); Soros.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); míg (WiFi.status ()! = WL_CONNECTED) { …. …. …
Állítsa be az MQTT előfizetését a könnyű adagoláshoz.
mqtt.subscribe (& light); }
A loop funkció, akkor arról, hogy a kapcsolat a MQTT szerver él segítségével MQTT_connect (); funkció.
void loop () { MQTT_csatlakozás ();
Most feliratkozunk a „könnyű” hírcsatornánkra, és megszerezzük a karakterláncot az adafruit IO-ból, és ezt az stringet számokká alakítjuk az atoi () használatával; függvény és írja ezt a számot a PIND0-ra a digitalWrite () segítségével; funkció.
Adafruit_MQTT_Subscribe * előfizetés; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Soros.println ((char *) fény.utolsó); uint16_t num = atoi ((char *) fény.utolsó); digitalWrite (16, szám); }
Dolgozó:
Csatlakoztassa ESP-12E készülékét a laptophoz, és töltse fel a kód alá (ne felejtse el szerkeszteni a hitelesítő adatokat a kódban).
Csatlakoztasson egy LED-et vagy relét a D0 tűhöz. Most ellenőrizze, hogy az Alexa szolgáltatás fut-e az RPi-n.
Bármely parancs megadásához fel kell ébresztenie az Alexa szolgáltatást úgy, hogy minden alkalommal, amikor parancsot akar küldeni, felhívja az „Alexa” szolgáltatást. Hangjelzést hall. Miután meghallotta a sípoló hangot, mondja: „ Alexa Trigger Kapcsolja be a villanyt. ”Láthatja, hogy a fény egy pillanat alatt bekapcsol. És akkor, ha azt mondja, hogy „ Alexa Trigger kapcsolja ki a fényt ”, akkor a fénynek ki kell kapcsolnia.
Ez az…. További készülékeket adhat hozzá a fenti kódhoz, ha hozzáadja az ESP-12E GPIO-csapjait, és különböző kisalkalmazásokat készít különböző kifejezéssel az IFTTT-ben.
Ellenőrizze az alábbi kódot és bemutató videót. Itt ellenőrizheti az összes otthoni automatizálási projektünket is