Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Komponen dan Perlengkapan

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas
Arduino UNO
×1
Shield OpenTherm Arduino
×1
Sumber daya 24V
×1

Tentang Proyek Ini

Pernahkah Anda bertanya kapan dan mengapa boiler Anda berjalan dan memanasi rumah Anda? Apakah Anda ingin mengotomatisasi sistem pemanasan Anda dengan Arduino? Shield OpenTherm dirancang untuk Anda. Ini akan memungkinkan Anda memantau dan mengontrol boiler OpenTherm Anda dengan Arduino.

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Latar Belakang

Tahun lalu saya ingin menggabungkan boiler gas saya dengan pengatur perapian. Boiler BAXI dan termostat saya cukup cerdas jadi saya secara alami ingin memperluas boiler untuk mengontrol perapian juga. Saya bosan dengan semua ekstensi resmi BAXI yang mahal yang akan memungkinkan saya untuk melakukannya.

Jadi saya membangun gateway OpenTherm sendiri yang memungkinkan saya untuk menyeka komunikasi antara termostat dan boiler dan menempatkan algoritma yang akan menyalakan boiler atau menggunakan panas dari perapian - [selengkapnya tentang pengatur].

Karena ada banyak orang yang ingin sesuatu yang serupa, saya memutuskan untuk membuat sebuah modul - shield Arduino - yang akan memungkinkan siapa pun dengan sangat mudah untuk mengontrol pemanasan rumah mereka.

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Manfaat Shield Ini?

Data dan Perintah yang Tersedia

* catat bahwa ini hanya tersedia jika boiler Anda dilengkapi dengan aksesori yang diperlukan

Membangun Shield

Sirkuit elektronik berdasarkan proyek gateway OpenTherm yang menggunakan mikrokontroler PIC. Saya telah menyesuaikannya untuk Arduino dan membuat tata letak kompatibel Arduino UNO yang bagus.

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Anda dapat menggunakan skema dan file Gerber di atas untuk membuat shield sendiri. Saya memproduksi papan saya dengan PCBWay - PCB Prototype the Easy Way. Anda dapat meminta mereka untuk membuat dan mengirimkan biru indah ini hanya dalam seminggu. Masker solder biru sama harganya dengan hijau dasar! Saya juga suka layanan pelanggan mereka, tidak ada masalah. Atau Anda dapat memesan kit DIY siap pakai.

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Menggunakan Shield untuk Membuat Termostat

Contoh pertama akan menunjukkan kepada Anda cara menggunakan shield untuk membuat termostat kustom Anda sendiri. Yang Anda butuhkan:

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Hubungkan boiler Anda dengan shield OpenTherm Arduino seperti yang ditunjukkan dalam gambar di atas, pasang shield pada Arduino Anda dan Anda dapat mulai memprogram. Perpustakaan Arduino OpenTherm IO berisi contoh berikut untuk menunjukkan kepada Anda cara berkomunikasi dengan boiler.

void loop() { if (OPENTHERM::isIdle()) { message.type = OT_MSGTYPE_READ_DATA; message.id = OT_MSGID_SLAVE_CONFIG; message.valueHB = 0; message.valueLB = 0; Serial.print("-> "); OPENTHERM::printToSerial(message); Serial.println(); OPENTHERM::send(BOILER_OUT, message); // send message to boiler } else if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // wait for boiler to respond } else if (OPENTHERM::getMessage(message)) { // boiler responded OPENTHERM::stop(); Serial.print("<- "); OPENTHERM::printToSerial(message); Serial.println(); Serial.println(); delay(100); // minimal delay before next communication } else if (OPENTHERM::isError()) { OPENTHERM::stop(); Serial.println("<- Timeout"); Serial.println(); } } 

Pertama, periksa apakah tidak ada perintah tertunda dengan OPENTHERM::isIdle. Jika tidak, Anda dapat mengirim selanjutnya. Dalam contoh ini, Anda meminta flag konfigurasi slave. Jika perintah berhasil dikirim, Anda harus mulai mendengarkan balasan dari boiler dengan panggilan OPENTHERM::listen. Metode OPENTHERM::getMessage akan mengembalikan true segera ada balasan tertunda dari slave dan jika ada kesalahan atau timeout terjadi metode OPENTHERM::isError mengembalikan true. Perpustakaan berisi struktur pesan OpenTherm yang berisi data yang terdekode dari protokol jadi Anda tidak perlu mempedulikan format sama sekali. Periksa kode sumbernya, sudah didokumentasikan dengan baik. Semua jenis pesan tercantum dalam konstanta atau Anda dapat memeriksa dokumentasi OpenTherm.

struct OpenthermData { byte type; byte id; byte valueHB; byte valueLB; float f88(); void f88(float value); uint16_t u16(); void u16(uint16_t value); int16_t s16(); void s16(int16_t value); } 

Menggunakan Shield untuk Membuat Monitor, Gateway, atau Pengatur

Contoh kedua akan menunjukkan kepada Anda cara melampirkan perangkat man-in-the-middle ke bus OpenTherm untuk memantau boiler dan termostat atau menyeka komunikasi mereka. Yang Anda butuhkan:

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Hubungkan shield ke bus antara boiler dan termostat seperti yang ditunjukkan dalam gambar di atas. Anda dapat melihat bahwa itu mengganggu bus antara kedua perangkat ini. Sekarang komunikasi Anda terputus kecuali Anda mengunggah perangkat lunak gateway ke Arduino Anda yang akan meneruskan perintah dan balasan dari termostat ke boiler dan sebaliknya. Lagi ada contoh yang bagus dalam perpustakaan Arduino OpenTherm IO.

void loop() { if (mode == MODE_LISTEN_MASTER) { if (OPENTHERM::isSent() || OPENTHERM::isIdle() || OPENTHERM::isError()) { OPENTHERM::listen(THERMOSTAT_IN); } else if (OPENTHERM::getMessage(message)) { Serial.print("-> "); OPENTHERM::printToSerial(message); Serial.println(); OPENTHERM::send(BOILER_OUT, message); // forward message to boiler mode = MODE_LISTEN_SLAVE; } } else if (mode == MODE_LISTEN_SLAVE) { if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // reply need to be send back in 800ms } else if (OPENTHERM::getMessage(message)) { Serial.print("<- "); OPENTHERM::printToSerial(message); Serial.println(); Serial.println(); OPENTHERM::send(THERMOSTAT_OUT, message); // send message back to thermostat mode = MODE_LISTEN_MASTER; } else if (OPENTHERM::isError()) { mode = MODE_LISTEN_MASTER; Serial.println("<- Timeout"); Serial.println(); } } } 

Gateway cukup mulai mendengarkan perintah termostat. Jika ada permintaan yang terdeteksi, gateway akan mengurai dan meneruskan ke boiler. Gateway sekarang akan mulai mendengarkan balasan boiler. Jika ada balasan yang diterima dalam 800ms, gateway akan meneruskan balasan kembali ke termostat. Keduanya termostat dan boiler tidak akan tahu ada sesuatu yang tambahan di antara mereka. Seperti yang Anda lihat, ada banyak ruang untuk menulis kode Anda sendiri yang dapat menangkap pesan dan membaca informasi yang berguna dari mereka (status, suhu, tekanan, statistik, ...). Anda bahkan dapat mengganti atau membuang permintaan atau balasan yang tidak Anda sukai.

Seperti yang Anda lihat, sangat mudah untuk berkomunikasi dengan sistem pemanasan pintar Anda dan membuatnya lebih cerdas lagi. Dalam artikel selanjutnya saya akan menunjukkan penggunaan praktis lebih banyak dari hardware ini dalam pengatur OpenTherm saya.

Kode

Perpustakaan Opentherm IO untuk Arduino
https://github.com/jpraus/arduino-opentherm

Skema

Integrasi Pemanasan Tengah dengan Arduino untuk Kontrol Cerdas

Proses manufaktur

  1. Memantau Boiler Pemanasan Tengah Anda dengan Raspberry Pi – Panduan Hardware, Software, dan Pengaturan
  2. Membangun Jaringan Sensor Nirkabel Hemat Biaya untuk Rumah Anda
  3. Sambungkan Sensor Gas TGS2600 ke Raspberry Pi untuk Deteksi Gas Berbahaya
  4. Membuat Robot Streaming Video yang Dikontrol Internet dengan Arduino & Raspberry Pi
  5. Menghubungkan GrabCAD Print ke Printer 3D Stratasys Anda – Panduan Langkah demi Langkah
  6. Maksimalkan Keuntungan Bisnis: Strategi Efisiensi Minyak Pemanas Teruji
  7. Kontrol Kipas Angin Langit-langit Anda dengan Alexa: Panduan Langkah demi Langkah
  8. Membuat Spybot Arduino yang Dikontrol melalui Bluetooth
  9. FlickMote: Remote IR Kendali Gestur untuk Rumah Cerdas
  10. Buat Penerangan Marquee LED Dinamis dengan Arduino Nano dan NeoPixels