Daftar Isi:

Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!): 3 Langkah
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!): 3 Langkah

Video: Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!): 3 Langkah

Video: Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!): 3 Langkah
Video: Гроуконтроллер 2024, Juli
Anonim
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)
Suhu HRV ke OpenHAB Melalui ESP8266 (Contoh Kode Seri!)

HRV - Nirkabel ke OpenHAB

Instruksi ini khusus untuk mereka yang memiliki sistem HRV (ventilasi resirkulasi pemanas) - meskipun bagian dari papan sirkuit, konfigurasi openhab, atau kode Arduino (seperti membaca data serial TTL) dapat berguna untuk proyek Anda sendiri atau berfungsi dengan baik untuk pembelajaran. Itu mengasumsikan Anda memiliki pengetahuan yang masuk akal tentang Arduino IDE dan apa itu chip ESP8266.

pengantar

Berikut ini menguraikan cara membangun ESP8266 yang terhubung ke sistem HRV dan mengirimkan suhu atap dan rumah, suhu panel kontrol, dan kecepatan kipas melalui pesan MQTT ke OpenHAB. Ini dirancang untuk bekerja dengan papan ESP8266-01 (walaupun harus bekerja dengan versi 3.3V ESP8266 apa pun) Jika Anda memiliki sistem tipe HRV serupa dari vendor alternatif, Anda perlu menentukan apakah data dikirim sebagai serial TTL dan jika demikian, seperti apa struktur data dikirim.

OpenHAB dan Nyamuk

Kode ESP8266 telah ditulis khusus untuk bekerja dengan OpenHAB (perangkat lunak otomatisasi rumah sumber terbuka) dan broker MQTT seperti Mosquitto (protokol jenis berlangganan/publikasikan pesan yang ringan dan bagus untuk komunikasi antar perangkat) Jangan biarkan nama atau akronim membuat Anda takut, mereka sangat mudah digunakan setelah Anda mengetahui cara kerjanya. Saya menggunakan OpenHAB pada NTC C. H. I. P (komputer US$9) namun banyak orang menggunakan Raspberry Pi atau sejenisnya. Tutorial ini mengasumsikan Anda telah mengimplementasikan OpenHAB (jika Anda memerlukan bantuan untuk menyiapkan OpenHAB, ikuti artikel luar biasa ini dari situs web makeuseof) Anda juga perlu mengunduh dan menginstal Mosquitto (broker MQTT) dan pengikatan OpenHAB terkait. Anda dapat menginstal ini di tempat lain di jaringan Anda, namun kebanyakan orang hanya menginstal ini di mesin yang sama dengan OpenHAB untuk membuatnya tetap sederhana.

Untuk menginstal Mosquitto, ikuti tautan ini lalu pilih jenis perangkat yang Anda gunakan dan ikuti petunjuknya. Karena C. H. I. P menjalankan Debian (Jessie), Anda dapat mengikuti instruksi Raspberry Pi jika Anda menggunakan C. H. I. P untuk perangkat Otomasi Rumah Anda (perhatikan juga, yang terbaik adalah mengkonfigurasi ulang CHIP untuk boot dari CLI. Ada petunjuk untuk ini di sini)

Setelah Anda menjalankan OpenHAB dan Mosquitto, Anda perlu menyiapkan Arduino IDE untuk ESP8266 dan kodenya. Pertama, Anda perlu menambahkan perpustakaan "PubSubClient". Di Arduino IDE, dari menu buka Sketch, Include Library, Manage Libraries Di kotak pencarian filter, ketik PubSubClient lalu sorot hasil pencarian dan klik Install (pada saat penulisan, versi terbaru adalah 2.6.0) Anda akan juga perlu menambahkan papan ESP8266 ke Arduino IDE yang dapat dilakukan dengan mengikuti petunjuk di sini

Apa ini memberi saya?

Seperti yang dinyatakan sebelumnya, proyek ini akan memungkinkan Anda untuk melihat atap panel kontrol HRV, rumah, suhu panel kontrol, dan kecepatan kipas di OpenHAB GUI (secara real time!) Gambar menunjukkan seperti apa tampilannya dari iPhone saya, ditambah grafik yang Anda akan didapat dengan mengebor ke dalam suhu yang berbeda.

Untuk mendapatkan grafik, Anda juga perlu menginstal dan mengonfigurasi pengikatan RRD4J (ini sangat mudah) Ini akan memungkinkan Anda untuk mengklik 'Rumah' atau 'Atap' dan mendapatkan riwayat suhu HRV untuk masing-masing di masa lalu jam, hari atau minggu (atau lebih lama, jika Anda mengubah konfigurasi yang sesuai) Gambar yang ditampilkan dalam celsius, dan jelas musim dingin di belahan bumi selatan ketika saya membuat ini!

Selain itu, saya membuat tampilan OpenHAB yang menunjukkan perbandingan antara suhu luar (disediakan oleh add-on pengikat cuaca, dalam kasus saya menggunakan Wunderground) versus suhu atap dan rumah dengan mengklik opsi 'Kontrol' (gambar menunjukkan grafik dengan rumah, atap dan suhu luar diplot). Saya berencana menggunakan data ini dalam aturan untuk menyalakan peralatan pemanas sesuai kebutuhan. Cukup tambahkan item Weather ke URL Gambar Anda di file peta situs dan sertakan ini pada grafik yang sama (misalnya: …items=houseTemp, roofTemp, weatherTemp…)

Langkah 1: Bagian yang Dibutuhkan / Perakitan

Bagian yang Dibutuhkan / Perakitan
Bagian yang Dibutuhkan / Perakitan
Bagian yang Dibutuhkan / Perakitan
Bagian yang Dibutuhkan / Perakitan
Bagian yang Dibutuhkan / Perakitan
Bagian yang Dibutuhkan / Perakitan

Anda akan membutuhkan bagian-bagian berikut:

  • Pembagi RJ11 (ini membagi sinyal dari pengontrol di atap, ke panel kontrol dan ESP8266)
  • Beberapa kabel pita dan steker RJ11 (untuk menjalankan kabel dari splitter ke ESP8266)
  • ESP8266-01 (versi 3.3V lainnya harus berfungsi)
  • Konverter level logika TTL (untuk mengubah data dari 5V -> 3.3V)
  • Regulator tegangan AMS1117 3.3V (atau serupa, untuk mengubah tegangan dari HRV 5V -> 3.3V ke daya ESP8266)
  • 1N5817 schottky diode (untuk beberapa alasan ini membantu menghentikan pengaturan ulang panel kontrol HRV saat ESP dihidupkan)
  • Resistor 10K ohm (resistor pullup antara Regulator Tegangan 3,3 dan ESP CH_PD)
  • Kapasitor 10V 10uF (atau serupa, untuk menghaluskan dan menstabilkan daya masuk dari HRV)
  • Kapasitor 10V 1uF (atau serupa, untuk menghaluskan dan menstabilkan daya keluar ke ESP)
  • Tombol geser opsional untuk memprogram ESP (jika tidak, perlu menarik GPIO0 ke GND secara manual untuk memprogram)
  • Adaptor FTDI (untuk memprogram ESP, mengubah USB menjadi serial)

Merakit sesuai Skema

Gambar papan tempat memotong roti menunjukkan bagaimana bagian-bagian harus dirakit. Perhatikan bahwa ada 6 pin yang turun dari kabel pita dari unit pengontrol HRV di langit-langit:

Pin 1 dan 6 adalah 5V VCC

Pin 2 dan 5 adalah GND

Pin 3 dan 4 adalah Data.

Anda hanya perlu menggunakan pin 1, 2, 3 dan 6 (1 dan 6 VCC memberi daya ESP8266 dan sisi tinggi dari konverter logika TTL, 2 adalah landasan bersama dan 3 untuk membaca data serial TTL)

Pembagi yang Anda butuhkan hanya akan menjadi pembagi RJ11, pastikan itu adalah pembagi di mana pinnya lurus (misalnya: pin 1 ke pin 1, pin 2 ke pin 2 dan seterusnya) Perhatikan bahwa pin perempuan tambahan (sebagai ditunjukkan pada gambar) adalah untuk menghubungkan FTDI untuk memprogram ulang ESP nanti, dan sakelar yang ditunjukkan menempatkannya dalam mode "pemrograman". Ini opsional, tetapi disarankan (misalnya: jika Anda mengubah kata sandi WiFi karena AP dan kata sandi WiFi diprogram ke dalam kode, yang perlu Anda unggah setelah ESP8266 Anda dibuat)

Langkah 2: Mengunggah Kode dan Pengujian

Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian
Mengunggah Kode dan Pengujian

Perubahan Kode

Tautan unduhan alternatif ke kode Arduino DI SINI

Buka di Arduino IDE, pastikan papan ESP terpasang serta PubSubClient dan Anda telah memilih papan ESP8266 (Tools, Board, Generic ESP8266 Board) Edit kode dan ubah nama dan kata sandi WiFi AP dan alamat IP broker MQTT Anda (ini adalah satu-satunya hal yang perlu Anda ubah) seperti yang ditunjukkan di bawah ini. Klik tombol 'Verifikasi' untuk memastikan kompilasi ok kemudian pastikan port COM yang benar dipilih (Alat, Port) dan unggah kode ke ESP8266 Anda. Ada banyak artikel tentang cara melakukan ini, saya tidak akan menemukan kembali roda di sini.

// Wifi

