Isi kandungan:

Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Bersiri!): 3 Langkah
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Bersiri!): 3 Langkah

Video: Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Bersiri!): 3 Langkah

Video: Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Bersiri!): 3 Langkah
Video: Гроуконтроллер 2024, Julai
Anonim
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kod Siri!)

HRV - Tanpa Wayar ke OpenHAB

Instruksional ini khusus untuk mereka yang mempunyai sistem HRV (pemanasan kitar semula pemanasan) - walaupun bahagian papan litar, konfigurasi openhab atau kod Arduino (seperti membaca data bersiri TTL) mungkin berguna untuk projek anda sendiri atau berfungsi dengan baik untuk pembelajaran. Ini semestinya anda mempunyai pengetahuan yang munasabah mengenai Arduino IDE dan apa itu cip ESP8266.

Pengenalan

Berikut ini menggariskan cara membina ESP8266 yang menghubungkan ke sistem HRV dan mengirimkan suhu bumbung dan rumah, suhu panel kawalan dan kelajuan kipas melalui mesej MQTT ke OpenHAB. Ini dirancang untuk berfungsi dengan papan ESP8266-01 (walaupun harus berfungsi dengan mana-mana versi 3.38 ESP8266) Sekiranya anda mempunyai sistem jenis HRV yang serupa dari vendor alternatif, anda perlu menentukan sama ada data dihantar sebagai siri TTL dan jika demikian, struktur data yang dihantar sebagai.

OpenHAB dan Mosquitto

Kod ESP8266 telah ditulis khusus untuk bekerja dengan OpenHAB (perisian automasi rumah sumber terbuka) dan broker MQTT seperti Mosquitto (protokol jenis langganan / penerbitan pesanan yang ringan dan bagus untuk komunikasi antara peranti) Jangan biarkan nama atau akronim menakutkan anda, mereka sangat mudah digunakan setelah anda mengetahui bagaimana ia berfungsi. Saya menggunakan OpenHAB pada NTC C. H. I. P (US $ 9 komputer) namun banyak orang menggunakan Raspberry Pi atau yang serupa. Tutorial ini menganggap anda telah melaksanakan OpenHAB (jika anda memerlukan bantuan untuk menyiapkan OpenHAB, ikuti artikel yang sangat baik ini dari laman web makeuseof) Anda juga perlu memuat turun dan memasang Mosquitto (broker MQTT) dan pengikatan OpenHAB yang berkaitan. Anda boleh memasangnya di tempat lain di rangkaian anda, namun kebanyakan orang hanya memasangnya di mesin yang sama dengan OpenHAB agar mudah.

Untuk memasang Mosquitto, ikuti pautan ini kemudian pilih jenis peranti yang anda gunakan dan ikuti arahannya. Kerana C. H. I. P menjalankan Debian (Jessie), anda boleh mengikuti arahan Raspberry Pi jika anda menggunakan C. H. I. P untuk peranti Automasi Rumah anda (juga perhatikan, yang terbaik untuk mengkonfigurasi ulang CHIP untuk boot dari CLI. Terdapat arahan untuk ini di sini)

Setelah OpenHAB dan Mosquitto berjalan, anda perlu menyiapkan Arduino IDE untuk ESP8266 dan kod. Pertama, anda perlu menambah perpustakaan "PubSubClient". Di Arduino IDE, dari menu pergi ke Sketch, Include Library, Manage Libraries Di kotak carian penapis, ketik PubSubClient kemudian sorot hasil carian dan klik untuk Pasang (pada masa penulisan, versi terbaru adalah 2.6.0) Anda akan juga perlu menambahkan papan ESP8266 ke Arduino IDE yang boleh dilakukan dengan mengikuti arahan di sini

Apa yang saya berikan ini?

Seperti yang dinyatakan sebelum ini, projek ini akan membolehkan anda melihat bumbung panel kawalan HRV, rumah, suhu panel kawalan dan kelajuan kipas anda di OpenHAB GUI (dalam masa nyata!) Gambar menunjukkan seperti apa dari iPhone saya, serta grafik yang anda akan melalui penggerudian ke suhu yang berbeza.

Untuk mendapatkan grafik, anda juga perlu memasang dan mengkonfigurasi pengikatan RRD4J (ini sangat lurus ke hadapan) Ini akan membolehkan anda mengklik sama ada 'House' atau 'Roof' dan mendapatkan sejarah suhu HRV untuk masing-masing selama ini jam, hari atau minggu (atau lebih lama, jika anda mengubah konfigurasi agar sesuai) Gambar yang ditunjukkan adalah dalam celcius, dan jelas musim sejuknya di hemisfera selatan ketika saya membuat ini!

Selain itu, saya membuat paparan OpenHAB yang menunjukkan perbandingan antara suhu Luar (disediakan oleh pengikat cuaca, dalam kes saya menggunakan Wunderground) berbanding suhu bumbung dan rumah dengan mengklik pilihan 'Kawalan' (gambar menunjukkan grafik dengan rumah, bumbung dan suhu luar diplot). Saya merancang untuk menggunakan data ini dalam peraturan untuk menghidupkan alat pemanas mengikut keperluan. Cukup tambahkan item Cuaca ke URL Imej anda dalam fail peta laman dan sertakan ini pada grafik yang sama (contoh:… item = houseTemp, roofTemp, weatherTemp…)

Langkah 1: Bahagian Diperlukan / Pemasangan

Bahagian Diperlukan / Pemasangan
Bahagian Diperlukan / Pemasangan
Bahagian Diperlukan / Pemasangan
Bahagian Diperlukan / Pemasangan
Bahagian Diperlukan / Pemasangan
Bahagian Diperlukan / Pemasangan

Anda memerlukan bahagian berikut

  • Pemisah RJ11 (ini memisahkan isyarat dari pengawal di bumbung, ke panel kawalan dan ESP8266)
  • Beberapa kabel pita dan palam RJ11 (untuk menjalankan wayar dari splitter ke ESP8266)
  • ESP8266-01 (versi 3.3V lain harus berfungsi)
  • Penukar tahap logik TTL (untuk menukar data dari 5V -> 3.3V)
  • AMS1117 3.3V voltage regulator (atau serupa, untuk menukar voltan dari HRV 5V -> 3.3V ke power ESP8266)
  • 1N5817 schottky diode (untuk sebab tertentu ini membantu menghentikan tetapan semula panel kawalan HRV pada kuasa ESP dihidupkan)
  • Perintang 10K ohm (perintang penarik antara 3.3 Voltage Regulator dan ESP CH_PD)
  • Kapasitor 10V 10uF (atau serupa, untuk melicinkan dan melabelkan daya masuk dari HRV)
  • Kapasitor 10V 1uF (atau serupa, untuk melicinkan dan menstabilkan kuasa keluar ke ESP)
  • Butang slaid pilihan untuk memprogram ESP (jika tidak, perlu menarik GPIO0 ke GND secara manual untuk diprogramkan)
  • Penyesuai FTDI (untuk memprogram ESP, menukar USB ke siri)

Berkumpul mengikut Skema

Gambar papan roti menunjukkan bagaimana bahagiannya dipasang. Perhatikan bahawa terdapat 6 pin yang turun dari kabel pita dari unit pengawal HRV di siling:

Pin 1 dan 6 ialah VCC 5V

Pin 2 dan 5 adalah GND

Pin 3 dan 4 adalah Data.

Anda hanya perlu menggunakan pin 1, 2, 3 dan 6 (kuasa 1 dan 6 VCC ESP8266 dan sisi tinggi penukar logik TTL, 2 adalah titik persamaan dan 3 adalah untuk membaca data bersiri TTL)

Splitter yang anda perlukan hanyalah splitter RJ11, pastikan splitter di mana pin diluruskan (cth: pin 1 menuju pin 1, pin 2 hingga pin 2 dan seterusnya) Perhatikan bahawa pin wanita tambahan (seperti ditunjukkan dalam gambar) adalah untuk menghubungkan FTDI untuk memprogramkan semula ESP kemudian, dan suis yang ditunjukkan meletakkannya dalam mod "pengaturcaraan". Ini adalah pilihan, tetapi disyorkan (misalnya: jika anda menukar kata laluan WiFi anda kerana WiFi AP dan kata laluan sukar diprogramkan ke dalam kod, yang perlu anda muat naik setelah ESP8266 anda dibina)

Langkah 2: Memuat naik Kod dan Ujian

Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian
Memuat naik Kod dan Ujian

Perubahan Kod

Pautan muat turun alternatif ke kod Arduino DI SINI

Buka di Arduino IDE, pastikan papan ESP dipasang serta PubSubClient dan bahawa anda telah memilih papan ESP8266 (Alat, Papan, Papan Generik ESP8266) Edit kod dan ubah nama dan kata laluan AP AP dan alamat IP broker MQTT anda (ini adalah satu-satunya perkara yang perlu anda ubah) seperti yang ditunjukkan di bawah. Klik butang 'Verify' untuk memastikannya menyusun ok kemudian pastikan port COM yang betul dipilih (Tools, Port) dan muat naik kod ke ESP8266 anda. Terdapat banyak artikel mengenai cara melakukannya, saya tidak akan mencipta roda di sini.

// Wifi

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

Ujian MQTT

Untuk ujian, anda boleh membiarkan penyesuai FTDI anda tersambung dan membuka Monitor Serial di Arduino IDE, anda akan melihat mesej mencetak maklumat suhu di konsol. Sekiranya anda perlu menyelesaikan masalah mesej MQTT masuk dari ESP8266 ke broker MQTT anda, maka pada pelayan Mosquitto jalankan salah satu arahan berikut untuk melanggan mesej masuk:

mosquitto_sub -d -t openhab / hrv / status

Anda harus melihat mesej PUBLISH masuk dari ESP8266 setiap 30 saat atau lebih dengan nombor "1" (bermaksud "Saya masih hidup") Sekiranya anda melihat "0" yang berterusan (atau tidak ada sama sekali) maka tidak ada komunikasi. Sebaik sahaja anda melihat nombor 1 masuk, maka itu bermakna ESP8266 berkomunikasi dengan broker MQTT (cari "MQTT Last Will and Testament" untuk maklumat lebih lanjut mengenai cara ini berfungsi, atau lihat entri blog yang sangat baik ini)

Anda kini dapat mengesan data suhu dan kelajuan kipas, melanggan salah satu daripada yang berikut. Namun, perhatikan bahawa kod tersebut hanya mengirimkan data suhu jika ada data yang telah berubah. Ini melacak data suhu terakhir, kelajuan kipas dll yang dihantar, jadi anda mungkin tidak akan melihat maklumat masuk dengan segera.

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

Petunjuk: melanggan suhu panel kawalan di atas, kemudian tekan butang suhu pada panel kawalan itu sendiri, anda akan melihat tetapan suhu baru masuk.

Apabila anda menyelesaikannya, PCB 3cm x 7cm sesuai dengan baik di kotak siram di belakang Panel Kawalan HRV. Saya mengesyorkan hanya melakukan ini jika kotak plastik menyiram kerana kotak logam boleh mengganggu isyarat Wifi atau mungkin memutuskan sambungan pada papan PCB. Sebagai alternatif, anda boleh mencetak casing 3D plastik untuk memasangkan papan ke dalamnya.

Langkah 3: Perubahan OpenHAB

Konfigurasi OpenHAB

Perubahan OpenHAB yang diperlukan adalah seperti berikut:

fail 'item':

/ * HRVNumber hrvStatus "Status HRV [MAP (status.map):% d]" (gHRV) {mqtt = "<[mqttbroker: openhab / hrv / status: state: default]"} Number houseTemp "Rumah [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / housetemp: state: default] "} Number houseTemp_Chart_Period" Tempoh Carta "Number roofTemp" Bumbung [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / rooftemp: state: default] "} Number roofTemp_Chart_Period" Chart Chart Period "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / controltemp: nyatakan: default] "} String fanSpeed" Fan Speed [% s] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / fanspeed: state: default] "} * /

fail 'peta laman':

Label bingkai = "Suhu HRV" {Item teks = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" pemetaan = [0 = "Jam", 1 = "Hari", 2 = "Minggu"] Url gambar = "https:// localhost: 8080 / rrdchart-p.webp

Ikon tambahan untuk OpenHAB disertakan (klik kanan dan simpan gambar)

Simpan fail ini ke folder.. / OpenHAB Home / webapps / images pada pelayan OpenHAB anda

Disyorkan: