İçindekiler:

HRV Sıcaklığı ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!): 3 Adım
HRV Sıcaklığı ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!): 3 Adım

Video: HRV Sıcaklığı ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!): 3 Adım

Video: HRV Sıcaklığı ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!): 3 Adım
Video: HONDA Hibrit e: HEV HRV Çalışma Prensibi - HONDA Hybrid Working Principle 2024, Temmuz
Anonim
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)
HRV Sıcaklığı, ESP8266 Üzerinden OpenHAB'a (Seri Kod Örneği!)

HRV - OpenHAB'a Kablosuz

Bu talimat, özellikle bir HRV (ısıtma devridaim havalandırması) sistemine sahip olanlar içindir - devre kartının parçaları, openhab konfigürasyonu veya Arduino kodu (TTL seri verilerini okumak gibi) kendi projeleriniz için kullanışlı olabilir veya öğrenme için iyi hizmet edebilir. Arduino IDE ve bir ESP8266 yongasının ne olduğu hakkında makul bir bilgiye sahip olduğunuzu varsayar.

Tanıtım

Aşağıda, bir HRV sistemine bağlanan ve çatı ve ev sıcaklıklarını, kontrol paneli sıcaklığını ve fan hızını MQTT mesajları aracılığıyla OpenHAB'a gönderen bir ESP8266'nın nasıl oluşturulacağı ana hatlarıyla anlatılmaktadır. Bu, bir ESP8266-01 kartıyla çalışmak üzere tasarlanmıştır (her ne kadar herhangi bir ESP8266 3.3V sürümüyle çalışmalıdır) Alternatif bir satıcıdan benzer bir HRV tipi sisteminiz varsa, verilerin TTL seri olarak gönderilip gönderilmediğini ve gönderiliyorsa bunu belirlemeniz gerekir., verilerin hangi yapı olarak gönderildiği.

OpenHAB ve Sivrisinek

ESP8266 kodu, özellikle OpenHAB (açık kaynaklı ev otomasyon yazılımı) ve Mosquitto (cihazlar arasında iletişim için hafif ve harika bir mesajlaşma abone olma/yayınlama tipi protokol) gibi bir MQTT aracısı ile çalışmak üzere yazılmıştır. Kısaltmalar sizi korkutuyor, nasıl çalıştıklarını öğrendikten sonra kullanımı gerçekten çok basit. OpenHAB'ı bir NTC C. H. I. P (9 ABD Doları bilgisayar) üzerinde kullanıyorum, ancak birçok kişi Raspberry Pi veya benzerini kullanıyor. Bu öğretici, OpenHAB'ı uyguladığınızı varsayar (OpenHAB'ı kurmak için yardıma ihtiyacınız varsa, makeuseof web sitesindeki bu mükemmel makaleyi izleyin) Ayrıca Mosquitto (MQTT aracısı) ve ilgili OpenHAB bağlamasını indirmeniz ve yüklemeniz gerekir. Bunu ağınızda başka bir yere kurabilirsiniz, ancak çoğu kişi bunu basit tutmak için OpenHAB ile aynı makineye kurar.

Mosquitto'yu yüklemek için bu bağlantıyı takip ederek kullandığınız cihazın türünü seçin ve talimatları izleyin. C. H. I. P, Debian'ı (Jessie) çalıştırdığından, Ev Otomasyonu cihazınız için C. H. I. P kullanıyorsanız Raspberry Pi talimatlarını takip edebilirsiniz (ayrıca, en iyisinin CHIP'i CLI'den önyükleme yapacak şekilde yeniden yapılandırmak olduğunu unutmayın. Bunun için talimatlar burada bulunmaktadır)

OpenHAB ve Mosquitto'yu çalıştırdıktan sonra, Arduino IDE'yi ESP8266 ve kodu için hazırlamanız gerekir. İlk olarak, "PubSubClient" kitaplığını eklemeniz gerekir. Arduino IDE'de, menüden Sketch, Include Library, Manage Libraries'e gidin, filtre arama kutusuna PubSubClient yazın, ardından arama sonucunu vurgulayın ve Install'a tıklayın (yazma sırasında, en son sürüm 2.6.0'dır) Ayrıca buradaki talimatları izleyerek yapılabilecek ESP8266 kartını Arduino IDE'ye eklemeniz gerekir.

Bu bana ne veriyor?

Daha önce belirtildiği gibi, bu proje, HRV kontrol paneli çatınızı, evinizi, kontrol paneli sıcaklıklarınızı ve fan hızınızı OpenHAB GUI'de (gerçek zamanlı olarak!) görüntülemenizi sağlayacaktır. farklı sıcaklıklara inerek elde edecek.

Grafikleri almak için, RRD4J bağlamasını da kurmanız ve yapılandırmanız gerekecektir (bu çok basittir) Bu, 'Ev' veya 'Çatı' üzerine tıklamanıza ve her biri için geçmişteki HRV sıcaklıklarının bir geçmişini almanıza olanak tanır. saat, gün veya hafta (veya konfigürasyonu uygun şekilde değiştirirseniz daha uzun) Gösterilen resimler santigrat cinsindendir ve bunu yaptığımda güney yarımkürede kış olduğu açıktır!

Ek olarak, 'Kontrol' seçeneğine tıklayarak Dış sıcaklık (Hava durumu bağlama eklentisi tarafından sağlanan, benim durumumda Wunderground kullanılarak sağlanan) ile çatı ve ev sıcaklıkları arasında bir karşılaştırma gösteren bir OpenHAB görünümü oluşturdum (resim aşağıdaki grafiği gösterir) ev, çatı ve dış sıcaklık çizilir). Bu verileri, gerektiğinde ısıtma cihazlarını açmak için kurallarda kullanmayı planlıyorum. Hava Durumu öğesini site haritası dosyasındaki Resim URL'nize ekleyin ve bunu aynı grafiğe ekleyin (örneğin: …items=houseTemp, RoofTemp, weatherTemp…)

Adım 1: Gerekli Parçalar / Montaj

Gerekli Parçalar / Montaj
Gerekli Parçalar / Montaj
Gerekli Parçalar / Montaj
Gerekli Parçalar / Montaj
Gerekli Parçalar / Montaj
Gerekli Parçalar / Montaj

Aşağıdaki parçalara ihtiyacınız olacak

  • Bir RJ11 ayırıcı (bu, çatıdaki kontrolörden gelen sinyali kontrol paneline ve ESP8266'ya böler)
  • Bir miktar şerit kablo ve bir RJ11 fişi (ayırıcıdan ESP8266'ya kabloları çalıştırmak için)
  • ESP8266-01 (diğer 3.3V sürümleri çalışmalıdır)
  • TTL mantık seviyesi dönüştürücü (5V -> 3.3V arası verileri değiştirmek için)
  • AMS1117 3.3V voltaj regülatörü (veya benzeri, voltajı HRV 5V -> 3.3V'dan ESP8266'ya güç değiştirmek için)
  • 1N5817 schottky diyot (nedense bu, ESP gücü açıldığında HRV kontrol panelinin sıfırlanmasının durdurulmasına yardımcı oldu)
  • 10K ohm direnç (3.3 Voltaj Regülatörü ile ESP CH_PD arasında çekme direnci)
  • 10V 10uF kapasitör (veya HRV'den gelen gücü yumuşatmak ve stabilize etmek için benzeri)
  • 10V 1uF kapasitör (veya ESP'ye giden gücü yumuşatmak ve stabilize etmek için benzeri)
  • ESP'yi programlamak için isteğe bağlı kaydırma düğmesi (aksi takdirde, programlamak için GPIO0'ı GND'ye manuel olarak çekmeniz gerekir)
  • Bir FTDI adaptörü (ESP'yi programlamak için USB'yi seriye dönüştürür)

Şemaya göre birleştirin

Breadboard görüntüsü, parçaların nasıl monte edilmesi gerektiğini gösterir. Tavandaki HRV kontrol ünitesinden şerit kablodan aşağı inen 6 pim olduğunu unutmayın:

1 ve 6 numaralı pinler 5V VCC'dir

2 ve 5 numaralı pinler GND'dir

3 ve 4 numaralı pinler Veridir.

Yalnızca 1, 2, 3 ve 6 numaralı pinleri kullanmanız gerekir (1 ve 6 VCC, ESP8266'ya ve TTL mantık dönüştürücünün yüksek tarafına güç verir, 2 ortak bir zemindir ve 3, TTL seri verilerini okumak içindir)

İhtiyacınız olan ayırıcı sadece bir RJ11 ayırıcı olacaktır, pinlerin düz geçtiği bir ayırıcı olduğundan emin olun (örneğin: pin 1 pin 1'e, pin 2 pin 2'ye vb. gider) Ekstra dişi pinlerin (olduğu gibi) resimlerde gösterilenler), ESP'yi daha sonra yeniden programlamak için bir FTDI bağlamak içindir ve gösterilen anahtar onu "programlama" moduna geçirir. Bunlar isteğe bağlıdır, ancak önerilir (örneğin: WiFi AP ve şifre, ESP8266'nız oluşturulduktan sonra yüklemeniz gerekecek olan koda sabit programlanmış olduğundan WiFi şifrenizi değiştirirseniz)

2. Adım: Kodu Yükleme ve Test Etme

Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme
Kod Yükleme ve Test Etme

Kod Değişiklikleri

Arduino koduna alternatif indirme bağlantısı BURADA

Arduino IDE'de açın, PubSubClient'in yanı sıra ESP kartının da kurulu olduğundan ve ESP8266 kartını (Araçlar, Kart, Genel ESP8266 Kartı) seçtiğinizden emin olun Kodu düzenleyin ve WiFi AP adını ve şifresini ve IP adresini değiştirin. MQTT brokeriniz (bunlar değiştirmeniz gereken tek şey) aşağıda gösterildiği gibi. Derlendiğinden emin olmak için 'Doğrula' düğmesini tıklayın, ardından doğru COM bağlantı noktasının seçildiğinden emin olun (Araçlar, Bağlantı Noktası) ve kodu ESP8266'nıza yükleyin. Bunun nasıl yapılacağına dair birçok makale var, burada tekerleği yeniden icat etmeyeceğim.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* şifre = "your_wifi_password_here"; // MQTT Aracısı IPAdresi MQTT_SERVER(192, 168, 222, 254);

MQTT Testi

Test için FTDI adaptörünüzü bağlı bırakabilir ve Arduino IDE'de Seri Monitörü açabilirsiniz, konsolda sıcaklık bilgilerini yazdıran mesajlar görmelisiniz. ESP8266'dan MQTT aracınıza gelen MQTT mesajlarında sorun gidermeniz gerekiyorsa, gelen mesajlara abone olmak için Mosquitto sunucusunda aşağıdaki komutlardan birini çalıştırın:

mosquitto_sub -d -t openhab/hrv/status

Her 30 saniyede bir ESP8266'dan gelen PUBLISH mesajlarını "1" sayısıyla ("yaşıyorum" anlamına gelir) görmelisiniz. Sabit "0'lar" (veya hiç bir şey) görüyorsanız, iletişim yoktur. 1 numaranın geldiğini gördüğünüzde, ESP8266'nın MQTT komisyoncusu ile iletişim kurduğu anlamına gelir (bunun nasıl çalıştığı hakkında daha fazla bilgi için "MQTT Last Will and Testament"ı arayın veya bu gerçekten iyi blog girişine bakın)

Artık sıcaklık ve fan hızı verilerini takip edebilirsiniz, aşağıdakilerden birine abone olabilirsiniz. Ancak, kodun yalnızca herhangi bir veri değiştiğinde sıcaklık verilerini gönderdiğini unutmayın. Gönderilen son sıcaklık, fan hızı vb. verileri takip eder, bu nedenle hemen gelen bilgileri göremeyebilirsiniz.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

İpucu: Yukarıdaki kontrol paneli sıcaklığına abone olun, ardından kontrol panelindeki sıcaklık düğmesine basın, yeni sıcaklık ayarının geldiğini görmelisiniz.

Bunu lehimlemeye başladığınızda, 3cm x 7cm'lik bir PCB, HRV Kontrol Panelinin arkasındaki yıkama kutusuna güzelce oturur. Metal bir kutu Wifi sinyallerini engelleyebileceği veya muhtemelen PCB kartındaki bağlantıları kısa devre yapabileceği için bunu yalnızca plastik bir yıkama kutusu ise yapmanızı tavsiye ederim. Alternatif olarak, kartı monte etmek için plastik bir 3B kasa yazdırabilirsiniz.

3. Adım: OpenHAB Değişiklikleri

OpenHAB Yapılandırması

Gerekli OpenHAB değişiklikleri aşağıdaki gibidir:

'öğeler' dosyası:

/* HRVNumber hrvStatus "HRV Durumu [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Numara houseTemp "House [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Numara houseTemp_Chart_Period "Grafik Dönemi"Numara roofTemp "Çatı [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Number roofTemp_Chart_Period "Chart Period"Number controlTemp "Control [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Fan Speed [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

'site haritası' dosyası:

Frame label="HRV Temperature" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mappings=[0="Saat", 1="Gün", 2="Hafta"] Resim url="https://localhost:8080/rrdchart.png" yenileme=6000 görünürlük=[roofTemp_Chart_Period==0, çatıTemp_Chart_Period=="Başlatılmamış"] Resim url="https://localhost:8080/rrdchart.png" yenileme=30000 görünürlük= [roofTemp_Chart_Period==1] Resim url="https://localhost:8080/rrdchart.png" yenileme=30000 görünürlük=[roofTemp_Chart_Period==2] } } Metin öğesi=houseTemp { Çerçeve { Anahtar öğesi=houseTemp_Chart_Period etiketi="Period " mappings=[0="Saat", 1="Gün", 2="Hafta"] Resim url="https://localhost:8080/rrdchart.png" yenileme=6000 görünürlük=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Başlatılmamış"] Resim url="https://localhost:8080/rrdchart.png" yenileme=30000 görünürlük=[houseTemp_Chart_Period==1] Resim url="https://localhost:8080/rrdchart.png" yenileme =30000 görünürlük=[houseTemp_Chart_Period==2] } } Metin öğesi=controlTemp { Çerçeve { Öğeyi değiştir=Birleştir ed_Chart_Period label="Period" mappings=[0="Saat", 1="Gün", 2="Hafta"] Resim url="https://localhost:8080/rrdchart.png" yenileme=6000 görünürlük=[Combined_Chart_Period ==0, Combined_Chart_Period=="Başlatılmamış"] Resim url="https://localhost:8080/rrdchart.png" yenileme=30000 görünürlük=[Combined_Chart_Period==1] Resim url="https://localhost:8080/ rrdchart.png" yenileme=30000 görünürlük=[Combined_Chart_Period==2] } } Metin öğesi=fanSpeed }

OpenHAB için ekstra simgeler dahildir (sağ tıklayın ve görüntüleri kaydedin)

Bu dosyaları OpenHAB sunucunuzdaki..\OpenHAB Home\webapps\images klasörüne kaydedin

Önerilen: