Talaan ng mga Nilalaman:

ForgetMeNot - Platform sa Pag-abiso sa Smart Home: 14 Mga Hakbang (na may Mga Larawan)
ForgetMeNot - Platform sa Pag-abiso sa Smart Home: 14 Mga Hakbang (na may Mga Larawan)

Video: ForgetMeNot - Platform sa Pag-abiso sa Smart Home: 14 Mga Hakbang (na may Mga Larawan)

Video: ForgetMeNot - Platform sa Pag-abiso sa Smart Home: 14 Mga Hakbang (na may Mga Larawan)
Video: SPONGEBOB SQUAREPANTS Triangle Bikini. 2024, Nobyembre
Anonim
ForgetMeNot - Smart Home Notification Platform
ForgetMeNot - Smart Home Notification Platform

Bilang abala sa mga mag-aaral sa kolehiyo, tumatakbo sa pagitan ng mga klase, trabaho at obligasyon ng pamilya, may posibilidad kaming makalimutan ang maliliit na bagay. Ang isang kaarawan ay darating at napupunta nang hindi natin napapansin, isang mahalagang deadline ay napalampas dahil sa labis na pagkalimot at kung minsan, minsan lang, sunog ay sumisira at sumunog sa iyong silid dahil nakalimutan mo ang pampainit ng espasyo.

Huwag magalala, mahal na mga kaibigan - sumagip tayo.

Ang ForgetMeNot ay isang Smart Home Notification Platform, nilikha mula sa isang totoong pangangailangan na nakasalamuha namin sa aming pang-araw-araw na buhay (at, kung kami ay ganap na matapat, bahagyang hinimok ng isang pangwakas na proyekto sa isang klase ng Agham sa Computer).

Sa esensya, ito ay isang kumbinasyon ng hardware at software. Tinitiyak nitong may kamalayan ka (at maaaring kumilos!) Sa mga bagay na nakalimutan mong gawin kapag umalis ka sa bahay.

Remix?

Habang gumagamit lamang kami ng ilang mga sensor (mga bagay na nagmamasid) at mga activator (mga bagay na ginagawa), ang pangkalahatan ng bawat bahagi ay ginagawang angkop para sa iba't ibang mga kaso ng paggamit na may kaunting mga pagbabago sa hardware at software. Ipaalam sa amin kung nag-remix ka ng ilang (o lahat!) Ng proyekto - baliw kami sa mga collab!

Sino po

Proudly nilikha ng (isang subset ng) koponan ng Red Panda mula sa IDC Herzliya sa McCann Valley, Mizpe Ramon. Ang isang literal na bag ng mga gratitude ay napupunta sa Zvika Markfeld, ng ForRealTeam, para sa pagpunta sa amin sa disyerto upang makabuo ng mga kamangha-manghang bagay sa gitna ng pinakamagagandang bahagi ng ating bansa.

Espesyal na pasasalamat

Sa mga tao sa Random Nerd Tutorials para sa kanilang walang katapusang daloy ng kagiliw-giliw, mga bagong konsepto na maaari nating subukan kasama ang Node-RED at ang aming mga ESP8266, partikular na dito.

Mga gamit

Woah, napakaraming bagay …

Ito ay lubos na isang malawak na proyekto, at gumawa kami ng ilang mga maagang pagpipilian ng disenyo tungkol sa hardware, software at iba pang mga gamit na ginagamit namin.

Habang inirerekumenda namin ang listahan sa ibaba kung balak mong sundin, maraming mga bahagi ang maaaring ipagpalit para sa mas madaling mga item na nakuha. Ang isang halimbawa ay ang mga board ng WeMos - anumang murang bersyon ng board na nakaupo ka sa paligid, maaari mo itong paganahin nang hindi gumagawa ng maraming pagbabago.

Ang isang halimbawa ng iba't ibang uri ay ang pambalot para sa Smart Outlet. Habang maganda at matibay, gagawin ang anumang kahon na (hindi metal). Nagkataon lamang kaming may access sa isang laser cutter, at ang lahat na may access sa isang laser cutter ay biglang maraming, maraming mga gamit para sa laser-cutting na bagay. LAHAT NG BAGAY. Parehas din para sa aming mga bahagi na naka-print sa 3D.

Kaya - i-rock mo lang ang iyong sariling gamit, at mag-iwan ng komento sa ibaba kung kailangan mo ng tulong sa pagpapalit ng ilang bahagi para sa iba pa.

Mga Micro-Controller, board at kalasag

  • 4 x ESP8266 boards (ginamit namin ang LoLin-made WeMos D1 mini)
  • 1 x D1 Mini Relay Shield
  • 1 x L293N Hbridge (ginamit para sa engine ng Door Activator's DC)

Lakas

  • 50 x Arduino-style jumper cables (depende sa board na iyong ginagamit, maaaring kailanganin mo ng mas maraming babae-lalaki o mas maraming lalaki-lalaki. Kumuha lamang ng isang bungkos ng bawat isa, palagi silang madaling magamit) - tandaan na ang ilan sa kanila ay mahubaran para sa Activator ng Pinto
  • 3 x 10 Ohm resistors
  • 1 x Xuanshi XS-XB6 16A ~ 250v max. 3500W power strip + extension cord (dapat gawin ang anumang extension cord + splitter para sa mga socket na 220V) - tandaan na huhubaran ito para sa Smart Outlet
  • 3 x Mga Micro-USB Cable
  • 3 x USB Wall Charger
  • 1 x DY-0120200 (Input: 100-240V, 50-60Hz Output: 12V --- 2A) Adapter ng AC / DC na may ulo ng lalaking DC na bariles (o katumbas na adapter)
  • 1 x babaeng DC barrel jack
  • 1 x 220V hanggang 5V transpormer (para sa pagbibigay ng lakas sa board ng Smart Outlet nang direkta mula sa power strip, nang walang isang karagdagang mapagkukunan ng kuryente)

Mga sensor

  • 1 x LDR Light Sensor
  • 1 x Reed Relay (kumikilos bilang isang sensor para sa window)
  • 1 x DHT Temperatura sensor

Mga Motors

  • 1 x DC motor (gumamit kami ng isang coreless metal-brush motor, ngunit ang anumang motor na umaangkop sa iyong 3D-naka-print na pinturang activator ng pinto ay gagawin)
  • 1 x Servo motor (maaaring gawin ang anumang laki, ngunit tiyaking gumamit ng sapat na malakas upang i-flip ang kinakailangang switch)

Mga Bahagi ng Laser-Cut

1 x Smart Outlet Box

Mga Bahaging Naka-print sa 3D

1 x casing ng activator ng pinto

Cellphone

Ang tutorial na ito ay itinayo kasama ang mga teleponong Android, at sa ngayon tila hindi sinusuportahan ng Integromat ang mga iOS device. Samakatuwid, sa kasamaang palad, ang itinuturo na ito ay nangangailangan ng isang Android phone.

Software

  • Arduino IDE (Integrated Development Environment - karaniwang isang fancy code editor)

    • I-load ang iyong board sa IDE para sa madaling pag-upload
    • Tingnan ang mga nakakabit na sketch para sa lahat ng nauugnay na aklatan
  • Node-RED Integration Platform

    Gumagamit kami ng halos lahat ng mga stock node, na may ilang mga pagbubukod - tingnan ang naka-attach na daloy para sa lahat ng mga nauugnay na node

  • Integromat.com (konektor ng serbisyo, pinapayagan ang pag-link ng maraming mga serbisyo nang magkasama - sa aming kaso, at Android app at ang aming Node-RED server)

    Ginamit namin ang libreng baitang, na dapat sapat para sa pang-araw-araw na paggamit ng platform

  • PushBullet.com (push service na abiso)

    Ginamit namin ang libreng bersyon, na dapat sapat para sa pang-araw-araw na paggamit ng platform

  • ngrok (ligtas na serbisyo sa tunneling)

    Ginagamit namin ang libreng software ng tunneling na ito upang mailantad ang isang link mula sa aming lokal na tumatakbo na dashboard sa mundo, upang ma-access namin ang dashboard mula sa isang URL Sa push notification

  • Mosquitto MQTT Broker

    Ang MQTT ay isang protokol na ginamit upang maglipat ng mga mensahe sa pagitan ng aming mga nakakonektang aparato at Node-RED. Dahil ang Node-RED ay walang built-in na MQTT server, kailangan naming gumamit ng isang panlabas

Hakbang 1: Maunawaan ang Daloy

Image
Image

Kumunsulta sa video sa itaas para sa isang pagpapakita ng system. Tandaan na ang pangkalahatang daloy ng system (pagkatapos nito ay itinayo ang daloy ng Node-RED) ay ang mga sumusunod:

  1. Umalis ka sa bahay mo
  2. Nakakonekta ang iyong telepono mula sa WiFi ng iyong bahay
  3. Nakakuha ng salita ang Integromat, at inaabisuhan ang Node-RED
  4. Sinusuri ng Node-RED kung ano ang katayuan ng mga sensor sa iyong bahay at ang mga switch sa iyong dashboard
  5. Kung may natitira o nakabukas, aabisuhan nito ang PushBullet
  6. Nagpapadala ang PushBullet ng isang abiso sa iyong telepono, na may isang link na Node-RED Dashboard
  7. Maaari kang pumunta sa Dashboard at isara / patayin ang mga nauugnay na bagay

Sa esensya, nag-aalok kami ng isang sentralisadong diskarte sa pamamahala ng iba't ibang mga bagay sa iyong bahay at pinatutunayan na ang mga ito ay nasa tamang katayuan kapag umalis ka sa iyong bahay.

Sa pagsasagawa, mayroon kaming mga sumusunod na kakayahan sa proyektong ito:

  1. Katayuan ng Window - bukas / sarado (ipinahiwatig ng katayuan ng Reed Relay)
  2. Katayuan ng Mga Ilaw - on / off (ipinahiwatig ng katayuan ng LDR)
  3. Katayuan ng Space Heater - on / off (ipinahiwatig ng sensor ng temperatura ng DHT)
  4. Door Activator - bukas / sarado (custom-made 3D-casing para sa isang DC motor)
  5. Smart Outlet Activator - on / off (isang D1 relay na konektado sa isang power strip)
  6. Switch Press Activator - on / off (isang Servo na konektado sa isang board)

Sapat na ito, sa aming libro, upang ipakita ang mga kakayahan ng platform. Maaari itong madaling mapalawak (gamit ang Node-RED) upang magdagdag ng higit pang mga tagapagpahiwatig ng status / activator, kung kinakailangan.

Hakbang 2: Ngrok

Ngrok
Ngrok

ang ngrok ay isang serbisyo sa tunneling. Pinapayagan kaming mailantad ang isang lokal na serbisyo na nagpapatakbo (sa aming kaso, Node-RED) sa labas ng mundo - nang walang abala sa pag-set up ng isang server o pakikitungo sa mga tala ng DNS. Pinapatakbo mo lang ang Node-RED sa iyong computer, at pagkatapos ay patakbuhin ang ngrok sa parehong port na tumatakbo ang Node-RED. Iyon lang - makakakuha ka ng isang URL na magagamit mo upang ma-access ang Node-RED mula sa kahit saan sa mundo, hindi alintana kung anong network ito nakakonekta.

Pag-install at Pag-configure

  1. Mag-download ng ngrok para sa iyong operating system mula rito.
  2. Sundin ang hakbang sa pahina ng pag-download, hanggang sa hakbang na "Sunugin ito".
  3. Sa "Fire it up step", palitan ang 80 para sa 1880 - tulad ng,./ngrok http 1880 o ngrok http 1880, depende sa iyong operating system.
  4. Itala ang http URL na makikita mo sa iyong linya ng utos - kakailanganin namin ito para sa ibang pagkakataon. Tingnan ang imahe para sa isang halimbawa.

Hakbang 3: Node-RED

Node-RED
Node-RED
Node-RED
Node-RED
Node-RED
Node-RED

Pag-install at Pag-configure

Ang pangunahing tagakontrol ng lohika ng proyekto, ang Node-RED ay isang kapaligiran sa visual na programa na nagbibigay-daan sa iyo upang ikonekta ang iba't ibang mga serbisyo ng software (at hardware!) Na magkasama upang lumikha ng isang pinag-isang application. Bilang isang bonus, pinapayagan ang pagbuo ng mga magagandang dashboard na maaaring makakuha ng impormasyon mula sa at makontrol pa ang iba't ibang mga serbisyo.

Kung pamilyar ka sa Node-RED, kunin lamang ang aming daloy mula sa Gist na ito, at idagdag ang iyong ngrok id mula sa hakbang 8 sa ibaba.

Kung hindi ka pamilyar sa Node-RED o hindi mo ito naka-install, sundin ang mga sumusunod na hakbang upang mai-load ang aming daloy ng Node-RED sa iyong lokal na computer:

  1. Ang Node-RED ay nangangailangan ng Node.js, na kung saan ay isang wika ng programa na may sariling espesyal na kapaligiran sa pag-unlad. Grab ang installer na nauugnay sa iyong operating system mula rito, pagkatapos ay sundin ang mga tagubilin.
  2. Maaari mo na ngayong mai-install ang Node-RED mismo gamit ang mga tagubilin dito. Mangyaring tandaan ang lokasyon na naka-install sa Node-RED, dahil kakailanganin mo ito para sa susunod na hakbang.
  3. Ngayon na na-install mo ang Node-RED, patakbuhin ito gamit ang mga tagubilin sa hakbang sa itaas at patunayan na maaari mong makita ang isang walang laman na pahina ng canvas. Dapat itong matatagpuan sa
  4. Kakailanganin mo ngayong mag-install ng ilang karagdagang mga node (na kung saan ang tawag sa Node-RED na mga extension o modyul) na ginamit sa proyektong ito. Mangyaring sundin ang mga tagubilin dito at dito at i-install ang pareho ng mga modyul na ito.
  5. Ngayon na naka-install ang mga node, i-restart ang node-red server (simpleng pagpatay sa serbisyo at muling pagsisimula dapat itong gawin ang bilis ng kamay). Dapat ay mayroon ka ng parehong mga node na magagamit sa iyong daloy.
  6. I-download ang daloy ng Node-RED ng proyektong ito mula dito, at sundin ang mga tagubilin dito upang mai-import ito sa iyong pag-install ng Node-RED.
  7. Tiyaking makikita mo ang larawan ng daloy habang tinitingnan ito sa itaas ng iyong screen.
  8. Naaalala ang ngrok URL mula sa huling hakbang? Ipasok ito sa node ng Build Push Notification. Papayagan kaming makita ang isang live na link ng dashboard (tumatakbo iyon sa aming lokal na makina) sa anumang aparato na ginagamit namin upang makakuha ng mga abiso.

Paliwanag ng Daloy

Pansinin ang daloy ay pinaghiwalay sa dalawang bahagi - ang itaas ay ang pangunahing lohika, at ang ibaba ay ang sangkap na lohika.

Pinangangalagaan ng pangunahing lohika ang pag-alam kung umalis ka na sa bahay (sa pamamagitan ng pagtanggap ng isang kahilingan na GET mula sa Integromat sa Integromat WiFi Leave Endpoint node), na nagpapadala ng isang tugon sa tagumpay (kaya't ang Integromat ay hindi nabitin, sa loob ng Magpadala ng Mensahe ng Tagumpay Sa Integromat), at pagkatapos ay nagpapatakbo ng isang tseke ng lahat ng mga sensor at activator upang suriin ang kanilang kasalukuyang katayuan (nangyayari ito sa loob ng node ng function na Build Push Notification, gamit ang pandaigdigang store ng konteksto upang makuha ang impormasyon). Kung nakita ng tsek na iyon na may isang bagay na nakabukas o bukas, nagpapalitaw ito ng isang abiso sa push PushBullet (sa pinakamataas na node ng Send Push Notification). Pinangangalagaan ng mas mababang node na Send Push Notification ang pagpapadala ng mga nabaluktot na notification sa push (para sa heater ng puwang - tingnan ang hakbang nito para sa karagdagang impormasyon sa lohika sa likod nito). Tandaan na mayroon ding isang debug node doon (tinatawag na Humiling ng Kahilingan) na nag-log sa lahat ng mga kahilingan na dumarating, kaya maaari naming mahuli ang anumang problema sa gilid ng bakod ng Integromat.

Pinangangalagaan ng daloy ng sangkap na lohika ang pag-update ng pandaigdigang tindahan ng konteksto sa estado ng bawat activator / sensor, kaya maaari kaming magpasya kung anong (kung mayroon man) impormasyon na kailangan naming ipadala sa aming push notification. Tandaan na mayroong dalawang magkakaibang pagkakaiba-iba ng mga daloy na ito:

Mga Daloy ng Activator (Switch Press / Door / Smart Outlet) - Ito ang mga daloy na kailangang i-update ang dasboard pagkatapos na ang isang switch ay na-flip sa dashboard + na nagpapalitaw ng ilang aktibidad sa totoong mundo. Partikular, pareho silang naghihintay para sa isang aksyon na maganap sa dashboard (sa mga switch node), pagkatapos ay i-flip ang estado sa loob ng mga node ng function ng Logic ng Estado, at ina-update ang dashboard ayon sa flip switch (i-on / i-off ang LED sa Mga LED node ng estado, at palitan ang teksto sa mga node ng tagapagpahiwatig ng Estado). Bilang karagdagan, pagkatapos na mapalitan ang switch isang mensahe ng MQTT ay ipinadala sa mga kontrol ng WeMos na kumokontrol sa mga activator (gamit ang mga MQTT-out Activator node) upang lumikha ng isang aksyon sa pisikal na mundo (ie buksan / isara ang isang pinto o pumatay / paganahin ang Smart Palabas).

Mga Sensor Flow (Light / Window / Space Heater) - Ito ang mga daloy na kailangang i-update ang dashboard pagkatapos ng isang mensahe ng sensor na dumating sa MQTT. Partikular, pareho silang naghihintay para sa isang mensahe ng MQTT na dumating (gamit ang MQTT-in Sensor node), pagkatapos ay i-parse ang impormasyon at i-flip ang estado sa loob ng mga node ng pagpapaandar ng Logic ng Estado. Pagkatapos nito, ina-update nila ang dashboard alinsunod sa papasok na mensahe (i-on / i-off ang LED sa mga node ng LED ng Estado, at baguhin ang teksto sa mga node ng tagapagpahiwatig ng Estado).

Kita ang mga injector node na nakakabit sa bawat bahagi? Pinangangalagaan ng mga ito ang pagbibigay ng mga default na default para sa dasboard kapag ito ay naikot sa unang pagkakataon, upang matiyak na walang nakakatawang negosyo ang nangyayari sa unang pagkarga.

Tandaan: Ang Node-RED ay may dalawang "mode": canvas at UI. Ang Canvas ay kung saan mo nilikha at mai-edit ang mga node (nasa https://127.0.0.1:1880 o https://Your_NGROK_ID.ngrok.io) at ang UI ay kung saan mo nakikita ang iyong mga dashboard (nasa https://127.0.0.1: 1880 / ui o

Hakbang 4: Integromat

Integromat
Integromat
Integromat
Integromat
Integromat
Integromat

Pag-sign-Up

Ang Integromat, inilarawan sa sarili bilang "Kola ng Internet", ay isang serbisyo na nag-uugnay sa iba't ibang mga piraso ng software nang magkasama sa mga kagiliw-giliw na paraan. Sa aming kaso, ginagamit namin ang Android app na ito upang suriin kung nag-disconnect ka mula sa WiFi ng iyong bahay, pagkatapos ay mag-trigger ng isang kahilingan sa HTTP sa aming Node-Red Server. Ang kahilingang ito ay mag-uudyok sa buong daloy na nakalarawan sa nakaraang hakbang.

  1. Mag-sign up para sa isang Integromat account dito.
  2. Mag-download ng Android app mula rito.
  3. Sa Integromat web console (dapat mo itong makita kapag nag-sign up ka sa Integromat), buksan ang tab na Mga Device sa kaliwang bahagi, sa gitna.
  4. Idagdag ang iyong aparato sa pamamagitan ng pag-click sa "Magdagdag ng isang aparato" sa kaliwang tuktok at pagsunod sa mga ipinakitang hakbang.
  5. Matapos mong matapos ang pahintulutan ang app gamit ang web console, buksan ito at pumunta sa mga setting sa kanang ibaba.
  6. I-click ang WiFi, at pagkatapos ay lagyan ng tsek (sa ilalim ng Mga Kaganapan) ang kahon para sa naka-disconnect na kaganapan sa WiFi. Papayagan nitong makita ang app kapag ang iyong telepono ay naka-disconnect mula sa isang WiFi network.

Lumilikha ng Aming Scenario

Ang mga daloy ng pagkilos sa Integromat ay tinatawag na Scenarios. Lilikha kami ng isang senaryo na naghihintay para sa anumang koneksyon sa WiFi na magdiskonekta, pagkatapos ay i-filter lamang ang mga tumutugma sa WiFi network ng aming bahay.

  1. Tingnan ang imahe sa itaas para sa paglalarawan ng Scenario.
  2. Lumikha ng bawat isa sa mga node ("mga bula") sa pamamagitan ng pag-click sa ilalim ng pag-sign na "+" malapit sa Mga Paborito, at pagdaragdag ng tatlong kinakailangang mga node - Android (WiFi Disconnection), JSON (Lumikha JSON) at HTTP (Gumawa ng isang Kahilingan).
  3. Ikonekta ang node ng Android sa node ng JSON, at ang node ng JSON sa node ng
  4. I-configure ang filter sa pagitan ng mga Android at ng JSON node ayon sa imahe sa itaas.
  5. I-configure ang bawat node ayon sa mga imahe sa itaas. Tandaan ang paggamit ng ngrok URL na nilikha sa nakaraang hakbang para sa HTTP node. Kung ang iyong ngrok URL ay https://ac72hs.ngrok.io, kung gayon ang iyong ngrok id ay ac72hs.

Hakbang 5: Mosquitto

Mosquitto
Mosquitto

Dahil ang Node-RED ay walang sariling MQTT broker, at kakailanganin naming makipag-usap sa aming mga sensor at activator sa MQTT, gagamit kami ng isang nakatuong MQTT broker. Dahil inirerekumenda ng Node-RED si Mosquitto, ito ang gagamitin namin. Tingnan dito para sa ilang impormasyon tungkol sa MQTT at kung bakit ito madalas na ginagamit sa proyekto ng IoT.

Pag-install at Pag-configure

  1. Mag-download ng Mosquitto mula rito at i-install ito, lahat ayon sa iyong operating system.
  2. Karaniwan, kailangan mong sundin ang mga tagubilin dito upang ikonekta ang Node-RED sa Mosquitto. Gayunpaman, kung ginamit mo ang aming daloy, naka-pre-configure na ito para sa iyo. Hangga't na-install mo nang maayos ang daloy at Mosquitrro, at tumatakbo ang Mosquitto sa port 1883 (kung saan ito tumatakbo bilang default), dapat itong gumana sa kahon.
  3. Tandaan na nangangahulugan ito na ang MQTT broker at ang iyong Node-RED server ay tumatakbo sa parehong machine. Kapaki-pakinabang ito para sa pagpapagaan ng komunikasyon sa loob ng system. Tingnan ang tala sa ibaba para sa karagdagang impormasyon.

Tandaan tungkol sa lokal na networking

Upang gumana nang maayos ang iyong mga aparato sa Node-RED, kailangan mo silang magkaroon ng access sa broker. Habang maaari naming tukuyin ang isang proxy at gamitin iyon upang makipag-usap sa Mosquitto, sa masugid na mga komplikasyon iminumungkahi namin ang isang simpleng solusyon: siguraduhin na ang iyong computer (pagpapatakbo ng Node-RED at Mosquitto) at ang iyong mga board ng ESP8266 ay konektado sa parehong WiFi. Sa ganoong paraan ang iyong mga aparato ay maaaring makipag-ugnay nang direkta sa iyong broker, nang walang anumang middleman.

Maaaring tanungin ng isa kung bakit hindi gumamit ng ngrok para dito, sa parehong paraan na ginagamit namin ito para sa pag-browse sa dashboard mula sa isa pang aparato. Ang simpleng sagot ay maaari mong - ngunit ang ngrok ay limitado (sa libreng bersyon) sa isang lagusan mula sa bawat gumagamit. Nangangahulugan ito na maaari mo lamang buksan ang isang port sa labas ng mundo, na sa aming kaso ay ginagamit para sa paglalantad ng Node-RED. Kaya, sa halip, gumagamit kami ng lokal na networking upang i-bypass ito.

Nangangahulugan ito na sa bawat sketch kailangan mong baguhin ang IP address ng broker upang magkasya ang IP address ng iyong computer sa lokal na network. Maaaring ma-access ang address na ito sa pamamagitan ng pagpapatakbo ng ipconfig (sa Windows) at ifconfig (sa Mac / Linux) at hinahanap ang nauugnay na interface ng WiFi. Dapat itong nakalista sa ilalim ng inet address.

Gayunpaman, maaari mo pa ring harapin ang ilang mga problema sa MQTT. Dahil dito, kapaki-pakinabang upang subaybayan ang lahat ng papasok at papasok na trapiko ng MQTT.

Pagsubaybay sa trapiko ng MQTT

Habang ang Mosquitto ay nagbibigay ng pagpapaandar na ito sa labas ng kahon gamit ang mosuitto_sub, para sa mas maraming mga taong nakatuon sa GUI doon ang isang kliyente na may isang graphic na interface ay maaaring mas madaling gamitin. Ang MQTTfx ay isang mahusay na tool na ginamit namin ng malawak sa buong gawain sa proyektong ito, at inirerekumenda namin ito mula sa ilalim ng aming mga puso. Salamat Jens Deters para sa kahanga-hangang tool na ito!

Hakbang 6: Pushbullet

Pushbullet
Pushbullet
Pushbullet
Pushbullet

Ang Pushbullet ay isang serbisyo ng push notification. Pinapayagan kang mag-subscribe ng iyong aparato sa serbisyo, at pagkatapos ay itulak ang mga notification dito batay sa ilang posibleng pagsasama. Gagamitin namin ito upang abisuhan ang aming aparato kapag ang isa sa mga bagay sa bahay ay naiwan o bukas, at magdagdag ng isang link sa dashboard upang maaari naming isara o patayin ang mga bagay na nakalimutan naming alagaan bago umalis sa bahay.

Pag-sign Up at Pag-configure

  1. Mag-sign up para sa isang Pushbullet account dito gamit ang iyong Google account.
  2. I-download ang Pushbullet Android app mula dito.
  3. Matapos mag-log in sa Pusbullet, mag-click dito at idagdag ang iyong aparato gamit ang pindutan sa kaliwa.
  4. Pagkatapos ay pumunta dito at piliin ang Lumikha ng Access Token. Itala ang token na ito, kakailanganin namin ito sa susunod na hakbang.
  5. Pumunta sa Node-RED, at i-click ang Send Push Notification node.
  6. Sa sidebar (tingnan ang larawan) piliin ang "PushBullet Config", at pagkatapos ang icon ng lapis.
  7. Idagdag ang Access Token mula sa hakbang 4 sa patlang na "API Key".
  8. Dapat mo na ngayong makakuha ng mga push notification sa iyong telepono.

Hakbang 7: Arduino IDE

Arduino IDE
Arduino IDE

Gumagamit kami ng mga board na ESP8266 sa tutorial na ito upang makontrol ang iba't ibang mga hardware na ginagamit namin. Upang mai-upload ang aming software sa mga board, kailangan naming i-flash ang mga ito gamit ang isang USB cable. Napakadali ng proseso: Ikonekta mo ang board sa iyong computer, at pagkatapos ay pindutin ang isang pindutan. Gayunpaman, upang makarating doon, kakailanganin naming gumawa ng paunang pag-set up.

Pag-install at Pag-configure

  1. Sundin ang gabay dito upang mai-install ang Arduino IDE.
  2. Sundin ang gabay dito upang mai-install ang nauugnay na "mga driver" para sa mga board ng ESP8266 sa iyong Arduino IDE.
  3. Tiyaking gumagamit ka ng tamang USB cable (hindi isang power one, isang data) kapag ina-upload ang mga sketch (ang.ino file) sa iyong mga board.

Pag-upload ng mga sketch sa board

Sa mga susunod na hakbang - na haharapin ang pagkonekta sa hardware sa aming umiiral na interface ng software - sasabihin lamang namin na "i-upload ang sketch sa board". Upang mapanatili ang bawat isa sa mga sumusunod na hakbang na higit pa tungkol sa hardware at mas kaunti tungkol sa software, ididetalye namin ang daloy ng pag-upload ng isang beses dito:

  1. Ikonekta ang board sa iyong computer gamit ang USB cable.
  2. Buksan ang Arudiono IDE.
  3. Buksan ang sketch na na-download mo para sa nauugnay na hakbang.
  4. Sa Menu na "Mga Tool", piliin ang nauugnay na board sa ilalim ng pagpipiliang "Lupon".
  5. Sa parehong menu, siguraduhin na ang pagpipilian na "Port" ay pipili ng port kung saan nakakonekta ang iyong board. dapat gawin ito bilang default, ngunit kung hindi lamang tiyakin na ginagawa nito. Kung hindi ka sigurado kung alin ang port sa iyong computer, tingnan ang susunod na hakbang.
  6. I-upload ang sketch sa board sa pamamagitan ng pag-click sa arrow button sa kanang tuktok ng screen (sa tabi mismo ng icon ng checkmark). Susubukan at susubukan nitong i-upload ang sketch sa board.
  7. Kung nabigo ang sumusunod na hakbang, subukang pumili ng isa pang port o ibang board sa menu ng mga tool.
  8. Kung natigil ka pa rin, subukang tingnan ang sagot na Quora na ito para sa mga follow-up na hakbang.

Hakbang 8: Ang Dashboard

Ang Dashboard
Ang Dashboard

Ipinapakita ng imahe sa itaas kung paano magiging hitsura ang panghuli na dashboard. Tandaan ang mga switch? Aktibo nila ang iba't ibang mga piraso ng hardware na mai-set up namin sa mga susunod na hakbang. Ang mga LED ay mga tagapagpahiwatig ng katayuan na nagbabago kapag ang isang sensor ay nakakita ng ilang uri ng pagbabago, pati na rin kapag binabaliktad natin ang mga switch.

Hakbang 9: Light Sensor

Light Sensor
Light Sensor
Light Sensor
Light Sensor
Light Sensor
Light Sensor

Ang light sensor na ito ay magbibigay-daan sa iyo upang sabihin kung naiwan mo ang ilaw na naka-on o naka-off sa isa sa mga silid sa iyong bahay. Kapag maayos na nakapaloob sa isang kahon at inilagay malapit sa ilaw, maaari itong hindi mas malaki sa dalawang mga matchbox na natigil.

Assmebly + Configuration

  1. Wire ang circuit alinsunod sa kasama na iskematong Fritzing.
  2. Buksan ang sketch, at baguhin ang mga sumusunod na variable:

    • mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
    • ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
    • password - Ang password ng nasabing WiFi network
  3. I-upload ang kasama na sketch sa iyong board.
  4. Subukan ito sa dashboard!

Dashboard Tingnan ang LED na tab na "Banayad" - isasaad nito kung ang ilaw ay nakabukas o patayin.

Hakbang 10: Smart Outlet Activator

Activator ng Smart Outlet
Activator ng Smart Outlet
Activator ng Smart Outlet
Activator ng Smart Outlet
Activator ng Smart Outlet
Activator ng Smart Outlet

Ang Smart Outlet ay tumatagal ng isang regular na strip ng kuryente (na may disenteng haba ng extension cord) at binago ito sa isang Smart Object - samakatuwid, ang isang relay na pinagana ng WiFi ay nangangalaga sa paglipat nito at pag-click sa pag-click ng isang pindutan mula sa Node-RED dashboard. Sa ganoong paraan, kung nakalimutan mong patayin ang isang bagay na naka-plug sa outlet, magagawa mong i-off ito nang manu-mano!

Assembly + Configuration

  1. Gupitin ang kurdon ng kuryente sa gitna, at i-strip ang mga wire.
  2. Ipasok ang mga hubad na wire sa terminal ng turnilyo alinsunod sa Fritzing Schematic.
  3. Buksan ang sketch, at baguhin ang mga sumusunod na variable:
  4. mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
  5. ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
  6. password - Ang password ng nasabing WiFi network
  7. I-upload ang sketch sa board.
  8. Ikonekta ang board ng relay sa board.
  9. Ipunin ang circuit ayon sa Fritzing schema.
  10. Subukan ito sa dashboard!

Mga puntos ng bonus - Casing

  1. Kung maaari, i-cut ng laser ang pambalot gamit ang naka-attach na imahe ng SmartOutletCasing. Kung mababa sa mga cutter ng laser, kumuha ng isang karton na kahon, i-paste ang imahe sa isang gilid nito, at gupitin ang mga piraso.
  2. Gupitin ang dalawang butas sa gilid ng kahon, at i-slide sa power strip tulad ng nakakabit na imahe.
  3. Itali ang mga dulo ng guhit sa loob ng kahon, upang matiyak na ang circuit ay hindi huhugot sa mga butas.

Dashboard

Tingnan ang LED na tab na "Smart Outlet" - isasaad nito kung naka-on o naka-off ang Smart Outlet. Bilang karagdagan, i-flick ang switch sa at off para masaya at kita!

Hakbang 11: Activator ng Pinto

Activator ng Pinto
Activator ng Pinto
Activator ng Pinto
Activator ng Pinto
Activator ng Pinto
Activator ng Pinto

Ang magandang mekanismong ito ay nag-ikot ng isang susi nang pabalik-balik, na nagbibigay-daan sa amin upang i-lock at i-unlock ang isang pinto. Partikular, kung naiwan mo ang iyong pinto na naka-unlock kapag iniwan mo ang iyong bahay, maaari mo itong i-lock nang malayuan!:)

Assembly + Configuration

  1. Buksan ang sketch, at baguhin ang mga sumusunod na variable:
  2. mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
  3. ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
  4. password - Ang password ng nasabing WiFi network
  5. I-upload ang sketch sa board na ESP8266.
  6. Ipunin ang circuit ayon sa eskematiko. Tandaan na gumamit kami ng isang panlabas na mapagkukunan ng kuryente upang makontrol ang (medyo malakas) DC motor. Kinakailangan nito ang isang L298-N HBridge at ang panlabas na mapagkukunan ng kuryente. Hindi kami nangangailangan ng anumang paghihinang dahil ang parehong babaeng jack jack at ang HBridge ay may magagandang mga terminal ng tornilyo na maaari naming magamit - hinubaran namin ang isang dulo ng ilang mga jumper cables alang-alang sa mga koneksyon na iyon. Nawa’y makapahinga na sila sa kapayapaan.
  7. Subukan ito sa dashboard!

Mga Puntong Bonus - Casing

Gumamit kami ng isang mayroon nang disenyo ni Jack Lew. Kung mayroon kang access sa isang 3D printer, ito ay isang kahanga-hangang kaso maaari kang dumikit sa iyong pintuan at i-fasten gamit ang mga bolt o hot-glue.

Dashboard Tingnan ang LED na tab na "Door" - isasaad nito kung bukas o sarado ang pinto. Bilang karagdagan, i-flick ang switch sa at off para masaya at kita!

Hakbang 12: Window Sensor

Window Sensor
Window Sensor
Window Sensor
Window Sensor
Window Sensor
Window Sensor

Huwag hayaang makalabas ang pusa! Gumagamit ang sensor na ito ng Reed Relay upang suriin kung ang isang window ay bukas o sarado. Tandaan na pumili kami ng isang window para lamang sa halimbawa - maaari itong magamit para sa maraming iba pang mga bagay, kabilang ang pag-check kung bukas ang isang pinto o hindi, kabilang ang mga pintuan ng bahay, silid at palamigan.

Assembly at Configuration

  1. Ipunin ang circuit ayon sa Fritzing skematik sa itaas.
  2. Buksan ang sketch, at baguhin ang mga sumusunod na variable:
  3. mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
  4. ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
  5. password - Ang password ng nasabing WiFi network
  6. I-upload ang iyong sketch sa board.
  7. Ikabit ang isang bahagi ng Reed Relay sa window sill, at isa pa sa bintana mismo (o anumang pagbubukas ay nagpasya kang ilakip ang sensor).
  8. Subukan sa dashboard!

Dashboard

Tingnan ang LED na tab na "Window" - isasaad nito kung ang window ay bukas o sarado.

Hakbang 13: Sensor ng Space Heater

Space Heater Sensor
Space Heater Sensor
Space Heater Sensor
Space Heater Sensor
Space Sensor ng Heater
Space Sensor ng Heater

Ang pag-iwan ng isang pampainit sa espasyo ay isang garantisadong peligro sa sunog! Manatiling ligtas at subaybayan ang iyong pampainit ng espasyo mula sa malayo, gamit ang circuit na ito. Partikular, ang sensor ng init sa circuit ay sumusubaybay sa init sa isang matagal na tagal ng panahon - hard-coded hanggang 5 minuto para sa isang malubhang default - at umuusok pa rin pagkatapos ng tagal ng panahon, i-flip ang LED sa dashboard. Ginagawa ito upang maiwasan ang pagwawaldas ng init (tulad ng pagkatapos mong patayin ang pampainit ng espasyo) mula sa pag-on nang hindi sinasadya ang LED.

Assembly at Configuration

  1. Ipunin ang circuit ayon sa nakalakip na eskematiko ng Fritzing.
  2. Buksan ang sketch, at baguhin ang mga sumusunod na variable:
  3. mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
  4. ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
  5. password - Ang password ng nasabing WiFi network
  6. I-upload ang naka-attach na sketch sa iyong board.
  7. Ilagay malapit sa isang pampainit ng espasyo, maghintay ng 5 minuto at suriin ang dashboard!

Dashboard

Tingnan ang LED na tab na "Space Heater" - isasaad nito kung naka-on o naka-off ang space heater.

Hakbang 14: Lumipat ng Press Activator

Lumipat sa Press Activator
Lumipat sa Press Activator
Lumipat sa Press Activator
Lumipat sa Press Activator

Ito ay isang napaka-simpleng Servo engine na maaaring i-flip o i-off ang isang pisikal na switch (isang ilaw switch, isang switch ng boiler ng tubig, isang switch ng power strip atbp.). Kung naiwan mo ang isa sa mga item na kontrolado ng switch sa iyong bahay - halimbawa ng isang ilaw o isang water boiler - maaari mo itong i-off nang malayuan.

Assembly at Configuration

  1. Buksan ang sketch, at baguhin ang mga sumusunod na variable:
  2. mqtt_server - Lokal na IP address ng iyong computer (bilang pagpapatakbo nito ng Mosquitto, ang MQTT broker)
  3. ssid - Ang pangalan ng WiFi network na nakakonekta ang iyong computer, at nais mong maiugnay ang iyong board
  4. password - Ang password ng nasabing WiFi network
  5. I-upload ang sketch sa iyong board.
  6. Ipunin ang circuit ayon sa Fritzing skema.
  7. Ikabit ang Servo sa nauugnay na switch gamit ang hotglue o isang tamang casing na ginawa mo mismo. Magpadala sa amin ng isang larawan kung gumawa ka ng isa!
  8. Subukan ang dashboard!

Dashboard

Tingnan ang LED na tab na "Switch Press" - isasaad nito kung ang switch ng switch ay naka-on o naka-off. Bilang karagdagan, i-flick ang switch sa at off para masaya at kita!

Inirerekumendang: