Sadržaj:

Nadzor pametne kuće pomoću Alexa i Arduina: 9 koraka (sa slikama)
Nadzor pametne kuće pomoću Alexa i Arduina: 9 koraka (sa slikama)

Video: Nadzor pametne kuće pomoću Alexa i Arduina: 9 koraka (sa slikama)

Video: Nadzor pametne kuće pomoću Alexa i Arduina: 9 koraka (sa slikama)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Novembar
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 sistemom kućnog nadzora 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 tokom 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 vlažnost)

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 skup vještina

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 file-> preferences-> u dodatnoj vrsti URL-a upravitelja ploče-https://arduino.esp8266.com/stable/package_esp8266…

Idite na alati -> ploče -> Upravitelj odbora 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 alatkama-> pločama. Također provjerite jeste li odabrali prava COM portove u Alatkama (broj COM porta možete pronaći u Upravitelju uređaja). Napišite potrebni program, kompajlirajte ga i kliknite na upload ako nema grešaka.

Za programiranje ESP8266 povežite se kao što je prikazano na dijagramu. spojite USB sa arduina na računar. U alati-> ploča-> odaberite Generic ESP8266 i također odaberite desni COM port. Napišite potrebni program, kompajlirajte ga i kliknite na upload ako nema grešaka. Provjerite jeste li povezali Arduino RST na GND (arduino djeluje kao programer na ESP8266).

U ovom projektu prvo se programira ESP8266, a zatim se uklanjaju veze kruga. Zatim se krug ponovno povezuje 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 thingspeak.com.

koristimo kanale u Thingspeak -u za spremanje kontrolnih informacija o uređaju i usmjeravanje na arduino/alexa. također pohranjujemo vrijednosti temperature i vlažnosti u kanale. To je poput skladišta za informacije.

Prijavite se na Thingspeak, idite na kanale moje kanale i kreirajte novi kanal. Dajte ime i opis svojim kanalima. U našem projektu nam je potrebno 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 dato osam kanala sa njihovim vrijednostima i značenjem

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

1) Kontrola uređaja (0 -lightON, 1- lightOff, 2 ventilator UKLJUČEN, 3 ventilator isključen)

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 1 protiv uljeza)

7) obavještenje o požaru (1- požarno upozorenje)

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 na kanalu. Ključ za pisanje je potreban 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 kontrole uređaja ili vrijednosti temp./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 kontroliraju se uređaji. 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 sa odgovarajućih kanala za govor i kontrolni uređaj na osnovu dobijenih 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 pushbox -u.

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 njeno slanje korisniku. Također možete koristiti modul kamere arduino i povezati 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. Tada ćete nakon poništavanja Wi -Fi postavke moći vidjeti naziv njene pristupne točke u vezama bežične mreže. Sada spojite računar na tu mrežu. nakon što ga povežete, otvorite preglednik i upišite 192.168.100.1 u traku za adresu. Moći ćete vidjeti njegov portal. postavite lozinku za prijavu na svoj portal.

Nakon što se prijavite, idite na karticu mreža i odaberite način rada stanice (potreban nam je (linkit smart 7688 duo) za pristup internetu) i povežite ga na svoju WiFi mrežu, a zatim pritisnite Konfiguriraj i ponovo pokrenite.

Nakon što se ploča ponovo 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 bilo 192.168.1.4. Sada upišite lokalnu IP adresu u adresnu traku preglednika. uverite se da je računar povezan na istu mrežu kao i linkit smart. Od vas će se tražiti da se ponovo prijavite.

Da biste omogućili streaming sa 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 povezati svoju web kameru na linkit smart 7688 duo usb host putem OTG kabela. Sada da vidite Stream otvorite preglednik i upišite: u traku za adresu. u mom slučaju to je 192.168.1.4:4400

za snimanje snap snimka otkucajte komandu:? 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 port za određeni usmjerivač. Obično je dostupan pod NAT uslugom. Nakon što preusmjerite port, upotreba može pristupiti ovom portu (tj. 4440) sa 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 sa utorom za SD karticu za spremanje informacija. 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.

prijavite se na pushhingbox pomoću google računa:

idi na moje usluge dodaj uslugu. možete izabrati mnoge usluge poput Gmail -a, twitter -a, push obavijesti za android itd …

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

idite na moje scenarije i kreirajte novi scenarij. dajte ime scenariju (npr: ALERT) dodajte prethodno kreiranu uslugu.

napišite odgovarajući predmet i tijelo pošte i unesite url kako biste snimili snimak ekrana web kamere za prilaganje fotografije. Kreirajte različite scenarije za različite upozorenja.api za izvršavanje scenarija potisne 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) kojoj može pristupiti bez pozadinskog API -ja.

stvorite račun u backendless -u:

  • Prijavite se na svoj račun na računu bez pozadine. kliknite Kreiraj aplikaciju i dajte ime svojoj aplikaciji
  • Kliknite na ikonu Business Logic koja se nalazi na traci sa ikonama s lijeve strane. Vidjet ćete zaslon API USLUGE.
  • Pritisnite ikonu “+” za kreiranje nove usluge. U skočnom prozoru "Nova usluga" odaberite CODELESS. Unesite „AlexaService“za naziv usluge. Pritisnite dugme SAČUVAJ:
  • Backendless stvara API uslugu i od vas će zatražiti da stvorite metodu za uslugu. Ovo će biti metoda koja će obraditi zahtjeve Alexa. Unesite „handleRequest“za naziv metode. Obavezno odaberite POST za operaciju REST 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 dugme EDIT za početak prebacivanja na Codeless Logic Designer. U kreiranom bloku rezerviranih mjesta funkcije kliknite područje na kojem piše "doSomething" i promijenite ga u "sendAlexaResponse". Ova funkcija se koristi da bi alexa rekla nešto što se može prenijeti kao argument. Pritisnite dugme SAVE da bi funkcija bila sačuvana.
  • Kliknite na ikonu zupčanika koja se nalazi u ljubičastom bloku tik pored riječi "Funkcija". Dodajte dva argumenta povlačenjem ulaznih blokova kao što je prikazano na donjoj slici. Dodijelite imena argumentima kao “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 "Kreiraj objekte" koristite ikonu zupčanika za promjenu naziva svojstava objekta. Ne zaboravite da sačuvate svoj rad klikom na dugme SAČUVAJ.
  • 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 da se povežete s povratnim konektorom vaše metode usluge
  • Gore navedene korake možete pronaći i na njihovoj web stranici:
  • Kliknite čvor „Dodaj novo“pod Funkcije u odjeljku BROWSER. U kreiranom bloku rezerviranih mjesta kliknite područje na kojem piše „doSomething“i promijenite ga u „getIntentName“izmijenite blokove tako da funkcija izgleda kao prikazana slika. će dobiti naziv namjere na osnovu primjera izgovora. Vratite se na api usluge-> obradi zahtjev u odjeljku preglednika. Varijable i logika se stvaraju iz sistemske sekcije. Kreirajte sljedeće varijable prikazane na slikama.
  • zatim pohranjujemo naziv namjere za traženje varijable. A zatim uporedite sa namerama. na primjer, ako je zahtjev "uvod", tada je varijabla odgovora postavljena na "zdravo! Mogu kontrolirati ……." i Alexa napokon ovaj odgovor čita naglas. izmijenite blok kako je prikazano.
  • ako je zahtjev namjera LightsOn, ažuriramo kanal thingspeak na '0' koristeći http get request i 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 pushhingbox scenario
  • za status uređaja čitamo informacije sa statusnog kanala Thingspeak -a:
  • za obavještenja i upozorenja koja čitamo s kanala upozorenja (vatra, uljez i gost):
  • na osnovu vrednosti koje dobijamo iz polja za obaveštenja, odgovarajuće poruke upozorenja se čuvaju u varijabli response0. ako nema obavijesti, tada se poruka o obavijesti ne pohranjuje.
  • nakon što se obavijest pročita, tada se '0' ažurira u kanalima za obavještenja tako da aleksa više neće pročitati isto obavještenje. 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 amazonsku razvojnu konzolu i prijavite se pomoću amazon računa.

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

kreirajte prilagođeni tip vještine, dajte naziv i naziv poziva za vještinu. Odgovarajuće namjere i primjeri iskaza dati su u kodu.

na kartici konfiguracije odaberite HTTPS kao vrstu krajnje tačke usluge. Ispunite zadani URL s URL -om API -ja iz baze podataka bez pozadine. Odaberite drugu opciju u Potvrdi za zadanu krajnju točku u SSL certifikatu. Vještinu možete testirati 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ši!
Konačno postavljanje i završi!
Konačno postavljanje i završi!
Konačno postavljanje i završi!

Povežite krug kao što je prikazano.

Ponekad će se ESP8266 pokvariti zbog nedovoljne struje. Dakle, iako nije spomenuto u krugu, preporučuje se napajanje ESP8266 iz zasebnog izvora od 3,3 V. Ako koristite power bank, smanjite napon sa 5v na 3.3v pomoću regulatora napona od 3.3v. Učitajte program na ESP8266 i arduino. Pokazao sam vezu sa sijalicom, ista stvar se može proširiti na ventilator ili bilo koji uređaj. Na kraju upotrijebite amazon echo ili echosim.io da 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 ti!

Preporučuje se: