MQTT, Smart Home, ESP-8266 dan Plug & Play

Menciptakan rumah pintar melibatkan banyak sensor berbeda yang memantau situasi di rumah - gerakan, pencahayaan, suhu, dan sensor lainnya. Jika "rumah pintar" kecil, maka semuanya terlihat sederhana bahkan dengan sistem buatan rumah yang didasarkan pada solusi terbuka (MQTT, OpenHAB, dll.) - mereka menghubungkan sensor, mendaftarkannya dalam program OpenHAB atau HomeAssistant dan mulai bekerja. Tetapi jika ada banyak sensor, maka banyak pekerjaan rutin dan tidak tahu berterima kasih muncul pada masing-masing resep dalam sistem kontrol.

Solusi yang diusulkan ("penopang") memungkinkan Anda untuk melakukan operasi manual minimum pada tahap ini. Pengontrol sensor terhubung ke broker MQTT dan berbicara tentang sensor dan perangkatnya dalam format tertentu dalam topik khusus, kemudian skrip kecil di server rumah pintar membuat file konfigurasi yang sesuai dengan sensor ini, setelah itu Anda hanya perlu mengidentifikasi secara manual di grup khusus rumah dan Anda dapat mulai membuat skrip manajemen.

Secara khusus, firmware ini berfungsi pada modul dengan ESP-8266 (termasuk Sonoff Basic Switch dan Sonoff Touch Wallswitch) dengan skrip P&P untuk OpenHAB dan HomeAssistant, tetapi metode output informasi plug & play sendiri dapat digunakan dalam proyek lain.

Saat Anda menghubungkan perangkat ke broker MQTT, topik berikut akan dibuat (dalam hal ini, untuk tombol FLASH pada ESP-8266 dengan nomor seri 0023CB541):

  • / myhome / PNP / ESPX-0023CB541 / BUTTON / name - name / description ("tombol FLASH" - ini akan ditampilkan di antarmuka web)
  • / myhome / PNP / ESPX-0023CB541 / BUTTON / type - jenis variabel dan arah aliran data untuk itu, "O: Switch" menunjukkan sensor yang menyediakan informasi, dan, misalnya, "I: Dimmer" - saluran masuk dari dimmer
  • / myhome / PNP / ESPX-0023CB541 / BUTTON / groups - groups di mana variabel ini akan muncul secara default ("Switches Builtin Buttons")
  • / myhome / PNP / ESPX-0023CB541 / BUTTON / min - nilai minimum (untuk variabel numerik, untuk tombol itu akan kosong)
  • / myhome / PNP / ESPX-0023CB541 / BUTTON / maks - nilai maksimum (serupa)

Sebuah skrip berjalan di server (berdasarkan mahkota atau secara manual, setelah menghubungkan perangkat) - mengunduh daftar topik dari / myhome / PNP, mencari perangkat yang tidak ada di OpenHAB dan membuat file konfigurasi untuk mereka. Jika file konfigurasi untuk perangkat tersebut sudah ada, maka informasi P&P sepenuhnya diabaikan, tetapi Anda dapat menghapus file ini, jika perlu, buat kembali file untuk perangkat dengan set sensor yang diubah.

Sedemikian sederhana dan transparan - kami menghilangkan sakit kepala yang cukup besar jika Anda perlu menghubungkan sejumlah besar perangkat yang dikendalikan jaringan di rumah pintar buatan kami.

Saya akan memberi tahu Anda sedikit lebih banyak tentang firmware aktual untuk ESP-8266. Kode sumbernya (dan skrip dukungan untuk OpenHAB dan HomeAssistant) dapat ditemukan di Github (khususnya, skrip dukungan ada di sini ).

Ini bekerja pada modul ESP-8266 standar (juga pada Sonoff Basic Switch dan Sonoff Touch Wallswitch), mendukung peningkatan firmware dengan cepat (ArduinoOTA), dan juga memiliki server web sederhana untuk konfigurasi awal parameter jaringan WiFi dan pengaturan alamat IP MQTT pialang

Struktur firmware bersifat modular dan Anda dapat dengan mudah menambahkan sensor / perangkat Anda. Daftar saat ini meliputi:

  • Sensor gerak inframerah dan detektor gerakan Parallax X-band (hingga 3 unit per modul)
  • Sensor Suhu / Kelembaban DHT22 atau setara
  • Dimmer terkontrol Modbus / RS-485 4 saluran saya
  • HC-SR04 Sonars dan MaxBotix Series Sonars
  • Relay pada Sonoff Basic Switch dan Sonoff Touch (yang terakhir dapat diubah baik ke mode kontrol relay dengan tombol, dan hanya melalui OpenHAB / HomeAssistant)
  • Built-in ADC, LED dan tombol Flash (untuk Sonoff Touch - ini adalah tombol sentuh)
  • Termostat sederhana dengan dua relay untuk mengendalikan kipas (unit indoor) dan kompresor (unit outdoor)

Perlu dicatat bahwa karena kurangnya pin pada ESP-8266, modul dapat saling bertentangan (misalnya, dimmer dengan sonar tidak dapat dihubungkan pada saat yang sama jika Anda tidak mendistribusikan ulang pin sendiri).

Setelah memilih perangkat yang diperlukan di esp-sensor.h, kompilasi dan firmware - modul beralih ke mode konfigurasi - modul ini meningkatkan jaringan WiFi-nya dengan nama seperti "espx-0023cb541", yang harus Anda sambungkan (Anda dapat menggunakan smartphone apa saja) dengan kata sandi dari file yang sama , lalu buka 192.168.4.1 dan atur login dan kata sandi jaringan, serta alamat IP broker. Parameter ini akan disimpan dalam sekejap, jadi untuk kedua kalinya Anda tidak perlu melakukan ini. Jika tidak memungkinkan untuk terhubung ke jaringan tertentu dalam satu menit, itu akan beralih kembali ke mode konfigurasi selama tiga menit, dan kemudian akan mengulangi siklus ini sampai berhasil terhubung.

Bagi mereka yang akan mengedit firmware ini, saya akan menyebutkan bahwa setiap modul sensor / perangkat dibagi menjadi enam fungsi:

  • setup _ * () - mengonfigurasi pin
  • loop _ * () - polling sensor pada setiap siklus program
  • refresh _ * (forceSend) - memperbarui informasi status sensor pada MQTT (secara default 200 ms, dan setiap dua detik - pembaruan paksa)
  • pnp _ * () - mengirim informasi P&P
  • berlangganan _ * () - berlangganan ke topik masuk yang diperlukan
  • mqtt _ * () - memproses pesan mqtt yang masuk

Fungsi-fungsi ini harus didefinisikan dalam file modul Anda, kemudian tambahkan panggilan mereka ke tempat-tempat yang sesuai esp-sensor.ino.

Source: https://habr.com/ru/post/id432730/


All Articles