Sadržaj:

Nadzor pametnog doma pomoću Alexa i Arduina: 9 koraka (sa slikama)
Nadzor pametnog doma pomoću Alexa i Arduina: 9 koraka (sa slikama)

Video: Nadzor pametnog doma pomoću Alexa i Arduina: 9 koraka (sa slikama)

Video: Nadzor pametnog doma pomoću Alexa i Arduina: 9 koraka (sa slikama)
Video: CS50 2013 - Week 9 2024, Studeni
Anonim
Image
Image
Prikupljanje materijala
Prikupljanje materijala

U današnjem svijetu ljudi provode više vremena na radnom mjestu, a ne u svom domu. Stoga postoji potreba za sustavom nadzora doma gdje ljudi mogu upoznati stanje kuće dok su na poslu. Bilo bi još bolje da se može samo pitati "nekoga" o njihovom domu tijekom radnog vremena. To se može postići korištenjem Amazon Alexa kao pomoćnika koji korisniku može dati potrebne informacije o svom domu.

Ne samo radno mjesto, korisnici mogu upoznati stanje kuće na bilo kojem mjestu u svijetu sve dok imaju internetsku vezu i Amazon Alexa.

Sljedeće funkcije implementirane su u ovaj projekt:

1) Upravljajte kućanskim uređajima poput ventilatora i svjetla

2) Kaže status uređaja

3) Kaže vremenske prilike u kući (temperatura i vlaga)

4) Šalje snimak unutrašnjosti kuće korisniku putem Gmaila kada je to potrebno.

5) Šalje obavijest u slučaju -

* Uljez (šalje i fotografiju)

* Vatra

* Gost (šalje i fotografiju)

Korak 1: Prikupljanje materijala

Prikupljanje materijala
Prikupljanje materijala
Prikupljanje materijala
Prikupljanje materijala
Prikupljanje materijala
Prikupljanje materijala

Potrebni materijali

Arduino Uno

ESP8266 Wifi modul

Linkit Smart 7688 Duo

DHT11

Releji

Senzor IC prepreke

Web kamera

Amazon Echo Dot

Oglasna ploča i kratkospojne žice

Softver i mrežne usluge:

Thingspeak.com

Arduino IDE

Amazon Alexa vještina set

Amazon Alexa Echosim.io (za vještinu testiranja)

Bez pozadine

PushingBox

Korak 2: Programiranje Arduina i ESP8266

Programiranje Arduina i ESP8266
Programiranje Arduina i ESP8266
Programiranje Arduina i ESP8266
Programiranje Arduina i ESP8266

Preuzmite Arduino IDE sa službene web stranice:

Otvorite Arduino IDE i idite na datoteku-> postavke-> u dodatnoj vrsti URL-a upravitelja ploče-https://arduino.esp8266.com/stable/package_esp8266…

Idite na alati -> ploče -> Upravitelj ploče i instalirajte konačno pronađen paket esp8266.

Za programiranje arduina samo priključite USB kabel s arduina na računalo i odaberite Arduino/Genuino UNO u alatima-> pločama. Također odaberite prava COM portova u Alatima (broj COM porta možete pronaći u Upravitelju uređaja). Napišite potrebni program, sastavite ga i kliknite Učitaj ako nema pogrešaka.

Za programiranje ESP8266 povežite se kao što je prikazano na dijagramu. spojite USB iz arduina na računalo. U alati-> ploča-> odaberite Generic ESP8266 i također odaberite desni COM port. Napišite potrebni program, sastavite ga i kliknite Učitaj ako nema pogrešaka. Priključite Arduino RST na GND (arduino djeluje kao programer na ESP8266).

U ovom projektu prvo se programira ESP8266, a zatim se uklanjaju spojevi kruga. Zatim se krug ponovno spaja kao što je prikazano na slici pod nazivom "Veze kruga". Zatim se arduino programira.

Korak 3: Konfiguriranje Thingspeak.com

Konfiguriranje Thingspeak.com
Konfiguriranje Thingspeak.com

Napravite račun na web stranici thingspeak.com.

koristimo kanale u Thingspeak -u za pohranu kontrolnih podataka uređaja i usmjeravanje na arduino/alexa. također pohranjujemo vrijednosti temperature i vlažnosti u kanale. To je poput mjesta za pohranu informacija.

Prijavite se na Thingspeak, idite na kanale moji kanali i stvorite novi kanal. Dajte ime i opis svojim kanalima. U našem projektu trebamo 8 kanala (posao možete obaviti koristeći manje kanala, ali to će biti malo komplicirano tijekom programiranja). Thingspeak također ima vremensko ograničenje prilikom ažuriranja kanala. Između uzastopnog ažuriranja određenog kanala mora postojati razmak od 10-15 sekundi.

U nastavku je navedeno osam kanala sa svojim vrijednostima i značenjem

naziv kanala (vrijednost1-značenje, vrijednost2-značenje itd.):

1) Upravljanje uređajem (0- svjetlo UKLJUČENO, 1 svjetlo isključeno, 2 ventilatora UKLJUČENO, 3 ventilatora isključeno)

2) status svjetla (0- svjetlo isključeno, 1- svjetlo uključeno)

3) status ventilatora (0- ventilator isključen, 1 ventilator uključen)

4) vlažnost (vrijednost vlažnosti)

5) temperatura (vrijednost temperature)

6) obavijest o uljezu (upozorenje od 1 uljeza)

7) dojava o požaru (1 dojava o požaru)

8) obavijest gosta (1 upozorenje gosta)

kada kliknete na bilo koji kanal, možete vidjeti njegov ID kanala i napisati API ključeve na kartici API ključevi. id kanala je potreban za dobivanje informacija/ vrijednosti u kanalu. Ključ za pisanje potreban je za spremanje vrijednosti u kanal.

http zahtjev za ažuriranje kanala je:

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

zamjenjuje se odgovarajućim tipkama za pisanje kanala i može biti (0/1 u slučaju upravljanja uređajem ili vrijednosti temperature/vlažnosti)

http zahtjev za čitanje vrijednosti s kanala je:

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

zamjenjuje se određenim ID -om kanala s kojeg želimo čitati.

Korak 4: Program

Program je podijeljen u 3 dijela:

A) Program za Arduino: program za arduino je vrlo jednostavan. Serijski prima podatke s ESP8266 i na temelju primljenih podataka upravlja se uređajima. Više informacija o programu nalazi se u komentarima u samom programu.

B) Program za ESP8266: program za ESP8266 uključuje 3 stvari

1) ažuriranje temperature i vlažnosti pomoću http zahtjeva

client.print (String ("GET") + "/update? key = & field1 =" + vlažnost + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Veza: zatvori / r / n / r / n "); // ažuriranje vlažnosti

client.print (String ("GET") + "/update? key = & field1 =" + temperatura + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Veza: zatvori / r / n / r / n "); // ažuriranje temperature

zamjenjuje se odgovarajućim ključem za pisanje koji se nalazi u kanalu za govor vlage i temperature. a domaćin je api.thingspeak.com.

preuzmite dht biblioteku sa:

2) očitavanje s odgovarajućih kanala za govor i upravljački uređaj na temelju dobivenih vrijednosti: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Host: " + host +" / r / n " +" Veza: zatvori / r / n / r / n ");

gdje je zamijenjen odgovarajućim ID -om kanala koji se nalazi u thingspeak -u.

3) Slanje upozorenja u slučaju visoke temperature putem kutije za potiskivanje

Niz host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushhingbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Veza: zatvori / r / n / r / n ");

gdje je zamijenjen ID -om vašeg uređaja u pushboxu.

Korak 5: Konfiguriranje Linkit Smart 7688 Duo i web kamere

Konfiguriranje Linkit Smart 7688 Duo i web kamere
Konfiguriranje Linkit Smart 7688 Duo i web kamere
Konfiguriranje Linkit Smart 7688 Duo i web kamere
Konfiguriranje Linkit Smart 7688 Duo i web kamere
Konfiguriranje Linkit Smart 7688 Duo i web kamere
Konfiguriranje Linkit Smart 7688 Duo i web kamere

U ovom projektu web kamera i linkit smart 7688 duo koriste se za snimanje potrebne fotografije i njezino slanje korisniku. Također možete koristiti modul kamere arduino i spojiti ga s arduinom ili koristiti bilo koju IP kameru.

Pritisnite i držite gumb Wi -Fi na linkit smart 7688 20 sekundi za resetiranje ploče. Nakon resetiranja Wi -Fi postavke moći ćete vidjeti naziv pristupne točke u bežičnim mrežnim vezama. Sada spojite računalo na tu mrežu. nakon što ga povežete otvorite preglednik i upišite 192.168.100.1 u adresnu traku. Moći ćete vidjeti njegov portal. postaviti lozinku za prijavu na svoj portal.

Nakon što se prijavite, idite na karticu mreža i odaberite Način postaje (potreban nam je (linkit smart 7688 duo) za pristup internetu) i povežite ga s Wifi mrežom te pritisnite Konfiguriraj i ponovno pokreni.

Nakon što se ploča ponovno pokrene, bit će joj dodijeljena lokalna IP adresa. Saznajte adresu pomoću bilo kojeg IP alata ili portala usmjerivača. U mom slučaju to je 192.168.1.4. Sada upišite lokalnu IP adresu u adresnu traku preglednika. provjerite je li računalo spojeno na istu mrežu kao i linkit smart. Od vas će se tražiti da se ponovo prijavite.

Da biste omogućili streaming s web kamere, trebate omogućiti-j.webp

Nakon što se prijavite, idite na karticu usluge i provjerite omogući li-j.webp

Nakon postavljanja možete spojiti svoju web kameru na linkit smart 7688 duo usb host putem OTG kabela. Sada kako biste vidjeli kako Stream otvara preglednik i upišite: u adresnu traku. u mom slučaju to je 192.168.1.4:4400

za snimanje snap snimke upišite naredbu:? action = snapshot

Sada je ova slika dostupna lokalno, ali moramo je učiniti dostupnom servisu push box. Da bismo to postigli, moramo izvršiti prosljeđivanje portova. Prosljeđivanje portova može se izvršiti na portalu usmjerivača. ID procesa je različit za različite usmjerivače. Samo google da biste saznali kako prenijeti naprijed za određeni usmjerivač. Obično je dostupan pod NAT uslugom. Nakon što preusmjerite port, upotreba može pristupiti ovom portu (tj. 4440) s vašeg vanjskog IP -a. Vanjski IP možete pronaći ako u google povežete "whats my ip".

Morate unijeti ovu adresu

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

u potisnoj kutiji (što je objašnjeno u sljedećem koraku) tako da potisna kutija može pristupiti ovoj slici i priložiti je pošti te vam je poslati kad god je to potrebno.

Sliku možete pohraniti i na SD karticu jer Linkit smart 7688 duo također dolazi s utorom za SD karticu za spremanje podataka. Više informacija o ovome možete pronaći na:

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

Korak 6: Konfiguriranje PushingBox -a

Konfiguriranje PushingBox -a
Konfiguriranje PushingBox -a

pushhingbox se koristi za slanje obavijesti o različitim upozorenjima u projektu na gmail.

prijava na pushhingbox pomoću google računa:

idi na moje usluge dodaj uslugu. postoji mnogo usluga za odabir poput Gmail -a, twittera, push obavijesti za android itd …

odaberite Gmail (jer moramo poslati fotografiju kao privitak) i ispuniti odgovarajuću konfiguraciju naziva gmaila i gmail ID korisnika kojem se mora poslati upozorenje.

idite na moje scenarije i izradite novi scenarij. dati ime scenariju (npr.: ALERT) dodati prethodno stvorenu uslugu.

napišite odgovarajući predmet i tijelo pošte te unesite url kako biste snimili zaslon web kamere za prilaganje fotografije. Izradite različite scenarije za različite upozorenja.api za izvršavanje scenarija guranja kutije je:

Korak 7: Stvaranje Alexa vještine pomoću Backendless -a

Stvaranje Alexa vještine pomoću Backendless -a
Stvaranje Alexa vještine pomoću Backendless -a
Stvaranje Alexa vještine pomoću Backendless -a
Stvaranje Alexa vještine pomoću Backendless -a
Stvaranje Alexa vještine pomoću Backendless -a
Stvaranje Alexa vještine pomoću Backendless -a

backendless se koristi za stvaranje alexa vještine. To je jednostavno programiranje povlačenjem i ispuštanjem koje se koristi za stvaranje alexa vještine (ili bilo kojeg programa) kojem se može pristupiti bez pozadinskog API -ja.

stvorite račun u backendless:

  • Prijavite se na svoj račun na računu bez pozadine. kliknite Stvori aplikaciju i dajte ime svojoj aplikaciji
  • Kliknite ikonu Business Logic koja se nalazi na traci s ikonama s lijeve strane. Vidjet ćete zaslon API USLUGE.
  • Pritisnite ikonu “+” za stvaranje nove usluge. U skočnom prozoru "Nova usluga" odaberite CODELESS. Unesite "AlexaService" za naziv usluge. Pritisnite gumb SPREMI:
  • Backendless stvara API uslugu i od vas će tražiti da stvorite metodu za uslugu. Ovo će biti metoda koja će obraditi zahtjeve Alexa. Unesite "handleRequest" za naziv metode. Za operaciju REST obavezno odaberite POST i deklarirajte argument s imenom “req” i upišite “Any Object” kao što je prikazano:
  • Backendless stvara rezervirano mjesto za logičku metodu bez koda. Pritisnite gumb EDIT za početak prebacivanja na Codeless Logic Designer. U stvorenom bloku rezerviranih mjesta kliknite područje na kojem piše "doSomething" i promijenite ga u "sendAlexaResponse". Ova se funkcija koristi kako bi alexa rekla nešto što se može prenijeti kao argument. Pritisnite tipku SAVE kako bi funkcija bila spremljena.
  • Kliknite ikonu zupčanika koja se nalazi u ljubičastom bloku tik uz riječ "Funkcija". Dodajte dva argumenta povlačenjem ulaznih blokova kao što je prikazano na donjoj slici. Dodijelite imena argumentima "whatToSay" i "waitForResponse". Uočite da se prilikom dodavanja argumenata područje kontekstnih blokova automatski popunjava blokovima koji predstavljaju vrijednosti argumenata.
  • Izmijenite logiku funkcije tako da izgleda kao na slici. Za blokove "Stvaranje objekata" upotrijebite ikonu zupčanika za promjenu naziva svojstava objekta. Ne zaboravite spremiti svoj rad klikom na gumb SPREMI.
  • Sada kada je prilagođena funkcija izgrađena, vratite se na metodu handleRequest usluge AlexaService. Kliknite kategoriju Prilagođene funkcije na alatnoj traci s lijeve strane i povucite blok sendAlexaResponse za povezivanje s povratnim konektorom vaše metode usluge
  • Gore navedene korake možete pronaći i na njihovoj web stranici:
  • Kliknite čvor "Dodaj novo" u odjeljku Funkcije u odjeljku BROWSER. U kreiranom bloku rezerviranih mjesta funkcije kliknite područje na kojem piše "doSomething" i promijenite ga u "getIntentName" izmijenite blokove tako da funkcija izgleda kao prikazana slika. dobit će naziv namjere na temelju uzoraka. Vratite se na api usluge-> obradi zahtjev u odjeljku preglednika. Varijable i logika stvaraju se iz odjeljka sustava. Izradite sljedeće varijable prikazane na slikama.
  • zatim pohranjujemo naziv namjere za traženje varijable. A zatim usporedite s namjerama. na primjer, ako je zahtjev "uvod", tada je varijabla odgovora postavljena na "zdravo! Mogu kontrolirati ……." i ovaj odgovor napokon glasno čita Alexa. izmijenite blok kako je prikazano.
  • ako je zahtjev namjera LightsOn, tada ažuriramo kanal thingspeak na '0' koristeći http zahtjev za primanje, a istovremeno ažuriramo status uređaja (1/0 ovisno o Uključeno/Isključeno). Ista se stvar ponavlja za LightsOff, FanOn i FanOff.
  • Za vremenske uvjete čitamo iz kanala Temperatura i vlažnost i spremamo rezultat u varijablu odgovora. Kako kanal daje samo vrijednosti, dodajemo tekstove kako bi odgovor bio smislen
  • za snimku dnevne sobe pokrećemo scenarij pushhingbox
  • za status uređaja čitamo informacije sa statusnog kanala Thingspeak:
  • za obavijesti i upozorenja koja čitamo s kanala upozorenja (vatra, uljez i gost):
  • na temelju vrijednosti koje dobivamo iz polja obavijesti, odgovarajuće poruke upozorenja pohranjene su u varijabli response0. ako nema obavijesti, tada se poruka o obavijesti ne sprema.
  • nakon što se obavijest pročita, tada se '0' ažurira u kanalima za obavijesti tako da aleksa više neće pročitati istu obavijest. Na kraju, na temelju zahtjeva, varijabla response0/response se čita naglas.

Korak 8: Konfiguriranje Alexa vještine u Amazon Developer Console:

Konfiguriranje Alexa vještine u Amazon Developer Console
Konfiguriranje Alexa vještine u Amazon Developer Console
Konfiguriranje Alexa vještine u Amazon Developer Console
Konfiguriranje Alexa vještine u Amazon Developer Console
Konfiguriranje Alexa vještine u Amazon Developer Console
Konfiguriranje Alexa vještine u Amazon Developer Console

idite na Amazon Developer Console i prijavite se pomoću Amazon računa.

idite na razvojnu konzolu i kliknite karticu ALEXA. Kliknite na Alexa Kit Kit za početak.

stvoriti prilagođenu vrstu vještine, dati naziv i naziv poziva za vještinu. Odgovarajuće namjere i primjeri izričaja dati su u kodu.

na kartici konfiguracije odaberite HTTPS kao vrstu krajnje točke usluge. Ispunite zadani URL s URL -om API -ja iz pozadine. Odaberite drugu opciju u Potvrdi za zadanu krajnju točku u SSL certifikatu. Vještinu možete provjeriti i pomoću simulatora testa.

Nakon završetka testa možete objaviti vještinu sa potrebnim podacima za objavljivanje.

Korak 9: Konačno postavljanje i završavanje

Konačno postavljanje i završetak!
Konačno postavljanje i završetak!
Konačno postavljanje i završetak!
Konačno postavljanje i završetak!

Povežite krug kao što je prikazano.

Ponekad će se ESP8266 pokvariti zbog nedovoljne struje. Dakle, iako se ne spominje u krugu, preporučuje se napajanje ESP8266 iz zasebnog izvora od 3,3 V. Ako koristite power bank, smanjite napon s 5v na 3.3v pomoću regulatora napona od 3.3v. Učitajte program na ESP8266 i arduino. Pokazao sam vezu s žaruljom, ista se stvar može proširiti na ventilator ili bilo koji uređaj. Na kraju upotrijebite amazonski echo ili echosim.io kako biste provjerili svoju vještinu.

Morate aktivirati vještinu koristeći naziv poziva (kao što je moj slučaj - "myhome"). Ponekad neće raditi ako se koristi bez naziva poziva, kao što sam pokazao nekoliko puta u svom videu

Nadam se da ste uživali u vodiču!

Hvala vam!

Preporučeni: