Obsah:

Smart Home Monitoring pomocí Alexa a Arduino: 9 kroků (s obrázky)
Smart Home Monitoring pomocí Alexa a Arduino: 9 kroků (s obrázky)

Video: Smart Home Monitoring pomocí Alexa a Arduino: 9 kroků (s obrázky)

Video: Smart Home Monitoring pomocí Alexa a Arduino: 9 kroků (s obrázky)
Video: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Červenec
Anonim
Image
Image
Shromažďování materiálů
Shromažďování materiálů

V dnešním světě lidé tráví více času na pracovišti než ve svých domovech. Proto existuje potřeba domácího monitorovacího systému, kde by se lidé mohli seznámit s podmínkami domu, když jsou v práci. Ještě lepší by bylo, kdyby se někdo během pracovní doby mohl „někoho“zeptat na jeho domov. Toho lze dosáhnout využitím asistenta Amazon Alexa, který může uživateli poskytnout potřebné informace o jeho domově.

Nejen pracovní místo Uživatelé mohou poznat stav domu na jakémkoli místě na světě, pokud mají připojení k internetu a Amazon Alexa.

V tomto projektu jsou implementovány následující funkce:

1) Ovládejte domácí zařízení, jako je ventilátor a světlo

2) Informuje o stavu zařízení

3) Udává povětrnostní podmínky domu (teplota a vlhkost)

4) V případě potřeby pošle uživateli snímek interiéru domu přes Gmail.

5) Odesílá oznámení v případě -

* Vetřelec (pošle také fotografii)

* Oheň

* Host (pošle také fotografii)

Krok 1: Shromáždění materiálů

Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů

Požadovaný materiál

Arduino Uno

Wifi modul ESP8266

Linkit Smart 7688 Duo

DHT11

Relé

IR senzor překážky

Webová kamera

Amazon Echo Dot

Dráty a propojovací vodiče

Software a online služby:

Thingspeak.com

Arduino IDE

Sada dovedností Amazon Alexa

Amazon Alexa Echosim.io (pro testování dovedností)

Backendless

PushingBox

Krok 2: Programování Arduina a ESP8266

Programování Arduina a ESP8266
Programování Arduina a ESP8266
Programování Arduina a ESP8266
Programování Arduina a ESP8266

Stáhněte si Arduino IDE z oficiálních webových stránek:

Otevřete Arduino IDE a přejděte na soubor-> předvolby-> v dalším typu adresy URL správce desek-https://arduino.esp8266.com/stable/package_esp8266…

Přejděte na nástroje -> desky -> Správce desek a nainstalujte konečně nalezený balíček esp8266.

Chcete-li arduino naprogramovat, stačí zapojit USB kabel z arduina do počítače a v nástrojích-> deskách zvolit Arduino/Genuino UNO. Nezapomeňte také vybrat práva COM porty v Nástroje (číslo portu COM najdete ve Správci zařízení). Napište požadovaný program, zkompilujte jej a pokud nejsou žádné chyby, klikněte na nahrát.

Pro naprogramování ESP8266 proveďte připojení podle obrázku. připojte USB z arduina k počítači. V nástrojích-> deska-> vyberte Obecný ESP8266 a také vyberte pravý COM port. Napište požadovaný program, zkompilujte jej a pokud nejsou žádné chyby, klikněte na nahrát. Ujistěte se, že připojujete Arduino RST k GND (arduino funguje jako programátor k ESP8266).

V tomto projektu se nejprve naprogramuje ESP8266 a poté se odstraní připojení obvodů. Poté se obvod znovu připojí, jak ukazuje obrázek s názvem „Připojení obvodu“. A pak je arduino naprogramováno.

Krok 3: Konfigurace Thingspeak.com

Konfigurace Thingspeak.com
Konfigurace Thingspeak.com

Vytvořte si účet na thingspeak.com.

používáme kanály in thingspeak k ukládání informací o ovládání zařízení a jejich směrování do arduino/alexa. do kanálů ukládáme také hodnoty teploty a vlhkosti. Je to jako místo pro ukládání informací.

Přihlaste se k aplikaci thingspeak, přejděte na kanály mých kanálů a vytvořte nový kanál. Uveďte název a popis svých kanálů. V našem projektu potřebujeme 8 kanálů (práci můžete provést pomocí méně kanálů, ale při programování to bude trochu komplikované). Také thingspeak má časové omezení při aktualizaci kanálu. Mezi postupnou aktualizací konkrétního kanálu musí být mezera 10–15 s.

Níže je uvedeno osm kanálů s jejich hodnotami a významem

název kanálu (hodnota1-význam, hodnota2-význam atd.):

1) Ovládání zařízení (0- zapnuto, 1- vypnuto, 2- zapnuto, 3- vypnuto)

