Përmbajtje:

Monitorimi i zgjuar i shtëpisë duke përdorur Alexa dhe Arduino: 9 hapa (me fotografi)
Monitorimi i zgjuar i shtëpisë duke përdorur Alexa dhe Arduino: 9 hapa (me fotografi)

Video: Monitorimi i zgjuar i shtëpisë duke përdorur Alexa dhe Arduino: 9 hapa (me fotografi)

Video: Monitorimi i zgjuar i shtëpisë duke përdorur Alexa dhe Arduino: 9 hapa (me fotografi)
Video: CS50 2015 - Week 8, continued 2024, Nëntor
Anonim
Image
Image
Mbledhja e materialeve
Mbledhja e materialeve

Në botën e sotme njerëzit kalojnë më shumë kohë në vendin e punës sesa në shtëpitë e tyre. Prandaj ka nevojë për një sistem monitorimi në shtëpi ku njerëzit mund të njihen me kushtet e shtëpisë ndërsa janë në punë. Do të ishte edhe më mirë nëse dikush thjesht mund të pyesë "dikë" për shtëpinë e tij gjatë orarit të punës. Kjo mund të arrihet duke përdorur Amazon Alexa si një asistent i cili mund t'i japë përdoruesit informacionin e nevojshëm për shtëpinë e tyre.

Jo vetëm në vendin e punës, përdoruesit mund të njihen me gjendjen e shtëpisë në çdo vend të botës për sa kohë që ata kanë një lidhje interneti dhe Amazon Alexa.

Funksionet e mëposhtme janë zbatuar në këtë projekt:

1) Kontrolloni pajisjet shtëpiake si ventilatori dhe drita

2) Tregon statusin e pajisjeve

3) Tregon gjendjen e motit të shtëpisë (temperatura dhe lagështia)

4) Dërgon pamjen e brendshme të shtëpisë te përdoruesi përmes Gmail kur kërkohet.

5) Dërgon njoftim në rast të -

* Ndërhyrës (dërgon edhe foto)

* Zjarri

* Vizitor (gjithashtu dërgon foto)

Hapi 1: Mbledhja e materialeve

Mbledhja e materialeve
Mbledhja e materialeve
Mbledhja e materialeve
Mbledhja e materialeve
Mbledhja e materialeve
Mbledhja e materialeve

Materialet e kërkuara

Arduino Uno

ESP8266 Moduli Wifi

Linkit Smart 7688 Duo

DHT11

Stafetat

Sensori i pengesave IR

Webcam

Amazon Echo Dot

Breadboard dhe tela bluzë

Softueri dhe shërbimet online:

Thingspeak.com

Arduino IDE

Seti i aftësive të Amazon Alexa

Amazon Alexa Echosim.io (për aftësinë e testimit)

Pa prapavijë

PushingBox

Hapi 2: Programimi i Arduino dhe ESP8266

Programimi i Arduino dhe ESP8266
Programimi i Arduino dhe ESP8266
Programimi i Arduino dhe ESP8266
Programimi i Arduino dhe ESP8266

Shkarkoni Arduino IDE Nga faqja zyrtare e internetit:

Hapni Arduino IDE dhe shkoni te skedari-> preferencat-> në llojin shtesë të URL-së së menaxherit të bordit-https://arduino.esp8266.com/stable/package_esp8266…

Shkoni te mjetet -> bordet -> Menaxheri i bordit dhe instaloni më në fund paketën esp8266.

Për të programuar arduino thjesht lidhni kabllon USB nga arduino në kompjuter dhe zgjidhni Arduino/Genuino UNO në mjetet-> bordet. Gjithashtu sigurohuni që të zgjidhni portat COM në Tools (numri i portës COM mund të gjendet në menaxherin e pajisjes). Shkruani programin e kërkuar, përpilojeni atë dhe klikoni ngarkoni nëse nuk ka gabime.

Për të programuar ESP8266 bëni lidhjen siç tregohet në diagram. lidhni usb nga arduino me kompjuterin. Në mjetet-> tabelë-> zgjidhni Generic ESP8266 dhe gjithashtu zgjidhni portën e duhur COM. Shkruani programin e kërkuar, përpilojeni atë dhe klikoni ngarkimin nëse nuk ka gabime. Sigurohuni që të lidhni Arduino RST me GND (arduino vepron si programues në ESP8266).

Në këtë projekt Së pari programohet ESP8266 dhe më pas lidhjet e qarkut hiqen. Pastaj Qarku rilidhet siç tregohet në Figurën e quajtur "Lidhjet e Qarqeve". Dhe pastaj arduino programohet.

Hapi 3: Konfigurimi i Thingspeak.com

Konfigurimi i Thingspeak.com
Konfigurimi i Thingspeak.com

Krijoni një llogari në thingspeak.com.

ne i përdorim kanalet në gjëra për të ruajtur informacionin e kontrollit të pajisjes dhe e përcjellim atë në arduino/alexa. ne ruajmë edhe vlerat e temperaturës dhe lagështisë në kanale. Likeshtë si një vend ruajtjeje për informacionin.

Hyni në gjërat e folura, shkoni në kanalet e kanaleve të mia dhe krijoni kanal të ri. Jepni emrin dhe përshkrimin e kanaleve tuaja. Në projektin tonë ne kemi nevojë për 8 kanale (ju mund ta bëni punën duke përdorur më pak kanale, por do të jetë pak e komplikuar gjatë programimit). Gjithashtu gjërat flasin ka një kufizim kohor gjatë azhurnimit të një kanali. Duhet të ketë një hendek prej 10-15 sekondash midis azhurnimit të njëpasnjëshëm të një kanali të caktuar.

Tetë kanale me vlerat dhe kuptimin e tyre janë dhënë më poshtë

emri i kanalit (vlera1-kuptimi, vlera2-kuptimi, etj):

1) Kontrolli i pajisjes (0 -lightON, 1- lightOff, 2- ventilatori ON, 3- Fan Off)

2) statusi i dritës (0- drita e fikur, 1- drita e ndezur)

3) statusi i tifozit (0- tifoz i fikur, 1- tifoz i ndezur)

4) lagështia (vlera e lagështisë)

5) temperatura (vlera e temperaturës)

6) njoftimi i ndërhyrës (1- alarmi ndërhyrës)

7) njoftimi i zjarrit (1- alarmi i zjarrit)

8) njoftimi i mysafirëve (1- alarmi i mysafirit)

kur klikoni në çdo kanal mund të shihni id -në e tij të kanalit dhe të shkruani çelësa API në skedën e çelësave API. ID e kanalit kërkohet për të marrë informacionin/ vlerën në kanal. Dhe çelësi i shkrimit kërkohet për të ruajtur një vlerë në kanal.

Kërkesa http për azhurnimin e një kanali është:

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

zëvendësohet me çelësat përkatës të shkrimit të kanalit dhe mund të jetë (0/1 në rast të kontrollit të pajisjes ose vlerave të temperaturës/lagështisë)

Kërkesa http për vlerën e leximit nga një kanal është:

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

zëvendësohet me id -në e veçantë të kanalit të kanalit nga i cili duam të lexojmë.

Hapi 4: Programi

Programi është i ndarë në 3 pjesë:

A) Programi për Arduino: programi për arduino është shumë i thjeshtë. Ai merr të dhënat nga ESP8266 në mënyrë serike dhe bazuar në të dhënat e marra pajisjet kontrollohen. Më shumë informacion në lidhje me programin gjenden në komentet në vetë programin.

B) Programi për ESP8266: programi për ESP8266 përfshin 3 gjëra

1) azhurnimi i temperaturës dhe lagështisë duke përdorur kërkesën

client.print (String ("GET") + "/update? key = & field1 =" + lagështia + "HTTP/1.1 / r / n" + "Pritësi:" + host + "\ r / n" + "Lidhja: mbyll / r / n / r / n "); // përditësoni lagështinë

client.print (String ("GET") + "/update? key = & field1 =" + temperature + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Lidhja: mbyll / r / n / r / n "); // përditësoni temperaturën

zëvëndësohet me çelësin përkatës të shkrimit që gjendet në kanalin e tregimit për lagështinë dhe temperaturën përkatësisht. dhe hosti është api.thingspeak.com.

shkarkoni bibliotekën dht nga:

2) leximi nga kanalet përkatëse të fjalës së gjërave dhe pajisja kontrolluese bazuar në vlerat e marra: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Pritësi: " + host +" / r / n " +" Lidhja: mbyll / r / n / r / n ");

ku zëvendësohet me id përkatës të kanalit që gjendet në gjërat e folura.

3) Dërgimi i alarmit në rast të temperaturës së lartë përmes kutisë së shtytjes

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Pritësi:" + host1 + "\ r / n" + "Lidhja: mbyll / r / n / r / n ");

ku zëvendësohet me id -në e pajisjes tuaj në kutinë e shtytjes.

Hapi 5: Konfigurimi i Linkit Smart 7688 Duo dhe Webcam

Konfigurimi i Linkit Smart 7688 Duo dhe Webcam
Konfigurimi i Linkit Smart 7688 Duo dhe Webcam
Konfigurimi i Linkit Smart 7688 Duo dhe Webcam
Konfigurimi i Linkit Smart 7688 Duo dhe Webcam
Konfigurimi i Linkit Smart 7688 Duo dhe Webcam
Konfigurimi i Linkit Smart 7688 Duo dhe Webcam

Në këtë projekt uebi dhe linkit smart 7688 duo përdoren për të kapur fotografinë e kërkuar dhe për t'ia dërguar përdoruesit. Ju gjithashtu mund të përdorni modulin e kamerës arduino dhe ta ndërlidhni me arduino ose të përdorni ndonjë aparat IP.

Shtypni dhe mbani shtypur butonin wifi në linkit smart 7688 për 20 sekonda për të rivendosur tabelën. Pastaj pasi cilësimi wifi të rivendoset do të keni mundësi të shihni emrin e pikës së hyrjes në lidhjet e rrjetit pa tel. Tani lidhni kompjuterin me atë rrjet. pasi ta lidhni hapni shfletuesin dhe shkruani 192.168.100.1 në shiritin e adresave. Do të keni mundësi të shihni portalin e tij. vendosni një fjalëkalim për t'u identifikuar në portalin e tij.

Pasi të identifikoheni, shkoni në skedën e rrjetit dhe zgjidhni modalitetin e stacionit (na nevojitet (linkit smart 7688 duo) për të hyrë në internet) dhe lidheni atë me rrjetin tuaj Wifi dhe shtypni Konfiguro dhe rinisni.

Pasi bordi të rindizet do t'i caktohet një adresë IP lokale. Gjeni adresën duke përdorur ndonjë mjet IP ose portalin tuaj të ruterit. Në rastin tim ishte 192.168.1.4. Tani shkruani adresën IP lokale në shiritin e adresave të shfletuesit. sigurohuni që kompjuteri të jetë i lidhur me të njëjtin rrjet si linkit smart. Do t'ju kërkohet të identifikoheni përsëri.

Për të aktivizuar transmetimin nga kamera në internet duhet të aktivizoni transmetuesin -j.webp

Pasi të identifikoheni, shkoni në skedën e shërbimit dhe kontrolloni aktivizoni transmetuesin -j.webp

Pas konfigurimit të mund të lidhni kamerën tuaj në linkit smart 7688 duo usb host përmes një kabllo OTG. Tani për të parë Stream hapni shfletuesin dhe shkruani: në shiritin e adresave. në rastin tim është 192.168.1.4:4400

për të bërë shkrepjen e parakohshme shkruani komandën:? veprim = fotografi

Tani ky imazh është i disponueshëm në nivel lokal, por ne duhet ta bëjmë atë të disponueshëm për shërbimin e shtytjes. Për të arritur këtë ne duhet të bëjmë përcjelljen e portit. Përcjellja e portit mund të bëhet në portalin e ruterit. Procesi është i ndryshëm për rutera të ndryshëm. Thjesht google për të ditur se si të transferoni përpara për një ruter të veçantë. Zakonisht është i disponueshëm nën shërbimin NAT. Pasi të keni portuar përpara, përdorimi mund të hyjë në këtë port (dmth.. 4440) nga IP -ja juaj e jashtme. IP e jashtme mund të gjendet duke lidhur "whats my ip" në google.

Ju duhet të vendosni këtë adresë

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

në kutinë e shtytjes (e cila shpjegohet në hapin tjetër) në mënyrë që kutia e shtyrjes të ketë qasje në këtë imazh dhe ta bashkëngjisë atë në postë dhe t’jua dërgojë sa herë që kërkohet.

Ju gjithashtu mund ta ruani imazhin në kartën sd pasi Linkit smart 7688 duo vjen gjithashtu me një vend të kartës sd për ruajtjen e informacionit. Më shumë informacion në lidhje me këtë mund të gjenden në:

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

Hapi 6: Konfigurimi i PushingBox

Konfigurimi i PushingBox
Konfigurimi i PushingBox

pushingbox përdoret për të dërguar njoftime në lidhje me alarme të ndryshme në projekt në gmail.

identifikohuni në pushingbox duke përdorur llogarinë Google:

shkoni te shërbimet e mia të shërbimit të shtimit. ka shumë shërbime për të zgjedhur si Gmail, twitter, njoftim push për android etj…

zgjidhni Gmail (pasi na duhet të dërgojmë foto si shtojcë) dhe plotësoni konfigurimin e duhur të emrit të gmail dhe id -në e gmail të përdoruesit të cilit duhet t'i dërgohet alarmi.

shkoni te skenarët e mi dhe krijoni një skenar të ri. jepni emrin skenarit (p.sh.: ALERT) shtoni shërbimin e krijuar më parë.

shkruani subjektin dhe trupin e duhur të postës dhe futni url -në për të marrë pamjen e ekranit të ueb -kamerës për bashkëngjitjen e fotografisë. Krijoni skenarë të ndryshëm për alarme të ndryshme. Api për ekzekutimin e një skenari të kutisë shtytëse është:

Hapi 7: Krijimi i Aftësisë Alexa duke Përdorur pa Backendless

Krijimi i Aftësisë Alexa duke Përdorur pa Backendless
Krijimi i Aftësisë Alexa duke Përdorur pa Backendless
Krijimi i Aftësisë Alexa duke Përdorur pa Backendless
Krijimi i Aftësisë Alexa duke Përdorur pa Backendless
Krijimi i Aftësisë Alexa duke Përdorur pa Backendless
Krijimi i Aftësisë Alexa duke Përdorur pa Backendless

pa backendless përdoret për të krijuar aftësinë alexa. Shtë një programim i thjeshtë drag and drop i përdorur për të krijuar aftësi alexa (ose ndonjë program) i cili mund të arrihet me API pa backend.

krijoni një llogari pa backend:

  • Hyni në llogarinë tuaj në llogari pa prapavijë. klikoni Krijo aplikacion dhe jepini një emër aplikacionit tuaj
  • Klikoni në ikonën Logic Business, e vendosur në shiritin e ikonave në të majtë. Do të shihni ekranin e SHERRBIMEVE API.
  • Klikoni në ikonën "+" për të krijuar një shërbim të ri. Sigurohuni që të zgjidhni CODELESS në dritaren "Shërbimi i ri". Shkruani "AlexaService" për emrin e shërbimit. Klikoni në butonin Ruaj:
  • Backendless krijon Shërbimin API dhe do t'ju kërkojë të krijoni një metodë për shërbimin. Kjo do të jetë metoda e cila do të përpunojë kërkesat nga Alexa. Shkruani "handleRequest" për emrin e metodës. Sigurohuni që të zgjidhni POST për operacionin REST dhe deklaroni një argument me emrin e "req" dhe shtypni "Any Object" siç tregohet:
  • Backendless krijon një zëvendësues për logjikën pa kod të metodës. Klikoni butonin EDIT për të filluar kalimin në Projektuesin Logic Logless. Në bllokun e funksionit të krijuar të funksionit të krijuar, klikoni në zonën që thotë "doSomething" dhe ndryshojeni në "sendAlexaResponse". Ky funksion përdoret për të bërë që Alexa të thotë diçka që mund të kalohet si argument. Klikoni në butonin Ruaj në mënyrë që funksioni të ruhet.
  • Klikoni në ikonën e ingranazheve të vendosur në bllokun e purpurt menjëherë pranë fjalës "Funksion". Shtoni dy argumente duke zvarritur blloqet hyrëse siç tregohet në imazhin më poshtë. Caktoni emrat e argumenteve si "whatToSay" dhe "waitForResponse". Vini re se ndërsa shtoni argumente, zona e bllokimit të kontekstit plotësohet automatikisht me blloqet që përfaqësojnë vlerat e argumentit.
  • Ndryshoni logjikën e funksionit në mënyrë që të duket si në imazh. Për blloqet "Krijoni objekte", përdorni ikonën e ingranazhit për të ndryshuar emrin e vetive të objektit. Mos harroni të ruani punën tuaj duke klikuar butonin Ruaj.
  • Tani që funksioni i personalizuar është ndërtuar, kthehuni përsëri në metodën handleRequest të shërbimit AlexaService. Klikoni në kategorinë e funksioneve të personalizuara në shiritin e veglave në të majtë dhe tërhiqni bllokun sendAlexaResponse për t'u lidhur me lidhësin e kthimit të metodës tuaj të shërbimit
  • Hapat e mësipërm mund të gjenden gjithashtu në faqen e tyre të internetit: https://backendless.com/developing-alexa-skill-wi…
  • Klikoni nyjen "Shto të re" nën Funksionet në seksionin BROWSER. Në bllokun e funksionit të krijuar të funksionit të krijuar, klikoni zonën që thotë "doSomething" dhe ndryshojeni në "getIntentName" modifikoni blloqet në mënyrë që funksioni të duket si imazhi i treguar. do të marrë emrin e synuar bazuar në shembuj të thënieve. Kthehuni te shërbimet api-> trajtoni kërkesën në seksionin e shfletuesit. Variablat dhe logjika krijohen nga seksioni i sistemit. Krijoni variablat e mëposhtëm të treguar në imazhe.
  • tjetër ruajmë emrin e synuar për të kërkuar ndryshoren. Dhe pastaj krahaso me synimet. për shembull, nëse kërkesa është "prezantim", atëherë ndryshorja e përgjigjes vendoset në "përshëndetje! Unë mund të kontrolloj ……." dhe kjo përgjigje lexohet me zë nga alexa më në fund. modifikoni bllokun siç tregohet.
  • nëse kërkesa është me qëllim LightsOn atëherë ne azhurnojmë kanalin e tregimit në '0' duke përdorur kërkesën http get dhe në të njëjtën kohë azhurnojmë statusin e pajisjes (1/0 në varësi të On/Off). E njëjta gjë përsëritet për LightsOff, FanOn dhe FanOff.
  • Për motin ne lexojmë nga kanali i temperaturës dhe lagështisë dhe ruajmë rezultatin në ndryshoren e përgjigjes. Meqenëse kanali jep vetëm vlera, ne i bashkojmë tekstet për ta bërë përgjigjen kuptimplotë
  • për pamjen e dhomës së ndenjes ne ekzekutojmë skenarin e pushingbox
  • për statusin e pajisjes ne lexojmë informacion nga kanali i statusit të gjërave:
  • për njoftimet dhe paralajmërimet që lexojmë nga kanalet e alarmit (zjarri, ndërhyrës dhe mysafir):
  • bazuar në vlerat që marrim nga fusha e njoftimit mesazhet përkatëse të alarmit ruhen në ndryshoren respond0. nëse nuk ka njoftim atëherë nuk ruhet asnjë mesazh njoftimi.
  • pasi të lexohet njoftimi atëherë '0' azhurnohet në kanalet e njoftimit në mënyrë që Alexa të mos lexojë përsëri të njëjtin njoftim. Pastaj më në fund bazuar në kërkesën, ndryshorja respond0/respond lexohet me zë të lartë.

Hapi 8: Konfigurimi i Aftësisë Alexa në Amazon Developer Console:

Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon
Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon
Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon
Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon
Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon
Konfigurimi i Aftësisë Alexa në tastierën e zhvilluesit të Amazon

shkoni në tastierën e zhvilluesit të Amazon dhe regjistrohuni duke përdorur llogarinë e Amazon.

shkoni në tastierën e zhvilluesit dhe klikoni në skedën ALEXA. Klikoni në çantën e aftësive alexa për të filluar.

krijoni llojin e aftësive të personalizuara, jepni emrin dhe emrin e thirrjes aftësisë. qëllimet përkatëse dhe fjalët e mostrës jepen në kod.

në skedën e konfigurimit zgjidhni HTTPS si tip i pikës përfundimtare të shërbimit plotësoni URL -në e paracaktuar me URL -në API nga pa sfond. Zgjidhni opsionin e 2 -të në Certifikatë për pikën përfundimtare të paracaktuar në certifikatën SSL. Ju gjithashtu mund të testoni aftësinë duke përdorur imituesin e testit.

Pasi të përfundojë testi, mund të publikoni aftësinë me informacionin e kërkuar të publikimit.

Hapi 9: Konfigurimi përfundimtar dhe përfundimi

Konfigurimi përfundimtar dhe përfundimi!
Konfigurimi përfundimtar dhe përfundimi!
Konfigurimi përfundimtar dhe përfundimi!
Konfigurimi përfundimtar dhe përfundimi!

Bëni lidhjen e qarkut siç tregohet.

Ndonjëherë ESP8266 do të funksionojë keq për shkak të rrymës së pamjaftueshme. Pra, megjithëse përmendet në qark, rekomandohet të furnizoni ESP8266 nga një burim i veçantë 3.3v. Nëse jeni duke përdorur një bankë energjie sigurohuni që të zvogëloni tensionin nga 5v në 3.3v duke përdorur një rregullator të tensionit 3.3v. Ngarko programin në ESP8266 dhe arduino. Unë kam treguar lidhjen me llambën, e njëjta gjë mund të shtrihet në tifoz ose çdo pajisje. Më në fund përdorni amazon echo ose echosim.io për të testuar aftësitë tuaja.

Ju duhet të aktivizoni aftësinë duke përdorur emrin e thirrjes (siç është rasti im - "myhome"). Ndonjëherë nuk do të funksionojë nëse përdoret pa emrin e thirrjes siç kam treguar disa herë në videon time

Shpresoj se ju ka pëlqyer tutoriali!

Faleminderit!

Recommended: