Tartalomjegyzék:

Intelligens otthonfigyelés Alexa és Arduino használatával: 9 lépés (képekkel)
Intelligens otthonfigyelés Alexa és Arduino használatával: 9 lépés (képekkel)

Videó: Intelligens otthonfigyelés Alexa és Arduino használatával: 9 lépés (képekkel)

Videó: Intelligens otthonfigyelés Alexa és Arduino használatával: 9 lépés (képekkel)
Videó: Sonoff Ihost - Центр управления умным домом без доступа к интернет с Zigbee и Matter 2024, November
Anonim
Image
Image
Az anyagok összegyűjtése
Az anyagok összegyűjtése

A mai világban az emberek több időt töltenek a munkahelyükön, mint otthonukban. Ezért szükség van egy otthoni megfigyelő rendszerre, ahol az emberek megismerhetik a ház körülményeit munka közben. Még jobb lenne, ha valaki munkaidőben csak megkérdezhetne valakit az otthonáról. Ezt úgy érheti el, hogy az Amazon Alexa -t használja asszisztensként, amely megadhatja a felhasználónak az otthonával kapcsolatos szükséges információkat.

Nem csak a munkahely, ahol a felhasználók a világ bármely pontján megismerhetik a ház állapotát, amennyiben rendelkeznek internetkapcsolattal és Amazon Alexával.

Ebben a projektben a következő funkciók valósulnak meg:

1) Irányítsa a háztartási eszközöket, például a ventilátort és a fényt

2) Megmondja az eszközök állapotát

3) Megmondja a ház időjárási állapotát (hőmérséklet és páratartalom)

4) Ha szükséges, elküldi a felhasználónak a ház belsejének pillanatképét a Gmailben.

5) Értesítést küld, ha -

* Betolakodó (fényképet is küld)

* Tűz

* Vendég (fényképet is küld)

Lépés: Az anyagok összegyűjtése

Az anyagok összegyűjtése
Az anyagok összegyűjtése
Az anyagok összegyűjtése
Az anyagok összegyűjtése
Az anyagok összegyűjtése
Az anyagok összegyűjtése

Szükséges anyagok

Arduino Uno

ESP8266 Wifi modul

Linkit Smart 7688 Duo

DHT11

Relék

IR akadályérzékelő

Webkamera

Amazon Echo Dot

Kenyérsütő és jumper vezetékek

Szoftver és online szolgáltatások:

Thingspeak.com

Arduino IDE

Amazon Alexa készségkészlet

Amazon Alexa Echosim.io (a készség teszteléséhez)

Háttér nélküli

PushingBox

2. lépés: Az Arduino és az ESP8266 programozása

Az Arduino és az ESP8266 programozása
Az Arduino és az ESP8266 programozása
Az Arduino és az ESP8266 programozása
Az Arduino és az ESP8266 programozása

Töltse le az Arduino IDE -t a hivatalos webhelyről:

Nyissa meg az Arduino IDE-t, és lépjen a fájl-> beállítások-> menüpontba további fórumkezelő URL-típusban-https://arduino.esp8266.com/stable/package_esp8266…

Lépjen az Eszközök -> táblák -> Táblakezelő menübe, és telepítse végre az esp8266 csomagot.

Az arduino programozásához csak csatlakoztassa az USB-kábelt az arduino-tól a számítógéphez, és válassza az Arduino/Genuino UNO lehetőséget az eszközök-> táblákon. Győződjön meg arról is, hogy az Eszközökben kiválasztja a megfelelő COM -portokat (a COM -port száma megtalálható az Eszközkezelőben). Írja le a kívánt programot, fordítsa le, és ha nincs hiba, kattintson a feltöltésre.

Az ESP8266 programozásához hozza létre a kapcsolatot az ábra szerint. csatlakoztassa az usb -t az arduino -tól a számítógéphez. Az Eszközök-> tábla-> menüben válassza az Általános ESP8266 elemet, és válassza ki a megfelelő COM portot. Írja le a kívánt programot, fordítsa le, és ha nincs hiba, kattintson a feltöltésre. Győződjön meg róla, hogy csatlakoztatta az Arduino RST -t a GND -hez (az arduino programozóként működik az ESP8266 -hoz).

Ebben a projektben Először az ESP8266 programozásra kerül, majd az áramköri csatlakozásokat eltávolítják. Ezután az áramkört újra be kell kapcsolni, az "Áramköri kapcsolatok" nevű ábrán látható módon. És akkor az arduino programozva van.

3. lépés: A Thingspeak.com konfigurálása

A Thingspeak.com konfigurálása
A Thingspeak.com konfigurálása

Hozzon létre egy fiókot a thingspeak.com webhelyen.

a thingspeak csatornáit használjuk fel az eszközvezérlési információk tárolására és az arduino/alexa -hoz való eljuttatására. a csatornákban tároljuk a hőmérséklet és a páratartalom értékeit is. Olyan, mint az információ tárolóhelye.

Jelentkezzen be a dolgok beszédébe, lépjen a csatornáim csatornáimhoz, és hozzon létre új csatornát. Adjon nevet és leírást csatornáinak. Projektünkben 8 csatornára van szükségünk (kevesebb csatornával is elvégezheti a munkát, de programozás közben kicsit bonyolult lesz). A thingspeak időkorlátozással is rendelkezik a csatorna frissítése során. 10-15 másodpercnek kell eltelnie egy adott csatorna egymást követő frissítése között.

Az alábbiakban nyolc csatornát mutatunk be értékekkel és jelentéssel

csatorna neve (érték1 jelentés, érték2 jelentés stb.):

1) Eszközvezérlés (0-LightON, 1- LightOff, 2-ventilátor BE, 3- Ventilátor Off)

2) fényállapot (0- nem világít, 1- világít)

3) ventilátor állapot (0- ventilátor ki, 1- ventilátor be)

4) páratartalom (páratartalom értéke)

5) hőmérséklet (hőmérséklet értéke)

6) betolakodó értesítés (1- betolakodó riasztás)

7) tűzjelzés (1- tűzriasztás)

8) vendég értesítés (1- vendég figyelmeztetés)

ha bármelyik csatornára kattint, láthatja annak csatornaazonosítóját, és API kulcsokat írhat az API kulcsok fülre. csatornaazonosító szükséges a csatorna információinak/ értékének megszerzéséhez. És írási kulcs szükséges az érték tárolásához a csatornában.

A csatorna frissítésére vonatkozó http kérés:

api.thingspeak.com/update?api_key=&field1=

helyettesíti a csatorna megfelelő író gombjaival, és lehet (0/1 eszközvezérlés vagy hőmérséklet/páratartalom értékek esetén)

A csatorna értékének olvasására vonatkozó http kérés:

api.thingspeak.com/channels//field/field1/last.html

helyébe a csatorna azon csatornaazonosítója lép, amelyből olvasni szeretnénk.

4. lépés: A program

A program 3 részre oszlik:

A) Arduino program: az arduino programja nagyon egyszerű. Sorban fogadja az ESP8266 -tól származó adatokat, és a kapott adatok alapján az eszközöket vezérlik. A programmal kapcsolatos további információk a program megjegyzéseiben találhatók.

B) ESP8266 program: az ESP8266 program 3 dolgot tartalmaz

1) a hőmérséklet és a páratartalom frissítése a http kéréssel

client.print (String ("GET") + "/update? key = & field1 =" + páratartalom + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Kapcsolat: bezár / r / n / r / n "); // frissítse a páratartalmat

client.print (String ("GET") + "/update? key = & field1 =" + hőmérséklet + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Kapcsolat: bezár / r / n / r / n "); // frissítse a hőmérsékletet

a helyébe a megfelelő írási kulcs kerül, ami megtalálható a thingspeak csatornában a páratartalom és a hőmérséklet tekintetében. és a házigazda az api.thingspeak.com.

a dht könyvtárat innen töltheti le:

2) olvasás a megfelelő beszédcsatornákról és a vezérlő eszköz a kapott értékek alapján: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Gazdagép: " + host +" / r / n " +" Kapcsolat: bezár / r / n / r / n ");

ahol helyét a megfelelő csatornaazonosító találja meg a thingspeak -ben.

3) Riasztás küldése magas hőmérséklet esetén a nyomódobozon keresztül

String host1 = "api.pushingbox.com";

client.print (Karakterlánc ("GET") + "/push pushbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Kapcsolat: bezár / r / n / r / n ");

ahol a push -boxban az eszköz azonosítója van helyettesítve.

5. lépés: A Linkit Smart 7688 Duo és a webkamera konfigurálása