const char* ssid = "your_wifi_ssid_sini"; const char* password = "your_wifi_password_here"; // MQTT Broker IPaddress MQTT_SERVER(192, 168, 222, 254);

Pengujian MQTT

Untuk pengujian, Anda dapat membiarkan adaptor FTDI Anda terhubung dan membuka Serial Monitor di Arduino IDE, Anda akan melihat pesan yang mencetak informasi suhu di konsol. Jika Anda perlu memecahkan masalah pesan MQTT masuk dari ESP8266 ke broker MQTT Anda, maka di server Mosquitto jalankan salah satu perintah berikut untuk berlangganan pesan masuk:

mosquitto_sub -d -t openhab/hrv/status

Anda akan melihat pesan PUBLISH masuk yang masuk dari ESP8266 setiap 30 detik atau lebih dengan angka "1" (artinya "Saya hidup") Jika Anda melihat "0" konstan (atau tidak sama sekali) maka tidak ada komunikasi. Setelah Anda melihat nomor 1 masuk, itu berarti ESP8266 berkomunikasi dengan broker MQTT (cari "MQTT Last Will and Testament" untuk informasi lebih lanjut tentang cara kerjanya, atau lihat entri blog yang sangat bagus ini)

Anda sekarang dapat melacak data suhu dan kecepatan kipas, berlangganan salah satu dari yang berikut ini. Namun, perhatikan bahwa kode hanya mengirimkan data suhu jika ada data yang berubah. Ini melacak suhu terakhir, kecepatan kipas dll data yang dikirim, sehingga Anda mungkin tidak melihat informasi yang masuk 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: berlangganan suhu panel kontrol di atas, lalu tekan tombol suhu pada panel kontrol itu sendiri, Anda akan melihat pengaturan suhu baru masuk.

Saat Anda menyoldernya, PCB berukuran 3cm x 7cm cocok dengan baik di kotak flush di belakang Panel Kontrol HRV. Saya akan merekomendasikan hanya melakukan ini jika itu adalah kotak flush plastik karena kotak logam dapat mengganggu sinyal Wifi atau mungkin membuat koneksi pendek pada papan PCB. Sebagai alternatif, Anda dapat mencetak kotak plastik 3D untuk memasang papan.

Langkah 3: Perubahan OpenHAB

Konfigurasi OpenHAB

Perubahan OpenHAB yang diperlukan adalah sebagai berikut:

berkas 'item':

/* HRVNumber hrvStatus "Status HRV [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Nomor houseTemp "House [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Nomor houseTemp_Chart_Period "Periode Grafik"Nomor atapTemp "Atap [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Nomor roofTemp_Chart_Period "Periode Grafik"Number controlTemp "Kontrol [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Kecepatan Kipas [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

berkas 'peta situs':

Frame label="HRV Temperature" {Item teks=roofTemp {Frame { Ganti item=roofTemp_Chart_Period label="Period" mappings=[0="Jam", 1="Hari", 2="Minggu"] Gambar url="https://localhost:8080/rrdchart.png" refresh=6000 visibility=[roofTemp_Chart_Period==0, roofTemp_Chart_Period=="Tidak Diinisialisasi"] Gambar url="https://localhost:8080/rrdchart.png" refresh=30000 visibilitas= [roofTemp_Chart_Period==1] Gambar url="https://localhost:8080/rrdchart.png" refresh=30000 visibility=[roofTemp_Chart_Period==2] } } Item teks=houseTemp { Bingkai { Ganti item=houseTemp_Chart_Period label="Period " mappings=[0="Jam", 1="Hari", 2="Minggu"] Gambar url="https://localhost:8080/rrdchart.png" refresh=6000 visibility=[houseTemp_Chart_Period==0, houseTemp_Chart_Period ="Tidak Diinisialisasi"] Gambar url="https://localhost:8080/rrdchart.png" refresh=30000 visibility=[houseTemp_Chart_Period==1] Gambar url="https://localhost:8080/rrdchart.png" refresh =30000 visibility=[houseTemp_Chart_Period==2] } } Item teks=controlTemp { Frame { Ganti item=Gabungkan ed_Chart_Period label="Period" mappings=[0="Jam", 1="Hari", 2="Minggu"] Gambar url="https://localhost:8080/rrdchart.png" refresh=6000 visibility=[Combined_Chart_Period ==0, Combined_Chart_Period=="Tidak Diinisialisasi"] Gambar url="https://localhost:8080/rrdchart.png" refresh=30000 visibility=[Combined_Chart_Period==1] Gambar url="https://localhost:8080/ rrdchart.png" refresh=30000 visibility=[Combined_Chart_Period==2] } } Item teks=fanSpeed }

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

Simpan file-file ini ke folder..\OpenHAB Home\webapps\images di server OpenHAB Anda

Direkomendasikan: