Mundarija:
- 1 -qadam: Termostat qanday ishlaydi
- 2 -qadam: Sonoff -ning asosiy tayyorligi
- 3 -qadam: NodeRED
- 4 -qadam: Xulosa
Video: Eski termostatni NEST: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Uyimdagi isitish tizimi, ehtimol, uyning o'zi kabi eski. Bu taxminan 30 yoshda, bu uy yillari jihatidan juda yaxshi, lekin texnologiya nuqtai nazaridan muzlik davrida qolib ketgan. Tijorat echimlari bilan bog'liq ikkita asosiy muammo bor:
- taqiqlangan narx
- mahsulot xizmat sifatida
Biz hammamiz Revolv bilan nima bo'lganini eslaymiz va men buni qish o'rtalarida men bilan bo'lishini xohlamayman. Shuni yodda tutgan holda, men sizga sizning eski termostatingiz uchun shubhali ko'rinadigan, lekin funktsional NEST-Alike kabi boshqaruvchini taqdim etaman. Xavotir olmang, men yaqinda qo'shiladigan juda yaxshi korpusni rejalashtiryapman!
Xususiyatlari:
- mavjud termostatni ishlatish qobiliyati (agar xotini bu haqda yig'lasa)
- masofadan kirish
- AWAY rejimi
- optimal harorat ko'rsatkichi
- Alexa bilan ishlaydi
Tez orada (yangilanishlar uchun bu erga qarang)
- Google uyi
- Google taqvimi
- Ko'p sensorlar
- Radiator boshqaruv elementlari
- IFTT integratsiyasi
- Taskerni qo'llab -quvvatlash
- HTTP so'rovlari
- Juda yaxshi ko'rinadigan korpus
1 -qadam: Termostat qanday ishlaydi
Termostat, ehtimol, yuqori kuchlanishga ulangan! O'chirish o'chirilganligiga ishonch hosil qilmaguningizcha hech narsa qilishga urinmang. Siz o'zingizga zarar etkazishingiz va ulangan uskunaga zarar etkazishingiz mumkin. Xavfsizligingizni ta'minlash uchun malakali elektrchi bilan maslahatlashishni o'ylab ko'ring
Honeywell termostati - bu devorga o'rnatilgan, elektr tarmog'idan quvvat oluvchi (Sonoff asoslari min 90V, mening zanjirim 230V). Quti asosiy boshqaruv blokiga ulangan (bu yanada rivojlangan quti) va harorat maqsadli darajadan pastga tushganda signal yuboradi. Sizning qurilmangiz boshqacha bo'lishi mumkin bo'lsa -da, ehtimol, printsip bir xil. Agar sizda 3 ta sim bo'lsa va devorga o'rnatilgan birlik o'rtasida radio aloqasi bo'lmasa-bu siz uchun qo'llanma.
Men 3-simli termostatlar qanday ishlashini bilaman, bu tasodifan 2 simni qisqartirib sug'urta puflashimga to'sqinlik qilmadi! Menda qurilmaga ulangan 3 ta sim bor (4 -chi yer). Mening Honeywell termostatim simsiz emas, shuning uchun signalni o'zgartirish uchun Sonoff Basic -dan foydalanishim mumkin. Uni ajratish va signal qanday qurilmaga yuborilishini ko'rish vaqti keldi, yaqinroq tekshirilganda, terminal quyidagicha ulanadi:
- (ko'k) - er
- (sariq) - signal, yuqori tortilganda isitish yoqiladi
- ishlatilmayapti
- (qizil) - signalni baland tortish uchun ishlatiladigan jonli sim
Maqsadimga erishish uchun, men isitgich yoqilishini xohlaganimda, uzatish simini uzib qo'yaman. Agar sizda xuddi shunday ulangan termostat bo'lsa, omadingiz bor, chunki Sonoff Basic bu hiylani bajarish uchun etarli bo'ladi.
2 -qadam: Sonoff -ning asosiy tayyorligi
Simlarni ulashni boshlashdan oldin, biz harorat sensori (DHT11) qo'shishimiz kerak. Tasmota dasturiy ta'minoti Sonoff qurilmangizda yonib ketganligiga ishonch hosil qiling (menda bu erda ajoyib miltillovchi ko'rsatma bor) va Tasmota-ni yoqadigan Sonoff to'g'ri sozlangan (men ham allaqachon o'z ichiga olganman). Endi DHT11 sensorini Sonoff -ga ulash va uni harorat hisoboti uchun sozlash kifoya.
DHT11 simli 3 ta pin bilan birga keladi: Signal - GPIO14Vcc - 3.3VGND - GND
Men teshik ochdim, hozir qanday ko'rinayotgani meni bezovta qilmaydi, menga kontseptsiya va tasdiqning isboti kerak. Men 3D -printerim kelganidan keyin chiroyli va yorqin korpus yasayman. Men Sonoffni qanday ulashimga alohida e'tibor qaratdim, chunki jonli sim Sonoff qurilmasining boshqa uchidagi signal simiga ulanganligiga ishonch hosil qilishim kerak. Honeywell qurilmasida yuk qarshiligi (R) o'rnatilgan bo'lib, u oqimni cheklaydi. O'chirish 3A sug'urta bilan himoyalangan bo'lsa -da, qo'shimcha himoya qilish uchun bir xil qarshilikka mos kelish aqlli. Simlar tayyor bo'lgandan so'ng, asosiy quvvatni o'chirish va Sonoff -ni qayta ulash vaqti keldi.
Sonoff Tasmota - Honeywell termostati
INPUT Live - 4 -terminal Live
INPUT GND - 1 -terminal GND
Chiqish signali - 2 -terminalli signal
Men bundan oldin aytganman, hozircha men uning tashqi ko'rinishi haqida o'ylamayman. Xotin ishonch hosil qildi va men uning funktsional imkoniyatlariga e'tibor qaratishim va yuzaga keladigan xatolarni tozalashim mumkin. Yaxshi narsa shundaki, asl termostat hali ham ishlaydi. Agar men uni yoqsam, u Sonoff Tasmota -ga asoslanganini bekor qiladi. Bu har qanday kutilmagan hodisalar uchun ajoyib zaxira bo'lishi kerak.
3 -qadam: NodeRED
E'tibor bering, videoda eski NodeRed havolalari bo'lishi mumkin, men dizaynni takomillashtirish ustida doimiy ishlayapman. Bu kichik o'zgarishlar va maqola fayllari yangilanadi
Men bu dizaynni Internetda uchratdim. Bu juda zo'r ko'rinadi, lekin vidjet NodeRED uchun mos emas. O'rnatish uchun 5 ta yuk kerak bo'ladi, bu tugun dizayni bilan bir xil emas. Vidjetni yangilash va uning ishlashini ta'minlash uchun barcha ma'lumotlarni uzatishning eng yaxshi usulini aniqlash uchun menga biroz vaqt kerak bo'ldi. Ishonchim komilki, vaqt o'tishi bilan men dizaynga ko'proq vaqt sarflayman, shuning uchun barcha kerakli yangilanishlarni bitta msg obyekti bilan bosishim mumkin. Hozircha, bu shunday.
Harorat oqimi
DHT11 har X soniyada NodeRED serveriga xabar beradi. Men bu chastotani Tasmota konsoli orqali oshirdim. Chastotani soniyada o'rnatish uchun buyruqni bajaring:
TelePeriod Telemetriya davrini 10 dan 3600 sekundgacha belgilang
Bu asosan testlar uchun amalga oshiriladi, chunki men xatolarni tuzatish ishlaganmi yoki yo'qligini bilish uchun bir necha daqiqa kutishni xohlamayman. Chastotani yuqori darajada ushlab turish isitishning qisqa vaqt ichida tez -tez yonib ketishiga olib keladi, shuning uchun uni sinovdan tashqari 10 sekundga qo'yishdan saqlaning. MQTT tuguni ma'lumotlarni quyidagilardan oladi:
sonoff/tele/SENSOR
va eng foydali ma'lumotlarni quyidagi ob'ektlarda saqlaydi:
msg.payload. DHT11. Harorat msg.payload. DHT11. Havlik
Xatolarni cheklash uchun men natijalarni o'rtacha qilish uchun silliq tugunni qo'shdim va oqim o'zgaruvchisini yangiladim: NodeRED:
Funktsiya tuguni - "TempAmbient" ni yangilang
flow.set ('TempAmbient', msg.payload. DHT11. Temperature); xabarni qaytarish;
Vidjetni yangilash
Men 5 soniya - bu yaxshi yangilanish tezligi deb qaror qildim, shuning uchun men kerakli chastotani shu chastotada bosaman. Faqat istisno - bu aniq sabablarga ko'ra darhol javob beradigan slayder.
Har bir mos keladigan tugun belgilangan yuklangan yukni uyga o'xshash vidjetga yuboradi.
- rang (isitish | sovutish*| o'chirilgan va hvac_state)
- barg (rost | noto'g'ri va has_leaf)
- uzoqda (rost | yolg'on va uzoq)
- Atrof muhit harorati (raqam va muhit harorati)
- Nishon harorati (raqam va maqsad_temperaturasi)
*ishlatilmayapti
NodeRED: funktsiya tuguni - vidjetni yangilash
rang
x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // atrof -muhit
agar (z = x) {
flow.set ("isitishState", "o'chirilgan"); flow.set ('isitishSwitch', "O'chirilgan"); } msg.to'lov = z; msg.topic = "muhit_temperaturasi"; xabarni qaytarish;
barg
x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('barg', true); msg.payload = rost; msg.topic = "has_leaf"; xabarni qaytarish; } else {flow.set ('barg', false); msg.payload = noto'g'ri; msg.topic = "has_leaf"; xabarni qaytarish; }
Rangni bekor qilish
x = flow.get ("uzoqda"); agar (x === rost) {msg.topic = "hvac_state"; msg.payload = "o'chirilgan"; xabarni qaytarish; }
msg.topic = "hvac_state";
msg.payload = flow.get ('isitishState');
xabarni qaytarish;
Uzoqda
x = flow.get ("uzoqda"); if (x === rost) {flow.set ('heatSwitch', "OFF"); flow.set ("isitishState", "o'chirilgan"); }
msg.topic = "uzoqda";
msg.payload = flow.get ("uzoqda"); xabarni qaytarish;
Maqsad harorati
agar (msg.topic === "yangilash") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); xabarni qaytarish; }
agar (msg.command === "SetTargetTemperatureRequest") {
flow.set ("uzoqda", noto'g'ri); msg.topic = "target_temperature"; flow.set ('TempTarget', xabarlar to'lovi); }
agar (msg.topic === "slayder") {
flow.set ("uzoqda", noto'g'ri); msg.topic = "target_temperature"; flow.set ('TempTarget', xabarlar to'lovi); }
agar (msg.command === "GetTemperatureReadingRequest") {}
xabarni qaytarish;
Ko'rib turganingizdek, men oqim o'zgaruvchilarini tanladim, shuning uchun har qanday vaqtda qiymatni eslab qolishim mumkin edi. Menda barcha saqlangan qiymatlarni o'qiy oladigan disk raskadrovka oqimi bor.
- "TempAmbinet" - joriy haroratni saqlaydi
- "TempTarget" - maqsadli maqsad qiymatini ushlab turadi
- "Barg" - agar kerak bo'lsa, bargni ko'rsatadi
- "Uzoqda" - agar kerak bo'lsa, chiqish holatini ko'rsatadi
- 'IsitishState' - displey rangini o'zgartiradi
- 'HeatSwitch' - o'rni holatini nazorat qiladi.
Ma'lumotni "yangilash" va boshqa vositalar orqali so'ralganda (Alexa va boshqalar) yangilanganligiga ishonch hosil qilish qiyin edi. Shuning uchun siz JavaScript -da turli xil shartlarni ko'rasiz. Har safar qiymatlar yangilanib, oqim o'zgaruvchisiga yuboriladi va vidjet yangilanadi.
Slayder
Sinov shuni ko'rsatdiki, qo'shimcha slayderni yangilash kerak (slayder maqsadli haroratni oshiradi). Slayder yukni (raqamni) "slayder" bilan bog'liq mavzu bilan, u ko'chirilganda yuboradi. Buning ustiga, agar bir nechta veb -interfeyslar mavjud bo'lsa, slayder to'g'ri holatga o'tishini xohlayman. Buning uchun har 5 soniyada men slayder o'rnini joriy maqsadli haroratga yangilayman.
NodeRED: funktsional tugun - slayderni yangilash
msg.payload = flow.get ('TempTarget'); xabarni qaytarish;
O'rnimizni boshqarish
O'rnimizni boshqaruvchisi oddiy, unga ikkita kirish kerak (hozircha). Alexa rost | yolg'on va "isitish tugmasi" oqim o'zgaruvchisining yangilanishidan keyingi o'zaro ta'sir. Zudlik bilan harakat qilishning hojati yo'q, shuning uchun soddaligi uchun u qolgan 5 sekundlik yangilanish chastotasida ishlaydi.
O'rnimizni MQTT orqali ulanadi. Tugun mavzuga ON | OFF buyruqlarini joylashtirmoqda:
sonoff/cmnd/POWER1
Funktsiya tuguni Alexa -dan true | false -ni qabul qiladi, shuningdek, "heatSwitch" oqim o'zgaruvchisiga ko'ra kirish holatini o'zgartiradi.
NodeRED: Funktsional tugun - boshqaruv rölesi
if (msg.command === "TurnOffRequest") {msg.payload = "O'chirilgan"; xabarni qaytarish; }
agar (msg.command === "TurnOnRequest") {
msg.payload = "ON"; flow.set ('TempTarget', 21); xabarni qaytarish; } agar (msg.topic === "yangilash") {msg.payload = flow.get ('isitishSwitch'); } xabarni qaytarish;
Alexa integratsiyasi
Bu men "avtomatik aniqlash" ni o'chirib qo'ygan birinchi qurilma. Javobni avtomatik ravishda qabul qilishning o'rniga, men belgilangan haroratni so'rash imkoniyatiga ega bo'lishni xohlayman. Asosan, msg.payload = true | false so'rov muvaffaqiyatli bajarilganligini ko'rsatadi, qolganini esa shu erda topilgan andozalar bajaradi. Agar siz Alexa va NodeRed -da yangi bo'lsangiz, buni albatta o'qing.
Hammasini biroz yaxshiroq nazorat qilish uchun, men bu bildirishnomalarni alohida topshirishga qaror qildim (bu eng yaxshi usul emas). To'g'ri, har bir javob buyruq zanjiri oxirida berilishi kerak. Meniki, agar bu sodir bo'lsa, xatolarni qaytarmaslik xavfi bor. E'tibor bering, izchil bo'lishi uchun men faqat o'zgaruvchilarni yangilayman, yangilash tsikli esa yangi qiymatlarni vidjetga o'tkazadi.
NodeRED: funktsional tugun - Alexa javoblarini qayta ishlash
// Termostatni maqsadli harorati nima (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"qiymati": x}, "applianceResponseTimestamp": yangi sana (). toISOString ()}; msg.payload = rost; xabarni qaytarish; } // Haroratni (10 dan past bo'lmagan yoki 30 dan oshmagan) qilib belgilang, agar (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = noto'g'ri; msg.extra = diapazon; } boshqa {msg.extra = {targetTemperature: {qiymat: msg.payload}}; msg.payload = rost; } xabarni qaytarish; } // Uni yoqing, agar (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ("uzoqda", noto'g'ri); flow.set ('TempTarget', 21); xabarni qaytarish; } // Uni o'chiring, agar (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ("uzoqda", rost); xabarni qaytarish;
4 -qadam: Xulosa
Agar siz NodeRED boshqaruv panelini WAN -ga qo'yib qo'ysangiz, butun isitish tizimini masofadan boshqarish mumkin. NodeRED va NodeRED xavfsizligi bilan ishlashni tezlashtirish uchun quyidagi maqolalarni o'qishni tavsiya qilaman.
- Yangi boshlanuvchilar uchun NodeRED
- NodeRED xavfsizligi
Bundan tashqari, agar siz ushbu loyihaning yangilanishlari haqida ma'lumotga ega bo'lishni istasangiz - meni tanlagan platformada kuzatib boring:
- Facebo ok
- Ikki marta
- Siz bo'lasiz
Va agar siz menga qahva sotib olmoqchi bo'lsangiz yoki meni doimiy ravishda qo'llab -quvvatlamoqchi bo'lsangiz:
- Paypal
- Patreon
Umid qilamanki, sizga loyiha yoqdi!
Tavsiya:
O'zingiz ulangan termostatni ulang va isitish bilan tejang: 53 qadam (rasmlar bilan)
O'zingiz ulangan termostatni ulang va isitish bilan tejang: maqsad nima? Uyingizni xohlaganingizcha isitish orqali farovonlikni oshiring. Uyni faqat kerak bo'lganda isitish orqali tejang va issiqxona gazlari chiqindilarini kamaytiring Qaerda bo'lsangiz ham, isitishni nazorat qilib turing
Eski USB kabeli bilan quvvat bering: 4 qadam (rasmlar bilan)
Eski USB kabeli bilan quvvat bering: Qiyinchilik: e s y .. Simlarni kesish va ulash Menga USB kabelidan foydalanmasdan Arduino kartamni quvvat bilan ta'minlash usuli kerak edi, chunki u juda kam edi
HestiaPi Touch - Smart Termostatni ochish: 9 qadam (rasmlar bilan)
HestiaPi Touch - Smart Termostatni oching: HestiaPi Touch haqida HestiaPi Touch - bu sizning uyingiz uchun mutlaqo ochiq manbali aqlli termostat. Barcha raqamli fayllar va ma'lumotlar quyida va bizning asosiy veb -saytimizda mavjud.U bilan siz uyingizning harorati, nisbiy namligi va atmosferani kuzatishingiz mumkin
Issiqlik almashinuvi foniyining termostatni boshqaruvi: 7 qadam (rasmlar bilan)
Issiqlik almashinuvi fanatining termostatni boshqaruvi: Hammaga salom, bu yo'riqnomada men sizga arzon termostat moduli yordamida issiqlik almashinuvi fanatini qanday avtomatlashtirishni ko'rsataman. Ogohlantirish: bu loyiha tarmoqdagi kuchlanishni ishlatadi va uni to'g'ri boshqarish kerak. Men nima qilayotganingizga amin emasman, urinmang
Kodi bilan eski televizor atrof -muhit LED yoritgichi: 7 qadam (rasmlar bilan)
Kodi bilan eski televizor atrof -muhit LED yoritgichi: Bu kam byudjetli muhit nuri haqida. Men Banana pi -ni Kodi uchun ishlataman, chunki u tezroq, lekin siz uni Raspberry pi -ga o'rnatishingiz mumkin