Mundarija:
- 1 -qadam: Pi -ni Rasbian Stretch bilan yuklang
- 2-qadam: Node-Red-ga xususiyatlarni yangilang va qo'shing
- 3 -qadam: Mosquitto MQTT o'rnatish
- 4 -qadam: Qizil tugunli tugunni sozlash
- 5 -qadam: Sonoff qurilmalarini qayta dasturlash uchun Arduino tizimini o'rnatish
- 6 -qadam: Sonoff kalitini qayta dasturlash
- 7 -qadam: Xavfsizlik
- 8 -qadam: kengaytirish uchun dastlabki qadamlar
- 9 -qadam: Qo'shimcha - Raspbian Stretch Lite -dan yuklash
Video: Kuchli mustaqil avtomatlashtirish tizimi - Pi, Sonoff, ESP8266 va Node -Red: 9 qadam (rasmlar bilan)
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bu qo'llanma sizni birinchi tarmoqqa olib kirishi kerak, u erda siz mahalliy tarmoqqa ulanadigan har qanday qurilma orqali va moslashtiriladigan veb -interfeysi bilan chiroqni yoki qurilmani yoqishingiz/o'chirishingiz mumkin. Xususiyatlarni kengaytirish/ qo'shish doirasi juda keng, shu jumladan elektron pochta xabarlarini yuborish, twitter xabarlari, o'qish sensorlari (masalan, harorat). Siz qoidalarni osongina o'rnatishingiz mumkin, masalan. - soat 23 da harorat 15C dan past bo'lsa, elektr adyolni 30 daqiqa davomida yoqing. Tizim UCPga qaraganda ancha ishonchli bo'lgan TCP bilan MQTT protokolidan foydalanadi - bu ajablanarli darajada ba'zi tijorat uy avtomatlashtirish qurilmalari tomonidan qo'llaniladi. Bu erda tasvirlangan tizimni o'rnatish bo'yicha mashaqqatli ish tugagach, o'yinni boshlash mumkin. Qizil tugun intuitiv, tez va sozlanishi ajoyib interfeysni taqdim etadi va ajoyib qobiliyatni ta'minlaydi.
Natija - bu kuchli uy avtomatlashtirish tizimi bo'lib, u butunlay o'z nazorati ostida va butunlay mahalliy tarmoqda. Instructables -da ko'rsatilgan ko'plab tizimlar bulutli serverlar bilan ishlaydi, shuning uchun xavfsizlik xavfi mavjud va obunani talab qilishi mumkin. Bularni o'rnatish osonroq, lekin xavfsizlik xavfi yuqori va potentsial yuqori narxga ega. Agar tashqaridan kirish foydali bo'lsa, uy tarmog'iga/tizimiga xavfsiz ulanishni yoqish uchun Pi -ga VPN (virtual xususiy tarmoq) o'rnatilishi mumkinligini qo'shishim kerak (ko'rsatmalar uchun Google Pi OpenVPN).
Bu tizim Sonoff qurilmalarini Sonoff-Tasmoda deb nomlangan ochiq manbali tizim bilan qayta dasturlashni talab qiladi. Bu maxsus Arduino sozlamalari va USB -dan seriyali konvertor yordamida amalga oshirilishi mumkin. Sonoff qurilmalari ESP8266 Wi-Fi chipidan foydalanadi, shuning uchun siz ESP8266 modullari yordamida o'z qurilmalaringizni yasashingiz yoki simsiz ulanishni ta'minlash uchun ularni boshqa narsalarga joylashtirishingiz mumkin.
Eng katta vazifa - Raspberry Pi -ni markaz sifatida o'rnatish. Bu ulangan qurilmalar bilan aloqani boshqaradigan MQTT brokerini (yoki serverini) boshqaradi. Pi shuningdek, "Node-Red" deb nomlangan tizimni boshqaradi, u xabarlar, ma'lumotlar va chiqish buyruqlarini ushlab turishi mumkin-masalan, elektr adyolni qachon yoqish kerak. Node-Red shuningdek, smartfon/planshet/kompyuter/noutbuk orqali kirishingiz mumkin bo'lgan veb-sahifaga xizmat ko'rsatadigan interfeysni ta'minlaydi, nima bo'layotganini ko'rish va chiroqlarni qo'lda almashtirish va h.k.
Bu yo'riqnomadan maqsadim - har bir qadamni etarlicha batafsil aytib berish, yangi boshlovchi tizimni ishga tushirishi mumkin.
Bosqichlar quyidagilar:
- Rasbian Stretch bilan Pi yuklang
- Node-Red-ga xususiyatlarni yangilang va qo'shing
- Mosquitto MQTT brokerini o'rnating
- Sonoff-Tasmota dasturiy ta'minotini yuklash uchun Arduino muhitini o'rnating
- Sonoff kalitini qayta dasturlash
- Node-Red interfeysini o'rnating
- Sinab ko'ring, hammasi ishlaydi.
Sizga kerak bo'lgan uskunalar:
- Raspberry Pi va quvvat manbai (va dastlabki sozlash uchun klaviatura va monitor) (bu erda B modeli ishlatiladi)
- Sonoff kaliti
- USB seriyali konvertor
- Majburiy emas - NodeMCU kabi ESP ishlab chiqish taxtasi.
Mening Raspberry Pi bilan tajribam shundan iboratki, biror narsani o'rnatish, tushunarsizroq bo'lishi mumkin bo'lgan narsalarning ishlamasligi yoki arzimas qadamda qolib ketishi mumkin bo'lganidan ko'ra ko'proq og'riqni o'z ichiga oladi. Forumlar har doim ham foydali maslahatlarni olmaydilar! Men bir yoki boshqa sabablarga ko'ra ishlamaydigan bir nechta yo'nalishlarni topdim. Bu 3 kun turadi! Keyin men hamma narsani artib, yangidan boshladim va bir kundan kamroq vaqt ichida tugatdim. Ammo bu katta Raspian Jessidan foydalangan. Shundan so'ng men joriy va yaqinda chiqarilgan (Stretch) versiyasidan foydalanish yo'lini topdim va hammasini qaytadan qildim. Ushbu qo'llanma ko'rsatmalarga Pi -ga nusxa ko'chirish va joylashtirish imkonini beradi. Shunday qilib, siz bir necha soat ichida qilishingiz kerak. Qanday bo'lmasin, umid qilamanki, bu sizni o'rganish burchagini tezroq va og'riqsiz qoldiradi. Ishoning, yakuniy natijaga arziydi.
1 -qadam: Pi -ni Rasbian Stretch bilan yuklang
Bu juda sodda bo'lishi kerak. 8 Gb yoki 16 Gb SD kartadan boshlang. Oxirgi versiyani bu erdan yuklab oling:
www.raspberrypi.org/downloads/
Bu erda asosiy mavzu to'liq versiya yuklangan deb taxmin qiladi. Ammo bo'sh joyni tejash uchun siz oddiy versiyadan foydalanishingiz mumkin. Agar Raspbian Stretch Lite -dan foydalansangiz, ushbu bosqichni bajaring va oxirida 9 -bosqichga o'ting.
Yuklab olingan faylni ochish.img fayli bo'lgan papkani beradi. 7Zip Windows (va Unarchiver Mac) uchun tavsiya etiladi. Rasmni SD -kartaga yozib qo'yish kerak, lekin fayl tizimi Windows bilan mos kelmagani uchun maxsus dasturdan foydalanish kerak. Tavsiya etilgan dastur Etcher deb ataladi va uni quyidagi manzillardan yuklab olish mumkin.
etcher.io/
Etcher uchun ko'rsatmalar o'z veb -saytida va osonroq bo'lishi mumkin emas. Rasm va diskni tanlang va Flash -ni bosing.
Endi biz yonib turgan SD -kartamiz bilan Pi -ni ishga tushiramiz.
Agar siz Pi -ni ishlatadigan IP -manzilni bilsangiz yoki uni yo'riqnoma orqali kirishdan xursand bo'lsangiz, darhol klaviatura va monitorga ehtiyojdan qochib, SSH -dan foydalanishingiz mumkin. SD -kartaga SSH nomli bo'sh faylni qo'shing, kiriting, Ethernet -ga ulang va quvvatni yoqing. Aks holda, quyidagi ko'rsatmaga amal qiling.
Pi -ni Internetga, ekranga, sichqonchaga va klaviaturaga ulang va quvvat manbaiga ulang. Biz qiladigan birinchi narsa - bu SSH -ni yoqish, shuning uchun biz sozlashning ko'p qismini kompyuterda qulaylik bilan bajarishimiz mumkin. Bu, albatta, to'g'ridan -to'g'ri amalga oshirilishi mumkin, lekin bu qo'llanmani Pi haydovchi bilan bir xil qurilmada bajarish va ko'pchilik ko'rsatmalar uchun nusxa ko'chirish va joylashtirishdan foydalanish katta yordam beradi. Bundan tashqari, mening ish stantsiyam yaxshi va qulay, lekin pi uchun etarlicha katta emas.
YouTube video ustida ishlash uchun yaxshi qo'llanma bor. Bu men boshlagan joy. Siz ushbu ko'rsatmalarni bajarib, videoni ishga tushirishingiz mumkin. Ammo men bu jarayonni qayta yozayotganimda, bu erdagi ko'rsatmalarga amal qilish osonroq bo'ldi. Ba'zi sezilarli burilishlar mavjud. Bu erda qadamlarni sanab o'tishdan ko'ra, videoni kuzatishni maslahat bergan bo'limlar ham bor. Ammo men MQTT, Node-Red va keng sozlash jarayonini tushunish uchun unga qarashni tavsiya qilaman. Video uzunligi 38 minut, shuning uchun o'zingizni qulay his eting. Video Node Red nima qila olishini ko'rsatish bilan boshlanadi, keyin Pi o'rnatish va sozlashni qamrab oladi, so'ngra Red Node -ni yangilaydi va oxirgi marta Mosquitto -ni o'rnatadi. Agar siz bo'limga qaytmoqchi bo'lsangiz, asosiy vaqtlar:
00:00 Videoga kirish
03:00 Qizil tugunli namoyish
14:14 Qizil tugunga asboblar paneli elementlarini import qilish
21:05 Pi dastlabki sozlash, shu jumladan SSH
23:35 Red Node qo'llab -quvvatlovchi kodini o'rnatish
27:00 MQTTga kirish
29:12 Mosquitto (MQTT) o'rnatish (Eslatma faqat Raspian Jessi uchun ishlaydi)
33:00 Tugun qizil misollar
Men buyruqlarni qalin kursiv bilan yozaman ("" o'rniga). Siz ularni Pi -ga nusxalash va joylashtirishda bu formatlash e'tiborga olinmaydi.
Red Node -ga kirish sizga tizim nima qilishi mumkinligi haqida tasavvur beradi va biz qayerga borishni tasvirini beradi.
YouTube videosi:
21:05 dan 23:35 gacha o'rnatish tartibini bajaring. E'tibor bering, standart login foydalanuvchi: pi va parol: malina. Qayta ishga tushirishdan oldin pi -ning IP -manzilini toping. Ish stolining yuqori panelidagi "yuqoriga+pastga o'q" belgisini bosing yoki terminal/terminal oynasida quyidagi ko'rsatmani kiriting:
sudo ifconfig manzili
Keyin IP manziliga e'tibor bering: inet addr:. U 192.168.x.y shaklida bo'ladi
Ushbu manzilga e'tibor bering va qayta ishga tushiring (kiriting: sudo shutdown - r hozir)
Bu erda kalit shundaki, SSH yoqilgan va siz kompyuterdan Pi -ga havola o'rnatishingiz mumkin (Mac va Linux -da SSH interfeyslari mavjud). Buni amalga oshirish uchun yaxshi dastur - bu PuTTY deb nomlangan bepul yuklab olish, uni ketma -ket interfeys sifatida ham ishlatish mumkin va Telnet bilan ham shug'ullanish mumkin. Putty quyidagi manzilda mavjud:
www.chiark.greenend.org.uk/~sgtatham/putty…
PuTTY -ni yuklab oling va o'rnating.
Endi, Pi qayta ishga tushirilganda, PuTTY -ni ishga tushiring va ilgari qayd etilgan IP -manzilni kiriting. Quyidagi misolni ko'ring:
Endi Ochish -ni bosing
Kirishdan keyin: pi kiriting
Keyin parolingizni kiriting.
Endi bu erdagi ko'rsatmalarga amal qiling va ixtiyoriy ravishda videoni 23:35 dan boshlang. Siz ko'p hollarda nusxa ko'chirishingiz va joylashtirishingiz mumkin. Matnni ajratib ko'rsatish va nusxalash uchun ctrl+C tugmalar birikmasini bosing. Keyin joylashtirish uchun PuTTY -ni o'ng tugmasini bosing. Ba'zida matn darhol ko'rinmaydi, shuning uchun bir necha soniya kuting. Agar siz ikki marta kiritsangiz, ikkinchi yozuvni o'chirish uchun backspace -dan foydalaning. Har bir ko'rsatmani bajarish uchun enter tugmasini bosing.
sudo raspi-update
Menda buyruq topilmadi va buni e'tiborsiz qoldirdim va quyidagi o'chirish/qayta ishga tushirish ko'rsatmasi:
sudo o'chirish -r
sudo apt -get -y yangilanishi
sudo apt -get -y yangilash
Bu biroz vaqt oladi ….
sudo apt-get autoremove
sudo apt -get -y yangilanishi
sudo o'chirish -r
Bu vaqtda bizda Pi operatsion tizimi yuklangan va yangilangan bo'lib, keyingi bosqichga tayyor.
2-qadam: Node-Red-ga xususiyatlarni yangilang va qo'shing
PuTTY ulanishi oldingi qadam oxirida qayta ishga tushirilganda yo'qoladi. PuTTY -ni yoping va Pi yuklanishini kutgandan so'ng, avvalgidek qayta kiring.
Men Node-Red-ni yuklashning sodda va ishonchli usuliga o'tdim-https://nodered.org/docs/hardware/raspberrypi saytidagi yondashuvga amal qilib. Bu skriptni ishlatadi va Node-Red-ni o'rnatadi yoki yangilaydi, shuning uchun yondashuv Raspbian Stretch-ning to'liq yoki oddiy versiyalarida ishlaydi. Shunday qilib kiriting:
bash <(curl -sL
So'ralganda Y kiriting (ikki marta). Ushbu skript shuningdek, Node-Red-ni avtomatik ishga tushirishni yoqish uchun zarur bo'lgan fayllarni yuklaydi.
Shunday qilib, bizda pi tugunimiz yuklangan va yangilangan va Red Node uchun zarur bo'lgan yangilanishlar mavjud. Keyingi bosqichgacha qayta ishga tushirishning zarari yo'q.
sudo o'chirish -r
3 -qadam: Mosquitto MQTT o'rnatish
Agar siz buni hali qilmagan bo'lsangiz, MQTT -ga videoning kirish qismini 27:00 dan boshlab videoda ko'rishga arziydi.
Bu erda biz boshqa yo'lni tanlashimiz kerak. Videoda ko'rsatilgan tartib faqat Raspianning eski Jessie versiyasi uchun ishlaydi. Chivinlar uchastkasida munozara bor, lekin aniq natija ko'rsatilmagan, shuning uchun ham oddiy va xavfsizroq yo'lni tanlash mumkin.
PuTTY yordamida tizimga kiring va quyidagilarni kiriting:
sudo apt-get yangilanishi
sudo apt-get mosquitto mosquitto-mijozlarni o'rnatish
Y
sudo /etc/init.d/mosquitto to'xtatish
sudo /etc/init.d/mosquitto boshlash uchun
Oxirgi ikkita ko'rsatma chivinni to'xtatadi va ishga tushiradi va bizning MQTT brokerimiz ishlayotganini ko'rsatadi.
Tez sinov uchun yana ikkita PuTTY sessiyasini oching va har biriga kiring.
Siz hozircha MQTT qurilmada ishlashini, "mavzu" ga obuna bo'lgan ma'lumotlarga muhtojligini bilasiz. Broker har qanday ma'lumotlarni bir xil "mavzu" ga yuboradi. Keyin ma'lumotlar/ko'rsatmalarni yuborishni xohlagan qurilma buni xuddi shu "mavzu" yordamida brokerga e'lon qiladi.
Shunday qilib, bitta PuTTY sessiyasiga kiriting:
mosquitto_sub -d -t salom/dunyo
Bu mavzuga obuna bo'lish uchun ko'rsatma: salom/dunyo.
Boshqa qatorga kiriting:
mosquitto_pub -d -t salom/dunyo -m "Terminal 2 oynasidan salom!"
Bu xabar bilan bir xil mavzudagi nashriyot ko'rsatmasi. Matn: "Terminal 2 oynasidan salom!" endi boshqa terminalda paydo bo'lishi kerak.
Yaxshiyamki, bu erga etib keldingiz. Endi bizda Node-Red uchun zarur bo'lgan yangilanishlar va chivin MQTT brokeri o'rnatilgan va sinovdan o'tgan Pi o'rnatilgan. Bundan buyon hayot biroz qiziqarli bo'ladi. MQTT testi uchun ishlatiladigan ikkita PuTTY sessiyasini yoping.
4 -qadam: Qizil tugunli tugunni sozlash
Avval Red Node -ni ishga tushirishimiz kerak. Ko'rsatmani kiriting:
node-red-pi --max-old-space-size = 256
Uning ishga tushishini kuting va siz "Boshlangan oqimlar" matnini ko'rasiz.
Endi brauzerni oching, men Chrome -dan foydalanaman va pi IP -manzilini kiriting, keyin 1880, ya'ni 192.168.0.8:1880
Endi siz Node Red dasturlash sahifasini quyida ko'rishingiz kerak:
Endi siz "Node Red" misollarini soat 33:00 dan boshlab kuzatib borishingiz yoki to'g'ridan -to'g'ri ozgina qo'shimcha sozlamalarga o'tishingiz va MQTT havolasini ko'rsatadigan va bizning kommutatorimizni boshqarishga tayyor bo'ladigan birinchi oqimni yuklashingiz mumkin.
Qo'shimcha sozlash - bu veb -interfeysni yoqadigan asboblar paneli elementlarini qo'shish.
Bular videoda 14:14 da ko'rsatilgan.
Qizil panelli tugunni yuklash uchun ko'rsatmalarga amal qiling.
Endi biz bir oz o'ynaymiz va MQTTni Node-Red boshqarayotganini ko'rsatamiz. Bu videoda emas, lekin bu loyihaning kalitidir. Siz mening ko'rsatmalarimni bajarishingiz va/yoki oqimlarni biriktirilgan NRtest1.txt faylidan import qilishingiz mumkin.
Avval kirish in'ektsiya tugunini va chiqish mqtt tugunini qo'shing va ularni bir -biriga bog'lang.
Enjeksiyon tugunini ikki marta bosing (dastlab vaqt tamg'asi bilan belgilanadi). Payload bo'limida twiddly -dan foydalanib, mag'lubiyatga o'ting va kiriting: Salom mendan. Mavzuni bo'sh qoldiring, chunki biz buni MQTT tuguniga kiritishimiz mumkin. Bajarildi -ni bosing
Endi MQTT tugunini ikki marta bosing. Server bo'limining o'ng tomonidagi qalam belgisini bosing. Bu yangi dialog oynasini ochadi. Kiriting: Server bo'limida localhost. Qo'shish -ni bosing. Endi, mqtt -ni tahrirlash tuguniga qaytib, mavzuimizni Mavzu bo'limiga kiriting: salom/dunyo. QoS -ni 1 ga o'rnating. Bajarildi -ni bosing. Endi Deploy ni bosing. Siz mqtt tugunining ostidan "yashil bog'langan" va "bog'langan" ni ko'rishingiz kerak.
Endi yana ikkita tugun qo'shing - mqtt kiritish va chiqish disk raskadrovka va ularni bir -biriga ulang. Endi kirish mqtt tugunini ikki marta bosing va mavzu bo'limiga salom/dunyo kiriting. Server allaqachon localhost -ni ko'rsatishi kerak: 1883. QoS -ni 1 ga o'rnating. Bajarildi -ni bosing. Keyin joylashtirishni bosing va o'ng tarafdagi disk raskadrovka yorlig'ini bosing. Endi "Mendan salom" in'ektsiya tugunining chap tomonidagi kulrang kvadratni bosing. Bu matn yukini MQTT brokeriga salom/dunyo mavzusida yuboradi. Broker mqtt kirish tuguni bir xil mavzuga obuna bo'lganini biladi va shuning uchun yukni uzatadi. Keyin mqtt kirish tuguni buni disk raskadrovka yorlig'iga (RHS) yuboradi va "Mendan salom" yozuvi paydo bo'lishi kerak.
Bu boshqa qutini belgilaydi, chunki bizda Node Red bizning MQTT brokerimiz bilan gaplashmoqda. E'tibor bering, Node Red - bu brokerning faqat mijozi, masalan, biz keyinchalik bog'laydigan Sonoff qurilmalari kabi. Biroq, u murakkab avtomatlashtirishni ta'minlaydi va ajoyib foydalanuvchi interfeysini ta'minlaydi.
Endi biz bir nechta kichik o'zgarishlarni amalga oshirishimiz va Sonoff kalitimiz uchun oqimlarni sozlashimiz mumkin.
Shunday qilib, kirish in'ektsiya tugunini o'chiring (ajratib ko'rsatish uchun bosing va o'chirish tugmachasini bosing). Endi asboblar panelidan kalitni qo'shing va uni mqtt chiqishiga ulang. Ikki marta bosish tugmasi. Guruhning o'ng tomonidagi qalamni bosing. Ismni kiriting: yorug'lik. Keyin tabning o'ng tomonidagi qalamni bosing va Ism bo'limiga kiring: Lounge. Qo'shish/yangilash va yana qo'shish/yangilash -ni bosing. Endi, tahrirlash tugmachasiga qaytib, yuklarni yoqing va o'chiring. Tarmoqni tanlash uchun twidlys -dan foydalaning va "On -layn" uchun "ON" va "OFF" -ni "OFF" -ga kiriting. Bajarildi -ni bosing
Endi har bir mqtt tuguniga o'ting va mavzuni cmnd/sonoff/POWER ga o'zgartiring. Agar nusxa ko'chirsangiz va joylashtirsangiz, oxirida bo'sh joy yo'qligini tekshiring. Bu boshqa mavzu va Sonoff bilan ishlamaydi. Adashgan joyni topish bir soatcha vaqtni oladi - ishoning! Men shuningdek, boshqaruv paneliga> Mavzuga o'tdim va tanladim: Qorong'i. Joylashtirish -ni bosing va disk raskadrovka yorlig'ini tanlang.
Endi yangi oynada yangi brauzer seansini oching va uni "Node Red" sessiyasida uyali telefon kabi o'lchamlang. Manzilni kiriting: sizning Pi IP manzilingiz: 1880/ui/#/0, ya'ni 192.168.0.8:1880/ui/#/0. Siz Lounge va Light bilan ekranni ko'rishingiz va almashtirishingiz kerak. Yoqish va keyin o'chirishni bosing. Nosozliklarni tuzatish oynasida ON va OFF yuklari ko'rsatilishi kerak. Agar xohlasangiz, mobil telefon orqali ham kiring. E'tibor bering, kalit o'rnini sinxronlashtiring. Bizning Sonoff hali ulanmaganligi muhim emas. Qachonki, mavzuga obuna bo'lish orqali u xabarni/yukni oladi va unga amal qiladi.
Oxirgi kichik qadam - bu Pi tugmachasi ishga tushgandan so'ng, Node Red -ni avtomatik ravishda ishga tushirish.
Red Node -da qo'llanma mavjud:
Ammo kerakli fayllar allaqachon yuklangan, shuning uchun o'rnatishni talab qilmaydi.
Node-RED-ni har yuklashda avtomatik ravishda ishlashini yoqish uchun va nosozliklar yuz berganda kiriting (PuTTY sessiyasini oching):
sudo systemctl nodered.service -ni yoqing
Agar siz buni o'chirib qo'yishingiz kerak bo'lsa, kiriting:
sudo systemctl nodered.service -ni o'chirib qo'ying
Endi pi -ni sudo o'chirish bilan o'chiring va quvvatni o'chiring.
Bu bizning Pi -ni qulflangan va ishga tayyor. Bizda Node Red -ga ulangan shaxsiy kompyuterimiz/mobil telefonimiz bor va bu bizning MQTT serverimiz bilan gaplashadi. Bu uzoq masofani bosib o'tdi va orqa tomondan katta silashga arziydi. Juda qoyil. Men keyingi, Arduino bitini topdim, bu osonroq!
5 -qadam: Sonoff qurilmalarini qayta dasturlash uchun Arduino tizimini o'rnatish
Buning uchun barcha ma'lumotlar Sonoff-Tasmota GitHub-da. Menga qiyinchilik tug'dirgan yagona narsa bu mavzu matni edi, lekin men sizni ayyorlik bilan bunga kiritishga majbur qildim!
Https://github.com/arendst/Sonoff-Tasmota saytiga o'ting
O'rnatish bo'yicha ko'rsatmalarni Wiki yorlig'ida Yuklab olish vositalari bo'limida topasiz:
Har bir qadamni bosib o'tishning o'rniga, men o'zimni muhim deb hisoblagan yoki yopib qo'ygan asosiy jihatlarimga e'tibor qarataman.
Ko'rsatmalar yaxshi, lekin tafsilotlarga diqqat bilan qarash kerak. Meni ESP8266 nomli boshqa papkada joylashgan ESP8266 papkasiga ehtiyoj borligi sababli chalg'itdi va shu sababli ikki darajani o'tkazib yubordi.
Men Arduino -ni butunlay alohida sozlash bo'yicha tavsiyalarga amal qildim. Men "ArduinoSonoff" nomli yangi papkani yaratdim, bu mening mavjud Arduino papkasidan alohida. O'rnatish juda ilg'or, shuning uchun uni alohida saqlash juda yaxshi fikr. Agar bu sizning birinchi Arduino sozlamangiz bo'lsa, uni boshqa Arduino ishi uchun, shu jumladan ESP8266 -da ishlash uchun "Arduino" yoki boshqa papkaga ikkinchi marta o'rnatganingizga ishonch hosil qiling.
Oxirgi Arduino IDE -ni https://www.arduino.cc/en/Main/Software -dan yuklab oling. Faylni yangi papkaga oching.
Ko'rsatmalar Sonoff-Tasmoda tizimini https://github.com/arendst/Sonoff-Tasmota bosh sahifasidan: Clone yoki Yuklab olish> ZIP-ni yuklashni o'z ichiga oladi. Faylni yangi papkaga oching.
Ko'rsatmalarni diqqat bilan bajaring. Men ixtiyoriy qilmadim: OTA yuklashga tayyorgarlik. Biz buni boshqa kunga qoldiramiz.
Endi Arduino IDE -ni ishga tushiring (arduino.exe -ni ikki marta bosing). Fayl> Sketchbook> sonoff orqali Sonoff-Tasmota eskizini yuklang. Hech qanday tahrir qilishning hojati yo'q. Dasturiy ta'minot o'rnatilgandan so'ng barcha sozlamalar ketma -ket ulanish orqali amalga oshiriladi. Ular EEPROM -da saqlanadi. Shunday qilib, dasturiy ta'minotni yangilash va barcha sozlamalarni saqlash mumkin. Bu juda aqlli narsalar. Shu bilan birga, user-config.h fayliga kirib, Wi-Fi SSID va parolingizni va MQTT_HOST-ni ("domus1"-ikkinchi havolani, Pi IP-manzilingiz bilan almashtiring) kirgizib, bu erda bir necha qadam qo'yishdan qochishingiz mumkin. Keyinchalik siz MQTT foydalanuvchisi va parolini kiritishni xohlashingiz mumkin. Yuklab olishdan oldin "Asboblar" bo'limidagi boshqaruv paneli sozlamalarini tekshiring. Vikiga qo'yilgan talablarga javob berish uchun ularga bir nechta o'zgartirishlar kerak bo'ladi. Endi kompilyatsiya tugmasini bosing (belgini belgilang). OK ni kompilyatsiya qilishi kerak. Agar bunday bo'lmasa yoki kerakli taxta sozlamalari mavjud bo'lmasa, orqaga qayting va sozlashning har bir bosqichini tekshiring.
6 -qadam: Sonoff kalitini qayta dasturlash
Endi biz yuklashga tayyormiz. Bu bosqichda siz to'g'ridan -to'g'ri oldinga o'tishingiz va Sonoff kalitini yondirishingiz yoki ESP8266 modulini yondirishingiz mumkin. Men ikkinchisini qildim, qisman mening kalitlarim hali kelmaganligi uchun (men yozganimda yetib keldi!), Lekin Sonoff kalitining miltillashi miltillovchi ehtiyot chorasi, chunki asl dasturiy ta'minot hamma uchun ochiq emas. Men xabardorman. Menda bir nechta NodeMCU taxtasi bor. Ularni bortdagi USB-ni ketma-ket konvertorga ega bo'lgan holda ulash oson. Biroq nodemcu reset usuli bu tizimda ishlamaydi. Shunday qilib, Asboblar> Qayta tiklash usulini "ck" ga qo'ying. Oddiy qo'lda chirog'ni o'rnatishni "Fleshli" tugmachasini (GPIO 0 ni erga) bosib, Reset (Erga o'rnatish) tugmachasini bosib chiqaring. Ishonchim komilki, bu tanaffus bormi yoki men GPIO 0 -ni etarlicha uzoq vaqt ushlab turmadim, lekin menga bir nechta urinishlar kerak edi, shu jumladan Arduino IDE kompilyatsiya qilinayotganda ham!
Agar siz javoblarni tekshirmoqchi bo'lsangiz - NodeMCU platalarida o'rni chiqishi D6. ESP12 -da bu GPIO 12. LED chiqishi - D7 (NodeMCU) yoki GPIO 13 (ESP12 -lar).
Sonoff kaliti.
OGOHLANTIRISH: Men aytishim kerakki, "korpus ochiq bo'lgan hech qanday holatda elektr tarmog'iga ulanmang". Ta'kidlash joizki, tenglikni (hech bo'lmaganda Sonoff Basic-da (in-line switch) past kuchlanishli tarmoq bilan tarmoq o'rtasida "yagona izolyatsiya") masofasi bor, shuning uchun Sonoff zanjirining istalgan qismini tarmoq voltaji deb hisoblash kerak. Tasmota GitHub harorat va namlik sensori Sonoff S20 ga ulanishini ko'rsatadi, lekin men izolyatsiyadan xavotirda bo'lganim uchun bunday qilmagan bo'lardim. yoki tuproqli elektr ta'minoti.
Sonoff S20 ulagichi yaxshi boshlang'ich nuqtadir, chunki u elektr tarmog'iga muhtoj emas. Buni bitta vintni (xavfsizlik muhri ostida) olib tashlash va korpusni ochish orqali ochish mumkin. Quyidagi fotosuratda teglar qaerda joylashganligi ko'rsatilgan. Ishni shu nuqtalarda siqish yordam beradi.
USB ketma -ket konvertori
Mening sevimli konvertorim FTDI versiyasidir. Biroq, bu Sonoff 3.3v ehtiyojlarini qondirish uchun etarli imkoniyatlarga ega emas. FTDI spetsifikatsiyasida maksimal 50ma ko'rsatilgan. Keyingi eng yaxshi variant - bu CP2102 chipidan foydalanish. Biroq, bu 100ma chegarasiga ega, bu hali ham etarli emas. Shubhasiz, ko'pchilik bu konvertorni to'g'ridan -to'g'ri ishlatadi, lekin yuklashning ishlamay qolgani haqida xabarlar ham bor. Men ulanish vaqtini cheklayman, chunki u yuk ostida isiydi. Buni o'zingizning xavfingiz ostida qiling. Ideal yechim - 3,3V regulyatorga ega bo'lish, masalan. AMS1117 3.3. Buni amalga oshirish uchun men kichik PCB yaratdim. Sonoff qurilmalari uchun dasturchiga qarang.
Mening dasturlash tartibim quyidagicha:
Arduino IDE -ni oching.
"Asboblar" bo'limida Vikipediyadagi kabi sozlamalarni tekshiring.
User_config.h ga kerakli tahrirlarni kiriting. Men Wi -Fi SSID va parolni va MQTT brokerining manzilini va vaqt zonasi/yozgi tejamkorlik ma'lumotlarini o'rnatdim.
OK tasdiqlanganligini tekshirish uchun "tekshirish" tugmasini bosing.
USB ketma -ket konvertorini kompyuterga ulang. Port raqamiga e'tibor bering.
Endi USB ketma -ket simini kompyuterdan uzing va uni Sonoff kalitiga ulang. Erni tekshiring va 3v3 ulanishlari to'g'ri yo'lda (er Sonoff PCB ustidagi er tekisligiga ulangan).
Kontaktlar xavfsiz bo'lishi uchun dasturchini ushlab turing va shu bilan birga tugmani bosing.
Endi USB simini kompyuterga ulang, port raqamining to'g'riligini tekshiring (Asboblar bo'limida), so'ng "Yuklab olish" tugmasini bosing.
Men tugmachani dastur davomida ushlab turaman, chunki men aloqalarni buzishni xohlamayman.
Ish tugagandan so'ng, siz quyidagi ekranni ko'rishingiz kerak:
Sonoff tizimimizga ulanish uchun bir nechta bit ma'lumotlarga ega bo'lishi kerak: mahalliy tarmoq Wi -Fi SSID va parol va Pi IP -manzili. Buning bir necha yo'li bor, ulardan biri config.ino faylini yuqorida aytib o'tilganidek o'zgartirish. Agar sizda smartfon bo'lsa, siz (kalitni qayta yig'gandan so'ng) veb-server rejimiga o'tkazish uchun Sonoff tugmasini 4 marta tez bosishingiz mumkin. LED yonadi. Buni amalga oshirish uchun bir necha bor urinishim kerak edi. Keyin, smartfoningizda yangi Sonoff tarmog'ini qidiring va ulaning. Siz kerakli ma'lumotlarni o'rnatishingiz mumkin bo'lgan veb -sahifa paydo bo'ladi. Pi IP -manzili xost nomiga kiradi. Men ikkinchi SSID va parolni uzun va umuman yaroqsiz narsaga o'zgartirdim.
Shu bilan bir qatorda, uni yuklashdan so'ng ketma -ket ulanish orqali o'rnatish mumkin. Arduino Serial monitorini oching (Asboblar ostida).
Kirish buyruqlari:
Wi -FiSSID -ni SSI -ga kiriting
Wi -Fi parolini parol bilan kiriting
MqttHost 192.168.x.y (PI IP -manzili)
Bundan tashqari, SSId1 va Password1 -ni kiritishingiz mumkin, keyin uni o'chirib qo'yish uchun uzoq va yaroqsiz.
Endi siz "Sonoff" tugmachasini yig'ishingiz, "Node-Red" va "Node-red" boshqaruv panelini ochishingiz va "Kommutator" tugmachasini bosishingiz va "Sonoff" ning javoblarini o'z ichiga olishi kerak bo'lgan disk raskadrovka yorlig'ini ko'rishingiz mumkin. Shunday qilib, bizda yana bir muhim qadam bor - bizning birinchi kalitimiz kompyuter/smartfondan.
Hozircha biz xavfsizlik haqida gapirmaganmiz. Shifrlangan aloqadan foydalanish imkoniyati mavjud. Bu sozlash juda murakkab va, ehtimol, bulutli broker ishlatilayotgan joylarga to'g'ri keladi. Bundan tashqari, ulangan barcha qurilmalar uchun foydalanuvchi nomlari va parollarni qo'shish va anonim foydalanuvchilarga ruxsat berish imkoniyati mavjud. Buni sozlash juda oddiy. Va endi xavfsizlik haqida.
7 -qadam: Xavfsizlik
MQTT har bir mijoz uchun foydalanuvchi nomlari va parollariga ruxsat beradi. Bu sozlash oson. Avval har bir qurilmaning nomini o'zgartirish, so'ngra foydalanuvchi nomlari va parollarini o'rnatish osonroqdir. Buni MQTT buyruqlari orqali bajarish mumkin va Node-Red-bu ularni yuborishning eng oson yo'li. Avval nom berish konventsiyasi to'g'risida qaror qabul qiling. Variantlardan biri bu ism va joylashuvga asoslanishi. Keyin siz nom (Mavzu) foydalanuvchi nomi va parolni boshqa mavzu bilan birga yozib olishni xohlaysiz. E'tibor bering, Sonoff sozlamalarini asl yuklamaga qaytarish uchun "qayta o'rnatish" varianti ham mavjud (qarang: Wiki -ni ishlatish> Tugma funksiyasi).
Pi-ni yoqing va bir necha soniyadan so'ng Node-Red brauzerini oching (IP-manzili: 1880).
Node-Red-da in'ektsiya tugunini o'rnating va uni mqtt chiqishi bilan bog'lang va mqtt serverini localhost-ga o'rnating. Mavzu, foydalanuvchi va parolni bo'sh qoldiring, chunki biz ularni in'ektsiya tuguniga o'rnatamiz. Shuningdek, mqtt kirish tugunini o'rnating va uni xatolarni tuzatish tuguniga ulang, shunda biz javoblarni ko'ra olamiz. Mqtt kirish yozuvini localhost -ga o'rnating (allaqachon o'rnatilgan bo'lishi kerak) va mavzu uchun+/+/+kiriting, shunda u barcha trafikni ushlab turadi.
Enjeksiyon tuguniga quyidagi sozlamalar ketma -ketligini kiriting.
Avval ulanishni tekshiring
Mavzu: cmnd/sonoff/Status
Xabar: 6
"Ishga tushirish paytida bir marta yuborish" ni bosing. Joylashtirish. Biz stat/sonoff/STATUS6 ma'lumotlarining 7 satrini o'z ichiga olgan disk raskadrovka dasturini ko'rishimiz kerak
Mavzuni kiriting: cmnd/sonoff/Topic andMessage: loungelight. Joylashtirish. Bu kalit nomini sonoffdan loungelightga o'zgartiradi
Nosozliklarni tuzatish yorlig'ida qurilmaning yangi nomi/mavzusi bilan qayta ishga tushirilishi ko'rsatilishi kerak
Mavzu: cmnd/loungelight/MqttUser
Xabar: zal yoritgichi
O'rnatish -ni bosing. {"MtqqUser": "loungelight"} yordamida stat/loungelight/RESULT dan nosozliklarni tuzatish kerak.
Mavzu: cmnd/loungelight/MqttPassword
Xabar: loungelightPW (eslatma bundan ham tasavvurliroq!)
Nosozliklarni tuzatish yorlig'ini tozalang va joylashtiring.
Javobni stat/loungelight/RESULT dan {"MqttPassword": "loungelightPW"} bilan ko'rish kerak.
Endi mqtt out tuguniga foydalanuvchi nomi va parol sifatida NodeRed va NodeRedPW kiriting. Bu ochilgan oynada Server qalam belgisi va xavfsizlik yorlig'i orqali. Bu avtomatik ravishda boshqa MQTT tugunlariga ko'chiriladi.
Bilan yana tekshiring
Mavzu: cmnd/loungelight/Status va xabar: 6. Joylashtirish.
Va javob yuboriladi.
Shunday qilib, biz hozirda Sonof qurilmamizning nomini o'zgartirdik, shunda u cmnd/loungelight/…… mavzularni tinglaydi va foydalanuvchi nomi loungelight va loungelightPW parol bilan MQTT bo'limiga kiradi. Shuningdek, biz Node-Red uchun foydalanuvchi nomi va parolni o'rnatdik.
Keyin biz MQTT chivin serveriga mijozlarni faqat foydalanuvchi nomlari bilan qabul qilishni va qabul qilinadigan foydalanuvchi nomlari va parollarini ro'yxatga olishni aytishimiz kerak.
Jarayon quyidagicha:
- Chivinni to'xtating
- Shaxsiy konfiguratsiya faylini yarating
- Konfiguratsiya faylini tahrirlash
- Parol faylini yarating
- Foydalanuvchilar/parollarni qo'shing.
Shunday qilib, yangi PuTTY sessiyasi bilan kiring va quyidagi buyruqlarni bajaring:
sudo /etc/init.d/mosquitto to'xtatish
cd /etc/mosquitto/conf.d/
sudo nano mosquitto.conf Bu muharrirni ishga tushiradi.
Chiziqlar qo'shing:
ruxsat_anonim yolg'on
parol_file /etc/mosquitto/conf.d/passwd
talab_sertifikati noto'g'ri
Saqlash va chiqish (Ctrl+X), Y, kiriting.
sudo touch passwd Bu parol faylini yaratadi va quyidagi ko'rsatmalarga ism va parollar qo'shiladi.
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 qayta ishga tushirish
E'tibor bering, yangi qurilmani qo'shganda siz foydalanuvchi va parolni ketma -ket port orqali kiritishingiz va ularni parol fayliga qo'shishingiz yoki chivin konfiguratsiya faylini vaqtincha o'zgartirishingiz va "ruxsat_animsiz yolg'on" qatorlarini izohlashingiz (satr boshida # qo'shishingiz kerak). "va" password_file /etc/mosquitto/conf.d/passwd "ni belgilang va tafsilotlar qurilmaga yuborilganida va yuqoridagi kabi parol fayliga qo'shilganda ularni qayta o'rnating.
Biz sonoff nomini loungelight deb o'zgartirdik va cmnd/loungelight/POWER mavzusidan foydalanish uchun mqtt chiqish tugunini (kalitga ulangan) yangiladik.
Deploy -ni bosing va mqtt tugunlari "ulangan" ko'rsatilishini tekshiring.
Keyin almashtirish tugmachasini sinab ko'ring va Sonoff kalitining javob berishini ko'rsatadigan disk raskadrovka izlang. Siz sezasizki, qurilma o'zgarishni mavzu bilan ko'rsatadi: stat/loungelight/POWER. Endi cmnd/sonoff/POWER ga o'rnatilgan kirish tugunini stat/loungelight/POWER ga o'zgartiring. Biz bu qopqoqni funksionalligimizdagi bo'shliqdan foydalanishimiz mumkin. Dastlab o'rnatilgan tizim tizimga kirgan barcha foydalanuvchilar bilan sinxronlashtiriladi, lekin Sonoff tugmachasini bosish orqali amalga oshiriladigan o'zgartirishlar bilan sinxronlashtirilmaydi. Endi stat/loungelight/POWER mqtt kirish tugunining chiqishini kalit kirishiga (LHS) ulang. Endi kalitni ikki marta bosing va "kiruvchi xabar kelsa, chiqishga o'ting" belgisini olib tashlang. Bu yangi variantlarni keltirib chiqaradi - "o'tish belgisi kirish holatini ko'rsatadi" -ni tanlang. Joylashtirish. Shunday qilib, endi bizda yaxshi aloqa tizimi mavjud. O'zgarish qaerdan boshlanganidan qat'i nazar, Sonoff tugmachasi o'zgarganda, asboblar paneli o'rnini o'zgartirish joyi doimo o'zgarib turadi.
Shunday qilib, bizda xavfsiz, mustaqil uy avtomatlashtirish tizimi ishga tushdi va siz xohlagan narsani kengaytirishga tayyor. Keyingi bo'limda men hozirgacha o'tkazgan tajribalarim va men hal qilmoqchi bo'lgan qiyinchiliklar haqida so'zlab beraman.
8 -qadam: kengaytirish uchun dastlabki qadamlar
Menda Sonoff-Tasmota Sensors LED-ni ishlab chiqaruvchi uyni avtomatlashtirish bo'yicha ko'rsatma paneli bor, u Sonoff-Tasmota dasturiy ta'minotining boshqa imkoniyatlarini ko'rsatadi:
Harorat va namlikni o'lchash
Intruderlarni aniqlash (kirishni o'zgartirish)
IR masofadan boshqarish pulti (televizor va boshqalar uchun)
LED chiziqlar - ham RGB, ham NeoPixel (alohida manzilli)
I2C datchiklari
Yuqorida aytilganlar uchun men ESP12F va maxsus tenglikni ishlataman. NodeMCU va non paneli teng ravishda ishlatilishi mumkin. Bu Sonoff qurilmasiga ulanmasdan, bu qo'shimcha funktsiyalarni bajarishga imkon beradi va shuning uchun ancha xavfsizroq yondashuv hisoblanadi. Haroratning kiritilishi bilan men elektr adyolni avtomatlashtirishni yakunladim.
Musiqa va Internet radiosi osongina qo'shilishi mumkin. Bu ma'lum bir stantsiyalar yoki albomlarni belgilangan vaqtda yoki mehmon (telefon) aniqlanganiga javoban yoqish imkoniyatlarini ochadi. Bu yuqori sifatli musiqa pleyeri va smartfon boshqaruvi bilan Internet radiosi bilan bog'liq. Bu, shuningdek, Node-RED tomonidan boshqariladigan bo'lgani uchun, hatto bir nechta tovush tizimiga ega bo'lish va ularni haydash uchun MQTT aloqasidan foydalanish mumkin.
Men "Node-Red" ni o'rganib chiqdim, shu jumladan elektron pochta xabarlarini yuborish va ovozli ogohlantirishlar. Shuningdek, tizim sizning kirishingiz/chiqishingizni mobil telefoningizning IP -manzilini ping orqali aniqlash imkoniyatiga ega. Node -Red shuningdek, ob -havo va yangiliklarga kirishi mumkin - shuning uchun siz ma'lumotlarni qo'shishingiz va avtomatlashtirishingiz mumkin.
O'rganish kerak bo'lgan bir nechta fokuslar bor, lekin ular ikkinchi marta osonlikcha o'lib ketishadi.
Yana bir xiyobon - asboblar panelini ko'rsatish uchun pi ga displey qo'shish. Bu "bajarilayotgan ish" yoki boshqacha aytganda men juda baxtli emasman. Men olgan displeyni portret rejimiga o'tkazish qiyin va Chromium brauzeri juda sekin. Boshqa variant - ebaydan eski planshetni olib, undan foydalanish. Men Pi 2 bilan sinab ko'rsam bo'ladi va bu etarli darajada yaxshilanishni ta'minlay oladimi (bu rivojlanish uchun B modeli ishlatiladi).
Umid qilamanki, bu sizning tasavvuringizni ishga soladi. Potentsial doirasi juda katta. Agar kerak bo'lsa, boshqa sensorlar uchun Sonoff kodini o'zgartirish mumkin.
Umuman olganda, men bu tizim nima qila olishidan hayron bo'ldim. Mening asl maqsadim - mustaqil tizim orqali smartfonni ishonchli tarzda almashtirish. Menda serverlar va mijozlarni boshqarish va foydalanuvchi interfeysi uchun html yozish kerakligi haqidagi tasavvurlar paydo bo'ldi. Bu erda hamma narsa ancha oldinda, yanada yuqori xavfsizlik, mukammal ishonchlilik, ajoyib foydalanuvchi interfeysi, dasturlarni tortib olib tashlash va kengaytirish uchun katta imkoniyatlar. Va bularning barchasi juda kam harakat bilan.
Mayk
9 -qadam: Qo'shimcha - Raspbian Stretch Lite -dan yuklash
Bu variant Raspbian Stretch -ning to'liq versiyasi bilan ta'minlangan dasturiy ta'minotni oldini oladi. Uyni avtomatlashtirish uchun Pi ishlatilganda buning ko'p qismi kerak bo'lmaydi. Biroq, Node-Red o'rnatilishi kerak.
Birinchi bosqichda bo'lgani kabi davom eting, lekin Raspbian Stretch o'rniga Raspbian Stretch Lite -dan foydalaning.
2 -qadam o'rniga quyidagilarni bajaring:
sudo apt -y npm ni o'rnating
npm -v qaytishi kerak: 1.4.21 yoki undan keyingi
sudo npm o'rnatish -g n
sudo n 8.9.0
Endi biz "Node-Red" ni o'rnatish uchun tugun paket menejeridan foydalanishimiz mumkin:
sudo npm node-red --global --unsafe-perm ni o'rnating
Bu noto'g'ri manzil tufayli bir nechta xato xabarlarini beradi. Ammo tizim bu muammoni hal qilish uchun "manba kompilyatori" ni bajaradi. Agar siz yuqoridagi ko'rsatmani takrorlasangiz (kerak emas), xatolar bo'lmaydi.
Endi bizda Node-Red va uni qo'llab-quvvatlovchi paketlar o'rnatilgan va chivinni yuklash bilan 3-bosqichga o'tishimiz mumkin.
Simsiz tanlovda ikkinchi o'rinni egalladi