Linkit Smart 7688 Duo és webkamera konfigurálása
Linkit Smart 7688 Duo és webkamera konfigurálása
Linkit Smart 7688 Duo és webkamera konfigurálása
Linkit Smart 7688 Duo és webkamera konfigurálása
Linkit Smart 7688 Duo és webkamera konfigurálása
Linkit Smart 7688 Duo és webkamera konfigurálása

Ebben a projektben a webkamerát és a linkit smart 7688 duót használják a szükséges fényképek rögzítésére és elküldésére a felhasználónak. Használhatja az arduino kamera modult is, és illesztheti az arduino -hoz, vagy használhat bármilyen IP kamerát.

Nyomja meg és tartsa lenyomva a linkit smart 7688 wifi gombját 20 másodpercig a tábla alaphelyzetbe állításához. Ezután a wifi beállítás visszaállítása után láthatja a hozzáférési pont nevét a vezeték nélküli hálózati kapcsolatokban. Most csatlakoztassa a számítógépet ehhez a hálózathoz. csatlakoztatása után nyissa meg a böngészőt, és írja be a 192.168.100.1 címsorba. Látni fogja a portálját. állítson be jelszót a portálra való bejelentkezéshez.

A bejelentkezés után lépjen a Hálózat fülre, és válassza az Állomás módot (szükségünk van rá (linkit smart 7688 duo) az internet eléréséhez), és csatlakoztassa a Wifi hálózathoz, majd nyomja meg a Konfigurálás és újraindítás gombot.

Az alaplap újraindítása után hozzárendel egy helyi IP -címet. Ismerje meg a címet bármely IP eszköz vagy útválasztó portál használatával. Az én esetemben 192.168.1.4 volt. Most írja be a helyi IP -címet a böngésző címsorába. győződjön meg arról, hogy a számítógép ugyanahhoz a hálózathoz van csatlakoztatva, mint a linkit smart. A rendszer ismét felkéri, hogy jelentkezzen be.

A webkamerából történő adatfolyam-engedélyezéshez engedélyeznie kell az-j.webp

A bejelentkezés után lépjen a szolgáltatás fülre, és jelölje be az-j.webp

A beállítás után OTG -kábelen keresztül csatlakoztathatja a webkamerát a linkit smart 7688 duo usb hoszthoz. Most, hogy megnézze a Stream -et, nyissa meg a böngészőt, és írja be: a címsorba. az én esetemben 192.168.1.4:4400

a pillanatfelvétel készítéséhez írja be a következő parancsot:? action = snapshot

Ez a kép most helyben elérhető, de ezt a push box szolgáltatás számára is elérhetővé kell tennünk. Ennek eléréséhez porttovábbítást kell végeznünk. A porttovábbítás a router portálon végezhető el. A folyamat azonosítója különböző a routereknél. Csak a Google segítségével tudhatja meg, hogyan továbbíthat egy adott útválasztót. Általában a NAT szolgáltatás alatt érhető el. A port továbbítás után a külső IP -címről érheti el ezt a portot (pl. 4440). A külső IP -címet a "whats my ip" Google -be írásával találhatja meg.

Ezt a címet be kell írnia

azaz.. https://::? action = pillanatkép

a pushboxban (amit a következő lépésben ismertetünk), hogy a pushbox elérhesse ezt a képet, és csatolhassa a levélhez, és szükség esetén elküldhesse Önnek.

A képet SD -kártyán is tárolhatja, mivel a Linkit smart 7688 duo SD -kártya foglalattal rendelkezik az információk tárolására. Erről bővebb információ a következő címen található:

docs.labs.mediatek.com/resource/linkit-sm…

6. lépés: A PushingBox konfigurálása

A PushingBox konfigurálása
A PushingBox konfigurálása

A push pushbox a projekt különböző riasztásairól szóló értesítéseket küldi a gmailnek.

bejelentkezés a pushboxba a Google -fiók használatával:

keresse fel a szolgáltatásaim hozzáadása szolgáltatást. sok szolgáltatás közül lehet választani, mint például a Gmail, a twitter, az push értesítés androidra stb.

válassza a Gmailt (mivel fényképet kell csatolmányként küldenünk), és töltse ki annak a felhasználónak a megfelelő Gmail -konfigurációját és gmail -azonosítóját, akinek el kell küldeni a riasztást.

menjen a forgatókönyveimhez, és hozzon létre egy új forgatókönyvet. adjon nevet a forgatókönyvnek (pl.: ALERT) adja hozzá a korábban létrehozott szolgáltatást.

írja be a levél tárgyát és törzsét, és írja be az URL -t, hogy elkészítse a webkameráról a fénykép csatolásához szükséges képernyőképet. Hozzon létre különböző forgatókönyveket a különböző riasztásokhoz. Az push -box forgatókönyv végrehajtásához az api:

7. lépés: Alexa Skill létrehozása a Backendless használatával

Alexa Skill létrehozása a Backendless használatával
Alexa Skill létrehozása a Backendless használatával
Alexa Skill létrehozása a Backendless használatával
Alexa Skill létrehozása a Backendless használatával
Alexa Skill létrehozása a Backendless használatával
Alexa Skill létrehozása a Backendless használatával

A backendless az alexa készség létrehozására szolgál. Ez egy egyszerű drag and drop programozás, amelyet alexa készség (vagy bármely program) létrehozására használnak, és amelyhez a háttér nélküli API hozzáférhet.

hozzon létre fiókot a backendless szolgáltatásban:

  • Jelentkezzen be fiókjába háttér nélküli fiókban. kattintson az Alkalmazás létrehozása gombra, és adjon nevet az alkalmazásnak
  • Kattintson az Üzleti logika ikonra a bal oldali ikonsorban. Ekkor megjelenik az API SZOLGÁLTATÁSOK képernyő.
  • Új szolgáltatás létrehozásához kattintson a „+” ikonra. Győződjön meg róla, hogy az „Új szolgáltatás” felugró ablakban a CODELESS lehetőséget választja. Írja be az „AlexaService” szolgáltatási nevet. Kattintson a MENTÉS gombra:
  • A Backendless létrehozza az API szolgáltatást, és kéri, hogy hozzon létre egy módszert a szolgáltatáshoz. Ez lesz az a módszer, amely feldolgozza az Alexa kéréseit. Írja be a „handleRequest” metódusnevet. Győződjön meg róla, hogy a POST lehetőséget választja a REST művelethez, és deklarálja az argumentumot a „req” névvel, és írja be az „Any Object” opciót az ábrán látható módon:
  • A Backendless létrehoz egy helyőrzőt a módszer kód nélküli logikájához. Kattintson a SZERKESZTÉS gombra a kód nélküli logikai tervezőre váltáshoz. A létrehozott függvény helyőrző blokkjában kattintson a „doSomething” feliratú területre, és módosítsa a „sendAlexaResponse” értékre. Ezt a funkciót arra használják, hogy az alexa mondjon valamit, amit érvként át lehet adni. Kattintson a MENTÉS gombra a funkció mentéséhez.
  • Kattintson a fogaskerék ikonra, amely a lila blokkban található, közvetlenül a „Funkció” szó mellett. Adjon hozzá két érvet a beviteli blokkok húzásával az alábbi képen látható módon. Rendelje hozzá az argumentumok nevét „whatToSay” és „waitForResponse”. Vegye figyelembe, hogy az argumentumok hozzáadása során a Kontextusblokkok terület automatikusan kitöltődik az argumentumértékeket képviselő blokkokkal.
  • Módosítsa a függvény logikáját úgy, hogy az a képen látható legyen. Az „Objektumok létrehozása” blokkoknál használja a fogaskerék ikont az objektum tulajdonságainak nevének megváltoztatásához. Ne felejtse el menteni a munkáját a MENTÉS gombra kattintva.
  • Most, hogy az egyéni funkció elkészült, térjen vissza az AlexaService szolgáltatás handleRequest metódusára. Kattintson az Egyéni funkciók kategóriára a bal oldali eszköztáron, és húzza a sendAlexaResponse blokkot, hogy csatlakozzon a szolgáltatási módszer visszatérő csatlakozójához
  • A fenti lépések megtalálhatók a weboldalukon is:
  • Kattintson a BROWSER szakasz Funkciók alatti „Új hozzáadása” csomópontjára. A létrehozott függvény helyőrző blokkjában kattintson a „doSomething” feliratú területre, és módosítsa a „getIntentName” értékre, módosítsa a blokkokat úgy, hogy a függvény a képen látható módon jelenjen meg. mintaszólalások alapján kapja meg a szándék nevét. Menjen vissza az api szolgáltatásokhoz-> kezelje a kérést a böngésző részben. A változókat és a logikát a rendszer részből kell létrehozni. Hozza létre az alábbi képekben látható változókat.
  • Ezután tároljuk a szándék nevét a változó kéréséhez. És akkor hasonlítsa össze a szándékkal. például ha a kérés "bevezetés", akkor a válasz változó "szia! irányíthatom ……." és ezt a választ alexa végre felolvassa. módosítsa a blokkot az ábrán látható módon.
  • ha a kérés LightsOn szándékú, akkor frissítjük a thingspeak csatornát "0" értékre a http get request használatával, és ezzel egyidejűleg frissítjük az eszköz állapotát (1/0 a Be/Ki állapottól függően). Ugyanez ismétlődik a LightsOff, a FanOn és a FanOff esetében is.
  • Időjárás esetén a hőmérséklet és páratartalom csatornából olvasunk, és az eredményt a válasz változóban tároljuk. Mivel a csatorna csak értékeket ad, szövegeket fűzünk hozzá, hogy a válasz értelmes legyen
  • a nappali pillanatképéhez push pushbox forgatókönyvet futtatunk
  • az eszköz állapotához a dolgok beszéd állapotcsatornájáról olvasunk információkat:
  • az értesítésekhez és riasztásokhoz, amelyeket a riasztási csatornákról olvasunk (tűz, betolakodó és vendég):
  • az értesítési mezőből kapott értékek alapján a megfelelő riasztási üzeneteket a válasz0 változó tárolja. ha nincs értesítés, akkor nincs értesítési üzenet.
  • az értesítés kiolvasása után a „0” frissül az értesítési csatornákon, így alexa nem olvassa újra ugyanazt az értesítést. Végül a kérés alapján a válasz0/válasz változó hangosan felolvasásra kerül.

8. lépés: Az Alexa Skill konfigurálása az Amazon Developer Console -ban:

Alexa Skill konfigurálása az Amazon Developer Console -ban
Alexa Skill konfigurálása az Amazon Developer Console -ban
Alexa Skill konfigurálása az Amazon Developer Console -ban
Alexa Skill konfigurálása az Amazon Developer Console -ban
Alexa Skill konfigurálása az Amazon Developer Console -ban
Alexa Skill konfigurálása az Amazon Developer Console -ban

lépjen az amazon fejlesztői konzolra, és jelentkezzen be az amazon fiók használatával.

lépjen a fejlesztői konzolra, és kattintson az ALEXA fülre. Kattintson az alexa készségkészletre az induláshoz.

hozzon létre egyéni készségtípust, adjon nevet és meghívási nevet a készségnek. a megfelelő szándékokat és a mondatmintákat a kód tartalmazza.

a konfigurációs lapon válassza ki a HTTPS szolgáltatási végpont típusát, és töltse ki az alapértelmezett URL -t az API URL -címmel a háttérben. Válassza ki a SSL -tanúsítvány alapértelmezett végpontjának Tanúsítvány 2. opcióját. A készségeket teszt szimulátor segítségével is tesztelheti.

A teszt befejezése után közzéteheti a készséget a szükséges közzétételi információkkal.

9. lépés: Végső beállítás és befejezés

Végső beállítás és befejezés!
Végső beállítás és befejezés!
Végső beállítás és befejezés!
Végső beállítás és befejezés!

Csatlakoztassa az áramkört az ábrán látható módon.

Néha az ESP8266 meghibásodik az elégtelen áram miatt. Tehát, bár az áramkörben említésre kerül, ajánlott az ESP8266 tápellátását külön 3.3V -os forrásból táplálni. Ha tápegységet használ, győződjön meg arról, hogy a feszültséget 5 V -ról 3.3 V -ra csökkenti egy 3.3 V -os feszültségszabályozó segítségével. Töltse fel a programot az ESP8266 és az arduino rendszerre. Megmutattam az izzóhoz való csatlakozást, ugyanez kiterjeszthető a ventilátorra vagy bármilyen eszközre. Végül az amazon echo vagy az echosim.io használatával tesztelheti ügyességét.

A készséget aktiválnia kell a meghívási név használatával (ahogy az én esetemben - "myhome"). Néha nem fog működni, ha hivatkozási név nélkül használják, amint azt a videómban párszor megmutattam

Remélem tetszett az oktatóanyag!

Köszönöm!

Ajánlott: