Mündəricat:

OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!): 3 Addım
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!): 3 Addım

Video: OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!): 3 Addım

Video: OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!): 3 Addım
Video: Простой Умный Дом На ESP8266. Часть 1 - Обзор Проекта 2024, Noyabr
Anonim
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)
OpenHAB -a ESP8266 ilə HRV İstiliyi (Seriya Kodu Nümunəsi!)

HRV - OpenHAB üçün simsiz

Bu təlimat xüsusi olaraq HRV (isitmə resirkulyasiya ventilyasiyası) sisteminə sahib olanlar üçündür - dövrə lövhəsinin, açıq konfiqurasiyanın və ya Arduino kodunun hissələri (məsələn, TTL serial məlumatlarını oxumaq kimi) öz layihələriniz üçün faydalı ola bilər və ya öyrənmək üçün yaxşı xidmət edə bilər. Arduino IDE və ESP8266 çipinin nə olduğunu yaxşı başa düşdüyünüzü güman edir.

Giriş

Aşağıda, HRV sisteminə qoşulan və OpenHAB -a MQTT mesajları vasitəsilə dam və ev temperaturu, idarəetmə paneli temperaturu və fan sürətini göndərən bir ESP8266 qurmağın yolları təsvir edilmişdir. Bu, bir ESP8266-01 lövhəsi ilə işləmək üçün hazırlanmışdır (hər hansı bir ESP8266 3.3V versiyası ilə işləməli olsa da) Alternativ bir satıcıdan oxşar HRV tipli bir sisteminiz varsa, məlumatların TTL seriyası olaraq göndərilib göndərilmədiyini və əgər varsa, məlumatlar hansı quruluş kimi göndərilir.

OpenHAB və Mosquitto

ESP8266 kodu xüsusi olaraq OpenHAB (açıq mənbəli ev avtomatlaşdırma proqramı) və Mosquitto kimi bir MQTT brokeri ilə işləmək üçün yazılmışdır (yüngül və cihazlar arasında ünsiyyət üçün əlverişli bir mesajlaşma abunə olmaq/yayımlamaq növü protokolu) qısaltmalar sizi qorxudur, necə işlədiyini öyrəndikdən sonra istifadə etmək olduqca sadədir. OpenHAB -ı NTC C. H. I. P -də (9 ABŞ dolları) kompüterdə istifadə edirəm, lakin bir çox insan Raspberry Pi və ya bənzərini istifadə edir. Bu təlimatda OpenHAB tətbiq etdiyiniz güman edilir (OpenHAB qurmaqda kömək lazımdırsa, web saytının makeuseof -dan bu əla məqaləni izləyin) Mosquitto (MQTT broker) və əlaqəli OpenHAB bağlamasını da yükləməli və quraşdırmalısınız. Bunu şəbəkənizin başqa bir yerində quraşdıra bilərsiniz, lakin əksər insanlar bunu sadə saxlamaq üçün OpenHAB ilə eyni maşına quraşdırırlar.

Mosquitto qurmaq üçün bu linkə daxil olaraq istifadə etdiyiniz cihazın növünü seçin və təlimatları izləyin. C. H. I. P Debian (Jessie) işlədiyinə görə, Ev Otomasyon cihazınız üçün C. H. I. P istifadə edirsinizsə, Raspberry Pi təlimatlarına əməl edə bilərsiniz (həmçinin unutmayın ki, CLI -dən yükləmək üçün CHIP -i yenidən konfiqurasiya etmək daha yaxşıdır. Bunun üçün təlimatlar var burada)

OpenHAB və Mosquitto işlədikdən sonra Arduino IDE -ni ESP8266 və kod üçün hazırlamalısınız. Əvvəlcə "PubSubClient" kitabxanasını əlavə etməlisiniz. Arduino IDE -də, menyudan Sketch, Kitabxanaya Daxil Edin, Kitabxanaları İdarə Edin Süzgəc axtarış qutusuna PubSubClient yazın, sonra axtarış nəticəsini vurğulayın və Quraşdırmaq üçün vurun (yazı zamanı ən son versiya 2.6.0) ESP8266 lövhəsini Arduino IDE -ə əlavə etməlisiniz ki, buradakı təlimatları izləyə bilərsiniz

Bu mənə nə verir?

Daha əvvəl də qeyd edildiyi kimi, bu layihə, HRV idarəetmə panelinizin damını, evinizi, idarəetmə panelinin temperaturlarını və fan sürətini OpenHAB GUI -də (real vaxtda!) Görüntüləməyə imkan verəcəkdir. Fərqli temperaturda qazma ilə əldə ediləcək.

Qrafikləri əldə etmək üçün RRD4J bağlayıcısını da quraşdırmalı və konfiqurasiya etməlisiniz (bu çox düzdür) Bu, 'Ev' və ya 'Dam' düyməsini basmağa və keçmişdə hər biri üçün HRV temperatur tarixçəsi əldə etməyə imkan verəcəkdir. saat, gün və ya həftə (və ya daha uzun, uyğun olaraq konfiqurasiyanı dəyişdirsəniz) Göstərilən şəkillər celsiusdadır və bunu edərkən cənub yarımkürəsində qışı aydındır!

Əlavə olaraq, 'Nəzarət et' seçiminə (şəkil qrafiki göstərir.) evin, damın və çöl istiliyinin hesablanması). Lazım olduqda istilik cihazlarını açmaq üçün bu məlumatları qaydalarda istifadə etməyi planlaşdırıram. Sadəcə hava xəritəsini sayt xəritəsindəki Şəkil URL'nizə əlavə edin və bunu eyni qrafikə daxil edin (məsələn:… items = houseTemp, roofTemp, weatherTemp …)

Addım 1: Lazım olan hissələr / Montaj

Ehtiyac duyulan hissələr / montaj
Ehtiyac duyulan hissələr / montaj
Ehtiyac duyulan hissələr / montaj
Ehtiyac duyulan hissələr / montaj
Ehtiyac duyulan hissələr / montaj
Ehtiyac duyulan hissələr / montaj

Aşağıdakı hissələrə ehtiyacınız olacaq

  • Bir RJ11 ayırıcı (bu, damdakı nəzarətçidən gələn siqnalı idarəetmə panelinə və ESP8266 -ya bölür)
  • Bəzi lent kabeli və RJ11 fişi (splitterdən ESP8266 -a qədər telləri çəkmək üçün)
  • ESP8266-01 (digər 3.3V versiyaları işləməlidir)
  • TTL məntiq səviyyəsi çeviricisi (məlumatları 5V -> 3.3V arasında dəyişmək üçün)
  • AMS1117 3.3V gərginlik tənzimləyicisi (və ya bənzəri, gərginliyi HRV 5V -> 3.3V -dən ESP8266 gücünə dəyişdirmək üçün)
  • 1N5817 schottky diod (nədənsə bu, HRV idarəetmə panelinin ESP gücünün yenidən qurulmasını dayandırmağa kömək etdi)
  • 10K ohm müqavimət (3.3 Voltaj Regülatörü ilə ESP CH_PD arasındakı çəkmə müqaviməti)
  • 10V 10uF kondansatör (və ya bənzəri, HRV -dən gələn enerjini hamarlaşdırmaq və sabitləşdirmək üçün)
  • 10V 1uF kondansatör (və ya bənzəri, ESP -ə gedən gücü hamarlaşdırmaq və sabitləşdirmək üçün)
  • ESP -ni proqramlaşdırmaq üçün isteğe bağlı sürüşmə düyməsi (əks halda, proqram üçün GPIO0 -u GND -ə əl ilə çəkmək lazımdır)
  • FTDI adapteri (ESP -ni proqramlaşdırmaq üçün USB -ni seriyaya çevirir)

Sxemaya uyğun olaraq yığın

Çörək taxtasının şəkli hissələrin necə yığılması lazım olduğunu göstərir. Diqqət yetirin ki, tavandakı HRV nəzarət qurğusundan lent kabelindən aşağı enən 6 sancaq var:

1 və 6 -cı pinlər 5V VCC -dir

2 və 5 -ci pinlər GND -dir

3 və 4 pinlər Məlumatdır.

Yalnız 1, 2, 3 və 6 sancaqlar istifadə etməlisiniz (1 və 6 VCC gücləri ESP8266 və TTL məntiq çeviricisinin yüksək tərəfi, 2 ortaq bir yerdir və 3 TTL serial məlumatlarını oxumaq üçündür)

Ehtiyacınız olan ayırıcı yalnız bir RJ11 ayırıcı olacaq, sadəcə sancaqların düz olduğu bir ayırıcı olduğundan əmin olun (məsələn: pin 1 pin 1 -ə, pin 2 pin 2 -yə və s.) Əlavə dişi sancaqlar (kimi şəkillərdə göstərilmişdir) daha sonra ESP -ni yenidən proqramlaşdırmaq üçün FTDI -ni bağlamaq üçündür və göstərilən keçid onu "proqramlaşdırma" rejiminə keçir. Bunlar isteğe bağlıdır, lakin tövsiyə olunur (məsələn: WiFi şifrənizi dəyişdirsəniz, WiFi AP və şifrə ESP8266 qurulduqdan sonra yükləməyiniz lazım olan kodda proqramlaşdırılmışdır)

Addım 2: Kod Yükləmə və Test

Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir
Kod yüklənir və test edilir

Kod Dəyişiklikləri

Arduino koduna alternativ yükləmə linki BURADA

Arduino IDE -də açın, ESP lövhəsinin, habelə PubSubClient -in quraşdırıldığından və ESP8266 lövhəsini seçdiyinizə əmin olun (Alətlər, Kart, Ümumi ESP8266 Kartı) Kodu redaktə edin və WiFi AP adını, şifrəsini və IP ünvanını dəyişdirin. MQTT brokeriniz (bunlar dəyişdirməyiniz lazım olan tək şeydir) aşağıda göstərildiyi kimi. Tamamlandığını təmin etmək üçün 'Doğrula' düyməsini vurun, sonra düzgün COM portunun seçildiyini (Alətlər, Port) əmin olun və kodu ESP8266 -ya yükləyin. Bunun necə ediləcəyinə dair bir çox məqalə var, burada təkəri yenidən kəşf etməyəcəyəm.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* parol = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);

MQTT Testi

Test etmək üçün FTDI adapterinizi bağlı vəziyyətdə saxlaya və Arduino IDE -də Serial Monitoru aça bilərsiniz, konsoldakı temperatur məlumatlarını çap edən mesajları görməlisiniz. ESP8266 -dan MQTT brokerinizə gələn MQTT mesajlarının problemlərini həll etməlisinizsə, Mosquitto serverində daxil olan mesajlara abunə olmaq üçün aşağıdakı əmrlərdən birini işlədin:

mosquitto_sub -d -t openhab/hrv/status

ESP8266 -dan hər 30 saniyədə bir "1" ("mən sağam" deməkdir) ilə gələn GƏLİB NƏŞƏR mesajlarını görməlisiniz. Daimi "0" lar (və ya heç nə) görsəniz, heç bir əlaqə yoxdur. 1 nömrəsinin gəldiyini gördükdə, bu, ESP8266 -nın MQTT brokeri ilə əlaqə qurduğu deməkdir (bunun necə işlədiyinə dair daha çox məlumat üçün "MQTT Son İstək və vəsiyyət" də axtarın və ya həqiqətən yaxşı bir blog girişinə baxın).

İndi temperatur və fan sürəti məlumatlarını izləyə bilərsiniz, aşağıdakılardan birinə abunə olun. Ancaq unutmayın ki, kod yalnız temperatur məlumatlarını hər hansı bir məlumat dəyişdikdə göndərir. Göndərilən son temperaturu, fan sürətini və s. Məlumatları izləyir, buna görə dərhal gələn məlumatları görə bilməzsiniz.

mosquitto_sub -d -t openhab/hrv/dam örtüyü

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

İpucu: yuxarıdakı idarəetmə panelinin istiliyinə abunə olun, sonra idarəetmə panelinin özündə olan temperatur düyməsini basıb yeni temperaturun gəldiyini görəcəksiniz.

Lehimləməyə başladığınız zaman, 3 sm x 7 sm ölçülü bir PCB, HRV İdarəetmə Panelinin arxasındakı boşluq qutusuna yaxşı uyğun gəlir. Metal bir qutu Wifi siqnallarına müdaxilə edə biləcəyi və ya PCB lövhəsindəki əlaqələri kəsə biləcəyi üçün yalnız plastik bir yuva olduqda bunu etməyi məsləhət görürəm. Alternativ olaraq, lövhəni quraşdırmaq üçün plastik bir 3D qutu çap edə bilərsiniz.

Addım 3: OpenHAB dəyişiklikləri

OpenHAB Konfiqurasiyası

OpenHAB tələb olunan dəyişikliklər aşağıdakılardır:

'items' faylı:

/* HRVSayı hrvStatus "HRV Statusu [MAP (status.map):%d]" (gHRV) {mqtt = "<[mqttbroker: openhab/hrv/status: state: default]"} Number houseTemp "Evi [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/housetemp: state: default] "} Number houseTemp_Chart_Period" Chart Period "Number roofTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Nömrə damTemp_Chart_Period" Qrafik Dövr "Sayı nəzarətTemp" Nəzarət [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp: vəziyyət: standart] "} String fanSpeed" Fan Sürəti [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: vəziyyət: default] "}*//

'sayt xəritəsi' faylı:

Çərçivə etiketi = "HRV Temperaturu" {Mətn maddəsi = roofTemp {Çərçivə {Switch item = roofTemp_Chart_Period label = "Dövr" eşlemeleri = [0 = "Saat", 1 = "Gün", 2 = "Həftə"] Şəkil url = "https:// localhost: 8080/rrdchart-p.webp

OpenHAB üçün əlavə nişanlar daxildir (sağ klikləyin və şəkilləri qeyd edin)

Bu faylları OpenHAB serverinizin.. / OpenHAB Home / webapps / images qovluğunda saxlayın

Tövsiyə: