Talaan ng mga Nilalaman:

Smart Home Monitoring Gamit ang Alexa at Arduino: 9 Hakbang (na may Mga Larawan)
Smart Home Monitoring Gamit ang Alexa at Arduino: 9 Hakbang (na may Mga Larawan)

Video: Smart Home Monitoring Gamit ang Alexa at Arduino: 9 Hakbang (na may Mga Larawan)

Video: Smart Home Monitoring Gamit ang Alexa at Arduino: 9 Hakbang (na may Mga Larawan)
Video: 30 COOLEST Tech Gadgets you’ll NEED in 2024 – MUST HAVE 2024, Nobyembre
Anonim
Image
Image
Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales

Sa kasalukuyang mundo ang mga tao ay gumugugol ng mas maraming oras sa lugar ng trabaho kaysa sa kanilang tahanan. Samakatuwid mayroong isang pangangailangan ng home monitoring system kung saan maaaring malaman ng mga tao ang mga kondisyon ng bahay habang sila ay nasa trabaho. Mas magiging mabuti pa kung ang isa ay makapagtanong lamang sa "isang tao" tungkol sa kanilang bahay sa oras ng trabaho. Magagawa ito sa pamamagitan ng paggamit ng Amazon Alexa bilang isang katulong na maaaring magbigay sa gumagamit ng impormasyon na kailangan tungkol sa kanilang tahanan.

Hindi Lamang Sa Lugar ng Trabaho ang mga gumagamit ay maaaring makilala ang kondisyon ng bahay sa anumang lugar sa mundo hangga't mayroon silang koneksyon sa internet at Amazon Alexa.

Ang mga sumusunod na Pag-andar ay ipinatupad sa proyektong ito:

1) Kontrolin ang mga Device sa sambahayan tulad ng fan at ilaw

2) Sinasabi ang katayuan ng mga aparato

3) Sinasabi ang kalagayan ng panahon ng bahay (temperatura at halumigmig)

4) Ipinapadala ang snapshot ng loob ng bahay sa gumagamit sa pamamagitan ng Gmail kapag kinakailangan.

5) Nagpadala ng abiso kung sakaling -

* Intruder (nagpapadala din ng larawan)

* Apoy

* Bisita (nagpapadala din ng larawan)

Hakbang 1: Pagtitipon ng Mga Materyales

Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales
Pagtitipon ng Mga Materyales

Mga materyal na kinakailangan

Arduino Uno

ESP8266 Wifi Module

Linkit Smart 7688 Duo

DHT11

Relay

Sensor ng balakid sa IR

Webcam

Ang Amazon Echo Dot

Breadboard at jumper Wires

Software at Mga Serbisyong online:

Thingspeak.com

Arduino IDE

Itakda ang Kasanayan sa Amazon Alexa

Amazon Alexa Echosim.io (para sa Kasanayan sa Pagsubok)

Walang backend

PushingBox

Hakbang 2: Programming ang Arduino at ESP8266

Programming ang Arduino at ESP8266
Programming ang Arduino at ESP8266
Programming ang Arduino at ESP8266
Programming ang Arduino at ESP8266

I-download ang Arduino IDE Mula sa opisyal na website:

Buksan ang Arduino IDE at pumunta sa file-> mga kagustuhan-> sa karagdagang uri ng tagapamahala ng board manager -

Pumunta sa mga tool -> board -> Board Manager at i-install ang esp8266 na package na natagpuan sa huli.

Upang i-program ang arduino plug lamang ang USB cable mula sa arduino sa computer at piliin ang Arduino / Genuino UNO sa mga tool-> board. Siguraduhin din na pipiliin mo ang mga karapatan COM port sa Mga Tool (ang COM port number ay matatagpuan sa Device manager). Isulat ang kinakailangang Program, Compile ito at i-click ang upload kung walang mga error.

