
Isi kandungan:
- Langkah 1: Bahagian dan Alat
- Langkah 2: Prinsip Kerja
- Langkah 3: Pasang Peranti
- Langkah 4: Muat naik Kod
- Langkah 5: Konfigurasikan HomeAssistant
- Langkah 6: Mengkonfigurasi Pelayan MQTT Anda Sendiri [Pilihan]
- Langkah 7: OTA (Kemas Kini Melalui Udara) untuk NodeMCU
- Langkah 8: Kesimpulan, Kerja Masa Depan
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:00



Dalam tutorial ini saya akan menunjukkan bagaimana anda bagaimana menambahkan sensor tersuai ke HASS (pembantu rumah) lebih khusus lagi kaunter geiger tetapi prosesnya serupa untuk sensor lain juga.
Kami akan menggunakan papan NodeMCU, kaunter geiger berasaskan arduino dan pembantu rumah yang sudah dipasang.
Integrasi akan dibuat berdasarkan pelayan MQTT (awam atau swasta) dan saya akan membawa anda selangkah demi selangkah dengan ini.
Sekiranya anda tidak tahu apa itu pembantu rumah sila lawati halaman mereka https://www.home-assistant.io/. Ini adalah platform automasi rumah yang terkenal yang sangat terawat dan dapat disesuaikan.
Anda akan belajar mengenai:
- konfigurasi lanjutan untuk Pembantu Rumah
- NodeMCU (papan pengembangan) dan cara memprogramkannya dengan Arduino IDE
- OTA (kemas kini melalui udara) menggunakan Arduino IDE untuk papan NodeMCU
- cara menyambungkan peranti bersiri ke NodeMCU
- memasang pelayan MQTT secara manual pada linux (pilihan)
Andaian asas:
- anda mempunyai Pembantu Rumah dan berfungsi
- anda tahu sedikit mengenai elektronik
- anda telah memasang Arduino IDE
Langkah 1: Bahagian dan Alat
Bahagian:
1. Papan NodeMCU
2. roti roti
3. wayar juper lelaki-lelaki dan lelaki-perempuan
3. kabel usb ke mikro usb
4. kaunter arduino geiger dengan antara muka bersiri
(cari Ebay untuk "arduino geiger couter")
5. bahan radioaktif (pilihan sampel ujian kecil)
Alat:
1. Arduino IDE
2. Pembantu Rumah dipasang
Langkah 2: Prinsip Kerja
Tujuan kami adalah untuk menunjukkan di HomeAssistat (HASS) bacaan dari kaunter geiger. Di satu sisi, kita mempunyai pelayan HASS dan berjalan di suatu tempat, ia mungkin pi raspberry atau peranti lain dan di sisi lain kita mempunyai kaunter geiger.
Kaunter geiger mempunyai port bersiri, satu penyelesaiannya adalah dengan melampirkan langsung port bersiri ke RaspberryPi di mana HASS berjalan.
Beberapa sebab mengapa ia bukan idea yang baik:
- tidak ada ruang fizikal di sana
- kami mempunyai beberapa peranti lain di port bersiri
- kami ingin memasang sensor persekitaran yang harus diletakkan di luar dan bukannya kaunter geiger
Baiklah, jadi kita akan meneroka kemungkinan lain membuat sambungan melalui WIFI:
HASS menyokong data sensor pembacaan dan menunjukkan bahawa melalui pelayan MQTT, pelayan jenis ini adalah sambungan ringan untuk peranti kecil satu peranti menerbitkan mesej pada "topik" yang lain mendengar topik tersebut untuk menerima mesej. Oleh itu, HASS akan mendengar, dan kita memerlukan sesuatu yang akan menerbitkan mesej.
Sensor kami hanya tahu bercakap melalui saluran bersiri sehingga kami akan menggunakan papan yang dapat membaca baris bersiri dan yang dapat menghubungkan melalui WIFI dan bercakap dengan pelayan MQTT. Papan murah yang melakukan ini adalah NodeMCU.
NodeMCU dapat diprogramkan dengan Arduino IDE. Lakarannya cukup mudah, ia melakukan perkara berikut:
- bersambung ke WIFI
- mengekalkan sambungan MQTT dengan pelayan dan mencuba semula sambungan apabila gagal atau terputus
- mendengar data masuk bersiri sebagai satu siri bilangan bulat
- setelah bilangan bulat tiba, ia menghantarnya melalui MQTT ke topik tertentu
Langkah 3: Pasang Peranti

Kami akan menggunakan papan roti dan wayar sehingga cukup mudah, kami mempunyai beberapa langkah:
- letakkan NodeMCU di papan roti
- sambungkan tiub geiger ke kaunter geiger (berhati-hati untuk kekutuban)
- VIN pergi ke kaunter geiger +
- GND pergi ke kaunter geiger -
- NodeMCU D7 (pin 13) menuju ke geiger TX
- NodeMCU D8 (pin 15) menuju ke geiger RX
- kuasa NodeMCU melalui mikro USB dari komputer
Langkah 4: Muat naik Kod




Kami akan menggunakan Arduino IDE dan kami akan memastikan papan NodeMCU dipasang dan perpustakaan Adafruit_MQTT dipasang.
1. Klon repositori github: https://github.com/danionescu0/arduino dan salin lakaran dari projek / HASSGeigerIntegration ke lokasi buku sketsa arduino anda
2. Buka Arduino IDE dan pasang NodeMCU
- pergi ke Fail -> Pilihan, di URL Pengurus Papan Tambahan tambahkan https://arduino.esp8266.com/stable/package_esp8266com_index.json jika anda sudah mempunyai sesuatu di sana letakkan koma di hadapan dan klik ok
- dari Alat -> Papan -> Jenis Pengurus Papan "nodemcu" dan pilih entri esp8266 oleh Komuniti ESP8266, dan tekan pasang
3. Pasang Adafruit_MQTT
- pergi ke Alat -> Kelola Perpustakaan -> cari "Adafruit_MQTT" dan pasang "Arduino MQTT library"
4. Pasangkan kabel USB di komputer anda dan konfigurasikan papan:
- pergi ke Tools -> Board -> pilih NodeMcu 1.0
- Alat -> Port -> port USB anda
- biarkan tetapan lain tidak berubah
4. Dalam lakaran ubah kelayakan WIFI anda agar sesuai dengan yang anda miliki:
#define STASSID "ssid" // Ganti dengan SSID WIFI anda
#define STAPSK "pass" // Ganti dengan kata laluan WIFI anda
5. Muat naik lakaran ke papan anda dan setelah muat naik tetapkan semula papan dari butang
6. Buka monitor bersiri, jika semuanya berjalan lancar, anda akan melihat beberapa output seperti ini:
Booting
Alamat IP: 192.168.1.168 OTA diaktifkan Menyambung ke MQTT… MQTT Disambungkan! {"radiasi": 0.03}..
Langkah 5: Konfigurasikan HomeAssistant


Kami akan menganggap bahawa anda mempunyai pembantu rumah yang aktif. Pada sistem saya, saya mempunyai HASSOS versi 3.12 pada RaspberryPi. Sekiranya versi pembantu rumah anda terlalu lama atau sangat baru, beberapa ciri mungkin berbeza. Tutorial ini berfungsi dengan pasti dengan versi 3.12.
Sekiranya anda tidak memasang Pembantu Rumah, lihat panduan pemasangan rasmi mereka:
Sebelum maju dengan pemasangan, pastikan NodeMCU terpasang dan menerbitkan data.
Baiklah, kita akan mempunyai beberapa langkah di sini untuk konfigurasi:
1. Pasang "editor fail" jika anda tidak memilikinya dalam menu, berikut adalah tutorial rasmi:
2. Edit fail "/config/configuration.yaml" dan tambahkan yang berikut dan simpan
- bahagian mqtt jika anda belum memilikinya
mqtt:
broker: penemuan broker.hivemq.com: penemuan benar_prefix: ha
- bahagian sensor
sensor:
- platform: nama mqtt: "Radiation" state_topic: "ha / radiation" unit_of_measurement: 'uSv' unique_id: "radiasi" value_template: "{{value_json.radiation}}"
3. Dari Konfigurasi -> Kawalan pelayan: tekan "Periksa konfigurasi" periksa fail konfigurasi yaml untuk kesilapan, dan kemudian tekan "mulakan semula" dan tunggu sehingga ia dimulakan semula
4. Dari Gambaran Keseluruhan -> Menu sudut kanan atas -> Konfigurasi UI -> tekan butang + dari kanan bawah
5. Pilih "sensor" dari daftar -> dalam bidang "entiti" cari "sensor.radiation", di bidang nama tulis "Radiasi" dan klik ok, ia harus berada di halaman utama sekarang
Langkah 6: Mengkonfigurasi Pelayan MQTT Anda Sendiri [Pilihan]
Mari kita bincangkan sedikit mengenai MQTT
"MQTT adalah protokol pengangkutan pesanan penerbitan / langganan Pelayan Pelanggan. Ringan, terbuka, sederhana, dan dirancang agar mudah dilaksanakan. Ciri-ciri ini menjadikannya ideal untuk digunakan dalam banyak situasi, termasuk lingkungan yang terbatas seperti untuk komunikasi dalam konteks Mesin ke Mesin (M2M) dan Internet of Things (IoT) di mana jejak kod kecil diperlukan dan / atau lebar jalur rangkaian adalah premium."
Petikan dari spesifikasi MQTT 3.1.1 rasmi.
Jadi pada dasarnya kita dapat menerbitkan mesej di suatu tempat di satu pihak dan di sisi lain kita dapat mendengar mesej tersebut dan melakukan sesuatu dengan data. MQTT menyokong "topik", topik adalah rentetan yang digunakan broker untuk menyaring mesej untuk setiap pelanggan, jadi jika kami menerbitkan mesej ke topik "/ radiasi", pendengar mesti melanggan topik yang sama untuk mendapatkan mesej yang kami hantar.
Berikut adalah tutorial hebat mengenai MQTT secara terperinci:
Menggunakan pelayan sarang percuma terdapat beberapa kelemahan seperti:
- sesiapa yang mendengar topik anda akan menerima mesej anda
- jika turun atau memerlukan pembayaran di kemudian hari, anda tidak akan dapat menggunakannya (melainkan anda membayar)
- jika ada yang menerbitkan mesej ke topik yang sama, anda juga akan menerima mesej mereka, mereka mungkin menerbitkan mesej yang tidak sesuai dan memecahkan grafik HASS anda
Menggunakan pelayan peribadi
Sekiranya anda tidak mahu menggunakan pelayan percuma awam, anda mempunyai pilihan untuk pelayan peribadi. Kami akan memasang Mosquitto MQTT pada pelayan ubuntu / debian seperti raspberry pi atau komputer.
Mosquitto adalah pelayan yang menerapkan protokol MQTT dan percuma.
Untuk memasangnya log masuk ke raspnerry pi anda atau pelayan berasaskan debian lain dan jalankan:
sudo apt kemas kini
sudo apt install -y mosquitto mosquitto-client sudo systemctl aktifkan mosquitto.service
Ini akan mengemas kini repositori, memasang pelayan dan klien mosquiito dan membolehkannya dijalankan pada permulaan
Untuk melaksanakan pelayan ip:
nama hos -I
dan akan menghasilkan sesuatu seperti:
192.168.1.52 172.17.0.1 172.18.0.1
Jadi ip saya adalah 192.168.1.52, dalam arahan di bawah gantikannya dengan ip anda sendiri
Anda boleh menguji pelayan MQTT dengan menerbitkan mesej dan menerimanya dengan alat konsol, kerana dua terminal ini mesti dibuka yang mendengarkan mesej, yang akan menerbitkan mesej.
Pertama di terminal jalankan perintah ini untuk mendengar mesej mengenai "/ some-topic"
mosquitto_sub -h 192.168.1.52 -t / sebilangan topik
Buka terminal lain dan terbitkan mesej ke topik itu:
mosquitto_pub -h 192.168.1.52 -t / some-topic -m '{"kelembapan": 74.0}'
Di terminal pertama anda akan melihat '{"kelembapan": 74.0}' dicetak.
Perhatian istimewa:
- persediaan ini mengandaikan bahawa HASS, Mosquitto dan NodeMCU disambungkan ke rangkaian WIFI yang sama dan tidak ada peraturan firewall dan mereka dapat berkomunikasi secara bebas
- pelayan Mosquitt MQTT tidak mempunyai nama pengguna / kata laluan, jika anda ingin menetapkan kelayakan, periksa ini: https://www.steves-internet-guide.com/mqtt-username-password-example/ Juga anda perlu mengkonfigurasi kelayakan dalam Pembantu Rumah dan dalam lakaran arduino
Langkah 7: OTA (Kemas Kini Melalui Udara) untuk NodeMCU
Kemas kini melalui udara bermaksud bahawa papan pengembangan dapat dikedip tanpa wayar tanpa memerlukan kabel fizikal.
Arduino IDE menyokong fungsi ini untuk siri ESP8266 dan beberapa papan lain:
- memerlukan flash awal melalui kabel USB
- membuat port maya melalui WIFI dan hanya dapat dilihat dari Arduino IDE
- tiada maklumat debug bersiri tersedia
- menyokong perlindungan dengan kata laluan
Untuk mengaktifkan OTA dalam lakaran ESP8266, sertakan perpustakaan terlebih dahulu:
#sertakan "ArduinoOTA.h"
Tentukan juga pemalar kata laluan lakaran ini:
#tentukan SKETCHPASS "some_password"
Di bahagian persediaan tambahkan baris berikut:
sementara (WiFi.waitForConnectResult ()! = WL_CONNECTED) {
Serial.println ("Sambungan Gagal! Reboot …"); kelewatan (5000); ESP.mulakan semula (); } ArduinoOTA.setPassword (SKETCHPASS); ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) {type = "sketch";} else {// U_FS type = "filesystem";} Serial.println ("Mula mengemas kini "+ taip);}); ArduinoOTA.onEnd ( () {Serial.println ("\ nEnd");}); ArduinoOTA.onProgress ( (int intigned int, unsigned int total) {Serial.printf ("Progress:% u %% / r", (progress / (total / 100)));}); ArduinoOTA.onError ( (ralat ota_error_t) {Serial.printf ("Ralat [% u]:", ralat); if (error == OTA_AUTH_ERROR) {Serial.println ("Auth Failed");} lain jika (ralat == OTA_BEGIN_ERROR) {Serial.println ("Begin Failed");} lain jika (error == OTA_CONNECT_ERROR) {Serial.println ("Connect Failed");} lain jika (error == OTA_RECEIVE_ERROR) {Serial.println (" Terima Gagal ");} lain jika (ralat == OTA_END_ERROR) {Serial.println (" Tamat Gagal ");}}); ArduinoOTA.begin (); Serial.print ("Alamat IP:"); Serial.println (WiFi.localIP ());
Dan di bahagian gelung tambahkan baris ini:
ArduinoOTA.handle ();
Selepas kod awal anda dimuatkan setelah papan boot, anda akan melihat di Arduino IDE di bahagian Tools-> Port dua jenis port:
Port bersiri: / dev / ttyUSB0 (contohnya)
Port rangkaian: esp8266-xxxxx di 192.168.1.xxx
Sekarang anda boleh memilih port rangkaian dan memuat naik lakaran jauh, anda akan diminta untuk kata laluan lakaran (yang anda telah tetapkan dalam pemalar di atas)
Langkah 8: Kesimpulan, Kerja Masa Depan
Tutorial ini dapat diubahsuai dengan mudah untuk menghantar data mengenai jenis sensor lain:
- jika sensor anda secara langsung disokong oleh NodeMCU melalui perpustakaan, cukup kumpulkan data dari sensor dan tekan terus melalui MQTT
- jika pustaka sensor tidak berfungsi dengan NodeMCU tetapi hanya untuk Arduino kemudian muat naik kod anda ke arduino, keluarkan nilainya melalui baris bersiri dan baca di NodeMCU dan tekan (seperti yang kami lakukan dengan kaunter geiger)
Kita bahkan boleh mengubahnya untuk menghantar data dari pelbagai sensor seperti:
- sambungkan sensor anda ke NodeMCU
- data tinjauan dari setiap sensor
- untuk setiap sensor menerbitkan data ke topik yang berbeza
- dalam HASS menentukan beberapa sensor (seperti yang kita lakukan dengan geiger) yang akan mendengar topik yang berbeza
Disyorkan:
Pembuka Pintu Garasi Pintar DIY + Integrasi Pembantu Rumah: 5 Langkah

Pembuka Pintu Garasi Pintar DIY + Integrasi Pembantu Rumah: Hidupkan pintu garaj biasa anda dengan bijak menggunakan projek DIY ini. Saya akan menunjukkan kepada anda bagaimana membinanya dan mengawalnya menggunakan Pembantu Rumah (melalui MQTT) dan mempunyai kemampuan untuk membuka dan menutup pintu garaj anda dari jauh. Saya akan menggunakan papan ESP8266 yang disebut Wemos
Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESP Rumah: 5 Langkah (dengan Gambar)

Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESPRumah: Artikel berikut adalah beberapa maklum balas mengenai pengalaman peribadi saya mengendalikan pintu gelangsar automatik yang telah saya pasangkan di rumah saya. Pintu gerbang ini, berjenama " V2 Alfariss ", telah dilengkapi dengan beberapa alat kawalan jauh Phox V2 untuk mengawalnya. Saya juga ada
Bermula dengan Automasi Rumah: Memasang Pembantu Rumah: 3 Langkah

Bermula dengan Automasi Rumah: Memasang Pembantu Rumah: Kami sekarang akan memulakan siri automasi rumah, di mana kami membuat rumah pintar yang membolehkan kami mengawal perkara seperti lampu, pembesar suara, sensor dan sebagainya menggunakan hab pusat bersama dengan pembantu suara. Dalam catatan ini, kita akan belajar bagaimana memasukkan
Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: 5 Langkah (dengan Gambar)

Sensor Pintu Bertenaga Bateri Dengan Integrasi Automasi Rumah, WiFi dan ESP-SEKARANG: Dalam arahan ini saya menunjukkan kepada anda bagaimana saya membuat sensor pintu berkuasa bateri dengan integrasi automasi rumah. Saya telah melihat beberapa sensor dan sistem penggera yang bagus, tetapi saya mahu membuatnya sendiri. Matlamat saya: Sensor yang mengesan dan melaporkan doo
PEMBANTU KAWALAN GOOGLE PEMBANTU MENGGUNAKAN NODEMCU: 9 Langkah

GOOGLE ASSISTANT CONTROLLED SWITCH MENGGUNAKAN NODEMCU: Bukankah lebih baik untuk menghidupkan atau mematikan sesuatu dengan bantuan pembantu Google .. !!! Oleh itu, dalam Instructables ini, saya akan menunjukkan cara mengawal sebarang peralatan elektrik dengan bantuan pembantu Google , sama seperti Alexa Amazon. Banyak peranti komersial