- Předpoklady:
- Pracovní koncept:
- Program Arduino IDE pro ESP8266:
- Schéma zapojení a hardware:
- Přesměrování portů vašeho ESP8266 IP:
- Instalace aplikace pro Android Moni:
- Vytváření appletů pomocí služby IFTTT:
- Testování projektu:
Vítejte v dalším vzrušujícím projektu, ve kterém postavíme Voice Controlled Home Automation System pomocí modulu Wi-Fi ESP8266, kde můžete ovládat domácí AC zařízení pomocí svého Voice prostřednictvím aplikace pro Android z libovolného místa na světě. Ano, na konci tohoto projektu se splní váš sen o tom, že se vaše zátěže (Light / Fans) zapnou nebo vypnou jednoduchým použitím hlasového příkazu. Tento projekt je variací našeho předchozího projektu Smart Junction Box pro domácí automatizaci, kde jsme prostřednictvím sítě ovládali domácí spotřebiče pomocí webového serveru.
Tento projekt hlasově řízené domácí automatizace založený na IOT je velmi snadno sestavitelný a nestojí vás mnoho, protože nevyžaduje zakoupení žádných nákladných hlasových modulů. Celý projekt trvalo, než jsem ho postavil, kolem 500INR (8 USD). Také se jedná o mikrořadič nezávislý projekt, což znamená, že nepotřebujete žádné MCU / MP jako Arduino nebo Raspberry Pi. Celý projekt běží na modulu ESP8266. Další informace o ESP8266 naleznete zde. Pojďme tedy začít mluvit….
Dříve jsme pokryli mnoho typů automatizace domácnosti pomocí různých technologií, jako jsou:
- Automatizace domácnosti na základě DTMF
- GSM domácí automatizace pomocí Arduina
- Počítačem řízená domácí automatizace pomocí Arduina
- Bluetooth řízená domácí automatizace pomocí 8051
- IR dálkově ovládaná domácí automatizace pomocí Arduina
- projekt domácí automatizace pomocí MATLAB a Arduino
- RF dálkově ovládané LED diody pomocí Raspberry Pi
- Smart Phone Controlled Home Automation using Arduino
Předpoklady:
Tento projekt je pokračováním našeho předchozího projektu Smart Junction Box pro domácí automatizaci pomocí ESP8266, takže většina hardwarové části již byla v tomto tutoriálu popsána. Před pokračováním v tomto si prosím přečtěte, protože přeskočím informace uvedené v tomto tutoriálu. Abychom měli malou rekapitulaci našeho předchozího projektu, upravili jsme v tomto tutoriálu krabici Junction (Extension Board), která mohla konzoli desky Perf skládající se ze dvou relé a modulu ESP8266. Dvě relé (střídavé zátěže) lze přepínat pomocí webové stránky vytvořené ESP8266 (působením jako webový server). V tomto tutoriálu k němu přidám jen některé funkce, abychom mohli ovládat zátěže střídavým proudem pomocí hlasového příkazu prostřednictvím chytrého telefonu.V tomto výukovém programu se nebudeme věnovat žádné hardwarové části, hardware a kód zůstanou stejné jako v předchozím výukovém programu.
Také znalost používání www.IFTTT.com vám v tomto projektu poskytne převahu. Pokud nejste obeznámeni s IFTTT, bez obav vám vysvětlím, jak jej použít pro tento konkrétní tutoriál, abyste jej mohli začít fungovat.
Pracovní koncept:
Předpokládám, že jste si přečetli předchozí výukový program, v takovém případě byste nyní měli vědět, jak sestavit spojovací skříňku a jak vzdáleně přepínat zatížení z vašeho webového prohlížeče. Aby to bylo možné, zveřejnili jsme naši IP adresu přidělenou ESP8266. To lze provést pomocí „techniky předávání portů“. Poté si na mobilní zařízení Android / IPhone nainstalujte mobilní aplikaci s názvem „Moni“. Tato aplikace rozpozná naši řeč a sdělí informace apletům IFTT, které zase budou řídit zatížení prostřednictvím webových háků Maker.
Může to znít trochu zdlouhavě, ale všechny tyto věci byly v tomto tutoriálu jasně vysvětleny a věřte mi několika kliknutími, vše výše uvedené lze provést. Tento výukový program vám pomůže nejlepším možným způsobem pomocí obrázků a videí. Na konci tohoto tutoriálu budete moci své domácí spotřebiče zapínat a vypínat hlasem odkudkoli na světě. Zkontrolujte úplný kód a ukázkové video na konci tutoriálu.
Zkontrolujte také Hlasem ovládaná světla pomocí Raspberry Pi a Hlasového psaní na 16x2 LCD.
Program Arduino IDE pro ESP8266:
Stejně jako v předchozím projektu budeme programovat náš modul ESP8266 pomocí Arduino IDE. V programu došlo k mírné úpravě. Tato úprava je provedena tak, aby se váš ESP8266 připojil ke konstantní IP adrese pokaždé, když naváže spojení s routerem. Program je přesně stejný jako předchozí kód, kromě těchto čtyř řádků
// Získejte konstantní IP kdykoli IPAddress ip (192, 168, 0, 104); // Toto by měla být IP adresa mého modulu ESP IPAddress gateway (192, 168, 0, 1); // nastavit bránu tak, aby odpovídala vaší síti většina bran bude ve výchozím nastavení stejná Serial.print (F ("Nastavení statické ip na:")); Serial.println (ip); Podsíť IPAddress (255, 255, 255, 0); // nastavit masku podsítě tak, aby odpovídala vaší síti WiFi.config (ip, brána, podsíť);
Tady místo IPAddress ip (192, 168, 0, 104); zadejte požadovanou IP adresu. V tomto případě bude moje ESP připojeno k 192.168.0.104 po celou dobu a mohu k ní jednoduše přistupovat pomocí této IP adresy v mém prohlížeči. Kompletní kód uvedený na konci tohoto kurzu.
Schéma zapojení a hardware:
Schémata a hardware pro toto IoT založené hlasem ovládané domácí spotřebiče jsou stejné jako u našeho předchozího projektu Smart Junction a já jsem tam schematicky vysvětlil tak laskavě. Zde můžete vidět kompletní schéma pro referenci:
Přesměrování portů vašeho ESP8266 IP:
Prvním krokem je povolit přesměrování portů ve vašem routeru (modemu), abyste měli přístup k vašemu ESP odkudkoli na světě, pouhým zadáním veřejné IP adresy. Kdykoli se náš ESP8266 připojí k našemu domácímu / kancelářskému routeru, dostane jedinečnou IP adresu a tato IP adresa se použije pro přístup k ESP8266 prostřednictvím webového prohlížeče. Tato IP adresa je ve vaší domácí / kancelářské síti omezena, což znamená, že k ní nemáte přístup globálně; je k němu přístup pouze ze zařízení, která jsou připojena k routeru. Port forwarding je technika, pomocí které můžeme tuto webovou stránku načíst globálně. Po přesměrování portů můžete použít svou veřejnou IP adresu pro přístup k této webové stránce odkudkoli na světě. Zní to dobře !! Uvidíme, jak toho dosáhneme. Za tímto účelem předem víte následující.
1. Název výrobce a IP adresa vašeho routeru. To lze snadno zjistit pohledem na router. IP adresa bude také uvedena na štítku. Pokud ne, Google zná vaše IP směrovače.
2. Uživatelské jméno a heslo pro přihlašovací stránku routeru. Většina routerů bude mít uživatelské jméno jako „admin“ a heslo jako „admin“.
3. IP adresa přidělená vašemu modulu ESP8266. Toto je adresa, kterou používáte pro přístup na webovou stránku modulu ESP.
4. IP adresa vašeho poskytovatele internetových služeb (veřejná IP adresa). To lze zjistit jednoduše Gogglingem „co je moje IP“.
Jakmile budete mít vše v ruce, můžete postupovat podle níže uvedených kroků k přesměrování portů, pokud narazíte na hledání něčeho, použijte sekci komentářů níže. Pomůžu ti.
Krok 1: Přihlaste se na stránku routeru Nástroj pro správu webu pomocí adresy IP routeru, obvykle je to 192.168.1.1. Moje obrazovka bude vypadat takto níže
Krok 2: Ve výchozím nastavení zadejte uživatelské jméno „admin“ a ve výchozím nastavení heslo „admin“ a klikněte na Přihlásit. Budete přesměrováni na stránku s nástroji, která bude níže vypadat nějak takto.
Většina informací, které zde vidíte, je velmi důvěrná, proto je nesdílejte s žádným neznámým, jinak byste mohli riskovat zabezpečení internetu.
Krok 3: Jak je uvedeno výše, vaše stránka bude mít všechny možnosti uvedené v levém dolním rohu. Naším cílem je najít něco s názvem „Virtuální servery“. Můj je uveden pod možností Přeposílání. Většina směrovačů nechat uvedena jako 6, 7 nebo 8 th opce (většinou pod nastavení DHCP). Najděte ji a klikněte na ni
Krok 4: Nyní musíte zadat IP adresu přidělenou modulu ESP a číslo portu pro předání naší IP. V mém případě musím kliknout na Přidat nový a zadat tyto podrobnosti. Může se to u vás mírně lišit. IP adresa je adresa, kterou používáte pro přístup na webovou stránku vašeho modulu ESP. Číslo portu si můžete vybrat, ale pro zjednodušení použijeme „80“. IP přidělená mému modulu ESP8266 je 192.168.0.104, a proto bude moje přeposílání vypadat níže:
Krok 5: Nyní musíme znát naši veřejnou IP adresu. Můžete to najít můj Goggling pro „What is my IP“. Vaše ISP IP adresa by měla být velmi důvěrná. Kvůli tomuto tutoriálu předpokládejme, že moje IP adresa je 987: 654: 321: 123, kterou po zbytek svého tutoriálu použiji jako svoji IP adresu ISP.
Poznámka: Váš ISP vám mohl poskytnout statickou / dynamickou IP, pokud se jedná o dynamickou IP, vaše IP se bude měnit při každém restartu modemu / routeru. V takovém případě musíte použít něco jako DynDNS. Ale to je mimo rozsah tohoto tutoriálu. I když se jedná o dynamickou IP adresu, bude pro vás fungovat, dokud nevynulujete router.
To je naše přesměrování portů úspěšné, můžeme to zkontrolovat zadáním ISP IP: portname (987: 654: 321: 123: 80) do našeho prohlížeče a zkontrolovat, zda se webová stránka ESP načte. Pokud vše půjde podle očekávání, měli byste nyní být schopni přepínat Zatížení odkudkoli na světě pomocí vaší IP adresy ISP.
Instalace aplikace pro Android Moni:
Moni je aplikace, která je k dispozici pro Android, Windows, iTunes a dokonce i Skype. Tuto aplikaci si můžete stáhnout do svého mobilu. Moni.ai má mnohem více funkcí, než jen reagovat na vaše hlasové příkazy, je vysoce přátelské k vývojářům a můžete rychle vizuálně definovat konverzace a připojit se ke službám. Moni.ai používá aplikaci nazvanou Node-Red, pomocí které můžete snadno vytvořit hlasový kanál a vytvořit svůj vlastní systém Chabot (AI) pro vaše podnikání / projekty a automatizovat jej přirozeným jazykem. Nejlepší věc je, že Moni je zcela zdarma pro nekomerční použití.
Používám telefon s Androidem, a proto si přímo stahuji Moni z obchodu Google Play. Po instalaci si vytvořte svůj bezplatný účet a přihlaste se k němu, vaše aplikace by měla vypadat níže takto:
Můžete jej použít jako kteréhokoli jiného virtuálního asistenta, jako je dotaz na počasí, čas atd. Co je však navíc, je to, že může reagovat na vaše applety vytvořené vaší službou Ifttt. Podívejme se, jak nyní vytvořit applety pro vaši aplikaci.
Vytváření appletů pomocí služby IFTTT:
Jsme krok od dokončení tohoto projektu. Posledním krokem je vytvoření appletů na webu IFTTT. To je místo, kde instruujeme naši Moni pro různé hlasové příkazy pro ovládání různých domácích spotřebičů doma.
Používám tuto hlasem ovládanou spojovací skříňku k přepínání zátěží v akváriu (světlo / filtr), jak je znázorněno na videu níže. Proto přizpůsobuji applet tomuto požadavku, můžete jej přizpůsobit pro svůj účel. Postupujte podle následujících pokynů:
Krok 1: Navštivte www.IFTTT.com a přihlaste se pomocí svého účtu. Pokud je nový, zaregistrujte se.
Krok 2: Nyní klikněte na „Hledat“ a zadejte Make Webhooks. Vyberte jej a klikněte na „Připojit“. Postupujte podle pokynů a spojte se s ním.
Krok 3: Nyní znovu klikněte na „Hledat“ a zadejte Moni. Vyberte Moni a klikněte na „Připojit“. Chcete-li povolit připojení, přihlaste se pomocí svého účtu IFTTT.
Krok 4: Připojili jsme se ke službám „Maker Webhooks“ a „Moni“. Nyní vám umožní vytvořit applet s těmito službami. Klikněte na Moje applety a poté na „Nový applet“. Měli byste vidět něco takového:
Na této obrazovce musíte kliknout na „toto“ a vybrat „Moni“. Poté klikněte na „Požádat Moni o provedení akce“, dostanete se na obrazovku níže.
Krok 5: Vyplňte podrobnosti, jak jsem vyplnil výše uvedený obrázek. Tady je mým úkolem zapnout světla akvária (zatížení 1), když řeknu „Zapnout světla akvária“. Poté klikněte na „Vytvořit spouštěč“
Krok 6: Budete vráceni zpět na obrazovku „IF THIS THAN THAT“. Nyní klikněte na „to“ a zadejte „Maker Webhooks“ a vyberte jej. Poté klikněte na „Vytvořit webový požadavek“. Budete přesměrováni na obrazovku níže
Toto je důležitý krok, kde s největší pravděpodobností uděláte chyby. Na této stránce zadejte pouze adresu URL, kterou chcete načíst. V mém případě chci zapnout zátěž připojenou k switch1, proto se používá řádek http: // 987: 654: 321: 123 / switch1On, musíte moji IP nahradit vaší veřejnou IP adresou. To bude fungovat, pouze pokud jste použili můj kód v předchozím kurzu. Níže je uveden kompletní seznam adres URL pro přepínání zátěží.
URL |
Klíčové slovo z programu |
Akce |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 je nastaven vysoko, čímž zapíná zátěž 1 |
http: // 987: 654: 321: 123 / switch1Off |
Přepínač1Vypnuto |
Hodnota GPIO_0 je nízká, čímž se vypne zátěž 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 je vysoké, takže zapíná zátěž 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
Hodnota GPIO_2 je nízká, čímž se vypne zátěž 1 |
Jakmile zadáte požadovanou adresu URL, klikněte na „Vytvořit akci“. Poté klikněte na Dokončit. Podobně můžete vytvořit 4 applety pro zapnutí / vypnutí obou zátěží v našem spojovacím poli.
To znamená, že applet je připraven k akci a měl by se objevit v části „Moje applety“, jak je uvedeno níže.
Čas otestovat náš kód…….
Testování projektu:
Konečně jsme připraveni na náš projekt. Pojďme to otestovat. Zapněte jej a otevřete aplikaci Moni ve svém mobilním telefonu. Klikněte na ikonu Mikrofon a vyslovte příkaz. V mém případě je to „Zapnout světla akvária“ a mělo by to zapnout odpověď „OK“ a rozsvítit světla. Zkontrolujte celý kód a ukázkové video níže.
Doufám, že se vám projekt líbil a fungoval. Pokud jste někde zaseknutí, použijte sekci komentářů níže a určitě vám pomůžu. Setkáme se s dalším zajímavým projektem do té doby zůstaňte naladěni.
Zde také zkontrolujte naše další projekty založené na IoT.