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

Hubungkan Pemanas Pusat Anda ke Arduino

Komponen dan persediaan

Arduino UNO
× 1
Arduino OpenTherm shield
× 1
catu daya 24V
× 1

Tentang proyek ini

Pernahkah Anda bertanya-tanya kapan dan mengapa boiler Anda bekerja dan memanaskan rumah Anda? Apakah Anda ingin mengotomatiskan sistem pemanas Anda dengan Arduino? Perisai OpenTherm dirancang untuk Anda. Ini akan memungkinkan Anda untuk memantau dan mengontrol boiler OpenTherm Anda dengan Arduino.

Latar belakang

Tahun lalu saya ingin menggabungkan boiler pemanas gas saya dengan pengatur perapian. Ketel dan termostat BAXI saya cukup pintar jadi saya ingin secara alami memperpanjang ketel untuk mengontrol perapian juga. Saya muak dengan semua ekstensi BAXI resmi yang mahal yang memungkinkan saya melakukannya.

Jadi saya membuat sendiri gerbang OpenTherm yang memungkinkan saya untuk mencegat komunikasi antara termostat dan ketel dan menempatkan algoritme yang akan menyalakan ketel atau menggunakan panas dari perapian - [lebih lanjut tentang regulator].

Karena ada banyak orang yang menginginkan sesuatu yang serupa, saya memutuskan untuk membuat modul - Arduino shield - yang memungkinkan siapa saja dengan mudah mengontrol pemanas rumah mereka.

Untuk apa perisai itu?

  • Buat boiler berbasis Arduino Anda sendiri dengan termostat OpenTherm yang ada. Hampir tidak ada orang yang akan melakukan itu, tetapi itu mungkin.
  • Gunakan pelindung untuk membuat termostat berbasis Arduino Anda sendiri untuk sepenuhnya mengambil alih boiler dan pemanas rumah Anda. Sempurna untuk otomatisasi rumah. Aplikasi ini hanya membutuhkan catu daya 5V eksternal.
  • Tempatkan pelindung OpenTherm ke dalam garis antara ketel yang ada dan termostat dan buat monitor untuk melihat kapan dan bagaimana boiler memanaskan rumah Anda. Anda bahkan dapat mencegat komunikasi, misalnya, mengontrol pemanasan secara nirkabel.
  • OpenTherm memungkinkan memiliki man-in-the-middle (gateway ) perangkat yang berkomunikasi dengan boiler dan termostat. Beginilah cara saya menggunakan perisai untuk membuat regulator OpenTherm.

Data dan perintah yang tersedia

  • suhu ruangan
  • titik penyetelan suhu ruangan
  • suhu air pemanas
  • mengembalikan suhu air
  • suhu air panas domestik*
  • tekanan air panas domestik*
  • laju aliran air panas domestik*
  • suhu luar*
  • status boiler (berjalan / tidak berjalan / error)
  • tingkat modulasi
  • suhu buang*
  • statistik berapa lama boiler berjalan

* perhatikan bahwa ini hanya tersedia jika ketel Anda dilengkapi dengan aksesori yang diperlukan

Membangun perisai

Rangkaian elektronik ini didasarkan pada proyek gerbang OpenTherm yang menggunakan mikrokontroler PIC. Saya telah mengadaptasinya untuk Arduino dan membuat layout bagus yang kompatibel dengan Arduino UNO.

Anda dapat menggunakan file skema dan Gerber di atas untuk membuat perisai sendiri. Saya membuat papan saya dengan PCBWay - Prototipe PCB dengan Cara Mudah. Anda dapat meminta mereka untuk membuat dan mengirimkan keindahan biru yang indah ini hanya dalam waktu seminggu. Topeng solder biru adalah harga yang sama dengan hijau dasar! Saya juga suka layanan pelanggan mereka, tidak ada masalah. Atau Anda dapat memesan kit DIY yang sudah dikemas sebelumnya.

Menggunakan pelindung untuk membuat termostat

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

  • Ketel OpenTherm
  • Arduino UNO, WeMos D1 atau papan Arduino UNO apa pun yang kompatibel. Satu-satunya persyaratan untuk papan adalah dukungan interupsi pin pada pin 2 dan 3.
  • Catu daya 5V. Tidak perlu catu daya 24V dalam penyiapan ini karena hanya diperlukan jika Anda berkomunikasi dengan termostat.

Hubungkan boiler Anda dengan pelindung Arduino OpenTherm seperti yang ditunjukkan pada gambar di atas, pasang pelindung pada Arduino Anda dan Anda dapat memulai pemrograman. Pustaka Arduino OpenTherm IO berisi contoh berikut untuk menunjukkan cara berkomunikasi dengan boiler.

void loop() { if (OPENTHERM::isIdle()) { message.type =OT_MSGTYPE_READ_DATA; message.id =OT_MSGID_SLAVE_CONFIG; pesan.nilaiHB =0; pesan.nilaiLB =0; Serial.print("->"); PEMBUKA::printToSerial(pesan); Serial.println(); BUKA::kirim(BOILER_OUT, pesan); // kirim pesan ke boiler } else if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // tunggu hingga boiler merespon } else if (OPENTHERM::getMessage(message)) { // boiler merespon OPENTHERM::stop(); Serial.print("<- "); PEMBUKA::printToSerial(pesan); Serial.println(); Serial.println(); penundaan(100); // penundaan minimal sebelum komunikasi berikutnya } else if (OPENTHERM::isError()) { OPENTHERM::stop(); Serial.println("<- Waktu Habis"); Serial.println(); }} 

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

struct OpenthermData { tipe byte; nomor bit; nilai byteHB; nilai byteLB; mengapung f88(); batal f88(nilai mengambang); uint16_t u16(); batal u16(nilai uint16_t); int16_t s16(); batal s16(nilai int16_t);} 

Menggunakan pelindung untuk membuat monitor, gateway, atau regulator

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

  • Termostat OpenTherm
  • catu daya 24V 500mA

Hubungkan pelindung ke bus antara boiler dan termostat seperti yang ditunjukkan pada 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. Sekali lagi ada contoh yang sangat baik di perpustakaan Arduino OpenTherm IO.

void loop() { if (mode ==MODE_LISTEN_MASTER) { if (OPENTHERM::isSent() || OPENTHERM::isIdle() || OPENTHERM::isError()) { OPENTHERM::listen( TERMOSTAT_IN); } else if (BUKA::getMessage(pesan)) { Serial.print("-> "); PEMBUKA::printToSerial(pesan); Serial.println(); BUKA::kirim(BOILER_OUT, pesan); // meneruskan pesan ke mode boiler =MODE_LISTEN_SLAVE; } } else if (mode ==MODE_LISTEN_SLAVE) { if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // balasan harus dikirim kembali dalam 800 ms } else if (OPENTHERM::getMessage(message)) { Serial.print("<- "); PEMBUKA::printToSerial(pesan); Serial.println(); Serial.println(); OPENTHERM::send(THERMOSTAT_OUT, pesan); // kirim pesan kembali ke mode termostat =MODE_LISTEN_MASTER; } else if (OPENTHERM::isError()) { mode =MODE_LISTEN_MASTER; Serial.println("<- Waktu Habis"); Serial.println(); } }} 

Gateway hanya mulai mendengarkan perintah termostat. Jika ada permintaan yang terdeteksi, itu akan mem-parsing dan meneruskannya ke boiler. Gateway sekarang akan mulai mendengarkan balasan boiler sebagai gantinya. Jika ada balasan yang diterima dalam 800ms, gateway akan meneruskan balasan kembali ke termostat. Baik termostat dan boiler tidak akan pernah tahu ada sesuatu yang ekstra di antara mereka. Seperti yang Anda lihat, ada banyak ruang untuk menulis kode Anda sendiri yang dapat menangkap pesan dan membaca informasi berguna darinya (status, suhu, tekanan, statistik,...). Anda bahkan dapat mengesampingkan atau membuang permintaan atau balasan yang tidak Anda sukai.

Seperti yang Anda lihat, sangat mudah untuk berkomunikasi dengan sistem pemanas pintar Anda dan membuatnya lebih pintar. Pada artikel berikutnya saya akan menunjukkan kepada Anda penggunaan perangkat keras ini secara lebih praktis di regulator OpenTherm saya.

Kode

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

Skema


Proses manufaktur

  1. Memantau Boiler Pemanas Sentral Saya
  2. Membangun Jaringan Sensor Nirkabel di Rumah Anda
  3. Hubungkan sensor ke Raspberry Pi Anda untuk memperingatkan Anda saat ada gas berbahaya!
  4. Buat Robot Streaming Video Terkendali Internet Anda dengan Arduino dan Raspberry Pi
  5. Cara Menghubungkan Cetak GrabCAD Dengan Printer 3D Stratasys Anda
  6. Kiat Meningkatkan Efisiensi Minyak Pemanas untuk Bisnis Anda
  7. Aktifkan Kontrol Alexa ke Kipas Angin Anda
  8. Arduino Spybot
  9. FlickMote
  10. Tambahkan Pencahayaan Animasi (Marquee) ke Proyek Anda