Obsah:

Inteligentné domáce monitorovanie pomocou Alexa a Arduino: 9 krokov (s obrázkami)
Inteligentné domáce monitorovanie pomocou Alexa a Arduino: 9 krokov (s obrázkami)

Video: Inteligentné domáce monitorovanie pomocou Alexa a Arduino: 9 krokov (s obrázkami)

Video: Inteligentné domáce monitorovanie pomocou Alexa a Arduino: 9 krokov (s obrázkami)
Video: Высокая плотность 2022 2024, November
Anonim
Image
Image
Zhromažďovanie materiálov
Zhromažďovanie materiálov

V dnešnom svete ľudia trávia viac času na pracovisku, než doma. Preto je potrebný domáci monitorovací systém, kde by ľudia mohli spoznať podmienky domu, keď sú v práci. Ešte lepšie by bolo, keby sa niekto mohol počas pracovnej doby „niekoho“opýtať na jeho domov. To sa dá dosiahnuť využitím asistenta Amazon Alexa, ktorý môže používateľovi poskytnúť potrebné informácie o jeho dome.

Nielen pracovné miesto, ale používatelia môžu spoznať stav domu na akomkoľvek mieste na svete, pokiaľ majú internetové pripojenie a Amazon Alexa.

V tomto projekte sú implementované nasledujúce funkcie:

1) Ovládajte domáce zariadenia, ako je ventilátor a svetlo

2) Informuje o stave zariadení

3) Hovorí o počasí v dome (teplota a vlhkosť)

4) V prípade potreby pošle používateľovi prostredníctvom Gmailu snímku interiéru domu.

5) Pošle upozornenie v prípade -

* Votrelec (pošle aj fotografiu)

* Oheň

* Hosť (pošle aj fotografiu)

Krok 1: Zhromažďovanie materiálov

Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov

Potrebné materiály

Arduino Uno

Wifi modul ESP8266

Linkit Smart 7688 Duo

DHT11

Relé

IR snímač prekážok

Webkamera

Amazon Echo Dot

Káble a prepojovacie vodiče

Softvér a online služby:

Thingspeak.com

Arduino IDE

Sada zručností Amazon Alexa

Amazon Alexa Echosim.io (na testovanie zručnosti)

Bez konca

PushingBox

Krok 2: Programovanie Arduina a ESP8266

Programovanie Arduina a ESP8266
Programovanie Arduina a ESP8266
Programovanie Arduina a ESP8266
Programovanie Arduina a ESP8266

Stiahnite si Arduino IDE z oficiálnych webových stránok:

Otvorte Arduino IDE a prejdite na súbor-> predvoľby-> v inom type adresy URL správcu dosky-https://arduino.esp8266.com/stable/package_esp8266…

Prejdite na nástroje -> dosky -> Správca dosky a nainštalujte konečne nájdený balík esp8266.

Na programovanie arduina stačí zapojiť USB kábel z arduina do počítača a v nástrojoch-> doskách vybrať Arduino/Genuino UNO. Uistite sa tiež, že ste v nástrojoch vybrali práva na COM porty (číslo portu COM nájdete v Správcovi zariadení). Napíšte požadovaný program, skompilovajte ho a ak nie sú žiadne chyby, kliknite na tlačidlo Nahrať.

Ak chcete naprogramovať ESP8266, vykonajte pripojenie podľa schémy. pripojte usb z arduina k počítaču. V nástrojoch-> doska-> vyberte Generic ESP8266 a tiež zvoľte pravý COM port. Napíšte požadovaný program, skompilovajte ho a ak nie sú žiadne chyby, kliknite na tlačidlo Nahrať. Nezabudnite pripojiť Arduino RST k GND (arduino funguje ako programátor k ESP8266).

V tomto projekte je najskôr naprogramovaný ESP8266 a potom sa odstránia spojenia obvodov. Potom sa obvod znova zapojí, ako je znázornené na obrázku, s názvom „Pripojenia obvodu“. A potom je arduino naprogramované.

Krok 3: Konfigurácia Thingspeak.com

Konfigurácia Thingspeak.com
Konfigurácia Thingspeak.com

Vytvorte si účet na thingspeak.com.

vo thingspeak používame kanály na ukladanie informácií o ovládaní zariadenia a ich smerovanie do arduino/alexa. do kanálov ukladáme aj hodnoty teploty a vlhkosti. Je to ako miesto na ukladanie informácií.

Prihláste sa do programu thingspeak, prejdite na kanály mojich kanálov a vytvorte nový kanál. Zadajte názov a popis svojich kanálov. V našom projekte potrebujeme 8 kanálov (prácu môžete vykonať s menším počtom kanálov, ale pri programovaní to bude trochu komplikované). Pri aktualizácii kanála má thingspeak tiež časové obmedzenie. Medzi postupnou aktualizáciou konkrétneho kanála musí byť medzera 10-15 sekúnd.

Ďalej je uvedených osem kanálov s ich hodnotami a významom

názov kanála (hodnota1-význam, hodnota2-význam atď.):

1) Ovládanie zariadenia (0- zapnuté, 1- vypnuté, 2- zapnuté, 3- vypnuté)

2) stav svetla (0- svetlo nesvieti, 1- svetlo svieti)

3) stav ventilátora (0- ventilátor vypnutý, 1- zapnutý ventilátor)

4) vlhkosť (hodnota vlhkosti)

5) teplota (hodnota teploty)

6) upozornenie na narušiteľa (1- upozornenie na narušiteľa)

7) požiarne hlásenie (1- požiarna výstraha)

8) upozornenie hosťa (1- upozornenie hosťa)

keď kliknete na ľubovoľný kanál, uvidíte jeho ID kanála a napíšete kľúče API na karte Kľúče API. Na získanie informácií/ hodnoty v kanáli je potrebné ID kanála. Na uloženie hodnoty v kanáli je potrebný kľúč na zápis.

http požiadavka na aktualizáciu kanála je:

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

je nahradený zodpovedajúcimi zapisovacími kľúčmi kanála a môže byť (0/1 v prípade ovládania zariadenia alebo hodnôt teploty/vlhkosti)

http požiadavka na čítanie hodnoty z kanála je:

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

je nahradený konkrétnym ID kanála kanála, z ktorého chceme čítať.

Krok 4: Program

Program je rozdelený na 3 časti:

A) Program pre Arduino: program pre arduino je veľmi jednoduchý. Prijíma údaje z ESP8266 sériovo a na základe prijatých údajov sú zariadenia riadené. Viac informácií o programe nájdete v komentároch k samotnému programu.

B) Program pre ESP8266: program pre ESP8266 zahŕňa 3 veci

1) aktualizácia teploty a vlhkosti pomocou http požiadavky

client.print (String ("GET") + "/aktualizovať? kľúč = & field1 =" + vlhkosť + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Pripojenie: zavrieť / r / n / r / n "); // aktualizácia vlhkosti

client.print (String ("GET") + "/update? key = & field1 =" + teplota + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Pripojenie: zavrieť / r / n / r / n "); // aktualizácia teploty

hodnota je nahradená zodpovedajúcim zapisovacím kľúčom v kanáli thingspeak pre vlhkosť a teplotu. a hostiteľom je api.thingspeak.com.

stiahnite si knižnicu dht z:

2) čítanie zo zodpovedajúcich kanálov thingspeak a ovládacieho zariadenia na základe získaných hodnôt: client.print (String („GET“) + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Host: " + host +" / r / n " +" Pripojenie: zavrieť / r / n / r / n ");

kde je nahradený zodpovedajúcim ID kanála nájdeným v thingspeak.

3) Odosielanie upozornení v prípade vysokej teploty prostredníctvom tlačiaceho boxu

Reťazec host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Pripojenie: zavrieť / r / n / r / n ");

kde je nahradené vašim ID zariadenia v pushboxe.

Krok 5: Konfigurácia Linkit Smart 7688 Duo a webovej kamery

Konfigurácia Linkit Smart 7688 Duo a webovej kamery
Konfigurácia Linkit Smart 7688 Duo a webovej kamery
Konfigurácia Linkit Smart 7688 Duo a webovej kamery
Konfigurácia Linkit Smart 7688 Duo a webovej kamery
Konfigurácia Linkit Smart 7688 Duo a webovej kamery
Konfigurácia Linkit Smart 7688 Duo a webovej kamery

V tomto projekte sa webová kamera a linkit smart 7688 duo používa na zachytenie požadovanej fotografie a jej odoslanie používateľovi. Môžete tiež použiť kamerový modul arduino a prepojiť ho s arduino alebo môžete použiť akúkoľvek IP kameru.

Resetujte dosku stlačením a podržaním tlačidla wifi na zariadení linkit smart 7688 po dobu 20 sekúnd. Potom, čo sa resetuje nastavenie wifi, uvidíte názov jeho prístupového bodu v pripojeniach k bezdrôtovej sieti. Teraz pripojte počítač k tejto sieti. po pripojení otvorte prehliadač a do panela s adresou zadajte 192.168.100.1. Budete mať možnosť vidieť jeho portál. nastaviť heslo pre prihlásenie sa na jeho portál.

Po prihlásení prejdite na kartu sieť, vyberte režim Stanica (potrebujeme ho (linkit smart 7688 duo) na prístup na internet), pripojte ho k sieti Wifi a stlačte Konfigurovať a reštartovať.

Po reštartovaní dosky bude priradená lokálna adresa IP. Zistite adresu pomocou akýchkoľvek nástrojov IP alebo vášho portálu smerovača. V mojom prípade to bolo 192.168.1.4. Teraz zadajte miestnu adresu IP do panela s adresou prehliadača. uistite sa, že je počítač pripojený k rovnakej sieti ako linkit smart. Budete požiadaní o opätovné prihlásenie.

Ak chcete povoliť streamovanie z webovej kamery, musíte povoliť -j.webp

Po prihlásení prejdite na kartu služby, začiarknite políčko povoliť streamovanie -j.webp

Po nastavení vás bude možné pripojiť webovú kameru k hostiteľovi usb linkit smart 7688 duo USB pomocou kábla OTG. Teraz, keď sa vám stream zobrazí, otvorte prehliadač a do panela s adresou zadajte: v mojom prípade je to 192.168.1.4:4400

Ak chcete urobiť snímku, zadajte príkaz:? action = snapshot

Tento obrázok je teraz k dispozícii lokálne, ale musíme ho sprístupniť službe push box. Aby sme to dosiahli, musíme urobiť presmerovanie portov. Presmerovanie portov je možné vykonať na portáli routera. Proces sa líši pre rôzne smerovače. Stačí si vygoogliť, aby ste vedeli, ako sa má prenášať port pre konkrétny smerovač. Spravidla je k dispozícii v rámci služby NAT. Po prenose portov na predný port máte prístup k tomuto portu (tj. 4440) z externej adresy IP. Externú IP adresu nájdete tak, že na Google zadáte „whats my ip“.

Musíte zadať túto adresu

tj.. https://::? action = momentka

v pushboxe (čo je vysvetlené v nasledujúcom kroku), aby Pushbox mal prístup k tomuto obrázku, pripojil ho k pošte a odoslal vám ho, kedykoľvek to bude potrebné.

Obrázok môžete uložiť aj na kartu SD, pretože Linkit smart 7688 duo je dodávaný aj so slotom na kartu SD na ukladanie informácií. Viac informácií o tom nájdete na:

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

Krok 6: Konfigurácia PushingBox

Konfigurácia PushingBoxu
Konfigurácia PushingBoxu

Pushbox sa používa na odosielanie upozornení na rôzne upozornenia v projekte na gmail.

prihláste sa do Pushboxu pomocou účtu Google:

prejsť na moje služby pridať službu. na výber je mnoho služieb, ako je Gmail, twitter, upozornenie push pre Android atď …

vyberte Gmail (pretože potrebujeme odoslať fotografiu ako prílohu) a vyplňte príslušnú konfiguráciu názvu Gmailu a ID Gmailu používateľa, ktorému má byť upozornenie odoslané.

prejdite na moje scenáre a vytvorte nový scenár. pomenujte scenár (napr. ALERT) pridajte predtým vytvorenú službu.

napíšte vhodný predmet a telo e -mailu a zadajte URL, aby sa nasnímal obrázok webovej kamery na priloženie fotografie. Vytvorte rôzne scenáre pre rôzne výstrahy. API na spustenie scenára tlačiaceho boxu je:

Krok 7: Vytvorenie zručnosti Alexa pomocou technológie Backendless

Vytvorenie zručnosti Alexa pomocou technológie Backendless
Vytvorenie zručnosti Alexa pomocou technológie Backendless
Vytvorenie zručnosti Alexa pomocou technológie Backendless
Vytvorenie zručnosti Alexa pomocou technológie Backendless
Vytvorenie zručnosti Alexa pomocou technológie Backendless
Vytvorenie zručnosti Alexa pomocou technológie Backendless

backendless sa používa na vytvorenie zručnosti alexa. Jedná sa o jednoduché programovanie drag and drop, ktoré sa používa na vytvorenie zručnosti alexa (alebo akýchkoľvek programov), ku ktorému je prístup pomocou rozhrania API bez backendu.

vytvorte si účet bez backendless:

  • Prihláste sa do svojho účtu pomocou účtu bez backendu. kliknite na položku Vytvoriť aplikáciu a pomenujte ju
  • Kliknite na ikonu Business Logic umiestnenú na paneli s ikonami vľavo. Zobrazí sa obrazovka API SLUŽBY.
  • Kliknutím na ikonu „+“vytvoríte novú službu. V rozbaľovacom okne „Nová služba“vyberte možnosť CODELESS. Ako názov služby zadajte „AlexaService“. Kliknite na tlačidlo ULOŽIŤ:
  • Backendless vytvorí službu API a vyzve vás, aby ste pre túto službu vytvorili spôsob. Toto bude metóda, ktorá bude spracovávať požiadavky od Alexa. Do názvu metódy zadajte „handleRequest“. Uistite sa, že ste pre operáciu REST vybrali POST a deklarovali argument s názvom „req“a zadali „Any Object“podľa nasledujúceho obrázku:
  • Backendless vytvára zástupný symbol pre kódovú logiku metódy. Kliknutím na tlačidlo UPRAVIŤ spustíte prepínač do programu Codeless Logic Designer. Vo vytvorenom zástupnom bloku funkcie kliknite na oblasť „DoSomething“a zmeňte ju na „sendAlexaResponse“. Táto funkcia sa používa na to, aby alexa povedala niečo, čo možno považovať za argument. Kliknutím na tlačidlo ULOŽIŤ sa funkcia uloží.
  • Kliknite na ikonu ozubeného kolieska umiestnenú vo fialovom bloku hneď vedľa slova „Funkcia“. Pridajte dva argumenty potiahnutím vstupných blokov, ako je to znázornené na obrázku nižšie. Priraďte názvy argumentov ako „whatToSay“a „waitForResponse“. Všimnite si, že pri pridávaní argumentov sa oblasť kontextových blokov automaticky naplní blokmi predstavujúcimi hodnoty argumentov.
  • Upravte logiku funkcie tak, aby vyzerala ako na obrázku. V prípade blokov „Vytvoriť objekty“zmeňte názov vlastností objektu pomocou ikony ozubeného kolieska. Nezabudnite uložiť svoju prácu kliknutím na tlačidlo ULOŽIŤ.
  • Teraz, keď je vytvorená vlastná funkcia, prepnite späť na metódu handleRequest služby AlexaService. Na paneli s nástrojmi vľavo kliknite na kategóriu Vlastné funkcie a potiahnutím bloku sendAlexaResponse sa spojte s konektorom návratu vašej metódy služby
  • Vyššie uvedené kroky nájdete aj na ich webových stránkach: https://backendless.com/developing-alexa-skill-wi…
  • Kliknite na uzol „Pridať nový“v časti Funkcie v sekcii PREHLEDOVAČ. Vo vytvorenom zástupnom bloku funkcií kliknite na oblasť s textom „doSomething“a zmeňte ho na „getIntentName“. Upravte bloky tak, aby funkcia vyzerala ako na obrázku. Toto získa názov zámeru na základe ukážkových výpovedí. Vráťte sa späť do služby API-> spracujte žiadosť v sekcii prehliadača. Premenné a logika sa vytvárajú zo systémovej sekcie. Vytvorte nasledujúce premenné zobrazené na obrázkoch.
  • ďalej uložíme názov zámeru na vyžiadanie premennej. A potom porovnať so zámermi. napríklad ak je požiadavka „úvod“, potom je premenná odpovede nastavená na „ahoj! môžem ovládať …….“a túto odpoveď alexa konečne prečíta nahlas. blok upravte podľa obrázku.
  • ak je požiadavka zámerom LightsOn, aktualizujeme kanál thingspeak na „0“pomocou požiadavky http get a súčasne aktualizujeme stav zariadenia (1/0 v závislosti od zapnutia/vypnutia). To isté sa opakuje pre LightsOff, FanOn a FanOff.
  • Pre počasie čítame z kanála teploty a vlhkosti a výsledok uložíme do premennej respond. Pretože kanál poskytuje iba hodnoty, pripájame texty, aby bola odpoveď zmysluplná
  • pre snímku z obývačky spustíme scenár pushboxu
  • pre stav zariadenia čítame informácie zo stavového kanála thingspeak:
  • pre upozornenia a výstrahy, ktoré čítame z výstražných kanálov (oheň, votrelec a hosť):
  • na základe hodnôt, ktoré získame z notifikačného poľa, sú zodpovedajúce výstražné správy uložené v premennej respond0. ak nie sú k dispozícii žiadne oznámenia, neuloží sa žiadna notifikačná správa.
  • Akonáhle je upozornenie prečítané, potom sa v oznamovacích kanáloch aktualizuje „0“, aby alexa už viac nečítala rovnaké upozornenie. Potom sa na základe žiadosti nahlas načíta premenná respond0/respond.

Krok 8: Konfigurácia zručnosti Alexa v konzole Amazon Developer Console:

Konfigurácia zručnosti Alexa v konzole Amazon Developer Console
Konfigurácia zručnosti Alexa v konzole Amazon Developer Console
Konfigurácia zručnosti Alexa v konzole Amazon Developer Console
Konfigurácia zručnosti Alexa v konzole Amazon Developer Console
Konfigurácia zručnosti Alexa v konzole Amazon Developer Console
Konfigurácia zručnosti Alexa v konzole Amazon Developer Console

prejdite na konzolu pre vývojárov amazonu a prihláste sa pomocou účtu amazon.

prejdite na konzolu pre vývojárov a kliknite na kartu ALEXA. Začnite kliknutím na súpravu schopností Alexa.

vytvorte vlastný typ zručnosti, zadajte názov a vyvolávací názov zručnosti. Príslušné zámery a ukážkové výpovede sú uvedené v kóde.

na karte konfigurácie vyberte HTTPS ako typ koncového bodu služby a vyplňte predvolenú adresu URL adresou API z backendless. Vyberte druhú možnosť v časti Certifikát ako predvolený koncový bod v certifikáte SSL. Túto zručnosť si môžete tiež vyskúšať pomocou testovacieho simulátora.

Po dokončení testu môžete zručnosti zverejniť s požadovanými informáciami o publikovaní.

Krok 9: Konečné nastavenie a dokončenie

Konečné nastavenie a dokončenie!
Konečné nastavenie a dokončenie!
Konečné nastavenie a dokončenie!
Konečné nastavenie a dokončenie!

Pripojenie obvodu vykonajte podľa obrázku.

Niekedy ESP8266 nefunguje správne kvôli nedostatočnému prúdu. Aj keď to nie je v obvode uvedené, odporúča sa napájať ESP8266 zo samostatného zdroja 3,3 V. Ak používate napájaciu banku, uistite sa, že znížite napätie z 5 na 3,3 v pomocou regulátora napätia 3,3 V. Nahrajte program na ESP8266 a arduino. Ukázal som pripojenie k žiarovke, to isté možno rozšíriť na ventilátor alebo akékoľvek zariadenie. Nakoniec vyskúšajte svoje schopnosti pomocou amazon echo alebo echosim.io.

Schopnosť musíte aktivovať pomocou vyvolávacieho mena (ako je to v mojom prípade - „myhome“). Niekedy to nebude fungovať, ak sa použije bez vyvolávacieho názvu, ako som to niekoľkokrát ukázal vo svojom videu

Dúfam, že sa vám návod páčil!

Ďakujem!

Odporúča: