Sistem Kontrol Termostat dan Pencahayaan Pintar dengan Bluetooth
Komponen dan Perlengkapan
- Arduino Nano R3 – 1 unit
- Modul Bluetooth HC-05 – 1 unit
- Sensor Suhu Digital DS18B20 (Maxim Integrated) – 1 unit
- Layar OLED I2C bicolor 1306 – 1 unit
- Pengontrol Relay 4-Saluran I2C (ControlEverything.com) – 1 unit
Aplikasi dan Layanan Online
- Morich Serial Bluetooth Terminal untuk Android
- Arduino Bluetooth Control Device untuk Android
Tentang Proyek
Pendahuluan
Proyek DIY Arduino termostat sederhana namun berguna dengan Bluetooth.
Rutinitas termostat pintas mengontrol boiler gas pemanas, dan sistem menghidupkan lampu dapur serta kipas ventilasi kamar mandi melalui relay – dapat dikontrol oleh tombol dan perangkat Android atau komputer melalui Bluetooth. Tersedia juga versi Celsius dan Fahrenheit. Semua bagian dibuat tangan.
Dikembangkan pada papan Arduino Nano (atau lebih tinggi), menggunakan sensor suhu Dallas DS18B20, adaptor Bluetooth HC-05/06, layar OLED bicolor I2C 128X64 – Anda dapat memilih layar LCD/OLED yang berbeda, u8glib mendukung banyak tipe.
Video
Video menunjukkan semua cara kerja penting dan memberikan ide cara membangun proyek dari awal.
Cara Kerja Pemanas
1: Mode Pemanasan Sekali Kali (15 menit) terjadwal, berguna untuk musim semi/gugur petang
2: Mode Termostat (prioritas lebih tinggi), suhu target yang disesuaikan disimpan dalam memori EEPROM
Algoritma Hemat Boiler
Pengalihan yang terlalu sering dan singkat akan mempersingkat umur boiler gas pemanas. Untuk menghindarinya, program menggunakan nilai koreksi yang menyatakan derajat overheat dan pendinginan kembali. Permintaan suhu lebih rendah memerlukan nilai koreksi yang lebih besar, karena dinding lebih dingin dan menyerap panas dari udara yang baru dipanaskan dengan lebih baik, sehingga efek di atas akan lebih kuat.
Deteksi Jendela Terbuka
Program mendeteksi apakah jendela terbuka, sehingga suhu turidtidakurang minimal -0,2°C (-0,36°F) dalam satu menit – pemanas berhenti atau tidak akan menyala, dan kipas ventilasi akan menyala untuk membantu menyegarkan udara. Saat udara menjadi lebih panas setidaknya +0,12°C (+0,216°F) karena kapasitas panas lingkungan, sistem akan kembali ke mode normal, dan peristiwa 'Peringatan Jendela' akan dibatalkan.
Deteksi Kesalahan
Suhu yang diukur di bawah 0°C (32°F) atau di atas 40°C (104°F) akan dievaluasi sebagai kegagalan atau masalah lain (kesalahan, jendela pecah, kebakaran, dll.), dan semua perangkat akan dimatikan.
Komunikasi Bluetooth
Aplikasi GUI Android memiliki 8 tombol, mengirim huruf besar dan kecil untuk menyala ('A'), atau mematikan ('a') pemanas terjadwal, 'B' dan 'b' menghidupkan ventilasi, 'C' dan 'c' lampu…
Kekuatan lain dari proyek saya adalah penggunaan terminal serial Bluetooth yang ramah geek. Cukup obrolan dengan sistem melalui Bluetooth menggunakan terminal serial – dapat menjadi aplikasi Android, bahkan komputer biasa akan cukup – misalnya Serial Monitor Arduino IDE.
Pengontrol mengirim laporan suhu setiap menit secara otomatis, dan laporan instan tentang semua peristiwa, seperti perangkat yang terpasang telah menyala/mematikan, rutinitas termostat diaktifkan, dan sebagainya.
Kode Kontrol
Sistem menerima kode kontrol dan mengirim pesan konfirmasi. Struktur perintah saya didasarkan pada angka dua digit seperti 'XY' – di mana:
'X' adalah kode perangkat, dan 'Y' adalah opcode
- 30, 31, 32: pencahayaan Mati / Nyala / balik status logis
- 40, 41, 42: ventilasi Mati / Nyala / balik status logis
- 50, 51, 52: program pemanas sekali kali Mati / Nyala / balik status logis
- Angka 10 – 24 akan diterima sebagai suhu target untuk fungsi termostat
- 'r' – laporan tentang status kerja perangkat yang dikontrol
- 'w' – menonaktifkan secara manual peristiwa "peringatan jendela", jika Anda tidak ingin menunggu pembatalan otomatisnya
- 'A, a… H, h' – huruf diterima seperti yang akan dikirim oleh aplikasi GUI
Versi Fahrenheit
Saya telah mengonversi semua variabel koreksi, nilai referensi dan rasio, sehingga sistem tetap mempertahankan karakteristik perhitungan dan kerjanya.
Hanya beberapa modifikasi. Kode perangkat baru untuk versi Fahrenheit:
- 1 - Pencahayaan (10: mati, 11: nyala, 12: balik status)
- 2 - Ventilasi
- 3 - Pemanas
- 50 - 76 angka adalah nilai suhu target
Lanjutan
UPDATE: Sistem Otomasi Rumah Lengkap dengan Tautan Bluetooth Internal dan Kontrol Suara!
Pustaka & Tautan
DallasTemperature, elapsedMillis, OneWire, SoftwareSerial, olikraus/u8glib
Jika Anda menggunakan resistor tombol yang berbeda, atau perlu membaca A0, saya menyarankan untuk memeriksa ini:
https://blog.codebender.cc/2015/07/20/tutorial-multiple-buttons-on-1-analog-pin/
Kode
Termostat v11 - Versi Celsius.ino
// Kode program solusi termostat smarthome Arduino yang cerdas,
// berdasarkan papan Arduino Nano (atau lebih tinggi), sensor suhu DS18B20,
// adaptor Bluetooth HC-05, layar OLED bicolor I2C 128X64.
// Sistem dapat dikontrol oleh tombol dan smartphone Android melalui bluetooth.
// Mengelola boiler gas PEMASAN, ventilator VENTILASI kamar mandi dan PENCAHAYAAN dapur
// yang diatur melalui relay.
// Pemanas memiliki dua cara kerja. 1: Mode Pemanasan Sekali Kali (15 menit) terjadwal,
// 2: Mode Termostat (prioritas lebih tinggi). Suhu target yang disesuaikan disimpan di EEPROM.
// Program mendeteksi kesalahan hardware dan pembukaan jendela - dalam hal ini pemanas berhenti dan/atau tidak akan menyala.
Termostat v11 - Versi Fahrenheit.ino
// Versi Fahrenheit v1.1. Hanya nilai suhu target (50-76) dan kode perangkat (1, 2 dan 3) yang diubah.
// Sistem bekerja dalam satuan Fahrenheit.