Daftar Isi:
- Langkah 1: Suku Cadang dan Alat
- Langkah 2: Prinsip Kerja
- Langkah 3: Pasang Perangkat
- Langkah 4: Unggah Kode
- Langkah 5: Konfigurasikan HomeAssistant
- Langkah 6: Mengonfigurasi Server MQTT Anda Sendiri [Opsional]
- Langkah 7: OTA (Pembaruan Melalui Udara) untuk NodeMCU
- Langkah 8: Kesimpulan, Pekerjaan Masa Depan
Video: Integrasi Penghitung Geiger Asisten Rumah: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Dalam tutorial ini saya akan menunjukkan bagaimana cara menambahkan sensor khusus ke HASS (asisten rumah) lebih khusus penghitung geiger tetapi prosesnya juga serupa untuk sensor lain.
Kami akan menggunakan papan NodeMCU, penghitung geiger berbasis arduino dan asisten rumah yang sudah diinstal.
Integrasi akan didasarkan pada server MQTT (publik atau pribadi) dan saya akan membawa Anda langkah demi langkah dengan ini.
Jika Anda tidak tahu apa itu asisten rumah tangga, silakan kunjungi halaman mereka https://www.home-assistant.io/. Ini adalah platform otomatisasi rumah terkenal yang terpelihara dengan sangat baik dan sangat dapat disesuaikan.
Anda akan belajar tentang:
- konfigurasi lanjutan untuk Asisten Rumah
- NodeMCU (papan pengembangan) dan cara memprogramnya dengan Arduino IDE
- OTA (over the air update) menggunakan Arduino IDE untuk papan NodeMCU
- cara menghubungkan perangkat serial ke NodeMCU
- menginstal server MQTT secara manual di linux (opsional)
Asumsi dasar:
- Anda memiliki Asisten Rumah dan menjalankannya
- Anda tahu sedikit tentang elektronik
- Anda telah menginstal Arduino IDE
Langkah 1: Suku Cadang dan Alat
Bagian:
1. Papan NodeMCU
2. papan tempat memotong roti
3. kabel juper pria-pria dan pria-wanita
3. kabel usb ke mikro usb
4. penghitung arduino geiger dengan antarmuka serial
(cari Ebay untuk "arduino geiger couter")
5. bahan radioaktif (opsional sampel uji kecil)
Peralatan:
1. Arduino IDE
2. Asisten Rumah terpasang
Langkah 2: Prinsip Kerja
Tujuan kami adalah untuk menunjukkan di HomeAssistat (HASS) pembacaan dari penghitung geiger. Di satu sisi kami memiliki server HASS dan berjalan di suatu tempat itu mungkin raspberry pi atau perangkat lain dan di sisi lain kami memiliki penghitung geiger.
Penghitung geiger memiliki port serial, salah satu solusinya adalah memasang langsung port serial ke RaspberryPi tempat HASS berjalan.
Beberapa alasan mengapa itu mungkin bukan ide yang baik:
- tidak ada ruang fisik di sana
- kami memiliki beberapa perangkat lain di port serial
- kami ingin memasang sensor lingkungan yang harus ditempatkan di luar alih-alih penghitung geiger
Ok jadi kita akan menjajaki kemungkinan lain membuat koneksi melalui WIFI:
HASS mendukung membaca data sensor dan menampilkan bahwa melalui server MQTT, server semacam ini adalah koneksi ringan untuk perangkat kecil satu perangkat mempublikasikan pesan pada "topik" yang lain mendengarkan pada topik itu untuk menerima pesan. Jadi HASS akan mendengarkan, dan kita membutuhkan sesuatu yang akan mempublikasikan pesannya.
Sensor kami hanya tahu untuk berbicara melalui saluran serial sehingga kami akan menggunakan papan yang dapat membaca saluran serial dan yang dapat terhubung melalui WIFI dan berbicara dengan server MQTT. Papan murah yang melakukan ini adalah NodeMCU.
NodeMCU dapat diprogram dengan Arduino IDE. Sketsanya cukup sederhana, ia melakukan hal berikut:
- terhubung ke WIFI
- mempertahankan koneksi MQTT dengan server dan mencoba kembali koneksi saat gagal atau terputus
- mendengarkan data masuk serial sebagai serangkaian bilangan bulat
- setelah bilangan bulat tiba, ia mengirimkannya melalui MQTT ke topik tertentu
Langkah 3: Pasang Perangkat
Kami akan menggunakan papan tempat memotong roti dan kabel sehingga cukup sederhana, kami memiliki beberapa langkah:
- letakkan NodeMCU di papan tempat memotong roti
- sambungkan tabung geiger ke penghitung geiger (hati-hati terhadap polaritas)
- VIN masuk ke penghitung geiger +
- GND masuk ke penghitung geiger -
- NodeMCU D7 (pin 13) masuk ke geiger TX
- NodeMCU D8 (pin 15) masuk ke geiger RX
- daya NodeMCU melalui micro USB dari komputer
Langkah 4: Unggah Kode
Kami akan menggunakan Arduino IDE dan kami akan memastikan bahwa kami telah menginstal papan NodeMCU dan perpustakaan Adafruit_MQTT diinstal.
1. Kloning repositori github: https://github.com/danionescu0/arduino dan salin sketsa dari proyek/HASSGeigerIntegration ke lokasi buku sketsa arduino Anda
2. Buka Arduino IDE dan instal NodeMCU
- buka File -> Preferences, di URL Additional Boards Manager tambahkan https://arduino.esp8266.com/stable/package_esp8266com_index.json jika Anda sudah memiliki sesuatu di sana, letakkan koma di depan dan klik ok
- dari Tools -> Board -> Board Manager ketik "nodemcu" dan pilih entri esp8266 by ESP8266 Community, dan tekan install
3. Instal Adafruit_MQTT
- buka Alat -> Kelola Perpustakaan -> cari "Adafruit_MQTT" dan instal "perpustakaan Arduino MQTT"
4. Colokkan kabel USB di komputer Anda dan konfigurasikan papan:
- buka Alat -> Papan -> pilih NodeMcu 1.0
- Alat -> Port -> port USB Anda
- biarkan pengaturan lainnya tidak berubah
4. Dalam sketsa, ubah kredensial WIFI Anda agar sesuai dengan milik Anda:
#define STASSID "ssid" // Ganti dengan WIFI SSID Anda
#define STAPSK "lulus" // Ganti dengan kata sandi WIFI Anda
5. Unggah sketsa ke papan Anda dan setelah mengunggah, setel ulang papan dari tombol
6. Buka serial monitor, jika semua sudah berjalan dengan baik Anda akan melihat beberapa output seperti ini:
Booting
Alamat IP: 192.168.1.168 OTA diaktifkan Menyambung ke MQTT… MQTT Tersambung! {"radiasi": 0,03}..
Langkah 5: Konfigurasikan HomeAssistant
Kami akan berasumsi bahwa Anda memiliki asisten rumah yang aktif dan berjalan. Di sistem saya, saya memiliki HASSOS versi 3.12 pada RaspberryPi. Jika versi asisten rumah Anda terlalu lama atau sangat baru, beberapa fitur mungkin berbeda. Tutorial ini pasti berfungsi dengan versi 3.12.
Jika Anda belum menginstal Home Assistant, lihat panduan instalasi resmi mereka:
Sebelum melanjutkan dengan penginstalan, pastikan NodeMCU sudah terpasang dan memublikasikan data.
Ok kita akan memiliki serangkaian langkah di sini juga untuk konfigurasi:
1. Instal "file editor" jika Anda tidak memilikinya di menu, berikut adalah tutorial resminya:
2. Edit file "/config/configuration.yaml" dan tambahkan berikut ini dan simpan:
- bagian mqtt jika Anda belum memilikinya
mqtt:
broker: broker.hivemq.com penemuan: benar discovery_prefix: ha
- bagian sensor
sensor:
- platform: nama mqtt: "Radiasi" state_topic: "ha/radiation" unit_of_measurement: 'uSv' unique_id: "radiasi" value_template: "{{ value_json.radiation }}"
3. Dari Konfigurasi -> Kontrol server: tekan "Periksa konfigurasi" periksa file konfigurasi yaml untuk kesalahan, lalu tekan "mulai ulang" dan tunggu hingga dimulai ulang
4. Dari Ikhtisar -> Menu pojok kanan atas -> Konfigurasi UI -> tekan tombol + dari kanan bawah
5. Pilih "sensor" dari daftar -> di kolom "entity" cari "sensor.radiation", di kolom nama tulis "Radiation" dan klik ok, seharusnya sudah di halaman utama sekarang
Langkah 6: Mengonfigurasi Server MQTT Anda Sendiri [Opsional]
Mari kita bahas sedikit tentang MQTT
“MQTT adalah protokol transport pesan yang diterbitkan/berlangganan Server Klien. Ini ringan, terbuka, sederhana, dan dirancang agar mudah diimplementasikan. Karakteristik ini membuatnya ideal untuk digunakan dalam banyak situasi, termasuk lingkungan terbatas seperti untuk komunikasi dalam konteks Machine to Machine (M2M) dan Internet of Things (IoT) di mana jejak kode kecil diperlukan dan/atau bandwidth jaringan sangat mahal.”
Kutipan dari spesifikasi resmi MQTT 3.1.1.
Jadi pada dasarnya kita dapat mempublikasikan pesan di suatu tempat di satu sisi dan di sisi lain kita dapat mendengarkan pesan tersebut dan melakukan sesuatu dengan data. MQTT mendukung "topik", topik adalah string yang digunakan broker untuk memfilter pesan untuk setiap klien, jadi jika kami memublikasikan pesan ke topik "/radiasi", pendengar harus berlangganan topik yang sama untuk mendapatkan pesan yang kami kirim.
Berikut adalah tutorial hebat tentang MQTT secara detail:
Menggunakan server sarang gratis ada beberapa kelemahan seperti:
- siapa pun yang mendengarkan topik Anda akan menerima pesan Anda
- jika turun atau membutuhkan pembayaran nanti Anda tidak akan dapat menggunakannya (kecuali Anda membayar)
- jika ada orang yang memublikasikan pesan ke topik yang sama, Anda juga akan menerima pesan mereka, mereka mungkin memublikasikan pesan yang tidak kompatibel dan merusak grafik HASS Anda
Menggunakan server pribadi
Jika Anda tidak ingin menggunakan server gratis publik, Anda memiliki opsi server pribadi. Kita akan menginstal Mosquitto MQTT di server ubuntu / debian seperti raspberry pi atau komputer.
Mosquitto adalah server yang mengimplementasikan protokol MQTT dan gratis.
Untuk menginstalnya, masuk ke raspnerry pi Anda atau server berbasis debian lainnya dan jalankan:
sudo apt update
sudo apt install -y mosquitto mosquitto-clients Sudo systemctl enable mosquitto.service
Ini akan memperbarui repositori, menginstal server dan klien mosquiito dan mengaktifkannya untuk menjalankan layanan saat startup
Untuk menjalankan ip server:
nama host -I
dan itu akan menampilkan sesuatu seperti:
192.168.1.52 172.17.0.1 172.18.0.1
Jadi ip saya adalah 192.168.1.52, pada perintah di bawah ini ganti dengan ip Anda sendiri
Anda dapat menguji server MQTT dengan memublikasikan pesan dan menerimanya dengan alat konsol, karena dua terminal ini harus dibuka, terminal yang mendengarkan pesan, terminal yang akan menerbitkan pesan.
Pertama di terminal, jalankan perintah ini untuk mendengarkan pesan tentang "/ beberapa topik"
mosquitto_sub -h 192.168.1.52 -t /beberapa-topik
Buka terminal lain dan publikasikan pesan ke topik itu:
mosquitto_pub -h 192.168.1.52 -t /beberapa topik -m '{"kelembaban": 74.0}'
Di terminal pertama Anda akan melihat ' {"humidity": 74.0}' dicetak.
Perhatian khusus:
- pengaturan ini mengasumsikan bahwa HASS, Mosquitto dan NodeMCU terhubung ke jaringan WIFI yang sama dan tidak ada aturan firewall dan mereka dapat berkomunikasi secara bebas
- server Mosquitt MQTT tidak memiliki nama pengguna/kata sandi, jika Anda ingin mengatur kredensial, periksa ini: https://www.steves-internet-guide.com/mqtt-username-password-example/ Anda juga perlu mengonfigurasi kredensial di Asisten Rumah dan di sketsa arduino
Langkah 7: OTA (Pembaruan Melalui Udara) untuk NodeMCU
Pembaruan melalui udara berarti bahwa papan pengembangan dapat di-flash secara nirkabel tanpa memerlukan kabel fisik.
Arduino IDE mendukung fungsi ini untuk seri ESP8266 dan beberapa papan lainnya:
- memerlukan flash awal melalui kabel USB
- membuat port virtual melalui WIFI dan hanya terlihat dari Arduino IDE
- tidak ada informasi debug serial yang tersedia
- mendukung perlindungan dengan kata sandi
Untuk mengaktifkan OTA dalam sketsa ESP8266, pertama-tama sertakan perpustakaan:
#sertakan "ArduinoOTA.h"
Juga tentukan konstanta kata sandi sketsa ini:
#define SKETCHPASS "some_password"
Di bagian pengaturan tambahkan baris ini:
sementara (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Koneksi Gagal! Reboot…"); penundaan(5000); ESP.mulai ulang(); } ArduinoOTA.setPassword(SKETCHPASS); ArduinoOTA.onStart(() { Jenis string; if (ArduinoOTA.getCommand() == U_FLASH) { type = "sketsa"; } else { // U_FS type = "filesystem"; } Serial.println("Mulai memperbarui " + jenis); }); ArduinoOTA.onEnd(() { Serial.println("\nEnd"); }); ArduinoOTA.onProgress((kemajuan int yang tidak ditandatangani, total int yang tidak ditandatangani) { Serial.printf("Kemajuan: %u%%\r", (kemajuan / (total / 100))); }); ArduinoOTA.onError((ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) { Serial.println("Auth Failed"); } else if (kesalahan == OTA_BEGIN_ERROR) { Serial.println("Mulai Gagal"); } else if (kesalahan == OTA_CONNECT_ERROR) { Serial.println("Connect Failed"); } else if (kesalahan == OTA_RECEIVE_ERROR) { Serial.println(" Penerimaan Gagal"); } else if (kesalahan == OTA_END_ERROR) { Serial.println("Akhir Gagal"); } }); ArduinoOTA.mulai(); Serial.print("Alamat IP: "); Serial.println(WiFi.localIP());
Dan di bagian loop tambahkan baris ini:
ArduinoOTA.handle();
Setelah kode awal Anda diunggah setelah papan boot, Anda akan melihat di Arduino IDE di bagian Tools->Port dua jenis port:
Port serial: /dev/ttyUSB0 (misalnya)
Port jaringan: esp8266-xxxxx di 192.168.1.xxx
Sekarang Anda dapat memilih port jaringan dan mengunggah remote sketsa, Anda akan dimintai kata sandi sketsa (yang telah Anda tetapkan dalam konstanta di atas)
Langkah 8: Kesimpulan, Pekerjaan Masa Depan
Tutorial ini dapat dengan mudah dimodifikasi untuk mengirim data tentang jenis sensor lainnya:
- jika sensor Anda didukung langsung oleh NodeMCU melalui perpustakaan, cukup kumpulkan data dari sensor dan langsung dorong melalui MQTT
- jika perpustakaan sensor tidak bekerja dengan NodeMCU tetapi hanya untuk Arduino kemudian unggah kode Anda ke arduino, keluarkan nilainya melalui jalur serial dan baca di NodeMCU dan dorong (seperti yang kami lakukan dengan penghitung geiger)
Kami bahkan dapat memodifikasinya untuk mengirim data dari beberapa sensor seperti:
- hubungkan sensor Anda ke NodeMCU
- data polling dari setiap sensor
- untuk masing-masing sensor mempublikasikan data ke topik yang berbeda
- di HASS, tentukan beberapa sensor (seperti yang kami lakukan dengan geiger) yang akan mendengarkan berbagai topik
Direkomendasikan:
Pembuka Pintu Garasi Cerdas DIY + Integrasi Asisten Rumah: 5 Langkah
Pembuka Pintu Garasi Cerdas DIY + Integrasi Asisten Rumah: Ubah pintu garasi normal Anda menjadi pintar menggunakan proyek DIY ini. Saya akan menunjukkan cara membangun dan mengontrolnya menggunakan Home Assistant (melalui MQTT) dan memiliki kemampuan untuk membuka dan menutup pintu garasi Anda dari jarak jauh. Saya akan menggunakan papan ESP8266 yang disebut Wemos
Kontrol Gerbang Geser Otomatis Anda Dengan Asisten Rumah dan ESPHome: 5 Langkah (dengan Gambar)
Kendalikan Gerbang Geser Otomatis Anda Dengan Asisten Rumah dan ESPHome: Artikel berikut adalah beberapa umpan balik tentang pengalaman pribadi saya mengendalikan gerbang geser otomatis yang telah saya pasang di rumah saya. Gerbang ini, bermerek "V2 Alfariss", dilengkapi dengan beberapa remote Phox V2 untuk mengendalikannya. Saya juga punya
Memulai Otomatisasi Rumah: Memasang Asisten Rumah: 3 Langkah
Memulai Dengan Otomatisasi Rumah: Memasang Asisten Rumah: Kami sekarang akan memulai seri otomatisasi rumah, di mana kami membuat rumah pintar yang memungkinkan kami mengontrol hal-hal seperti lampu, speaker, sensor, dan sebagainya menggunakan hub pusat bersama dengan asisten suara. Pada postingan kali ini, kita akan belajar bagaimana cara memasukkan
Sensor Pintu Bertenaga Baterai Dengan Integrasi Otomatisasi Rumah, WiFi, dan ESP-NOW: 5 Langkah (dengan Gambar)
Sensor Pintu Bertenaga Baterai Dengan Integrasi Otomatisasi Rumah, WiFi, dan ESP-NOW: Dalam instruksi ini saya menunjukkan kepada Anda bagaimana saya membuat sensor pintu bertenaga baterai dengan integrasi otomatisasi rumah. Saya telah melihat beberapa sensor dan sistem alarm bagus lainnya, tetapi saya ingin membuatnya sendiri. Tujuan saya: Sensor yang mendeteksi dan melaporkan kesalahan
Integrasi Arduino dan Apple HomeKit - Kontrol Rumah Anda Dari Siri! IoT Ada Di Sini: 6 Langkah
Integrasi Arduino dan Apple HomeKit - Kontrol Rumah Anda Dari Siri! IoT Ada Di Sini: Instruksi ini akan memberi Anda cara cepat dan mudah untuk menambahkan papan arduino ke HomeKit Apple di perangkat iOS. Ini membuka segala macam kemungkinan termasuk Script yang berjalan di server, dikombinasikan dengan Apples HomeKit "Scenes", itu membuat