Upang programa ang ESP8266 gawin ang koneksyon tulad ng ipinakita sa diagram. ikonekta ang usb mula sa arduino sa Computer. Sa mga tool-> board-> piliin ang Generic ESP8266 at piliin din ang tamang COM port. Isulat ang kinakailangang Program, Compile ito at i-click ang upload kung walang mga error. Tiyaking ikinonekta mo ang Arduino RST sa GND (ang arduino ay gumaganap tulad ng isang programmer sa ESP8266).

Sa Proyekto na Ito Una ay na-program ang ESP8266 at pagkatapos ay aalisin ang mga koneksyon sa circuit. Pagkatapos ang Circuit ay muling konektado tulad ng ipinapakita sa Larawan na pinangalanang "Mga Koneksyon sa Circuit". At pagkatapos ay nai-program ang arduino.

Hakbang 3: Pag-configure ng Thingspeak.com

Pag-configure ng Thingspeak.com
Pag-configure ng Thingspeak.com

Lumikha ng isang account sa Thingspeak.com.

gumagamit kami ng mga channel sa mga bagay na bagay upang maiimbak ang impormasyon sa pagkontrol ng aparato at i-ruta ito sa arduino / Alexa. naiimbak din namin ang mga halagang temperatura at halumigmig sa mga channel. Ito ay tulad ng isang lokasyon ng imbakan para sa impormasyon.

Mag-login sa mga bagay na bagay, pumunta sa mga channel ng aking mga channel at lumikha ng bagong channel. Magbigay ng pangalan at paglalarawan sa iyong mga channel. Sa aming proyekto kailangan namin ng 8 mga channel (maaari mong gawin ang trabaho gamit ang mas kaunting mga channel ngunit ito ay medyo kumplikado habang nagprogram). Gayundin ang bagay na bagay ay may isang oras na pumipigil habang ina-update ang isang channel. Dapat mayroong isang puwang na 10-15 sec sa pagitan ng sunud-sunod na pag-update ng isang partikular na channel.

Walong mga channel kasama ang kanilang mga halaga at kahulugan ay ibinibigay sa ibaba

pangalan ng channel (halaga1-kahulugan, halaga2-kahulugan, atbp):

1) Pagkontrol sa aparato (0 -lightON, 1- lightOff, 2- fan ON, 3- Fan Off)

2) katayuan ng ilaw (0- patay, 1- ilaw sa)

3) katayuan ng fan (0- fan off, 1- fan on)

4) halumigmig (halaga ng halumigmig)

5) temperatura (halaga ng temperatura)

6) abiso ng nanghihimasok (1- alerto ng nanghimasok)

7) abiso sa sunog (1- alerto sa sunog)

8) abiso sa panauhin (1- alerto sa panauhin)

kapag nag-click ka sa anumang channel maaari mong makita ang channel id nito at isulat ang mga API key sa tab na mga API key. kinakailangan ang channel id upang makuha ang impormasyon / halaga sa channel. At ang susi sa pagsulat ay kinakailangan upang mag-imbak ng isang halaga sa channel.

Ang kahilingan sa http para sa pag-update ng isang channel ay:

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

ay pinalitan ng kaukulang sulat ng pagsulat ng channel at maaaring maging (0/1 sa kaso ng kontrol ng aparato o mga halaga ng temp / halumigmig)

Ang kahilingan sa http para sa halaga ng pagbabasa mula sa isang channel ay:

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

ay pinalitan ng partikular na channel id ng channel kung saan nais naming basahin.

Hakbang 4: Ang Programa

Ang programa ay nahahati sa 3 bahagi:

A) Program para sa Arduino: ang programa para sa arduino ay napaka-simple. Natatanggap nito ang data mula sa seryosong ESP8266 at batay sa natanggap na data ang mga aparato ay kinokontrol. Ang karagdagang impormasyon tungkol sa programa ay matatagpuan sa mga komento sa mismong programa.

B) Program para sa ESP8266: ang programa para sa ESP8266 ay nagsasangkot ng 3 bagay

1) pag-update ng temperatura at halumigmig gamit ang kahilingan sa

client.print (String ("GET") + "/ update? key = & field1 =" + halumigmig + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Koneksyon: isara / r / n / r / n "); // update halumigmig

client.print (String ("GET") + "/ update? key = & field1 =" + temperatura + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Koneksyon: isara / r / n / r / n "); // update temperatura

ang ay pinalitan ng kaukulang sulat ng susi na matatagpuan sa mga bagay na bagay para sa halumigmig at temperatura ayon sa pagkakabanggit. at host ay api.thingspeak.com.

mag-download ng dht library mula sa:

2) pagbabasa mula sa kaukulang mga channel ng mga bagay na sinasabi at pagkontrol ng aparato batay sa mga nakuhang halaga: client.print (String ("GET") + "/channels//field/field1/last.html HTTP / 1.1 / r / n" + " Host: "+ host +" / r / n "+" Koneksyon: isara / r / n / r / n ");

kung saan ay pinalitan ng kaukulang channel id na matatagpuan sa mga bagay na bagay.

3) Pagpapadala ng alerto sa kaso ng mataas na temperatura sa pamamagitan ng push box

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/ pushbox? devid = HTTP / 1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Koneksyon: isara / r / n / r / n ");

kung saan napalitan ng iyong aparato id sa pushbox.

Hakbang 5: Pag-configure ng Linkit Smart 7688 Duo at Webcam

Ang pag-configure ng Linkit Smart 7688 Duo at Webcam
Ang pag-configure ng Linkit Smart 7688 Duo at Webcam
Ang pag-configure ng Linkit Smart 7688 Duo at Webcam
Ang pag-configure ng Linkit Smart 7688 Duo at Webcam
Ang pag-configure ng Linkit Smart 7688 Duo at Webcam
Ang pag-configure ng Linkit Smart 7688 Duo at Webcam

Sa proyektong ito ang webcam at linkit na smart 7688 duo ay ginagamit upang makuha ang kinakailangang larawan at ipadala ito sa gumagamit. Maaari mo ring gamitin ang module ng arduino camera at i-interface ito sa arduino o ang paggamit ay maaaring gumamit ng anumang IP camera.

Pindutin nang matagal ang pindutan ng wifi sa linkit na smart 7688 para sa 20 sec upang i-reset ang board. Pagkatapos pagkatapos i-reset ang setting ng wifi magagawa mong makita ang pangalan ng access point nito sa mga koneksyon sa wireless network. Ngayon ikonekta ang computer sa network na iyon. pagkatapos mong ikonekta ito buksan ang browser at i-type ang 192.168.100.1 sa address bar. Makikita mo ang portal nito. magtakda ng isang password upang mag-login sa portal nito.

Pagkatapos mong mag-login pumunta sa network tab at piliin ang Station mode (kailangan namin ito (i-link ang matalinong 7688 duo) upang ma-access ang internet) at ikonekta ito sa iyong Wifi network at pindutin ang I-configure at i-restart.

Matapos ang board ay muling simulan ito ay bibigyan ng isang lokal na IP address. Alamin ang address gamit ang anumang mga tool sa IP o ang iyong portal ng router. Sa aking kaso ito ay 192.168.1.4. Ngayon i-type ang lokal na IP address sa address bar ng browser. tiyaking nakakonekta ang computer sa parehong network tulad ng linkit na matalino. Hihilingin sa iyo na mag-login muli.

Upang paganahin ang streaming mula sa webcam dapat mong paganahin ang -j.webp

Pagkatapos mong mag-login pumunta sa serbisyo tab at suriin paganahin ang -j.webp

Matapos ang pag-setup upang maikonekta ang iyong webcam sa linkit na smart 7688 duo usb host sa pamamagitan ng isang OTG cable. Ngayon upang makita ang Stream buksan ang browser at i-type: sa address bar. sa aking kaso ito ay 192.168.1.4:4400

upang kunin ang snap shot type ang utos:? action = snapshot

Ngayon ang imaheng ito ay magagamit nang lokal ngunit kailangan naming gawin itong magagamit sa pagtulak sa serbisyo sa kahon. Upang makamit ito kailangan nating gawin ang port forwarding. Ang pagpapasa ng port ay maaaring gawin sa router portal. Iba-iba ang proseso ng id para sa iba't ibang mga router. Google lang upang malaman kung paano mag-port forward para sa tukoy na router. Karaniwan itong magagamit sa ilalim ng serbisyo ng NAT. Pagkatapos mong gamitin ang port forward ay maaaring ma-access ang port na ito (ie.. 4440) mula sa iyong panlabas na IP. Ang panlabas na IP ay matatagpuan sa pamamagitan ng pagtali ng "ano ang aking ip" sa google.

Kailangan mong ilagay ang address na ito

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

sa pushbox (na ipinaliwanag sa susunod na hakbang) upang ma-access ng pushbox ang imaheng ito at ilakip ito sa mail at ipadala ito sa iyo kahit kailan kinakailangan.

Maaari mo ring iimbak ang imahe sa sd card dahil ang Linkit smart 7688 duo ay mayroon ding puwang ng sd card para sa pagtatago ng impormasyon. Ang karagdagang impormasyon tungkol dito ay matatagpuan sa:

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

Hakbang 6: Pag-configure ng PushingBox

Pag-configure ng PushingBox
Pag-configure ng PushingBox

ginagamit ang pushbox upang magpadala ng abiso tungkol sa iba't ibang mga alerto sa proyekto sa gmail.

pag-sign in sa pushbox gamit ang google account:

pumunta sa aking mga serbisyo magdagdag ng serbisyo. maraming mga serbisyo upang pumili mula sa tulad ng Gmail, twitter, push notification para sa android atbp…

piliin ang Gmail (tulad ng kailangan naming magpadala ng larawan bilang isang kalakip) at punan ang naaangkop na pagsasaayos ng pangalan ng gmail at gmail id ng gumagamit kung kanino dapat maipadala ang alerto.

pumunta sa aking mga senaryo at lumikha ng isang bagong senaryo. magbigay ng pangalan sa senaryo (hal: ALERT) idagdag ang dating nilikha na serbisyo.

sumulat ng angkop na paksa at katawan ng mail at ipasok ang url upang makuha ang screenshot ng web cam para sa paglakip ng larawan. Lumikha ng iba't ibang mga sitwasyon para sa iba't ibang mga alerto.api para sa pagpapatupad ng isang scenario sa pagtulak sa kahon ay:

Hakbang 7: Paglikha ng Kasanayan sa Alexa Gamit ang Backendless

Paglikha ng Kasanayan sa Alexa Gamit ang Backendless
Paglikha ng Kasanayan sa Alexa Gamit ang Backendless
Paglikha ng Kasanayan sa Alexa Gamit ang Backendless
Paglikha ng Kasanayan sa Alexa Gamit ang Backendless
Paglikha ng Kasanayan sa Alexa Gamit ang Backendless
Paglikha ng Kasanayan sa Alexa Gamit ang Backendless

Ginagamit ang backendless upang lumikha ng kasanayan sa Alexa. Ito ay isang simpleng drag and drop na programa na ginagamit upang lumikha ng kasanayan sa Alexa (o anumang mga programa) na maaaring ma-access ng backendless API.

lumikha ng isang account sa backendless:

  • Mag-log in sa iyong account sa backendless account. i-click ang Lumikha ng app at magbigay ng isang pangalan sa iyong app
  • I-click ang Business Logic icon na matatagpuan sa icon bar sa kaliwa. Makikita mo ang screen ng API SERVICES.
  • I-click ang icon na “+” upang lumikha ng isang bagong serbisyo. Tiyaking piliin ang CODELESS sa "Bagong Serbisyo" na popup. Ipasok ang "AlexaService" para sa pangalan ng serbisyo. I-click ang I-save ang pindutan:
  • Lumilikha ang Backendless ng Serbisyo ng API at hihimokin ka upang lumikha ng isang pamamaraan para sa serbisyo. Ito ang magiging pamamaraan na magproseso ng mga kahilingan mula sa Alexa. Ipasok ang "handleRequest" para sa pangalan ng pamamaraan. Siguraduhin na piliin ang POST para sa pagpapatakbo ng REST, at ideklara ang isang argument sa pangalan ng "req" at i-type ang "Anumang Bagay" tulad ng ipinakita:
  • Lumilikha ang Backendless ng isang placeholder para sa walang code na lohika ng pamamaraan. I-click ang pindutang EDIT upang simulang lumipat sa Codeless Logic Designer. Sa ginawang bloke ng placeholder ng pag-andar, i-click ang lugar na nagsasabing "doSomething" at baguhin ito sa "sendAlexaResponse". Ginagamit ang pagpapaandar na ito upang masabi ng Alexa ang isang bagay na maaaring maipasa bilang argument. I-click ang pindutang I-SAVE upang ang pag-andar ay nai-save.
  • I-click ang icon na gear na matatagpuan sa lila na bloke sa tabi mismo ng salitang "Pag-andar". Magdagdag ng dalawang mga argumento sa pamamagitan ng pag-drag sa mga input block tulad ng ipinakita sa imahe sa ibaba. Italaga ang mga pangalan ng mga argumento bilang "whatToSay" at "waitForResponse". Pansinin na habang nagdaragdag ka ng mga argumento, ang lugar ng Mga Context Blocks ay awtomatikong napunan ng mga bloke na kumakatawan sa mga halaga ng argument.
  • Baguhin ang lohika ng pagpapaandar upang magmukha ito sa imahe. Para sa mga bloke na "Lumikha ng Mga Bagay", gamitin ang icon na gear upang baguhin ang pangalan ng mga katangian ng object. Huwag kalimutang i-save ang iyong trabaho sa pamamagitan ng pag-click sa I-save ang pindutan.
  • Ngayon na binuo ang pasadyang pagpapaandar, bumalik sa paraan ng paghawak ngRequest ng serbisyo ng AlexaService. I-click ang kategorya ng Pasadyang Mga Pag-andar sa toolbar sa kaliwa at i-drag ang sendAlexaResponse block upang kumonekta sa return konektor ng iyong paraan ng serbisyo
  • Ang mga hakbang sa itaas ay matatagpuan din sa kanilang website: https://backendless.com/developing-alexa-skill-wi…
  • I-click ang node na "Magdagdag ng Bago" sa ilalim ng Mga Pag-andar sa seksyon ng BROWSER. Sa nagawang bloke ng placeholder ng pag-andar, i-click ang lugar na nagsasabing "doSomething" at baguhin ito sa "getIntentName" baguhin ang mga bloke upang ang pagpapaandar ay mukhang ipinakita na imahe. Ito makukuha ang pangalan ng hangarin batay sa mga halimbawang pagbigkas. Bumalik sa mga serbisyo ng api-> hawakan ang kahilingan sa seksyon ng browser. Ang mga variable at lohika ay nilikha mula sa seksyon ng system. Lumikha ng mga sumusunod na variable na ipinapakita sa mga imahe.
  • Susunod na iniimbak namin ang pangalan ng hangarin upang humiling ng variable. At pagkatapos ihambing sa mga hangarin. halimbawa kung ang kahilingan ay "pagpapakilala" kung gayon ang variable ng pagtugon ay nakatakda sa "hi! Maaari kong makontrol …… …" at ang tugon na ito ay basahin nang malakas ni Alexa sa wakas. baguhin ang bloke tulad ng ipinakita.
  • kung ang hiling ay LightsOn hangarin pagkatapos ay i-update namin ang bagay na bagay sa channel na '0' gamit ang kahilingan na makakuha ng http at sabay na ina-update namin ang katayuan ng aparato (1/0 depende sa On / Off). Parehong bagay ang naulit para sa LightsOff, FanOn at FanOff.
  • Para sa panahon nabasa namin mula sa Temperatura at halumigmig na channel at iniimbak ang resulta sa variable na tumutugon. Dahil nagbibigay lamang ang channel ng mga halagang nagdagdag kami ng mga teksto upang maging makabuluhan ang tugon
  • para sa snapshot ng sala pinapatakbo namin ang scenario sa pushbox
  • para sa katayuan ng aparato nabasa namin ang impormasyon mula sa channel ng katayuan ng mga bagay na sinasabi:
  • para sa abiso at mga alerto na nabasa namin mula sa mga alerto na alerto (sunog, nanghimasok at panauhin):
  • batay sa mga halagang nakukuha namin mula sa patlang ng notification na kaukulang mga mensahe ng alerto ay nakaimbak sa variable ng respond0. kung walang abiso kung gayon walang mensahe ng abiso ang naiimbak.
  • sa sandaling basahin ang abiso pagkatapos ay i-update ang '0' sa mga channel ng pag-abiso upang hindi mabasa muli ng Alexa ang parehong notification. Pagkatapos sa wakas batay sa kahilingan, ang variable ng respond0 / respond ay basahin nang malakas.

Hakbang 8: Pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console:

Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console
Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console
Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console
Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console
Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console
Ang pag-configure ng Kasanayan sa Alexa sa Amazon Developer Console

pumunta sa console ng developer ng amazon at mag-signin gamit ang amazon account.

pumunta sa developer console at mag-click sa tab na ALEXA. Mag-click sa kit ng kasanayan sa Alexa upang magsimula.

lumikha ng pasadyang uri ng kasanayan, magbigay ng pangalan at pangalan ng paanyaya sa kasanayan. ang kani-kanilang mga hangarin at sample na pagsasalita ay ibinibigay sa code.

sa tab na pagsasaayos piliin ang HTTPS bilang uri ng punto ng pagtatapos ng serbisyo punan ang default URL ng API URL mula sa backendless. Piliin ang ika-2 na pagpipilian sa Sertipiko para sa default na endpoint sa sertipiko ng SSL. Maaari mo ring subukan ang kasanayan gamit ang test simulator.

Matapos makumpleto ang pagsubok maaari mong mai-publish ang kasanayang may kinakailangang impormasyon sa pag-publish.

Hakbang 9: Pangwakas na Pag-set up at Tapusin

Pangwakas na Pag-set up at Tapusin!
Pangwakas na Pag-set up at Tapusin!
Pangwakas na Pag-set up at Tapusin!
Pangwakas na Pag-set up at Tapusin!

Gawin ang koneksyon sa circuit tulad ng ipinakita.

Minsan ang ESP8266 ay hindi magagawa dahil sa hindi sapat na kasalukuyang. Kaya, kahit na nabanggit sa circuit, inirerekumenda na i-power ang ESP8266 mula sa magkakahiwalay na pinagmulan ng 3.3v. Kung gumagamit ka ng isang power bank siguraduhing bawasan ang boltahe mula 5v hanggang 3.3v gamit ang isang 3.3v voltage regulator. I-upload ang programa sa ESP8266 at arduino. Ipinakita ko ang koneksyon sa bombilya, ang parehong bagay ay maaaring mapalawak sa fan o anumang mga aparato. Panghuli gumamit ng amazon echo o echosim.io upang subukan ang iyong kasanayan.

Dapat mong buhayin ang kasanayan gamit ang pangalan ng paanyaya (tulad ng kaso ko - "myhome"). Minsan hindi ito gagana kung ginamit ito nang walang pangalan ng paanyaya tulad ng ipinakita ko nang dalawang beses sa aking video

Inaasahan kong nasiyahan ka sa tutorial!

Salamat!

Inirerekumendang: