- Hardwarové požadavky
- Tok projektu pro LED Alexa Voice Controlled
- Nastavení účtu Adafruit pro komunikaci
- Propojte Alexa s Adafruit IO pomocí IFTTT
- Vysvětlení kódu ESP12
- Pracovní:
V předchozích tutoriálech jsme viděli, jak můžeme sestavit reproduktor Amazon Echo a jak můžeme ovládat jakýkoli GPIO Raspberry Pi pomocí Alexa Voice. Nyní vytváříme projekt IoT pro ovládání domácích spotřebičů odkudkoli na světě pomocí AlexaPi a ESP-12E (nebo jakékoli desky ESP).
Hardwarové požadavky
- Raspberry Pi s nainstalovaným AVS
- Mikrofon USB 2.0 / webová kamera
- ESP-12E
- Reléový modul
- LED / AC žárovka
Měli byste mít svůj Raspberry Pi připravený s nainstalovanou hlasovou službou Alexa se správně nakonfigurovaným účtem vývojáře Amazon. Projděte si níže uvedený návod a připravte služby Alexa.
- Vytvořte si vlastní Amazon Echo pomocí Raspberry Pi
Tok projektu pro LED Alexa Voice Controlled
Budeme sledovat tento vývojový diagram pro tento projekt LED řízený IoT:
Proces je tedy něco takového. Nejprve je vstup dán Raspberry Pi přes USB Mic. Nyní je tato nahrávka odeslána do hlasových služeb Alexa a po rozpoznání hlasu AVS odeslala data do IFTTT a spustí podmínku v IFTTT. Podle receptu IFTTT odešle příkaz společnosti Adafruit IO, která je makléřem MQTT k provedení akce. Poté ESP 12e obdrží data z Adafruit IO prostřednictvím protokolu MQTT a LED se podle příkazu rozsvítí / zhasne.
Zde jsme použili USB webovou kameru pro mikrofon. Službu Alexa Voice jsme již použili k zapnutí žárovky, ale dokáže zpracovat pouze zařízení, která jsou připojena místně.
Protože předpokládáme, že již máte nainstalované služby Raspberry Pi se službami Alexa Voice, zbývají dva níže uvedené kroky, které si postupně vysvětlíme:
- Nastavení účtu Adafruit pro komunikaci
- Propojte Alexa s Adafruit IO pomocí IFTTT
- Nahrajte kód do ESP12
Nastavení účtu Adafruit pro komunikaci
Nejprve připravíme krmivo v Adafruit IO. Zdroj ukládá data odeslaná IFTTT. Chcete-li vytvořit zdroj, postupujte takto:
Krok 1: - Přihlaste se do služby Adafruit IO pomocí svých přihlašovacích údajů nebo se zaregistrujte, pokud nemáte účet.
Krok 2: - Klikněte na Můj účet -> Dashboard
Krok 3: - Klikněte na Akce a Vytvořte nový řídicí panel .
Krok 4: - Zadejte název a popis svého zdroje a klikněte na Vytvořit .
Krok 5: - Klikněte na tlačítko Klíč a poznamenejte si klíče AIO, použijeme tento klíč v našem kódu.
Krok 6: - Kliknutím na tlačítko „+“ vytvořte nový blok a klikněte na tlačítko Přepnout.
Krok 7: - Nyní zadejte Název zdroje a klikněte na Vytvořit . Poté vyberte zdroj a klikněte na Další krok.
Krok 8: - V nastavení bloku napište do textového pole Button ON „1“ a do textového pole Button OFF „0“.
Krok 9: - Váš zdroj je úspěšně vytvořen.
Propojte Alexa s Adafruit IO pomocí IFTTT
Podle těchto pokynů vytvoříte v IFTTT applet / recept:
Krok 1: - Přihlaste se do IFTTT pomocí svých přihlašovacích údajů nebo se zaregistrujte, pokud na něm nemáte účet.
Krok 2: - Na stránce Moje applety klikněte na Nový applet
Krok 3: - Klikněte na + toto
Krok 4: - Vyhledejte Amazon Alexa a klikněte na něj, přihlaste se pomocí podrobností účtu vývojáře Amazon.
Krok 5: - Vyberte spouštěč, řekněte konkrétní frázi
Krok 6: - Zadejte „ zapnout světlo“ jako frázi, klikněte na Vytvořit spouštěč.
Krok 7: - Klikněte na + to
Krok 8: - Vyhledejte Adafruit a klikněte na něj.
Krok 9: - Přihlaste se k účtu Adafruit pomocí svých přihlašovacích údajů. Klikněte na Odeslat data do Adafruit .
Vyberte název zdroje, který jste právě vytvořili v Adafruit IO. Nyní dát '1' v datech pro uložení, to znamená, že LED bude svítit. Klikněte na Vytvořit akci .
Krok 10: - Podle stejných kroků vypněte LED kontrolky appletů . Do pole Data uložíte „0“. Všechny kroky zůstávají stejné.
Udělali jste polovinu své práce. Nyní je čas programovat váš ESP-12E.
Vysvětlení kódu ESP12
Budeme programovat ESP12 s Arduino IDE. Celý kód je uveden na konci tohoto tutoriálu.
Nejprve potřebujeme knihovnu Adafruit Mqtt, kterou lze stáhnout z tohoto odkazu. Stačí otevřít Arduino IDE. Přejít na příklady -> knihovna adafruit mqtt -> mqtt_esp8266
Budeme -li upravit tento kód v souladu s našimi klíči AIO a Wi-Fi pověření.
Nejprve jsme zahrnuli všechny knihovny pro ESP8266WIFI a Adafruit MQTT .
#zahrnout
Definovali jsme SSID a heslo pro vaši Wi-Fi, ze které chcete připojit svůj ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Tato část definuje server Adafruit a port serveru, které jsou opraveny jako „ io.adafruit.com “ a „ 1883 “.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Nahraďte níže uvedená pole svým uživatelským jménem a klíči AIO, která jste zkopírovali ze stránky Adafruit při vytváření kanálu.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Poté vytvořte třídu ESP8266 WiFiClient pro připojení k serveru MQTT.
WiFiClient klient;
Nastavte třídu klienta MQTT předáním klienta WiFi a serveru MQTT a přihlašovacích údajů.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Chcete-li se přihlásit k odběru změn, nastavte zdroj s názvem „light“.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Ve funkci nastavení deklarujeme PIN ESP-12e, na který chcete získat výstup. Jako výstup používám pin D0. Poté připojíme ESP-12e k přístupovému bodu Wi-fi.
void setup () { Serial.begin (115200); zpoždění (10); pinMode (D0, VÝSTUP); Serial.println (F ("Adafruit MQTT demo")); // Připojte se k přístupovému bodu WiFi. Serial.println (); Serial.println (); Serial.print ("Připojení k"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. …
Nastavit předplatné MQTT pro světelný kanál.
mqtt.subscribe (& light); }
Ve funkci smyčky zajistíme, aby připojení k serveru MQTT bylo živé pomocí MQTT_connect (); funkce.
void loop () { MQTT_connect ();
Nyní se přihlásíme k odběru našeho „lehkého“ krmiva a dostaneme řetězec z adafruit IO a převedeme tento řetězec na číslo pomocí atoi (); funkce a zapište toto číslo na PIND0 pomocí digitalWrite (); funkce.
Adafruit_MQTT_Subscribe * předplatné; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Pracovní:
Připojte svůj ESP-12E k notebooku a nahrajte níže uvedený kód (nezapomeňte v kódu upravit své přihlašovací údaje).
Připojte LED nebo relé ke kolíku D0. Nyní se ujistěte, že vaše služba Alexa běží na vašem RPi.
Chcete-li zadat libovolný příkaz, musíte službu Alexa probudit voláním „Alexa“ pokaždé, když chcete odeslat příkaz. Uslyšíte pípnutí. Jakmile uslyšíte pípnutí, řekněte „ Alexa Trigger Zapněte světlo. „Vidíte, jak se světlo za chvíli rozsvítí. A pak, když řeknete „ Alexa Trigger Turn off the Light “, světlo by mělo zhasnout.
A je to…. Do výše uvedeného kódu můžete přidat další zařízení přidáním pinů GPIO ESP-12E a vytvořením různých appletů s různými frázemi v IFTTT.
Níže zkontrolujte kompletní kód a ukázkové video. Zde také zkontrolujte všechny naše projekty domácí automatizace