- Előfeltételek:
- Munka koncepció:
- Arduino IDE program ESP8266-hoz:
- Áramkör és hardver:
- Port továbbítása az ESP8266 IP címre:
- A Moni Android alkalmazás telepítése:
- Kisalkalmazások létrehozása IFTTT szolgáltatás használatával:
- A projekt tesztelése:
Üdvözöljük egy másik izgalmas projektben, amelynek során egy hangvezérelt otthoni automatizálási rendszert építünk az ESP8266 Wi-Fi modul segítségével, ahol a hanggal bárhonnan a világ bármely pontjáról Android-alkalmazással vezérelheti otthoni hálózati készülékeit. Igen, a projekt végén valóra válik az az álma, hogy terhelését (Fény / Ventilátorok) egyszerűen vagy hangutasítással be- vagy kikapcsolja. Ez a projekt az előző Smart Junction Box for Home Automation projektünk változata, ahol a háztartási készülékeket a Webserver segítségével a hálózaton keresztül irányítottuk.
Ezt az IOT alapú hangvezérelt otthoni automatizálási projektet rendkívül könnyű megépíteni, és nem kerül sokba, mivel nem igényel költséges hangmodulokat. Az egész projekt kb. 500 INR (8 USD) kellett ahhoz, hogy megépítsem. Ez szintén egy mikrokontrollertől független projekt, vagyis nincs szükség MCU-ra / MP-re, mint az Arduino vagy a Raspberry pi. Az egész projekt az ESP8266 modulon fut. Tudjon meg többet az ESP8266-ról itt. Szóval, kezdjünk el beszélgetni….
Korábban számos otthoni automatizálási módot foglalkoztunk különböző technológiák alkalmazásával, például:
- DTMF alapú otthoni automatizálás
- GSM alapú otthoni automatizálás Arduino segítségével
- PC vezérlésű otthoni automatizálás Arduino használatával
- Bluetooth vezérlésű otthoni automatizálás a 8051 segítségével
- IR távirányítású otthoni automatizálás Arduino segítségével
- otthoni automatizálási projekt a MATLAB és az Arduino segítségével
- RF távirányítós LED-ek a Raspberry Pi használatával
- Okos telefon vezérelt otthoni automatizálás az Arduino segítségével
Előfeltételek:
Ez a projekt az előző, az ESP8266-ot használó Smart Junction Box for Home Automation projekt folytatása, így a hardver rész nagy részét már lefedte az oktatóanyag. Kérjük, olvassa el, mielőtt folytatnám ezt, mivel kihagyom az oktatóanyagban szereplő információkat. Az előző projektünk kis összefoglalása érdekében módosítottunk egy csatlakozódobozt (Extension Board) abban az oktatóanyagban, amely egy két reléből álló Perf kártyát és az ESP8266 modult tudott megvigasztalni. A két relét (váltóáramú terhelés) az ESP8266 által létrehozott weboldal használatával lehet kapcsolni (webszerverként). Ebben az oktatóanyagban csak hozzá fogok adni néhány funkciót, hogy az intelligens telefonon keresztüli hangparancs használatával vezérelhessük az AC terheléseket is.Ebben az oktatóanyagban nem foglalkozunk hardverekkel, a hardver és a kód ugyanaz marad, mint az előző oktatóanyagé.
A www.IFTTT.com használatának ismerete is előnyt nyújt Önnek ebben a projektben. Ha még nem ismeri az IFTTT-t, ne aggódjon, elmagyarázom, hogyan kell használni az adott oktatóanyaghoz, hogy működőképes legyen.
Munka koncepció:
Feltételezem, hogy elolvastad az előző oktatóanyagot, ebben az esetben most tudnod kell, hogyan kell felépíteni azt a csatlakozódobozt, és hogyan lehet a terheléseket távolról váltani a böngészőből. Ennek lehetővé tétele érdekében nyilvánosan elérhetővé tettük az ESP8266-hoz rendelt IP-címünket. Ez a „Port forwarding technikával” megtehető. Ezután telepítse a „Moni” nevű mobilalkalmazást Android / IPhone mobilkészülékére. Ez az alkalmazás felismeri beszédünket és közli az információkat az IFTT kisalkalmazásokkal, amelyek viszont a Terheket a Maker webhorgain keresztül irányítják.
Lehet, hogy kissé unalmasan hangzik, de ezeket a dolgokat világosan elmagyarázták ebben az oktatóanyagban, és bízzon bennem néhány kattintással, az összes fenti lehetőség elvégezhető. Ez az oktatóanyag a lehető legjobb módon segít Önnek Képek és videók segítségével. A bemutató végén a világ bármely pontjáról be- és kikapcsolhatja a háztartási készülékeket. Ellenőrizze a teljes kódot és a bemutató videót az oktatóanyag végén.
Ellenőrizze a hangvezérelt lámpákat is a Raspberry Pi és a Voice gépelés segítségével a 16x2 LCD-n.
Arduino IDE program ESP8266-hoz:
Csakúgy, mint az előző projektben, az Arduino IDE segítségével programozni fogjuk ESP8266 modulunkat. A programban történt egy apró módosítás. Ez a módosítás úgy történt, hogy az ESP8266 állandó IP-címhez csatlakozzon, valahányszor kapcsolatot létesít az útválasztóval. A program pontosan megegyezik az előző kóddal, kivéve ezt a négy sort
// Állandó IP megszerzése minden alkalommal IPAddress ip (192, 168, 0, 104); // Ennek az ESP-modulom IP-címének átjárójának kell lennie (192, 168, 0, 1); // állítsa be az átjárót, hogy megfeleljen a hálózat legtöbb átjárójának, alapértelmezés szerint ugyanaz lesz a Serial.print (F ("A statikus ip beállítása:")); Soros.println (ip); IPAddress alhálózat (255, 255, 255, 0); // állítsa be az alhálózati maszkot, hogy megfeleljen a hálózatának WiFi.config (ip, átjáró, alhálózat);
Itt, az IPAddress helyén ip (192, 168, 0, 104); írja be a kívánt IP-címet. Ebben az esetben az ESP-m állandóan a 192.168.0.104-hez lesz csatlakoztatva, és egyszerűen elérhetem ezt az IP-t a böngészőmben. Az oktatóanyag végén megadott teljes kód.
Áramkör és hardver:
Ennek az IoT-alapú hangvezérelt háztartási készüléknek sematikája és hardvere megegyezik az előző Smart Junction projektünkkel, és az ott található vázlatot olyan szívesen elmagyaráztam. Itt láthatja a teljes vázlatot referenciaként:
Port továbbítása az ESP8266 IP címre:
Az első lépés a port továbbítás engedélyezése az útválasztóban (modemben), hogy az ESP-t a világ bármely pontjáról elérhesse, csak a nyilvános IP-cím megadásával. Amikor az ESP8266 csatlakozik az otthoni / irodai útválasztónkhoz, egyedi IP-címet kap, és ezt az IP-címet arra használják, hogy webböngészőn keresztül hozzáférjen az ESP8266-hoz. Ezt az IP-címet az otthoni / irodai hálózat korlátozza, vagyis nem érheti el globálisan; csak azok az eszközök férhetnek hozzá, amelyek az útválasztóhoz vannak csatlakoztatva. A portok továbbítása az a technika, amely révén globálisan megterhelhetjük ezt a weboldalt. A porttovábbítás után a nyilvános IP-címmel elérheti ezt a weboldalt a világ bármely pontjáról. Jól hangzik !! Lássuk, hogyan tudjuk ezt megvalósítani. Ehhez előzetesen tudja a következőket.
1. Az útválasztó gyártói neve és IP-címe. Ez könnyen megtalálható az útválasztón keresztül. Az IP-cím egy matricán is szerepel. Ha nem a Google ismeri az útválasztók IP-címét.
2. Az útválasztó bejelentkezési oldalának felhasználóneve és jelszava. A legtöbb útválasztó felhasználói neve „admin”, a jelszó pedig „admin” lesz.
3. Az ESP8266 modulhoz rendelt IP-cím. Ez az a cím, amelyet az ESP modul weboldalának eléréséhez használ.
4. Internetszolgáltatója IP-címe (nyilvános IP-cím). Ezt úgy találja meg, hogy egyszerűen goggling „mi az én IP”.
Ha mindent kéznél tart, akkor kövesse az alábbi lépéseket a port továbbításhoz, ha elakadt valami megtalálásával, használja az alábbi megjegyzés részt. Segítek.
1. lépés: Jelentkezzen be a Router webkezelő segédprogram oldalára az útválasztó IP-címének használatával, általában 192.168.1.1. A képernyőm alább fog kinézni
2. lépés: Adja meg alapértelmezés szerint az „admin” felhasználói nevet, alapértelmezés szerint az „admin” jelszót, és kattintson a Bejelentkezés gombra. Ekkor a segédprogram oldalára kerül, amely az alábbiak szerint fog kinézni.
Az itt látható információk többsége nagyon bizalmas, ezért ne ossza meg azokat ismeretlen másokkal, akik az internet biztonságát kockáztathatják.
3. lépés: Amint az fent látható, az oldal összes bal oldali opcióval rendelkezik. Célunk, hogy találjunk valami nevet „Virtuális szerverek”. Az enyém szerepel a továbbítás opció alatt. A legtöbb router lesz nekik szerepel a 6, 7 vagy 8 th opció (többnyire alább DHCP beállítás). Keresse meg és kattintson rá
4. lépés: Most meg kell adnia az ESP modulhoz rendelt IP-címet és a portszámot az IP továbbításához. Esetemben az Új hozzáadása gombra kell kattintanom, és be kell írnom ezeket a részleteket. Lehet, hogy nektek némileg eltér. Az IP-címet használja az ESP-modul weboldalának eléréséhez. A portszám választhat, de az egyszerűség kedvéért használja a „80” jelet. Az ESP8266 modulomhoz rendelt IP-cím 192.168.0.104, ezért az átirányításom az alábbiak szerint fog kinézni:
5. lépés: Most már tudnunk kell a nyilvános IP-címünket. Ezt megtalálja a „Mi az én IP-m” címmel. Az internetszolgáltató IP-címét nagyon bizalmasan kell kezelni. Az oktatóanyag kedvéért tegyük fel, hogy az IP-címem 987: 654: 321: 123. Ezt az oktatóanyag többi részében ISP IP-ként fogom használni.
Megjegyzés: Előfordulhat, hogy az internetszolgáltató statikus / dinamikus IP-címet adott Önnek, ha ez dinamikus IP, akkor a modem / útválasztó minden újraindításakor megváltozik az IP címe. Ebben az esetben valami olyasmit kell használnia, mint a DynDNS. De ez nem tartozik az oktatóanyag körébe. Még akkor is, ha dinamikus IP-ről van szó, mindaddig működik, amíg nem állítja vissza az útválasztót.
Ez azt jelenti, hogy a port továbbításunk sikeres, ellenőrizhetjük, hogy az ISP IP: portnév (987: 654: 321: 123: 80) nevet beírjuk-e a böngészőnkbe, és ellenőrizzük, hogy betöltődik-e az ESP weboldala. Ha minden a várakozásoknak megfelelően megy, akkor mostantól képesnek kell lennie arra, hogy az internetszolgáltató IP-címének használatával átválthassa a terheléseket a világ bármely pontjáról.
A Moni Android alkalmazás telepítése:
A Moni egy olyan alkalmazás, amely elérhető Android, Windows, iTunes és még a Skype számára is. Ezt az alkalmazást letöltheti mobiljára. A Moni.ai sokkal több képességgel rendelkezik, azon kívül, hogy reagál a hangutasításokra, rendkívül fejlesztőibarát, és gyorsan meghatározhatja vizuálisan a beszélgetéseket, és csatlakozhat a szolgáltatásokhoz. A Moni.ai a Node-Red nevű alkalmazást használja, amelynek segítségével könnyedén létrehozhat Voice csatornát, és felépítheti saját Chabot (AI) rendszerét az üzleti / projektek számára, és automatizálhatja azt természetes nyelvével. A legjobb dolog az, hogy Moni teljesen ingyenes, nem kereskedelmi célokra.
Androidos telefont használok, ezért közvetlenül letöltöm a Monit a Google Play áruházból. A telepítés után hozzon létre ingyenes fiókot, és jelentkezzen be, az alkalmazásának alábbinak kell kinéznie:
Ezt bármely más virtuális asszisztenshez hasonlóan használhatja, mint például időjárás, idő stb. Nézzük meg, hogyan hozhatunk létre kisalkalmazásokat az alkalmazásához.
Kisalkalmazások létrehozása IFTTT szolgáltatás használatával:
Egy lépésre vagyunk a projekt befejezésétől. Az utolsó lépés az Appletek létrehozása az IFTTT webhelyén. Itt utasítjuk Monit különböző hangparancsokra, hogy otthoni különféle háztartási készülékeket irányítsanak.
Ezt a hangvezérelt csatlakozódobozt használom az akvárium terhelésének (fény / szűrő) váltására az alábbi videó szerint. Ezért testreszabom az Applet-et erre a követelményre, és személyre szabhatja a saját céljainak megfelelően. Kövesse az alábbi lépéseket:
1. lépés: Látogasson el a www.IFTTT.com oldalra, és jelentkezzen be fiókjával. Ha új, akkor Regisztráció.
2. lépés: Most kattintson a „Keresés” gombra, és írja be a Make Webhooks elemet. Jelölje ki és kattintson a „Csatlakozás” gombra. Kövesse a lépéseket a csatlakozáshoz.
3. lépés: Most kattintson ismét a „Keresés” gombra, és írja be Moni-t. Válassza a Moni elemet, majd kattintson a „Csatlakozás” gombra. A kapcsolat engedélyezéséhez jelentkezzen be IFTTT-fiókjával.
4. lépés: Csatlakoztunk a „Maker Webhooks” és a „Moni” szolgáltatásokhoz. Most hagyja, hogy hozzon létre egy kisalkalmazást ezekkel a szolgáltatásokkal. Kattintson a Saját kisalkalmazások, majd az „Új kisalkalmazások” elemre. Valami ilyesmit kellene látnia:
Ezen a képernyőn kattintson az „erre” gombra, és válassza a „Moni” lehetőséget. Ezután kattintson a „Kérd meg Monit, hogy hajtson végre egy műveletet”, és az alábbi képernyőre kerül.
5. lépés: Töltse ki a részleteket, amint kitöltöttem a fenti képet. Itt az a feladatom, hogy bekapcsoljam az akváriumlámpákat (1. betöltés), amikor azt mondom, hogy „Kapcsolja be az akváriumlámpákat”. Ezután kattintson a „Trigger létrehozása” gombra
6. lépés: Visszatér a „HA EZ NEM,” képernyőre. Most kattintson az „that” gombra, írja be a „Maker Webhooks” szót, és válassza ki. Ezután kattintson a „Webkérés készítése” gombra. A képernyő aljára kerül
Ez egy fontos lépés, ahol nagy valószínűséggel hibázik. Ezen az oldalon írja be a betölteni kívánt URL-t. Az én esetemben szeretném bekapcsolni a switch1-hez csatlakoztatott terhelést, ezért a http: // 987: 654: 321: 123 / switch1On sort használjuk, le kell cserélnem az IP-t a nyilvános IP-címmel. Ez csak akkor fog működni, ha a kódomat használta az előző oktatóanyagban. A terhelések váltásához az URL teljes listáját az alábbiakban adjuk meg.
URL |
Kulcsszó a Programból |
Akció |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
A GPIO_0 magasra van állítva, ezzel bekapcsolva az 1. terhelést |
http: // 987: 654: 321: 123 / switch1Ki |
Switch1Off |
A GPIO_0 értéke alacsony, így kikapcsolja az 1. terhelést |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
A GPIO_2 magasra lett állítva, ezzel bekapcsolva a 2. terhelést |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
A GPIO_2 szintje alacsony, így kikapcsolja az 1. terhelést |
Miután megadta a kívánt URL-t, kattintson a „Művelet létrehozása” gombra. Ezután kattintson a Befejezés gombra. Hasonlóképpen létrehozhat 4 kisalkalmazást az összekötő doboz mindkét terhelésének be- és kikapcsolásához.
Ez az, hogy az applet készen áll a cselekvésre, és meg kell jelennie a „Saját kisalkalmazások” alatt, az alábbiak szerint.
Ideje tesztelni a kódunkat…….
A projekt tesztelése:
Végül készen állunk a projektünkre. Teszteljük. Kapcsolja be, és nyissa meg a Moni alkalmazást mobiltelefonján. Kattintson a Mikrofon ikonra, és mondja ki a parancsot. Az én esetemben ez az „Kapcsolja be az akváriumlámpákat”, és az „OK” -val kell válaszolnia, és fel kell kapcsolnia a lámpákat. Ellenőrizze az alábbi teljes kódot és bemutató videót.
Remélem, tetszett a projekt, és működtetni kezdte. Ha elakadt valahol, használja az alábbi megjegyzés részt, és én biztosan segítek. Találkozunk veled egy másik érdekes projekttel addig maradj velünk.
Itt tekintheti meg a többi IoT-alapú projektünket is.