Cuprins:

Monitorizare inteligentă la domiciliu folosind Alexa și Arduino: 9 pași (cu imagini)
Monitorizare inteligentă la domiciliu folosind Alexa și Arduino: 9 pași (cu imagini)
Anonim
Image
Image
Adunarea materialelor
Adunarea materialelor

În lumea actuală oamenii petrec mai mult timp la locul de muncă decât la casele lor. Prin urmare, este nevoie de un sistem de monitorizare a locuinței, în care oamenii să poată cunoaște condițiile casei în timp ce se află la locul de muncă. Ar fi și mai bine dacă cineva ar putea întreba „pe cineva” despre casa lor în timpul orelor de lucru. Acest lucru poate fi realizat folosind Amazon Alexa ca asistent, care poate oferi utilizatorului informațiile necesare despre casa sa.

Nu numai locul de muncă, utilizatorii pot cunoaște starea casei în orice loc din lume, atâta timp cât au o conexiune la internet și Amazon Alexa.

Următoarele funcții sunt implementate în acest proiect:

1) Controlați dispozitivele de uz casnic, cum ar fi ventilatorul și lumina

2) Spune starea dispozitivelor

3) Spune starea vremii casei (temperatura și umiditatea)

4) Trimite instantaneul interiorului casei către utilizator prin Gmail, atunci când este necesar.

5) Trimite notificarea în caz de -

* Intrus (trimite și fotografie)

* Foc

* Invitat (trimite și fotografie)

Pasul 1: strângerea materialelor

Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor

Materiale necesare

Arduino Uno

Modul Wifi ESP8266

Linkit Smart 7688 Duo

DHT11

Relee

Senzor obstacol IR

Cameră web

Amazon Echo Dot

Sârmă pentru panou și jumper

Software și servicii online:

Thingspeak.com

IDE Arduino

Set de abilități Amazon Alexa

Amazon Alexa Echosim.io (pentru testarea abilităților)

Backendless

PushingBox

Pasul 2: Programarea Arduino și ESP8266

Programarea Arduino și ESP8266
Programarea Arduino și ESP8266
Programarea Arduino și ESP8266
Programarea Arduino și ESP8266

Descărcați ID-ul Arduino de pe site-ul oficial:

Deschideți Arduino IDE și accesați fișier-> preferințe-> în tipul de adresă URL a managerului de bord suplimentar -

Accesați Instrumente -> plăci -> Board Manager și instalați pachetul esp8266 găsit în cele din urmă.

Pentru a programa arduino, conectați cablul USB de la arduino la computer și selectați Arduino / Genuino UNO în instrumente-> plăci. De asemenea, asigurați-vă că selectați drepturile porturilor COM în Instrumente (numărul portului COM poate fi găsit în Manager dispozitive). Scrieți programul necesar, compilați-l și faceți clic pe încărcare dacă nu există erori.

Pentru a programa ESP8266 realizați conexiunea așa cum se arată în diagramă. conectați usb-ul de la arduino la computer. În instrumente-> placă-> selectați Generic ESP8266 și, de asemenea, selectați portul COM dreapta. Scrieți programul necesar, compilați-l și faceți clic pe încărcare dacă nu există erori. Asigurați-vă că conectați Arduino RST la GND (arduino acționează ca un programator la ESP8266).

În acest proiect Mai întâi este programat ESP8266 și apoi conexiunile circuitului sunt eliminate. Apoi, circuitul este reconectat așa cum se arată în figura numită "Conexiuni de circuit". Și apoi arduino este programat.

Pasul 3: Configurarea Thingspeak.com

Configurarea Thingspeak.com
Configurarea Thingspeak.com

Creați un cont pe thingspeak.com.

folosim canalele din thingspeak pentru a stoca informațiile de control ale dispozitivului și a le direcționa către arduino / alexa. stocăm, de asemenea, valorile de temperatură și umiditate în canale. Este ca o locație de stocare pentru informații.

Conectați-vă la thingspeak, accesați canalele canalelor mele și creați un canal nou. Dă numele și descrierea canalelor tale. În proiectul nostru avem nevoie de 8 canale (puteți face treaba folosind mai puține canale, dar va fi puțin complicat în timpul programării). De asemenea, thingspeak are o restricție de timp în timpul actualizării unui canal. Trebuie să existe un decalaj de 10-15 secunde între actualizarea succesivă a unui anumit canal.

Opt canale cu valorile și semnificația lor sunt date mai jos

numele canalului (valoare1-semnificație, valoare2-semnificație etc.):

1) Controlul dispozitivului (0 -lightON, 1- lightOff, 2- ventilator ON, 3- Fan Off)

2) starea luminii (0- lumină oprită, 1- lumină aprinsă)

3) starea ventilatorului (0- ventilator oprit, 1- ventilator activat)

4) umiditate (valoarea umidității)

5) temperatura (valoarea temperaturii)

6) notificare intrus (1- alertă intrus)

7) notificare de incendiu (1- alertă de incendiu)

8) notificare invitat (1- alertă invitat)

când faceți clic pe orice canal, puteți vedea ID-ul canalului și puteți scrie chei API în fila chei API. ID-ul canalului este necesar pentru a obține informațiile / valoarea din canal. Și cheia de scriere este necesară pentru a stoca o valoare în canal.

Cererea http pentru actualizarea unui canal este:

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

este înlocuit cu tastele de scriere corespunzătoare ale canalului și poate fi (0/1 în cazul controlului dispozitivului sau al valorilor de temperatură / umiditate)

Cererea http pentru citirea valorii de pe un canal este:

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

este înlocuit de ID-ul canalului particular al canalului din care dorim să citim.

Pasul 4: Programul

Programul este împărțit în 3 părți:

A) Program pentru Arduino: programul pentru arduino este foarte simplu. Acesta primește datele de la ESP8266 în serie și pe baza datelor primite dispozitivele sunt controlate. Mai multe informații despre program se găsesc în comentariile din program.

B) Program pentru ESP8266: programul pentru ESP8266 implică 3 lucruri

1) actualizarea temperaturii și umidității utilizând cererea

client.print (String ("GET") + "/ update? key = & field1 =" + umiditate + "HTTP / 1.1 / r / n" + "Gazdă:" + gazdă + "\ r / n" + "Conexiune: închidere / r / n / r / n "); // actualizați umiditatea

client.print (String ("GET") + "/ update? key = & field1 =" + temperature + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // actualizați temperatura

se înlocuiește cu tasta de scriere corespunzătoare găsită în canalul lucrurilor de vârf pentru umiditate și, respectiv, temperatură. iar gazda este api.thingspeak.com.

descărcați biblioteca dht de la:

2) citirea de pe canalele corespunzătoare de lucruri de vorbire și controlul dispozitivului pe baza valorilor obținute: client.print (String ("GET") + "/channels//field/field1/last.html HTTP / 1.1 / r / n" + " Gazdă: "+ gazdă +" / r / n "+" Conexiune: închidere / r / n / r / n ");

unde este înlocuit de ID-ul canalului corespunzător găsit în thingspeak.

3) Trimitere alertă în caz de temperatură ridicată prin apăsarea cutiei

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/ pushingbox? devid = HTTP / 1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Conexiune: închidere / r / n / r / n ");

unde este înlocuit de ID-ul dispozitivului dvs. în pushbox.

Pasul 5: Configurarea Linkit Smart 7688 Duo și a camerei web

Configurarea Linkit Smart 7688 Duo și a camerei web
Configurarea Linkit Smart 7688 Duo și a camerei web
Configurarea Linkit Smart 7688 Duo și a camerei web
Configurarea Linkit Smart 7688 Duo și a camerei web
Configurarea Linkit Smart 7688 Duo și a camerei web
Configurarea Linkit Smart 7688 Duo și a camerei web

În acest proiect, camera web și linkit smart 7688 duo sunt utilizate pentru a captura fotografia necesară și a o trimite utilizatorului. De asemenea, puteți utiliza modulul de cameră arduino și îl puteți interfața cu arduino sau puteți utiliza orice cameră IP.

Țineți apăsat butonul wifi de pe linkit smart 7688 timp de 20 de secunde pentru a reseta placa. Apoi, după ce setarea wifi este resetată, veți putea vedea numele punctului său de acces în conexiunile de rețea fără fir. Acum conectați computerul la rețeaua respectivă. după ce îl conectați, deschideți browserul și tastați 192.168.100.1 în bara de adrese. Veți putea vedea portalul acestuia. setați o parolă pentru a vă conecta la portalul său.

După ce vă autentificați, accesați fila de rețea și selectați modul Stație (avem nevoie de acesta (linkit smart 7688 duo) pentru a accesa internetul) și conectați-l la rețeaua Wifi și apăsați Configurare și reporniți.

După ce placa a repornit, i se va atribui o adresă IP locală. Aflați adresa folosind orice instrumente IP sau portalul routerului. În cazul meu, era 192.168.1.4. Acum introduceți adresa IP locală în bara de adrese a browserului. asigurați-vă că computerul este conectat la aceeași rețea ca linkit smart. Vi se va cere să vă autentificați din nou.

Pentru a activa streamingul de pe camera web, ar trebui să activați-j.webp

După ce vă autentificați, accesați fila Serviciu și verificați activarea streamerului-j.webp

După configurare, vă puteți conecta camera web la gazda linkit smart 7688 duo USB printr-un cablu OTG. Acum pentru a vedea fluxul deschideți browserul și tastați: în bara de adrese. în cazul meu este 192.168.1.4:4400

pentru a face instantaneul, tastați comanda:? action = instantaneu

Acum această imagine este disponibilă local, dar trebuie să o punem la dispoziție pentru serviciul de împingere. Pentru a realiza acest lucru, trebuie să facem redirecționarea porturilor. Redirecționarea portului se poate face în portalul routerului. Procesul este diferit pentru diferite routere. Doar google pentru a ști cum să redirecționați portul pentru un anumit router. De obicei este disponibil sub serviciul NAT. După ce vă redirecționați, puteți accesa acest port (adică.. 4440) de pe IP-ul dvs. extern. IP-ul extern poate fi găsit legând „whats my ip” în google.

Trebuie să puneți această adresă

adică.. https://::? action = instantaneu

în caseta de împingere (care este explicată în pasul următor), astfel încât caseta de împingere să poată accesa această imagine și să o atașeze la e-mail și să vi-o trimită ori de câte ori este necesar.

De asemenea, puteți stoca imaginea pe cardul SD, deoarece Linkit smart 7688 duo vine, de asemenea, cu un slot pentru card SD pentru stocarea informațiilor. Mai multe informații despre acest lucru puteți găsi la:

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

Pasul 6: Configurarea PushingBox

Configurarea PushingBox
Configurarea PushingBox

pushingbox este folosit pentru a trimite notificări despre diferite alerte din proiect către gmail.

conectați-vă la pushbox utilizând contul Google:

accesați serviciile mele adăugați servicii. există multe servicii din care puteți alege, cum ar fi Gmail, Twitter, notificări push pentru Android etc.

selectați Gmail (deoarece trebuie să trimitem fotografia ca atașament) și completați configurația corespunzătoare a numelui gmail și ID-ul gmail al utilizatorului căruia trebuie să i se trimită alerta.

du-te la scenariile mele și creează un scenariu nou. dați nume scenariului (ex: ALERTĂ) adăugați serviciul creat anterior.

scrieți subiectul și corpul corespondenței corespunzătoare și introduceți adresa URL pentru a face captura de ecran a camerei web pentru atașarea fotografiei. Creați scenarii diferite pentru diferite alerte.api pentru executarea unui scenariu de împingere este:

Pasul 7: Crearea abilităților Alexa folosind Backendless

Crearea abilităților Alexa folosind Backendless
Crearea abilităților Alexa folosind Backendless
Crearea abilităților Alexa folosind Backendless
Crearea abilităților Alexa folosind Backendless
Crearea abilităților Alexa folosind Backendless
Crearea abilităților Alexa folosind Backendless

backendless este folosit pentru a crea abilitatea Alexa. Este o programare simplă drag and drop folosită pentru a crea abilități Alexa (sau orice programe) care pot fi accesate de API fără backend.

creați un cont în backendless:

  • Conectați-vă la contul dvs. în contul backendless. faceți clic pe Creați aplicație și dați un nume aplicației dvs.
  • Faceți clic pe pictograma Business Logic situată în bara de pictograme din stânga. Veți vedea ecranul SERVICII API.
  • Faceți clic pe pictograma „+” pentru a crea un serviciu nou. Asigurați-vă că selectați CODELESS în fereastra pop-up „Serviciu nou”. Introduceți „AlexaService” pentru numele serviciului. Faceți clic pe butonul SAVE:
  • Backendless creează serviciul API și vă va solicita să creați o metodă pentru serviciu. Aceasta va fi metoda care va procesa cererile de la Alexa. Introduceți „handleRequest” pentru numele metodei. Asigurați-vă că selectați POST pentru operațiunea REST și declarați un argument cu numele de „req” și tastați „Any Object” așa cum se arată:
  • Backendless creează un substituent pentru logica fără cod a metodei. Faceți clic pe butonul EDITARE pentru a începe trecerea la Codeless Logic Designer. În blocul de substituent funcțional creat, faceți clic pe zona care spune „faceCeva” și schimbați-l în „sendAlexaResponse”. Această funcție este utilizată pentru a face pe Alexa să spună ceva care poate fi transmis ca argument. Faceți clic pe butonul SAVE astfel încât funcția să fie salvată.
  • Faceți clic pe pictograma roată situată în blocul violet chiar lângă cuvântul „Funcție”. Adăugați două argumente trăgând blocurile de intrare așa cum se arată în imaginea de mai jos. Alocați numele argumentelor ca „whatToSay” și „waitForResponse“. Observați că, pe măsură ce adăugați argumente, zona Context Blocks este completată automat cu blocurile care reprezintă valori ale argumentelor.
  • Modificați logica funcției astfel încât să arate ca în imagine. Pentru blocurile „Creați obiecte”, utilizați pictograma roată pentru a schimba numele proprietăților obiectului. Nu uitați să vă salvați lucrarea făcând clic pe butonul SAVE.
  • Acum că funcția personalizată este construită, reveniți la metoda handleRequest a serviciului AlexaService. Faceți clic pe categoria Funcții personalizate din bara de instrumente din stânga și trageți blocul sendAlexaResponse pentru a vă conecta la conectorul de retur al metodei de servicii.
  • Pașii de mai sus pot fi găsiți și pe site-ul lor web:
  • Faceți clic pe nodul „Adăugați nou” sub Funcții în secțiunea BROWSER. În blocul substituent al funcției create, faceți clic pe zona care spune „doSomething” și schimbați-l în „getIntentName” modificați blocurile astfel încât funcția să arate ca imaginea afișată. va primi numele intenției pe baza exemplelor de enunțuri. Reveniți la serviciile API-> gestionați cererea din secțiunea browserului. Variabilele și logica sunt create din secțiunea sistem. Creați următoarele variabile afișate în imagini.
  • apoi stocăm numele intenției pentru a solicita variabila. Și apoi comparați cu intențiile. de exemplu, dacă cererea este „introducere”, atunci variabila de răspuns este setată la „salut! Pot controla …….” iar acest răspuns este citit cu voce tare de Alexa în sfârșit. modificați blocul așa cum se arată.
  • dacă cererea este intenționată LightsOn, atunci actualizăm canalul thingspeak la „0” utilizând cererea http get și în același timp actualizăm starea dispozitivului (1/0 în funcție de On / Off). Același lucru se repetă pentru LightsOff, FanOn și FanOff.
  • Pentru vreme citim din canalul Temperatură și umiditate și stocăm rezultatul în variabila de răspuns. Deoarece canalul oferă doar valori, adăugăm texte pentru a face răspunsul complet
  • pentru instantaneu din camera de zi rulăm scenariul pushhingbox
  • pentru starea dispozitivului citim informații de pe canalul de stare al lucrurilor vorbite:
  • pentru notificări și alerte citim de pe canalele de alertă (incendiu, intrus și invitat):
  • pe baza valorilor pe care le obținem din câmpul de notificare, mesajele de alertă corespunzătoare sunt stocate în variabila respond0. dacă nu există nicio notificare, atunci nu este stocat niciun mesaj de notificare.
  • odată ce notificarea este citită, atunci „0” este actualizat în canalele de notificare, astfel încât Alexa să nu citească din nou aceeași notificare. Apoi, în cele din urmă pe baza cererii, variabila respond0 / respond este citită cu voce tare.

Pasul 8: Configurarea abilităților Alexa în Consola pentru dezvoltatori Amazon:

Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon
Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon
Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon
Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon
Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon
Configurarea abilității Alexa în Consola pentru dezvoltatori Amazon

accesați consola pentru dezvoltatori Amazon și conectați-vă folosind contul Amazon.

accesați consola pentru dezvoltatori și faceți clic pe fila ALEXA. Faceți clic pe kitul de abilități Alexa pentru a începe.

creați tipul de abilitate personalizat, dați numele și numele invocației abilității. intențiile respective și exemplele de enunțuri sunt date în cod.

în fila de configurare selectați HTTPS ca tip de punct final al serviciului, completați adresa URL implicită cu URL-ul API din backendless. Selectați a doua opțiune din Certificat pentru punctul final implicit din certificatul SSL. De asemenea, puteți testa abilitatea folosind simulatorul de testare.

După finalizarea testului, puteți publica abilitatea cu informațiile necesare pentru publicare.

Pasul 9: Configurare finală și finalizare

Configurare finală și finalizare!
Configurare finală și finalizare!
Configurare finală și finalizare!
Configurare finală și finalizare!

Efectuați conexiunea circuitului așa cum se arată.

Uneori ESP8266 se va defecta din cauza curentului insuficient. Deci, deși menționat în circuit, se recomandă alimentarea ESP8266 de la o sursă separată de 3.3v. Dacă utilizați o bancă de alimentare, asigurați-vă că reduceți tensiunea de la 5v la 3,3v folosind un regulator de tensiune de 3,3 V. Încărcați programul către ESP8266 și arduino. Am arătat conexiunea la bec, același lucru poate fi extins la ventilator sau la orice dispozitiv. În cele din urmă, utilizați Amazon echo sau echosim.io pentru a vă testa abilitățile.

Trebuie să activați abilitatea folosind numele invocației (cum este cazul meu - „casa mea”). Uneori nu va funcționa dacă este utilizat fără numele invocației, așa cum am arătat de câteva ori în videoclipul meu

Sper că ți-a plăcut tutorialul!

Mulțumesc!

Recomandat: