Musim panas telah tiba, dengan panas, dan juga waktu untuk menyalakan pendingin udara. Dan jika Anda menyukai teknologi modern dan rumah pintar, maka Anda ingin melakukan kontrol AC entah bagaimana dengan cerdas (atau setidaknya dengan cara modern). Di bawah ini adalah serangkaian catatan tentang upaya saya untuk mengintegrasikan cuaca di rumah dengan kontrol suara dan antarmuka lintas platform.
Tantangan
Ada empat pendingin ruangan di apartemen, Anda perlu belajar cara mengelolanya:
- Dari antarmuka web (saya memilikinya Home Assistant, berputar pada Raspberry Pi terpisah, tetapi idealnya saya ingin koneksi sederhana ke sistem apa pun);
- Suara (Google Assistant akan melakukannya, lalu pikirkan Alice);
- Skrip;
- Murah ...
Riset pasar
Solusi asli
Mungkin saya bahkan tidak akan memberi tahu. Keputusan dari produsen AC saya melibatkan banyak kabel, setidaknya dua modul tambahan untuk setiap unit, dan harga sekitar $ 200 per kamar. Ditambah protokol berpemilik, aplikasi kuno, dan semua itu. Coret.
Sekitar $ 100 per kamar, asli bekerja dengan Google Assistant dan IFTTT, terlihat cantik, tetapi masih sedikit mahal.
tado ° - sama (dan bahkan lebih mahal).
Xiaomi Aqara / Mi Home, Broadlink RM Pro / Mini
Pemancar IR universal, beberapa secara teoritis mendukung pendingin udara yang diperlukan "di luar kotak", berintegrasi dengan Home Assistant menjadi dua, tetapi secara umum - solusi yang sangat-begitu, meskipun label harga sudah jauh lebih dekat dengan yang terjangkau ($ 20-35 per kamar, tergantung pada kemampuan ) Ya, dan aplikasi dalam bahasa Cina (dalam beberapa kasus) bukan yang saya inginkan.
DIY
Cara termurah dan paling fleksibel, yang akan saya bicarakan lebih lanjut.
Pemilihan Komponen
Ada sesuatu untuk dipikirkan, tetapi secara umum kita perlu:
Besi
Pengendali
Kami dengan bodohnya menggunakan ESP8266, dan untuk kesederhanaan firmware dan catu daya, kami akan menggunakan D1 mini. Kami jelas akan mengelola sistem melalui WiFi.
Pemancar IR
Untuk prototipe, kita akan menggunakan LED IR sederhana, resistansi dan transistor, maka kita akan memikirkan bagaimana ini dapat ditingkatkan.
Sensor suhu
Lebih asyik dengan itu, Anda dapat mengatur suhu target, dan melakukan on / off otomatis. Untuk memulai, ambil DHT22 dengan bodoh.
Layar
Kami akan menampilkan kondisi sistem saat ini (untuk debugging), dan mungkin alamat ip saat ini (akankah ini berguna?).
Perangkat lunak
IDE
Kami akan mengimplementasikan semua yang ada di IDE Arduino (yang belum pernah saya kerjakan sebelumnya) menggunakan perpustakaan terbuka.
Jauh kemudian, ketika proyek sudah bekerja, saya beralih ke Visual Studio Code dengan plugin
PlatformIO .
Protokol
Kami akan berkomunikasi dengan Home Assistant melalui MQTT (perpustakaan
PubSubClient ), karena ini adalah protokol terbuka, dan ada
komponen khusus untuknya.
Konfigurasi akan terlihat, misalnya, seperti ini:
climate: - platform: mqtt name: Living Room HVAC modes: - "off" - "auto" - "heat" - "cool" - "dry" - "fan" swing_modes: - "auto" - "off" fan_modes: - "auto" - "low" - "medium" - "high" mode_command_topic: "livingroom/meteo/mode/set" mode_state_topic: "livingroom/meteo/mode" temperature_command_topic: "livingroom/meteo/target/set" temperature_state_topic: "livingroom/meteo/target" fan_mode_command_topic: "livingroom/meteo/fan/set" fan_mode_state_topic: "livingroom/meteo/fan" swing_mode_command_topic: "livingroom/meteo/swing/set" swing_mode_state_topic: "livingroom/meteo/swing" current_temperature_topic: "livingroom/meteo/temperature"
Manajemen
Perpustakaan
HeatpumpIR akan membantu kami mengirim sinyal ke AC (model AC masih hardcoded).
Lain-lain
Anda akan membutuhkan lebih banyak perpustakaan untuk pengatur
waktu , untuk bekerja dengan
sensor suhu dan
layar , tetapi ini adalah hal-hal sepele. Kami akan menambahkan WiFiManager dan ArduinoOTA dengan gerakan biasa untuk memperbarui firmware melalui antarmuka web, dan bukan USB.
Prototipe (00)
Kami membeli komponen acak di aliexpress, menempatkannya di papan khayalan, menguji idenya.
Kami memahami bahwa:
- Layar diperintahkan terlalu besar dan memiliki kaki terlalu banyak.
- Satu LED tidak menekan terlalu jauh, dan tidak terlalu dapat diandalkan.
Tapi secara keseluruhan idenya berhasil! Komponen "asli" HVAC muncul di antarmuka Home Assistant, yang berarti bahwa kendali dari mana saja di dunia sudah ada di saku kami. Integrasi asli Asisten Rumah dengan Google Asisten menambahkan perintah suara dan umpan balik: Anda dapat bertanya kepada asisten tentang suhu di dalam ruangan, dan dia akan menjawab target dan suhu saat ini.
Mengubah suhu target, kecepatan hembusan, dan mode AC di antarmuka web juga tersedia (dan, yang paling penting, ini berhasil!).
Sampel Uji (01)
Mari kita ubah beberapa komponen: pesan layar yang lebih kecil, dan untuk bekerja melalui I2C (dan kami akan menggunakan pustaka yang
berbeda ).
Kami juga mengganti LED IR dengan modul yang sudah jadi.
Ternyata itu tidak layak memesan modul dengan satu LED (di foto di sebelah kiri) di aliexpress: mereka tidak mengandung transistor, dan salah satu kaki (VCC) yang mereka miliki pada dasarnya adalah palsu.
Tetapi jika Anda memesan modul dengan dua LED (di foto di sebelah kanan), maka semua komponen yang diperlukan sudah ada di tempatnya, dan modul semacam itu terhubung dengan mudah dan alami, dan selesai sedikit lebih jauh.
Ini juga saatnya untuk menempatkan semuanya pada papan sirkuit cetak saya ... Itu adalah salah satu momen paling sulit bagi seseorang yang tidak pernah mendesain papan sirkuit cetak, dan tentu saja saya melakukan semuanya dengan salah.
Untuk desain, saya menggunakan EasyEDA, saya memesan produk jadi untuk OSHPark (sekali lagi, pasti, Anda bisa menemukan opsi yang lebih murah), dan sebagai hasilnya saya mendapat sesuatu seperti ini:
Tombol ditambahkan pada saat terakhir, dan tempat untuk itu ditemukan sepenuhnya secara tidak sengaja. Ternyata dengan tombol semuanya sedikit lebih menyenangkan, Anda tidak dapat menjaga layar menyala sepanjang waktu (yang buruk untuk OLED), tetapi tunjukkan statusnya dengan menekan.
Yah, sudah bagus, masih harus menambahkan kasing. Untuk melakukan ini, jalankan Blender, lakukan banyak parallelepipeds, terapkan sejumlah operasi Boolean ...
Dan kirim ke printer 3D.
Secara total, ternyata murah (kurang dari $ 10 per salinan), fleksibel (ini akan bekerja dengan hampir semua AC), mudah diintegrasikan, dikendalikan oleh suara dan melalui web, secara konsisten selesai dari lima meter. Secara umum, tentang apa yang saya inginkan.
Bagaimana semua ini dilakukan sedikit lebih baik? ..
Model Seri (02)
Ada sejumlah arahan untuk meningkatkan produk yang dihasilkan (lebih tepatnya, peluang peningkatan yang memungkinkan untuk mengubah eksperimen menjadi produk):
- Sensor suhu dapat diambil lebih kecil dan lebih akurat, misalnya, BME280, HTU21D atau Si7021, yang akan memungkinkan Anda untuk menggantungnya pada kaki yang sama dengan layar (I2C), secara signifikan mengurangi ukuran perangkat jadi dan menyederhanakan tata letak PCB. Dalam praktiknya, ternyata BME280 yang sama mulai sangat dipengaruhi oleh pemanasan ESP8266 itu sendiri, dan bacaan yang dikeluarkan perlu disesuaikan.
- (Ini mengikuti dari paragraf pertama) Menjaga agar ESP8266 terus berjalan tidak aman, Anda perlu secara berkala pergi ke Tidur Nyenyak, hanya sesekali bangun untuk mengirim kesaksian dan menerima perintah;
- (mengikuti dari poin kedua) MQTT normal tidak lagi sangat cocok, Anda perlu menggunakan MQTT-SN sehingga perintah kontrol diingat dan dikirim ke controller pada saat bangun;
- Penerapan item-item di atas akan memungkinkan Anda untuk mengubah daya "kabel" ke baterai;
- Metode pemasangan komponen saat ini ke papan sirkuit tercetak (penyolderan konvensional) sulit untuk diterapkan dan tidak cukup fleksibel: masuk akal untuk menyolder header sehingga sensor suhu yang sama dapat diubah seperti sarung tangan;
- Akhirnya (bertentangan dengan paragraf sebelumnya), semua sama, modul jadi baik dan sederhana, tetapi sedikit rumit, idealnya bukannya D1 mini akan ada ESP8266 telanjang, dan sensor suhu, tombol dan LED IR akan disolder pada satu papan ( seperti yang mereka lakukan dalam produk serial), yang akan mengurangi ukuran perangkat dan harga seri;
- Bagaimanapun, akan lebih baik untuk memasukkan dalam firmware kemampuan untuk dengan mudah memilih model AC Anda dengan satu klik ...
Kesimpulan
Itu adalah petualangan yang luar biasa, dan saya mengerti banyak hal. Sebagai contoh, saya mengerti mengapa perangkat serial begitu mahal, dan berapa banyak usaha yang harus diterapkan untuk mendapatkan tingkat yang sama dengan mereka. Di sisi lain, saya melakukan banyak hal untuk pertama kalinya dalam proyek ini (bekerja di Arduino IDE, memesan papan sirkuit cetak, membuat model untuk printer 3D), dan mendapatkan pengalaman ini sangat berharga. Kode sumber, bagaimanapun, tidak akan menunjukkan: Saya malu pada mereka :)
Tetapi saya masih mencapai tujuan saya, dan kontrol AC yang murah dan fleksibel ternyata cukup dapat dicapai.