Makapangyarihang Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red: 9 Mga Hakbang (na may Mga Larawan)
Makapangyarihang Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red: 9 Mga Hakbang (na may Mga Larawan)

Video: Makapangyarihang Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red: 9 Mga Hakbang (na may Mga Larawan)

Video: Makapangyarihang Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red: 9 Mga Hakbang (na may Mga Larawan)
Video: Tech Treasures: How to Score Big with Used Servers! 2025, Enero
Anonim
Napakahusay na Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red
Napakahusay na Standalone Home Automation System - Pi, Sonoff, ESP8266 at Node-Red

Ang gabay na ito ay dapat magdala sa iyo sa unang batayan kung saan maaari kang magpalit ng ilaw o isang kagamitan sa pamamagitan ng anumang aparato na maaaring kumonekta sa iyong lokal na network, at may mahusay na napapasadyang web interface. Malawak ang saklaw para sa mga tampok na extension / pagdaragdag, kabilang ang pagpapadala ng mga email, mga mensahe sa kaba, mga sensor sa pagbabasa (hal. Temperatura). Madali kang magtakda ng mga panuntunan hal. - kung ang temperatura ay mas mababa sa 15C ng 11pm i-on ang electric blanket sa loob ng 30 min. Gumagamit ang system ng MQTT protocol na may TCP na higit na maaasahan kaysa sa UDP - na nakakagulat na ginamit ng ilang mga komersyal na aparato sa pag-automate ng bahay. Kapag ang pagsusumikap sa pag-set up ng system, na inilarawan dito, ay tapos na ang saya ay maaaring magsimula. Nagbibigay ang Node Red ng isang kamangha-manghang interface ng gumagamit na madaling maunawaan, mabilis at madaling i-set up, at nagbibigay ng kamangha-manghang kakayahan.

Ang kinalabasan ay isang malakas na sistema ng automation ng bahay na ganap na nasa ilalim ng sariling kontrol at ganap na nasa isang lokal na network. Marami sa mga system na ipinakita sa Mga Instructable ay gumagana sa cloud based server at samakatuwid ay isang peligro sa seguridad at maaaring mangailangan ng subscription. Mas madaling i-set up ang mga ito ngunit may mas mataas na peligro sa seguridad at potensyal na mas mataas ang gastos. Dapat kong idagdag na maaaring mag-set up ang isang VPN (virtual pribadong network) sa Pi upang paganahin ang ligtas na koneksyon sa home network / system kung ang pag-access mula sa labas ay magiging kapaki-pakinabang (Google Pi OpenVPN para sa mga tagubilin).

Ang sistemang ito ay nangangailangan ng muling pagprogram ng mga aparato ng Sonoff na may isang mahusay na open source system na tinatawag na Sonoff-Tasmoda. Maaari itong magawa gamit ang isang espesyal na pag-setup ng Arduino at isang USB sa serial converter. Gumagamit ang mga aparato ng Sonoff ng ESP8266 Wi-Fi chip upang maaari mo ring gawin ang iyong sariling mga aparato gamit ang mga module ng ESP8266 o magkasya ang mga ito sa iba pang mga item upang maihatid ang wireless na pagkakakonekta.

Ang pinakamalaking gawain ay ang pagse-set up ng isang Raspberry Pi bilang hub. Pinapatakbo nito ang MQTT broker (o server) na namamahala sa komunikasyon sa mga nakakonektang aparato. Nagpapatakbo din ang Pi ng isang sistema na tinatawag na Node-Red na maaaring maharang ang mga mensahe at data at mga output na utos - tulad ng kung kailan i-on ang electric blanket. Nagbibigay din ang Node-Red ng isang interface upang maihatid ang webpage na maaari kang mag-log on sa pamamagitan ng smartphone / tablet / PC / Laptop, upang makita kung ano ang nangyayari at paganahin ang manu-manong paglipat ng mga ilaw at iba pa.

Ang aking hangarin sa itinuturo na ito ay upang bigyan ang bawat hakbang sa sapat na detalye na ang isang baguhan ay maaaring gumana ang system.

Ang mga hakbang ay:

  • Mag-load ng Pi gamit ang Rasbian Stretch
  • I-update at magdagdag ng mga tampok sa Node-Red
  • I-install ang Mosquitto MQTT broker
  • I-set up ang Arduino na kapaligiran para sa pag-upload ng Sonoff-Tasmota firmware
  • Muling i-program ang isang switch ng Sonoff
  • I-set up ang interface ng Node-Red
  • Subukan itong lahat gumagana.

Hardware na kakailanganin mo:

  • Raspberry Pi at power supply (at keyboard at monitor para sa paunang pag-set up) (ginamit ang modelo B dito)
  • Sonoff Switch
  • USB Serial converter
  • Opsyonal - ESP development board tulad ng NodeMCU.

Ang aking karanasan sa Raspberry Pi ay ang pagse-set up ng anumang bagay na tila nagsasangkot ng higit na sakit kaysa sa maaaring maiisip na posible sa mga bagay na hindi gumagana o ma-stuck sa ilang walang gaanong hakbang kung saan ang paliwanag ay maaaring maging mas mahusay. Ang mga forum ay hindi laging nakakakuha ng payo na gumagana! Natagpuan ko ang maraming mga ruta na simpleng hindi gumana para sa isang kadahilanan o iba pa. Ang gastos na ito ay 3 araw! Pagkatapos ay pinunasan ko ang lahat at nagsimula ulit at nakumpleto sa mas mababa sa isang (mahabang) araw. Gayunpaman ginamit nito ang mas nakatatandang Raspian Jessie. Pagkatapos nito ay nakakita ako ng isang paraan upang magamit ang kasalukuyan at kamakailang inilabas na bersyon (Stretch) at ginawa ulit ang lahat. Nagbibigay-daan ang gabay na ito ng kopya at pag-paste ng mga tagubilin sa Pi. Kaya dapat kang gawin sa loob ng ilang oras. Gayunpaman, inaasahan kong mapapabilis ka nito sa pag-aaral ng curve at may mas kaunting sakit. Maniwala ka sa akin sulit ito para sa huling resulta.

Hakbang 1: Mag-load ng isang Pi Sa Rasbian Stretch

Ito ay dapat na medyo prangka. Magsimula sa isang 8Gb o 16Gb SD card. I-download ang pinakabagong bersyon mula sa:

www.raspberrypi.org/downloads/

Ipinapalagay ng pangunahing thread dito na ang buong bersyon ay na-load. Gayunpaman maaari mong gamitin ang lite bersyon upang makatipid ng puwang. Kung gumagamit ng Raspbian Stretch Lite magpatuloy sa hakbang na ito at pagkatapos ay pumunta sa Hakbang 9 sa dulo.

Ang pag-unzip ng na-download na file ay nagbibigay ng isang folder na may.img file. Inirerekumenda ang 7Zip para sa Windows (at The Unarchiver Mac). Ang imahe ay kailangang sunugin sa SD card - ngunit ang isang espesyal na programa ay kailangang gamitin dahil ang file system ay hindi tugma sa Windows. Ang inirekumendang software ay tinatawag na Etcher at maaaring ma-download mula sa:

etcher.io/

Ang mga tagubilin para kay Etcher ay nasa kanilang website at maaaring maging mas simple. Piliin ang imahe at ang drive at i-click ang Flash.

Ngayon sa aming flashing SD card na may maaaring tumakbo ang Pi.

Kung alam mo ang IP address na ginagamit ng iyong Pi o nasisiyahan kang mahanap ito sa pamamagitan ng pag-log on sa iyong router kung gayon maiiwasan mo ang pangangailangan para sa keyboard at subaybayan at gamitin agad ang SSH. Magdagdag lamang ng isang blangko na file na pinangalanang SSH sa SD card, ipasok, kumonekta sa Ethernet at i-power up. Kung hindi man sundin ang gabay sa ibaba.

Ikonekta ang Pi sa internet, screen, mouse at keyboard at kumonekta sa lakas. Ang unang bagay na gagawin namin ay paganahin ang SSH upang magawa namin ang karamihan ng pag-setup mula sa ginhawa sa isang PC. Maaari itong siyempre gawin nang direkta ngunit nakakatulong ito upang masundan ang gabay na ito sa parehong aparato bilang isang pagmamaneho ng Pi at gumamit ng kopya at i-paste para sa karamihan ng mga tagubilin. Gayundin sa aking kaso ang aking PC workstation ay maganda at komportable ngunit hindi sapat na malaki para sa isang pi din.

Mayroong isang gabay para sa mahusay na pakikitungo sa trabaho sa isang video sa YouTube. Dito ako nagsimula. Maaari mong patakbuhin ang video kasabay ng pagsunod sa mga tagubiling ito. Gayunpaman kapag tumatakbo ulit ako sa proseso habang sinusulat ito nahanap ko na mas madaling sundin lamang ang mga tagubilin dito. Mayroong ilang mga makabuluhang paglihis. Mayroon ding ilang mga seksyon kung saan pinayuhan ko ang pagsunod sa video sa halip na ilista ang mga hakbang dito. Gayunpaman inirerekumenda ko ang pagtingin dito upang makakuha ng pag-unawa sa MQTT, Node-Red at ang malawak na proseso ng pag-setup. Ang video ay 38 minuto ang haba kaya't gawing komportable ang iyong sarili. Nagsisimula ang video sa pagpapakita kung ano ang maaaring gawin ng Node Red, at pagkatapos ay saklaw ang pag-install at pag-set up ng Pi, na sinusundan ng pag-upgrade ng Node Red at panghuli na pag-install ng Mosquitto. Mga pangunahing oras kung sakaling nais mong bumalik sa isang seksyon:

00:00 Panimula sa Video

03:00 Node Red demonstration

14:14 Pag-import ng mga item ng dashboard sa Node Red

21:05 Pi paunang pag-set up, kasama ang SSH

23:35 Pag-install ng Node Red na sumusuporta sa code

27:00 Panimula sa MQTT

29:12 Pag-install ng Mosquitto (MQTT) (Gumagana lang para sa Raspian Jessie)

33:00 Mga halimbawa ng Node Red

Ililista ko ang mga utos sa naka-bold na italic (sa halip na gamitin ang ""). Hindi pinapansin ang pag-format na ito kapag kinopya mo at na-paste ang mga ito sa Pi.

Ang pagpapakilala sa Node Red ay magbibigay sa iyo ng isang ideya kung ano ang maaaring gawin ng system at magbigay ng isang larawan kung saan tayo magtatapos.

Ang video sa YouTube ay nasa:

Sundin ang pamamaraan ng pag-install mula 21:05 hanggang 23:35. Tandaan na ang default na pag-login ay gumagamit: pi at password: raspberry. Bago muling simulan hanapin ang IP address ng pi. Alinman sa pag-click sa icon na 'pataas + pababang arrow' sa tuktok na bar ng desktop o ipasok ang sumusunod na tagubilin sa terminal / terminal window:

sudo ifconfig address

Pagkatapos tandaan ang IP address pagkatapos ng: inet addr:. Magagawa ito sa form na 192.168.x.y

Tandaan ang address na ito at muling simulan (ipasok: sudo shutdown –r ngayon)

Ang susi sa puntong ito ay pinagana ang SSH at maaaring mag-set up ang isang link sa Pi mula sa isang PC (kasama sa Mac at Linux ang mga interface ng SSH). Ang isang mahusay na programa upang gawin ito ay isang libreng pag-download na tinatawag na PuTTY na maaari ring magamit bilang isang serial interface at maaaring gawin ang Telnet. Magagamit ang Putty mula sa:

www.chiark.greenend.org.uk/~sgtatham/putty…

Mag-download at mag-install ng PuTTY.

Ngayon, sa pag-restart ng Pi, simulan ang PuTTY at ipasok ang IP address na nabanggit nang mas maaga. Tingnan ang halimbawa sa ibaba:

Ngayon i-click ang Buksan

Pagkatapos ng Pag-login bilang: ipasok ang pi

Pagkatapos ipasok ang iyong password.

Sundin ang mga tagubilin dito at opsyonal na simulan ang video mula 23:35. Maaari mong sa karamihan ng mga kaso kopyahin at i-paste. I-highlight ang teksto at gamitin ang ctrl + C upang makopya. Pagkatapos ay mag-right click sa PuTTY upang i-paste. Minsan ang teksto ay hindi lilitaw kaagad kaya maghintay ng ilang segundo. Kung papasok ka nang dalawang beses gumamit ng backspace upang tanggalin ang pangalawang entry. Pindutin ang enter upang maipatupad ang bawat tagubilin.

sudo raspi-update

Nakuha ko ang isang utos na hindi natagpuan at hindi pinansin ito at ang sumusunod na shutdown / restart na tagubilin:

sudo shutdown -r ngayon

sudo apt-get -y update

sudo apt-get -y pag-upgrade

Tumatagal ito …..

sudo apt-get autoremove

sudo apt-get -y update

sudo shutdown -r ngayon

Sa puntong ito mayroon kaming load at na-update na operating system ng Pi, handa na para sa susunod na hakbang.

Hakbang 2: I-update at Magdagdag ng Mga Tampok sa Node-Red

Ang koneksyon sa PuTTY ay nawala sa pamamagitan ng pag-restart sa pagtatapos ng nakaraang hakbang. Kaya isara ang PuTTY at pagkatapos maghintay para sa Pi na mag-boot, Mag-log on muli tulad ng dati.

Lumipat ako sa isang mas simple at mas maaasahang pamamaraan upang mai-load ang Node-Red - sumusunod sa diskarte sa https://nodered.org/docs/hardware/raspberrypi. Gumagamit ito ng isang script at mai-install o ia-upgrade ang Node-Red - kaya't ang diskarte ay pareho na gumagana mula sa buong o lite na mga bersyon ng Raspbian Stretch. Kaya ipasok ang:

bash <(curl -sL

Ipasok ang Y kapag sinenyasan (dalawang beses). Naglo-load din ang script na ito ng mga file na kinakailangan upang paganahin ang autostart ng Node-Red.

Kaya sa puntong ito mayroon kaming naka-load at na-update na pi at kasama ang mga pag-update na kinakailangan para sa Node Red. Hindi masamang gawin ang isang restart bago ang susunod na yugto.

sudo shutdown -r ngayon

Hakbang 3: Pag-install ng Mosquitto MQTT

Kung hindi mo pa nagagawa kaya sulit na tingnan ang pagpapakilala ng video sa MQTT sa video mula 27:00.

Dito kailangan nating kumuha ng ibang landas. Ang pamamaraang nakabalangkas sa video ay gagana lamang para sa mas matandang bersyon ng Jessie ng Raspian. Mayroong isang talakayan sa site ng mosquitto ngunit walang malinaw na kinalabasan na ipinakita at samakatuwid ay mananatili sa isang mas simple at mas ligtas na ruta.

Kaya mag-log on gamit ang PuTTY at ipasok ang sumusunod:

sudo apt-get update

sudo apt-get install mosquitto mosquitto-kliyente

Y

sudo /etc/init.d/mosquitto huminto

sudo /etc/init.d/mosquitto magsimula

Humihinto ang huli na dalawang pagtuturo at simulan ang mosquitto at ipakita na ang aming MQTT broker ay gumagana.

Para sa isang mabilis na pagsubok buksan ang dalawa pang mga session ng PuTTY at mag-log on sa bawat isa.

Malalaman mo sa ngayon na gumagana ang MQTT sa pamamagitan ng aparato ang mga kinakailangang data na nag-subscribe sa isang 'paksa'. Magpadala ang broker ng anumang data na may parehong 'paksa'. Pagkatapos ang aparato na nais na magpadala ng data / tagubilin ay nai-publish ito sa broker gamit ang parehong 'paksa'.

Kaya sa isang session ng PuTTY ipasok:

mosquitto_sub -d -t hello / mundo

Ito ay isang tagubilin upang mag-subscribe sa paksa: hello / mundo.

Sa kabilang ipasok:

mosquitto_pub -d -t hello / world -m "Kamusta mula sa Terminal window 2!"

Ito ay isang panuto sa pag-publish na may parehong paksa na may isang mensahe. Ang teksto: "Kamusta mula sa Terminal window 2!" dapat na lumitaw ngayon sa ibang terminal.

Magaling na makarating sa malayo. Mayroon na kaming load at na-update na Pi na may mga update na kinakailangan para sa Node-Red at sa naka-install at nasubok na ang lamok na MQTT broker. Mula ngayon sa buhay ay magiging mas madali nang medyo masaya. Isara ang dalawang sesyon ng PuTTY na ginamit para sa pagsubok na MQTT.

Hakbang 4: Pag-set up ng Node Red Interface

Una kailangan naming simulan ang Node Red. Ipasok ang tagubilin:

node-red-pi --max-old-space-size = 256

Hintaying tumakbo ito at makita mo ang teksto na 'Nagsimulang daloy'.

Ngayon buksan ang isang browser, gumagamit ako ng Chrome, at ipasok ang pi IP address na nabanggit kanina na sinundan ng: 1880 ibig sabihin isang bagay tulad ng 192.168.0.8:1880

Dapat ay mayroon ka na ngayong pahina ng Node Red na programa bilang pagtingin sa ibaba:

Maaari mo nang sundin ang mga halimbawa ng Node Red na nagsisimula sa 33:00 o dumiretso sa isang maliit na karagdagang karagdagang pag-set up at paglo-load ng unang daloy na magpapakita ng link sa MQTT at maging handa upang himukin ang aming switch.

Ang kinakailangang karagdagang pag-setup ay upang idagdag ang mga item sa dashboard na nagbibigay-daan sa isang web interface.

Ipinapakita ito sa video sa 14:14.

Sundin ang mga tagubilin upang mai-load ang node-red-dashboard.

Ngayon ay maaari kaming magkaroon ng isang maliit na pag-play at ipakita ang pagtatrabaho ng MQTT at hinihimok ng Node-Red. Wala ito sa video ngunit susi sa proyektong ito. Maaari mong sundin ang aking mga tagubilin at / o i-import ang mga daloy mula sa nakalakip na file na NRtest1.txt.

Magdagdag muna ng isang input node na node at isang output mqtt node at i-link ang mga ito nang magkasama.

I-double click ang injection node (na sa una ay may label na timestamp). Sa seksyong Payload gamitin ang twiddly upang baguhin sa string at ipasok ang: Kumusta mula sa akin. Iwanan ang paksa nang blangko dahil maaari naming ipasok ito sa nQ ng MQTT. I-click ang Tapos na

Ngayon i-double click ang MQTT node. I-click ang icon na lapis sa kanan ng seksyon ng Server. Magbubukas ito ng isang bagong dayalogo. Ipasok ang: localhost sa seksyon ng Server. I-click ang Idagdag. Ngayon, bumalik sa I-edit ang mqtt out node, ipasok ang aming paksa sa seksyon ng Paksa: hello / mundo. Itakda ang QoS sa 1. I-click ang Tapos na. Ngayon i-click ang I-deploy. Dapat mong makita ang isang berdeng patak at 'konektado' sa ibaba ng mqtt node.

Magdagdag ngayon ng dalawa pang mga node - input mqtt at output debug, at ikonekta ang mga ito nang magkasama. Ngayon i-double click ang input mqtt node at ipasok ang hello / mundo sa seksyon ng paksa. Dapat ipakita na ng server ang localhost: 1883. Itakda ang QoS sa 1. I-click ang Tapos na. Pagkatapos i-click ang I-deploy at i-click ang tab ng pag-debug sa kanang pane ng kamay. Ngayon i-click ang grey square sa kaliwa ng 'Hello from me' injection node. Ipinapadala nito ang text payload sa MQTT broker na may paksang hello / mundo. Alam ng broker na ang mqtt input node ay nag-subscribe sa parehong paksa at sa gayon pasulong ang payload. Ang mqtt input node pagkatapos ay ipapadala ito sa tab ng pag-debug (RHS) at ang lilitaw na teksto na 'Kumusta mula sa akin'.

Nag-tick ito ng isa pang kahon dahil mayroon kaming Node Red na nakikipag-usap sa aming MQTT broker. Tandaan na ang Node Red ay isang kliyente lamang sa broker - tulad ng mga aparatong Sonoff na kumokonekta sa paglaon. Gayunpaman nagbibigay-daan ito sa sopistikadong pag-aautomat at nagbibigay ng isang mahusay na interface ng gumagamit.

Ngayon ay makakagawa kami ng isang maliit na maliliit na pagbabago at i-set up ang mga daloy para sa aming switch ng Sonoff.

Kaya't tanggalin ang input injection node (i-click upang i-highlight at pindutin ang tanggalin ang key). Magdagdag ngayon ng isang switch mula sa seksyon ng dashboard at ikonekta ito sa output ng mqtt. Double click switch. I-click ang lapis sa kanan ng Pangkat. Pumasok sa Pangalan: Liwanag. Pagkatapos i-click ang lapis sa kanan ng Tab at ipasok ang seksyon ng Pangalan: Lounge. I-click ang Idagdag / I-update at Idagdag / I-update muli. Ngayon, bumalik sa I-edit ang switch node, itakda ang naka-on at naka-off na Mga Payload. Gamitin ang twidlys upang pumili ng string at ipasok ang ON para sa On payload at OFF para sa OFF payload. I-click ang Tapos na

Pumunta ngayon sa bawat isa sa mga nq mode at baguhin ang Paksa sa cmnd / sonoff / POWER. Kung ang pagkopya at pag-paste, suriin na hindi ka nagsasama ng isang puwang sa dulo. Ito ay ibang paksa at hindi gagana sa Sonoff. Ang paghahanap ng isang ligaw na puwang ay maaaring tumagal ng isang oras o higit pa - maniwala ka sa akin! Pumunta rin ako sa dashboard> Tema at napili: Madilim. I-click ang I-deploy at piliin ang tab ng pag-debug.

Ngayon buksan ang isang bagong sesyon ng browser sa isang bagong window at sukatin ito tulad ng isang mobile phone sa session ng Node Red. Ipasok ang address: ang iyong Pi IP address: 1880 / ui / # / 0 ibig sabihin isang bagay tulad ng 192.168.0.8:1880/ui/#/0. Dapat mong makita ang isang screen na may Lounge at Light at switch. I-click ang switch on at pagkatapos ay off. Dapat ipakita ng window ng debug ang ON at OFF na mga kargamento. Ngayon kung nais mo ring mag-log sa pamamagitan ng isang mobile pati na rin. Tandaan na ang posisyon ng switch ay nasabay. Hindi mahalaga na ang aming Sonoff ay hindi pa nakakonekta. Kapag ito ay, sa pamamagitan ng pag-subscribe sa Paksa, kukunin nito ang mensahe / kargamento at kikilos dito.

Ang isang huling maliit na hakbang ay upang gawing awtomatikong magsimula ang Node Red pagkatapos ng Pi boots up.

Ang Node Red ay may isang gabay sa:

Gayunpaman ang mga file na kinakailangan ay na-load na kaya walang kinakailangang pag-install.

Upang paganahin ang Node-RED upang awtomatikong tumakbo sa bawat boot at sa mga pag-crash ay ipasok (buksan ang session ng PuTTY):

sudo systemctl paganahin ang nodered.service

Kung kailangan mong huwag paganahin ang pagpasok na ito:

sudo systemctl huwag paganahin ang nodered.service

Ngayon isara ang pi gamit ang sudo shutdown ngayon at alisin ang lakas.

Ngayon ay naka-lock at naka-load na ang aming Pi para sa aksyon. Mayroon kaming aming PC / mobile phone na kumokonekta sa Node Red at ito ay nakikipag-usap sa aming MQTT server. Ito ay isang mahabang paghakot at nagkakahalaga ng isang malaking tapik sa likod. Magaling Natagpuan ko ang susunod, Arduino bit, isang mahusay na deal madali!

Hakbang 5: Pag-set up ng Arduino System para sa Reprogramming na Mga Device ng Sonoff

Ang lahat ng impormasyon upang gawin ito ay nasa Sonoff-Tasmota GitHub. Ang nag-iisa lamang na bahagi na nahihirapan ako ay ang teksto ng Paksa - ngunit tuso kong pinasok ka na!

Pumunta sa

Mahahanap mo ang mga tagubilin sa pag-set up sa tab na Wiki sa seksyon ng Mga tool sa pag-upload:

Sa halip na dumaan sa bawat hakbang ay mapapansin ko lamang ang mga pangunahing aspeto na sa palagay ko ay mahalaga o natigil.

Ang mga tagubilin ay mabuti ngunit kailangan ng maingat na pansin sa detalye. Napunta ako sa pamamagitan ng pagkakaroon ng pangangailangan para sa isang folder na ESP8266 sa loob ng isang folder na nasa loob ng isa pang folder na pinangalanang ESP8266 at samakatuwid ay napalampas ang dalawang mga antas.

Sinunod ko ang rekomendasyon para sa isang buong hiwalay na pag-set up ng Arduino. Lumikha ako ng isang bagong folder na tinatawag na 'ArduinoSonoff' na hiwalay sa aking mayroon nang Arduino folder. Ang setup ay medyo advanced at samakatuwid ay pinapanatili itong hiwalay ay isang napakahusay na ideya. Kung ito ang iyong unang pag-set up ng Arduino tiyaking mai-install mo ito sa pangalawang pagkakataon sa isang 'Arduino' o iba pang folder para sa anumang iba pang gawaing Arduino, kabilang ang trabaho sa mga ESP8266.

I-download ang pinakabagong Arduino IDE mula sa https://www.arduino.cc/en/Main/Software. I-zip ang file sa iyong bagong folder.

Kasama sa mga tagubilin ang pag-download ng Sonoff-Tasmoda system mula sa https://github.com/arendst/Sonoff-Tasmota pangunahing pahina sa pamamagitan ng: I-clone o I-download> I-download ang ZIP. I-zip ang file sa iyong bagong folder.

Sundin nang mabuti ang mga tagubilin. Hindi ko nagawa ang Opsyonal: Maghanda para sa seksyon ng pag-upload ng OTA. Iiwan natin ito sa ibang araw.

Simulan ngayon ang Arduino IDE (i-double click ang arduino.exe). I-load ang Sonoff-Tasmota sketch sa pamamagitan ng File> Sketchbook> sonoff. Hindi na kailangang gumawa ng anumang mga pag-edit. Ang lahat ng mga setting ay tapos na sa pamamagitan ng isang serial na koneksyon pagkatapos na mai-load ang firmware. Ang mga ito ay nakaimbak sa EEPROM. Samakatuwid ang firmware ay maaaring ma-update at ang lahat ng mga setting ay mananatili. Ito ay medyo matalinong bagay. Gayunpaman maaari mong maiwasan ang pangangailangan para sa isang ilang mga hakbang dito sa pamamagitan ng pagpunta sa file ng config ng gumagamit at pagpasok ng iyong wifi SSID at password at MQTT_HOST (palitan ang 'domus1'– pangalawang sanggunian, sa iyong Pi IP address). Sa paglaon maaari mong ipasok ang isang MQTT gumagamit at password din. Bago mag-download suriin ang mga setting ng board sa ilalim ng Mga Tool. Kakailanganin nito ang isang pares ng mga pagbabago upang maitugma ang mga kinakailangang itinakda sa Wiki. Ngayon i-click ang compile (icon ng pag-tick). Dapat itong mag-ipon ng OK. Kung hindi o kung ang mga kinakailangang setting ng board ay hindi magagamit pagkatapos ay bumalik at suriin ang bawat hakbang ng pag-setup.

Hakbang 6: Ang muling pagprogram sa isang Sonoff Switch

Handa na kaming mag-download. Sa yugtong ito ang isa ay maaaring dumeretso at mag-flash ng isang switch ng Sonoff o ang unang maaaring mag-flash ng isang module na ESP8266. Ginawa ko ang huli, bahagyang dahil ang aking mga switch ay hindi pa dumating (kararating lang habang nai-type ko ito!) Ngunit pati na rin bilang pag-iingat habang ang pag-flashing ng switch ng Sonoff ay isang hakbang na hakbang dahil ang orihinal na firmware ay hindi magagamit ng publiko hanggang sa Alam ko. Mayroon akong isang pares ng mga board ng NodeMCU. Madali itong kumonekta, pagkakaroon ng kanilang on-board USB sa serial converter. Gayunpaman ang paraan ng pag-reset ng nodemcu ay hindi gumagana sa sistemang ito. Kaya't iwanan ang Mga Tool> I-reset ang Paraan na nakatakda sa "ck". Gawin ang normal na pag-setup ng manu-manong flash sa pamamagitan ng pagpindot sa pindutan ng Flash (GPIO 0 hanggang sa lupa) habang pinipindot at pinakawalan ang I-reset (I-reset sa lupa). Hindi ako sigurado kung mayroon itong timeout o baka hindi ko gaanong mababa ang GPIO 0 nang matagal ngunit kailangan ko ng maraming pagsubok, kasama na ang paggawa nito habang ang Arduino IDE ay nag-iipon!

Kung nais mong suriin ang mga tugon - ang output ng relay ay D6 sa mga board ng NodeMCU. Sa ESP12's ito ang GPIO 12. Ang LED output ay D7 (NodeMCU) o GPIO 13 (ESP12's).

Sonoff switch.

BABALA: Kailangan kong sabihin na "huwag kumonekta sa mga mains sa ilalim ng anumang mga pangyayari kung saan bukas ang enclosure". Tandaan na ang PCB (hindi bababa sa Sonoff Basic (in-line switch) ay may distansya lamang na 'solong paghihiwalay' sa pagitan ng mababang seksyon ng boltahe at ng mga mains. Kaya dapat tratuhin ng anumang bahagi ang Sonoff circuit bilang mains voltage. Ang Sonoff- Ipinapakita ng Tasmota GitHub na koneksyon ng isang sensor ng temperatura at halumigmig sa isang Sonoff S20. Hindi ko ito gagawin dahil sa mga alalahanin sa paghihiwalay. - kaya kung nais mong gawin ito kumuha ng isang module na ESP12 o NodeMCU at i-set up ito nang hiwalay sa isang tamang doble na nakahiwalay o earthed power supply.

Ang Sonoff S20 plug-in switch ay isang magandang punto ng pagsisimula dahil hindi ito nangangailangan ng anumang mga kable ng mains. Maaari itong buksan sa pamamagitan ng pag-alis ng isang tornilyo (sa ilalim ng security seal) at pagbukas ng prizing ang kaso. Ipinapakita ng larawan sa ibaba kung nasaan ang mga tag. Ang pagpisil sa kaso sa mga puntong ito ay makakatulong.

Serial converter ng USB

Ang aking paboritong converter ay ang bersyon ng FTDI. Gayunpaman wala itong sapat na kakayahan upang ibigay ang mga pangangailangan ng Sonoff 3.3v. Sinasabi ng detalye ng FTDI na maximum na 50ma. Ang susunod na pinakamahusay na kahalili ay ang paggamit ng CP2102 chip. Gayunpaman, mayroong isang limitasyong 100ma na hindi pa rin sapat. Malinaw na marami ang gumagamit ng converter na ito nang direkta ngunit mayroon ding mga ulat ng pagkabigo sa paglo-load. Nililimitahan ko ang oras na konektado ito dahil magpapainit ito sa ilalim ng karga. Gawin ito sa iyong sariling peligro. Ang perpektong solusyon ay ang pagkakaroon ng isang 3.3v regulator din, hal. isang AMS1117 3.3. Bumuo ako ng isang maliit na PCB upang paganahin ito. Tingnan ang Programmer para sa mga aparatong Sonoff.

Ang aking pagkakasunud-sunod para sa pagprograma ay ang mga sumusunod:

Buksan ang Arduino IDE.

Sa ilalim ng Mga Tool suriin ang mga setting ay nasa Wiki.

Gumawa ng anumang mga pag-edit na kinakailangan sa user_config.h. Itinakda ko ang Wifi SSID at password at MQTT broker address at mga detalye ng timezone / daylight na pagtitipid.

I-click ang 'i-verify' upang suriin itong naiipon nang OK.

I-plug ang USB serial converter (sa sarili nitong) sa PC. Tandaan ang numero ng Port.

Idiskonekta ngayon ang USB serial lead mula sa PC at ikonekta ito sa Sonoff switch. Suriin ang lupa at ang mga koneksyon ng 3v3 ay tamang paraan (ang lupa ay konektado sa ground plane sa Sonoff PCB).

Hawakan ang programmer upang ang mga contact ay ligtas habang pinipindot din ang pindutan.

Ngayon plug ang USB lead sa PC, suriin ang numero ng port na tama (sa Mga Tool), pagkatapos ay i-click ang pag-download.

Patuloy akong hinahawakan ang pindutan sa buong programa dahil hindi ko nais na abalahin ang mga koneksyon.

Kapag tapos na dapat mong makita ang isang screen tulad ng sa ibaba:

Larawan
Larawan

Ang Sonoff ay nangangailangan ng ilang piraso ng impormasyon upang kumonekta sa aming system: ang lokal na network wifi SSID at password, at ang Pi IP address. Mayroong maraming mga paraan upang magawa ito, isa sa mga ito ay upang baguhin ang config.ino file tulad ng nabanggit nang mas maaga. Kung mayroon kang isang smartphone maaari mong (pagkatapos muling maitaguyod ang switch) pindutin ang pindutan ng Sonoff ng 4 na beses nang mabilis upang ilagay ito sa isang mode ng web-server. Mag-flash ang LED. Kailangan kong subukan nang maraming beses upang magtrabaho ito. Pagkatapos, sa iyong smartphone maghanap ng bagong Sonoff network at kumonekta. Lilitaw ang isang webpage kung saan mo maitatakda ang kinakailangang data. Ang Pi IP address ay napupunta sa hostname. Binago ko rin ang pangalawang SSID at password sa isang bagay na mahaba at karaniwang hindi magagamit.

Bilang kahalili maaari itong i-setup sa pamamagitan ng serial connection pagkatapos lamang mai-load. Buksan ang Arduino Serial Monitor (sa ilalim ng Mga Tool).

Nag-uutos na pumasok:

SSId ang iyongWiFiSSID

Password ang iyongWiFiPassword

MqttHost 192.168.x.y (PI IP address)

Maaari mo ring ipasok ang SSId1 at Password1 na sinusundan ng isang bagay na mahaba at hindi magagamit upang mabisang ma-disable ito.

Ngayon ay maaari mong i-box up ang switch ng Sonoff, buksan ang Node-Red at ang Node-red dashboard at i-click ang switch button at tingnan ang tab ng debug na dapat na isama ang mga tugon mula sa Sonoff. Kaya mayroon kaming isa pang pangunahing hakbang na nakamit - ang aming unang switch na hinihimok mula sa isang PC / smartphone.

Hanggang ngayon hindi namin nabanggit ang seguridad. Mayroong posibilidad na gumamit ng mga naka-encrypt na komunikasyon. Ito ay medyo kumplikado upang i-set up at marahil ay mas naaangkop kung saan ginagamit ang isang cloud based broker. Mayroon ding pagpipilian upang magdagdag ng mga username at password para sa lahat ng mga nakakonektang aparato at hindi pinapayagan ang mga hindi nagpapakilalang gumagamit. Ito ay medyo simple upang i-set up. At kaya ngayon sa Security.

Hakbang 7: Seguridad

Pinapayagan ng MQTT ang mga username at password para sa bawat kliyente. Madali itong i-setup. Marahil ay mas madaling i-rename muna ang bawat aparato at pagkatapos ay itakda ang kanilang mga username at password. Maaari itong magawa sa pamamagitan ng mga utos ng MQTT, at ang Node-Red ay marahil ang pinakamadaling paraan upang maipadala ang mga ito. Magpasya muna sa isang kombensyon sa pagpapangalan. Ang isang pagpipilian ay ibabase ang mga pangalan sa lokasyon at pag-andar. Pagkatapos ay gugustuhin mong itala ang pangalan (Paksa) username at password kasama ang fallback na paksa. Tandaan mayroon ding isang 'pagpipilian sa pag-reset' upang i-reset ang mga setting ng Sonoff sa orihinal na pag-download (tingnan ang Paggamit ng Wiki> Pag-andar ng Button).

I-power up ang pi at pagkatapos ng ilang segundo buksan ang isang browser sa Node-Red (IP address: 1880).

Sa Node-Red mag-set up ng isang node na iniksyon at i-link ito sa isang output ng mqtt at itakda ang mqtt server sa localhost. Iwanan ang paksa, gumagamit at password na blangko dahil itatakda namin ang mga ito sa i-node ng injection. Mag-set up din ng isang nq input node at ikonekta ito sa isang debug node upang makita namin ang mga tugon. Itakda ang tala ng input ng mqtt sa localhost (dapat na itakda) at ipasok ang + / + / + para sa paksa upang makuha nito ang lahat ng trapiko.

Ipasok ang sumusunod na pagkakasunud-sunod ng mga setting sa inject node.

Unang suriin ang pagkakakonekta sa

Paksa: cmnd / sonoff / Katayuan

Mensahe: 6

i-click ang 'Inject isang beses sa pagsisimula'. I-deploy Dapat nating makita ang pag-debug kasama ang 7 mga linya ng data mula sa stat / sonoff / STATUS6

Ipasok ang Paksa: cmnd / sonoff / Paksa at Mensahe: loungelelight. I-deploy Binabago nito ang pangalan ng paglipat mula sa sonoff patungong loungelight

Dapat ipakita ng tab ng pag-debug ang pag-restart ng aparato kasama ang bagong pangalan / paksa

Paksa: cmnd / loungelight / MqttUser

Mensahe: loungelight

I-click ang pag-deploy. Dapat makita ang isang pag-debug mula sa stat / loungelight / RESULT na may {“MtqqUser”:”loungelight”}

Paksa: cmnd / loungelight / MqttPassword

Mensahe: loungelightPW (tandaan na mas mapanlikha kaysa dito!)

I-clear ang tab ng pag-debug at I-deploy.

Ang isang tugon ay dapat makita mula sa stat / loungelight / RESULT na may {"MqttPassword": "loungelightPW"}

Ngayon ipasok ang NodeRed at NodeRedPW bilang username at password sa mqtt out node. Ito ay sa pamamagitan ng icon ng lapis ng Server at tab ng seguridad sa bubukas na window. Awtomatiko nitong nakopya sa iba pang mga MQTT node.

Suriin muli sa

Paksa: cmnd / loungelight / Status at Mensahe: 6. I-deploy

At na ang tugon ay naipadala.

Kaya sa puntong ito pinalitan namin ang pangalan ng aming Sonof aparato kaya makikinig ito sa mga paksa ng cmnd / loungelight / …… at mag-log into ang MQTT na hiwalay kasama ang username loungelight at password loungelightPW. Nagtakda rin kami ng isang username at password para sa Node-Red.

Susunod kailangan naming sabihin sa server ng MQTT ng lamok na tanggapin lamang ang mga kliyente na may mga username at upang mailista ang mga username at password na tatanggapin.

Ang pamamaraan ay:

  • Itigil ang lamok
  • Lumikha ng sariling config file
  • I-edit ang config file
  • Lumikha ng file ng password
  • Magdagdag ng mga gumagamit / password.

Kaya mag-log in sa isang bagong sesyon ng PuTTY at patakbuhin ang mga sumusunod na utos:

sudo /etc/init.d/mosquitto huminto

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Sinimulan nito ang editor.

Magdagdag ng mga linya:

allow_anonymous false

password_file /etc/mosquitto/conf.d/passwd

nangangailangan ng_sertipikong hindi totoo

I-save at lumabas (Ctrl + X), Y, ipasok.

sudo touch passwd Lumilikha ito ng isang file ng password at ang mga sumusunod na tagubilin magdagdag ng mga pangalan at password.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW

sudo /etc/init.d/mosquitto i-restart

Tandaan kapag nagdaragdag ng isang bagong aparato kakailanganin mong ipasok ang gumagamit at password sa pamamagitan ng serial port at idagdag ang mga ito sa file ng password o pansamantalang baguhin ang mosquitto config file at magkomento (magdagdag ng # sa simula ng linya) ang mga linya na "allow_anonymous false "at" password_file /etc/mosquitto/conf.d/passwd "at pagkatapos ay i-reset ang mga ito kapag ang mga detalye ay naipadala na sa aparato at idinagdag sa file ng password tulad ng nasa itaas.

Binago namin ang pangalan ng sonoff sa loungelight at sa gayon i-update ang mqtt output node (konektado sa switch) upang magamit ang paksa cmnd / loungelight / POWER.

I-click ang I-deploy at suriin ang mqtt nodes ipakita ang 'konektado'.

Susunod na subukan ang switch button at hanapin ang debug na nagpapakita ng pagtugon sa switch ng Sonoff. Mapapansin mo na ipinapakita ng aparato ang pagbabago sa isang paksa: stat / loungelight / POWER. Kaya't baguhin ngayon ang input node na itinakda sa cmnd / sonoff / POWER sa stat / loungelight / POWER. Maaari naming gamitin ang takip na ito ng isang puwang sa aming pag-andar. Ang system na paunang na-set up ay maikakasabay sa lahat ng naka-log in na mga gumagamit ngunit hindi makakasabay sa mga pagbabago sa switch na ginawa sa pamamagitan ng pagpindot sa pindutan sa Sonoff switch. Kaya't ikonekta ang output ng stat / loungelight / POWER mqtt input node sa switch input (LHS). Ngayon i-double click ang switch at alisan ng check ang "kung dumating ang msg sa pag-input, dumaan sa output". Nagdadala ito ng ilang mga bagong pagpipilian - piliin ang 'icon ng paglipat ay nagpapakita ng estado ng pag-input'. I-deploy Kaya ngayon mayroon kaming mahusay na loop ng feedback. Palaging magbabago ang posisyon ng switch ng dashboard kapag nagbago ang switch ng Sonoff, hindi alintana kung saan pinasimulan ang pagbabago.

Sa gayon mayroon kaming isang ligtas, nakapag-iisang system ng automation ng bahay na tumatakbo at tumatakbo at handa na para sa pagpapalawak sa anumang nais mong gawin. Sa susunod na seksyon sasaklawin ko ang ilan sa aking eksperimento sa ngayon at mga hamon na plano kong talakayin.

Hakbang 8: Paunang Mga Hakbang para sa Pagpapalawak

Mayroon akong isa pang Instructable Home Automation Sonoff-Tasmota Sensors LEDs Development Board na nagpapakita ng ilan sa mga karagdagang kakayahan ng Sonoff-Tasmota firmware:

Pagsukat ng Temperatura at Humidity

Intruder detection (switch input)

IR remote (para sa mga TV atbp)

Mga LED string - kapwa RGB at NeoPixel (isa-isang matutugunan)

I2C sensors

Para sa nabanggit gumagamit ako ng isang ESP12F at isang pasadyang PCB. Ang isang NodeMCU at breadboard ay maaaring pantay na magamit. Pinapayagan nito ang mga karagdagang pag-andar nang walang mga kable sa isang aparato ng Sonoff, at samakatuwid ay isang mas ligtas na diskarte. Sa input ng temperatura nagawa kong makumpleto ang aking pag-automate ng kumot na de kuryente.

Madaling maidagdag ang Musika at Internet Radio. Magbubukas ito ng mga pagpipilian upang magkaroon ng mga tukoy na istasyon o album na dumating sa mga itinakdang oras o baka bilang tugon sa isang bisita (telepono) na napansin. Ang nauugnay na itinuturo na ito ay nasa Mataas na kalidad Music Player at Internet Radio na may Smartphone Control. Dahil ito ay hinihimok din ng Node-RED dapat maging posible na magkaroon ng higit sa isang sound system at gamitin ang komunikasyon sa MQTT upang himukin sila.

Sinisiyasat ko rin ang Node-Red, kasama ang pagpapadala ng mga email at paggawa ng mga alerto sa boses. Mayroon ding potensyal para sa system na makita kung ikaw ay nasa / labas - sa pamamagitan ng pag-ping sa iyong IP address ng mobile phone. Maaari ring ma-access ng Node-Red ang panahon at balita - kaya maaaring magdagdag ng impormasyon pati na rin ang pag-aautomat.

Mayroong ilang mga trick na matutunan - ngunit ang mga ito ay madaling patay sa pangalawang pagkakataon.

Ang isa pang avenue ay pagdaragdag ng isang display sa pi upang ipakita ang dashboard. Ito ay 'isinasagawa' - o sa madaling salita hindi ako masyadong nasisiyahan. Ang display na nakuha ko ay mahirap na paikutin sa portrait mode at ang browser ng Chromium ay mabagal. Ang isang kahalili ay ang pagkuha ng isang lumang tablet sa ebay at gamitin iyon. Maaari kong subukan sa isang Pi 2 at makita kung na naghahatid ng sapat na isang pagpapabuti (ginamit ang modelo B para sa pagpapaunlad na ito).

Inaasahan kong magsimula ka at magkaroon ng imahinasyon ang iyong imahinasyon. Ang potensyal na saklaw ay malaki. Maaari ding baguhin ng isa ang Sonoff code para sa iba pang mga sensor kung kinakailangan.

Sa pangkalahatan ay namangha ako sa magagawa ng sistemang ito. Ang aking orihinal na layunin ay upang himukin lamang ang isang switch mula sa isang smartphone sa isang maaasahang pamamaraan sa pamamagitan ng isang nakapag-iisang system. Nagkaroon ako ng mga pangitain na nangangailangan upang pamahalaan ang mga server at kliyente at pagsusulat ng html para sa isang interface ng gumagamit. Kung saan natapos ito ay maaga pa rito, na may higit na seguridad, mahusay na pagiging maaasahan, kamangha-manghang interface ng gumagamit, i-drag at i-drop ang programa at malaking potensyal para sa pagpapalawak. At lahat ng ito ay may mas kaunting pagsisikap.

Mike

Hakbang 9: Addendum - Naglo-load Mula sa Raspbian Stretch Lite

Iniiwasan ng opsyong ito ang bloatware na kasama ng buong bersyon ng Raspbian Stretch. Karamihan sa mga ito ay hindi kakailanganin kapag gumagamit ng isang Pi para sa pag-aautomat ng bahay. Gayunpaman ang Node-Red ay kailangang mai-install.

Magpatuloy tulad ng sa Hakbang 1 ngunit gumagamit ng Raspbian Stretch Lite kaysa sa Raspbian Stretch.

Sa halip na Hakbang2 gawin ang sumusunod:

sudo apt -y install ng npm

Dapat bumalik ang npm -v: 1.4.21 o mas bago

sudo npm i-install -g n

sudo n 8.9.0

Maaari na naming magamit ang node packet manager upang mai-install ang Node-Red:

sudo npm i-install ang node-red --global --unsafe-perm

Magbibigay ito ng isang pares ng mga mensahe ng error dahil sa isang hindi tamang address. Gayunpaman, ang system ay gumagawa ng isang 'mapagkukunan ng compile' upang maitama ang problemang ito. Kung ulitin mo ang tagubilin sa itaas (hindi kinakailangan) ang mga error ay hindi nangyari.

Mayroon kaming Node-Red at mga suportang package na naka-install at maaaring lumipat sa Hakbang 3, na naglo-load ng mosquitto.

Wireless Contest
Wireless Contest
Wireless Contest
Wireless Contest

Runner Up sa Wireless Contest