2) stav světla (0- nesvítí, 1- svítí)

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

4) vlhkost (hodnota vlhkosti)

5) teplota (hodnota teploty)

6) oznámení narušitele (1- upozornění narušitele)

7) požární upozornění (1- požární varování)

8) oznámení hosta (1 upozornění hosta)

když kliknete na libovolný kanál, můžete vidět jeho ID kanálu a zapsat klíče API na kartě API klíče. ID kanálu je vyžadováno pro získání informací/ hodnoty v kanálu. K uložení hodnoty do kanálu je vyžadován klíč pro zápis.

http požadavek na aktualizaci kanálu je:

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

je nahrazen odpovídajícími zapisovacími klávesami kanálu a může být (0/1 v případě ovládání zařízení nebo hodnot teploty/vlhkosti)

http požadavek na čtení hodnoty z kanálu je:

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

je nahrazeno konkrétním ID kanálu, ze kterého chceme číst.

Krok 4: Program

Program je rozdělen do 3 částí:

A) Program pro Arduino: program pro arduino je velmi jednoduchý. Přijímá data z ESP8266 sériově a na základě přijatých dat jsou zařízení ovládána. Více informací o programu najdete v komentářích v samotném programu.

B) Program pro ESP8266: program pro ESP8266 zahrnuje 3 věci

1) aktualizace teploty a vlhkosti pomocí požadavku

client.print (String ("GET") + "/update? key = & field1 =" + vlhkost + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Připojení: zavřít / r / n / r / n "); // aktualizace vlhkosti

client.print (String ("GET") + "/update? key = & field1 =" + teplota + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Připojení: zavřít / r / n / r / n "); // aktualizace teploty

je nahrazen odpovídajícím klíčem pro zápis, který se nachází v kanálu pro špičkový obsah vlhkosti a teploty. a hostitelem je api.thingspeak.com.

stáhněte si knihovnu dht z:

2) čtení z odpovídajících kanálů thingspeak a ovládání zařízení na základě získaných hodnot: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Host: " + host +" / r / n " +" Připojení: zavřít / r / n / r / n ");

kde je nahrazeno odpovídajícím ID kanálu nalezeným v thingspeak.

3) Odeslání výstrahy v případě vysoké teploty prostřednictvím tlačného boxu

Řetězec host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Připojení: zavřít / r / n / r / n ");

kde je nahrazeno vaším ID zařízení v pushboxu.

Krok 5: Konfigurace Linkit Smart 7688 Duo a webové kamery

Konfigurace Linkit Smart 7688 Duo a webové kamery
Konfigurace Linkit Smart 7688 Duo a webové kamery
Konfigurace Linkit Smart 7688 Duo a webové kamery
Konfigurace Linkit Smart 7688 Duo a webové kamery
Konfigurace Linkit Smart 7688 Duo a webové kamery
Konfigurace Linkit Smart 7688 Duo a webové kamery

V tomto projektu webová kamera a linkit smart 7688 duo slouží k zachycení požadované fotografie a jejímu odeslání uživateli. Můžete také použít kamerový modul arduino a propojit jej s arduino nebo použít libovolnou IP kameru.

Desku resetujete stisknutím a podržením tlačítka wifi na zařízení linkit smart 7688 po dobu 20 sekund. Poté, co se resetuje nastavení wifi, uvidíte název svého přístupového bodu v připojení k bezdrátové síti. Nyní připojte počítač k této síti. po připojení otevřete prohlížeč a do adresního řádku zadejte 192.168.100.1. Budete moci vidět jeho portál. nastavit heslo pro přihlášení na jeho portál.

Poté, co se přihlásíte, přejděte na kartu síť a vyberte režim Stanice (potřebujeme jej (pro připojení k internetu (linkit smart 7688 duo)), připojte se k síti Wifi a stiskněte Konfigurovat a restartujte.

Poté, co se deska restartuje, bude jí přidělena místní IP adresa. Zjistěte adresu pomocí libovolných nástrojů IP nebo portálu routeru. V mém případě to bylo 192.168.1.4. Nyní zadejte místní IP adresu do adresního řádku prohlížeče. ujistěte se, že je počítač připojen ke stejné síti jako linkit smart. Budete požádáni o opětovné přihlášení.

Chcete-li povolit streamování z webové kamery, měli byste povolit-j.webp

Poté, co se přihlásíte, přejděte na kartu služby a zaškrtněte Povolit-j.webp

Po nastavení se můžete připojit webovou kameru k USB hostiteli linkit smart 7688 duo USB pomocí kabelu OTG. Nyní se vám zobrazí stream, otevřete prohlížeč a do adresního řádku zadejte: v mém případě je to 192.168.1.4:4400

Chcete -li pořídit snímek, zadejte příkaz:? action = snímek

Nyní je tento obrázek k dispozici místně, ale musíme jej zpřístupnit službě push box. Abychom toho dosáhli, musíme provést přesměrování portů. Přesměrování portů lze provádět na portálu routeru. Proces se liší pro různé směrovače. Stačí google, abyste věděli, jak portovat pro konkrétní router. Obvykle je k dispozici pod službou NAT. Poté, co přenesete port dopředu, můžete k tomuto portu (tj. 4440) přistupovat z vaší externí IP. Externí IP lze zjistit tak, že na Google zadáte „whats my ip“.

Musíte zadat tuto adresu

tj.. https://::? action = snímek

v pushboxu (což je vysvětleno v dalším kroku), aby pushbox měl přístup k tomuto obrázku, připojil jej k poště a odeslal vám ho, kdykoli to bude potřeba.

Obrázek můžete také uložit na kartu SD, protože Linkit smart 7688 duo je dodáván také se slotem pro kartu SD pro ukládání informací. Více informací o tom najdete na:

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

Krok 6: Konfigurace PushingBox

Konfigurace PushingBox
Konfigurace PushingBox

Pushbox slouží k odesílání upozornění na různá upozornění v projektu na gmail.

přihlaste se do Pushboxu pomocí účtu Google:

přejděte na moje služby přidat službu. na výběr je mnoho služeb, jako je Gmail, twitter, push notifikace pro Android atd …

vyberte Gmail (protože potřebujeme poslat fotografii jako přílohu) a vyplňte příslušnou konfiguraci jména gmailu a gmail id uživatele, kterému má být upozornění zasláno.

přejděte na mé scénáře a vytvořte nový scénář. pojmenujte scénář (např. ALERT) přidejte dříve vytvořenou službu.

napište vhodný předmět a tělo e -mailu a zadejte adresu URL pro pořízení snímku webové kamery pro připojení fotografie. Vytvořte různé scénáře pro různé výstrahy. Api pro provedení scénáře tlačného pole je:

Krok 7: Vytvoření dovednosti Alexa pomocí backendless

Vytváření dovednosti Alexa pomocí backendless
Vytváření dovednosti Alexa pomocí backendless
Vytváření dovednosti Alexa pomocí backendless
Vytváření dovednosti Alexa pomocí backendless
Vytváření dovednosti Alexa pomocí backendless
Vytváření dovednosti Alexa pomocí backendless

backendless se používá k vytvoření dovednosti alexa. Jedná se o jednoduché programování přetažením, které se používá k vytvoření dovednosti alexa (nebo jakýchkoli programů), ke které lze přistupovat pomocí backendless API.

vytvořte si účet na backendless:

  • Přihlaste se ke svému účtu pomocí backendless účtu. klikněte na Vytvořit aplikaci a pojmenujte ji
  • Klikněte na ikonu Business Logic umístěnou na liště ikon vlevo. Zobrazí se obrazovka API SERVICES.
  • Kliknutím na ikonu „+“vytvoříte novou službu. V rozbalovací nabídce „Nová služba“vyberte možnost CODELESS. Jako název služby zadejte „AlexaService“. Klikněte na tlačítko ULOŽIT:
  • Backendless vytvoří službu API a vyzve vás k vytvoření metody pro tuto službu. Toto bude metoda, která bude zpracovávat požadavky od Alexa. Jako název metody zadejte „handleRequest“. Ujistěte se, že jste pro operaci REST vybrali POST, a deklarujte argument s názvem „req“a zadejte „Any Object“, jak je uvedeno na obrázku:
  • Backendless vytváří zástupný symbol pro logiku bez kódování metody. Kliknutím na tlačítko EDIT spustíte přepnutí na Codeless Logic Designer. Ve vytvořeném zástupném bloku funkce klikněte na oblast „DoSomething“a změňte ji na „sendAlexaResponse“. Tato funkce slouží k tomu, aby alexa řekla něco, co lze předat jako argument. Klikněte na tlačítko ULOŽIT, aby byla funkce uložena.
  • Klikněte na ikonu ozubeného kola umístěnou ve fialovém bloku hned vedle slova „Funkce“. Přidejte dva argumenty přetažením vstupních bloků, jak je znázorněno na obrázku níže. Přiřaďte názvy argumentů jako „whatToSay“a „waitForResponse“. Všimněte si, že při přidávání argumentů se oblast kontextových bloků automaticky naplní bloky představujícími hodnoty argumentů.
  • Upravte logiku funkce tak, aby vypadala jako na obrázku. U bloků „Vytvořit objekty“změňte název vlastností objektu pomocí ozubeného kola. Nezapomeňte uložit svou práci kliknutím na tlačítko ULOŽIT.
  • Nyní, když je vytvořena vlastní funkce, přepněte zpět na metodu handleRequest služby AlexaService. Na panelu nástrojů vlevo klikněte na kategorii Vlastní funkce a přetažením bloku sendAlexaResponse se spojte s návratovým konektorem vaší servisní metody
  • Výše uvedené kroky najdete také na jejich webových stránkách:
  • Klikněte na uzel „Přidat nový“v části Funkce v sekci PROHLÍŽEČ. Ve vytvořeném zástupném bloku funkcí klikněte na oblast s nápisem „doSomething“a změňte ji na „getIntentName“, upravte bloky tak, aby funkce vypadala jako na obrázku. získá název záměru na základě ukázkových promluv. Vraťte se zpět do služeb API-> vyřizujte požadavek v sekci prohlížeče. Proměnné a logika se vytváří ze systémové sekce. Vytvořte následující proměnné zobrazené na obrázcích.
  • dále uložíme název záměru pro požadavek proměnné. A pak porovnat s úmysly. například pokud je požadavek „úvod“, pak je proměnná odpovědi nastavena na „ahoj! Mohu ovládat …….“a tuto odpověď alexa konečně přečte nahlas. upravte blok podle obrázku.
  • pokud je požadavek záměrem LightsOn, aktualizujeme kanál thingspeak na '0' pomocí požadavku http get a současně aktualizujeme stav zařízení (1/0 v závislosti na Zapnuto/Vypnuto). Totéž se opakuje pro LightsOff, FanOn a FanOff.
  • Pro počasí čteme z kanálu Teplota a vlhkost a výsledek ukládáme do proměnné reakce. Protože kanál poskytuje pouze hodnoty, připojujeme texty, aby odpověď byla smysluplná
  • pro snímek obývacího pokoje spustíme scénář pushboxu
  • pro stav zařízení čteme informace ze stavového kanálu thingspeak:
  • pro upozornění a výstrahy čteme z výstražných kanálů (oheň, vetřelec a host):
  • na základě hodnot, které získáme z oznamovacího pole, jsou odpovídající výstražné zprávy uloženy v proměnné respond0. pokud nedojde k žádnému upozornění, nebude uložena žádná oznamovací zpráva.
  • jakmile je oznámení přečteno, aktualizuje se v oznamovacích kanálech „0“, takže alexa nebude znovu číst stejné oznámení. Poté se na základě požadavku nahlas přečte proměnná respond0/respond.

Krok 8: Konfigurace dovednosti Alexa v konzole Amazon Developer Console:

Konfigurace Alexa Skill v Amazon Developer Console
Konfigurace Alexa Skill v Amazon Developer Console
Konfigurace Alexa Skill v Amazon Developer Console
Konfigurace Alexa Skill v Amazon Developer Console
Konfigurace Alexa Skill v Amazon Developer Console
Konfigurace Alexa Skill v Amazon Developer Console

přejděte do vývojářské konzoly amazon a přihlaste se pomocí účtu amazon.

přejděte do konzoly pro vývojáře a klikněte na kartu ALEXA. Začněte kliknutím na Alexa skills kit.

vytvořte vlastní typ dovednosti, dejte jméno a název vyvolání dovednosti. příslušné záměry a ukázkové výpovědi jsou uvedeny v kódu.

na kartě konfigurace vyberte HTTPS jako typ koncového bodu služby a vyplňte výchozí adresu URL pomocí API z backendless. Vyberte 2. možnost v certifikátu pro výchozí koncový bod v certifikátu SSL. Dovednost si můžete také vyzkoušet pomocí testovacího simulátoru.

Po dokončení testu můžete dovednosti publikovat s požadovanými informacemi o publikování.

Krok 9: Konečné nastavení a dokončení

Konečné nastavení a dokončení!
Konečné nastavení a dokončení!
Konečné nastavení a dokončení!
Konečné nastavení a dokončení!

Proveďte zapojení obvodu podle obrázku.

Někdy ESP8266 nefunguje správně kvůli nedostatečnému proudu. I když je to v obvodu uvedeno, doporučuje se napájet ESP8266 ze samostatného zdroje 3,3 V. Pokud používáte napájecí banku, ujistěte se, že snížíte napětí z 5 V na 3,3 V pomocí regulátoru napětí 3,3 V. Nahrajte program na ESP8266 a arduino. Ukázal jsem připojení k žárovce, totéž lze rozšířit na ventilátor nebo jakákoli zařízení. Nakonec vyzkoušejte své dovednosti pomocí amazon echo nebo echosim.io.

Dovednost musíte aktivovat pomocí vyvolávacího jména (stejně jako můj případ - „myhome“). Někdy to nebude fungovat, pokud bude použito bez vyvolávacího jména, jak jsem několikrát ukázal ve svém videu

Doufám, že se vám návod líbil!

Děkuji!

Doporučuje: