Daftar Isi:
- Langkah 1: Muat Pi Dengan Peregangan Rasbian
- Langkah 2: Perbarui dan Tambahkan Fitur ke Node-Red
- Langkah 3: Instalasi MQTT Nyamuk
- Langkah 4: Menyiapkan Antarmuka Node Red
- Langkah 5: Menyiapkan Sistem Arduino untuk Memprogram Ulang Perangkat Sonoff
- Langkah 6: Memprogram Ulang Saklar Sonoff
- Langkah 7: Keamanan
- Langkah 8: Langkah Awal untuk Ekspansi
- Langkah 9: Tambahan - Memuat Dari Raspbian Stretch Lite
Video: Sistem Otomasi Rumah Mandiri yang Kuat - Pi, Sonoff, ESP8266, dan Node-Red: 9 Langkah (dengan Gambar)
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Panduan ini akan membawa Anda ke pangkalan pertama di mana Anda dapat menyalakan/mematikan lampu atau alat melalui perangkat apa pun yang dapat terhubung ke jaringan lokal Anda, dan dengan antarmuka web yang dapat disesuaikan. Cakupan untuk ekstensi/ penambahan fitur sangat luas, termasuk mengirim email, pesan twitter, sensor membaca (misalnya suhu). Anda dapat dengan mudah menetapkan aturan mis. – jika suhu di bawah 15C pada jam 11 malam, nyalakan selimut listrik selama 30 menit. Sistem ini menggunakan protokol MQTT dengan TCP yang jauh lebih andal daripada UDP - yang secara mengejutkan digunakan oleh beberapa perangkat otomatisasi rumah komersial. Setelah kerja keras menyiapkan sistem, yang dijelaskan di sini, selesai, kesenangan dapat dimulai. Node Red menyediakan antarmuka pengguna fantastis yang intuitif, cepat dan mudah diatur, dan menyediakan kemampuan luar biasa.
Hasilnya adalah sistem otomasi rumah yang kuat yang sepenuhnya berada di bawah kendali seseorang dan sepenuhnya berada di jaringan lokal. Banyak sistem yang ditampilkan di Instructables bekerja dengan server berbasis cloud dan karenanya merupakan risiko keamanan dan dapat memerlukan langganan. Ini lebih mudah diatur tetapi memiliki risiko keamanan yang lebih tinggi dan kemungkinan biaya yang lebih tinggi. Saya harus menambahkan bahwa seseorang dapat mengatur VPN (jaringan pribadi virtual) ke Pi untuk mengaktifkan koneksi aman ke jaringan/sistem rumah jika akses dari luar akan berguna (Google Pi OpenVPN untuk instruksi).
Sistem ini membutuhkan pemrograman ulang perangkat Sonoff dengan sistem sumber terbuka yang disebut Sonoff-Tasmoda. Ini dapat dilakukan dengan menggunakan pengaturan Arduino khusus dan konverter USB ke serial. Perangkat Sonoff menggunakan chip Wi-Fi ESP8266 sehingga Anda juga dapat membuat perangkat sendiri menggunakan modul ESP8266 atau menyesuaikannya dengan item lain untuk menghadirkan konektivitas nirkabel.
Tugas terbesar adalah menyiapkan Raspberry Pi sebagai hub. Ini menjalankan broker MQTT (atau server) yang mengelola komunikasi dengan perangkat yang terhubung. Pi juga menjalankan sistem yang disebut Node-Red yang dapat mencegat pesan dan data serta perintah keluaran – seperti kapan harus menyalakan selimut listrik. Node-Red juga menyediakan antarmuka untuk melayani halaman web yang dapat Anda masuki melalui smartphone/tablet/PC/Laptop, untuk melihat apa yang sedang terjadi dan mengaktifkan pergantian lampu secara manual dan sebagainya.
Tujuan saya dengan instruksi ini adalah untuk memberikan setiap langkah dengan cukup detail sehingga seorang pemula dapat membuat sistem bekerja.
Langkah-langkahnya adalah:
- Muat Pi dengan Rasbian Stretch
- Perbarui dan tambahkan fitur ke Node-Red
- Instal broker MQTT Nyamuk
- Siapkan lingkungan Arduino untuk mengunggah firmware Sonoff-Tasmota
- Memprogram ulang sakelar Sonoff
- Siapkan antarmuka Node-Red
- Uji semuanya bekerja.
Perangkat keras yang Anda perlukan:
- Raspberry Pi dan catu daya (dan keyboard dan monitor untuk pengaturan awal) (model B digunakan di sini)
- Saklar Sonoff
- Konverter Serial USB
- Opsional – papan pengembangan ESP seperti NodeMCU.
Pengalaman saya dengan Raspberry Pi adalah bahwa menyiapkan apa pun tampaknya melibatkan lebih banyak rasa sakit daripada yang bisa dibayangkan orang dengan hal-hal yang tidak berfungsi atau terjebak pada beberapa langkah sepele di mana penjelasannya bisa lebih baik. Forum tidak selalu mendapatkan saran yang berhasil! Saya menemukan beberapa rute yang tidak berfungsi karena satu dan lain alasan. Ini biaya 3 hari! Saya kemudian menghapus semuanya dan memulai dari awal dan menyelesaikannya dalam waktu kurang dari satu hari (panjang). Namun ini menggunakan Jessie Raspian yang lebih tua. Setelah ini saya menemukan cara untuk menggunakan versi saat ini dan yang baru dirilis (Peregangan) dan melakukan semuanya lagi. Panduan ini memungkinkan copy dan paste instruksi ke dalam Pi. Jadi Anda harus selesai dalam beberapa jam. Bagaimanapun saya harap ini membuat Anda lebih cepat dalam kurva belajar dan dengan lebih sedikit rasa sakit. Percayalah itu sepadan dengan hasil akhirnya.
Langkah 1: Muat Pi Dengan Peregangan Rasbian
Ini seharusnya cukup mudah. Mulailah dengan kartu SD 8Gb atau 16Gb. Unduh versi terbaru dari:
www.raspberrypi.org/downloads/
Utas utama di sini mengasumsikan bahwa versi lengkap dimuat. Namun Anda dapat menggunakan versi lite untuk menghemat ruang. Jika menggunakan Raspbian Stretch Lite lanjutkan melalui langkah ini dan kemudian lanjutkan ke Langkah 9 di akhir.
Membuka ritsleting file yang diunduh memberikan folder dengan file.img. 7Zip direkomendasikan untuk Windows (dan The Unarchiver Mac). Gambar harus dibakar ke kartu SD – tetapi program khusus harus digunakan karena sistem file tidak kompatibel dengan Windows. Perangkat lunak yang direkomendasikan disebut Etcher dan dapat diunduh dari:
etcher.io/
Instruksi untuk Etcher ada di situs web mereka dan hampir tidak bisa lebih sederhana. Pilih gambar dan drive dan klik Flash.
Sekarang dengan kartu SD kami yang di-flash dengan dapat menjalankan Pi.
Jika Anda mengetahui alamat IP yang digunakan Pi Anda atau senang menemukannya dengan masuk ke router Anda, maka Anda dapat menghindari kebutuhan akan keyboard dan monitor dan segera menggunakan SSH. Cukup tambahkan file kosong bernama SSH ke kartu SD, masukkan, sambungkan ke Ethernet, dan nyalakan. Jika tidak, ikuti panduan di bawah ini.
Hubungkan Pi ke internet, layar, mouse dan keyboard dan sambungkan ke daya. Hal pertama yang akan kita lakukan adalah mengaktifkan SSH sehingga kita dapat melakukan sebagian besar pengaturan dari kenyamanan di PC. Ini tentu saja dapat dilakukan secara langsung tetapi sangat membantu untuk dapat mengikuti panduan ini pada perangkat yang sama dengan yang mengemudikan Pi dan menggunakan salin dan tempel untuk sebagian besar instruksi. Juga dalam kasus saya, workstation PC saya bagus dan nyaman tetapi tidak cukup besar untuk pi juga.
Ada panduan untuk banyak pekerjaan di video YouTube. Di sinilah saya mulai. Anda dapat menjalankan video bersama dengan mengikuti petunjuk ini. Namun ketika saya menjalankan proses lagi saat menulis ini, saya merasa lebih mudah untuk mengikuti instruksi di sini. Ada beberapa penyimpangan yang signifikan. Ada juga beberapa bagian di mana saya menyarankan untuk mengikuti video daripada mencantumkan langkah-langkahnya di sini. Namun saya akan merekomendasikan melihatnya untuk mendapatkan pemahaman tentang MQTT, Node-Red dan proses pengaturan yang luas. Video ini berdurasi 38 menit jadi buat diri Anda nyaman. Video dimulai dengan menunjukkan apa yang dapat dilakukan Node Red, dan kemudian mencakup instalasi dan pengaturan Pi, diikuti dengan memutakhirkan Node Red dan terakhir menginstal Mosquitto. Waktu kunci jika Anda ingin kembali ke bagian:
00:00 Pengantar Video
03:00 Demonstrasi Node Merah
14:14 Mengimpor item dasbor ke Node Red
21:05 Penyiapan awal Pi, termasuk SSH
23:35 Pemasangan kode pendukung Node Red
27:00 Pengantar MQTT
29:12 Instalasi Mosquitto (MQTT) (Catatan hanya berfungsi untuk Raspian Jessie)
33:00 Contoh Node Merah
Saya akan mencantumkan perintah dalam huruf miring tebal (daripada menggunakan ""). Pemformatan ini diabaikan saat Anda menyalin dan menempelkannya ke Pi.
Pengenalan Node Red akan memberi Anda gambaran tentang apa yang dapat dilakukan sistem dan memberikan gambaran tentang di mana kita akan berakhir.
Video YouTube ada di:
Ikuti prosedur instalasi dari 21:05 hingga 23:35. Perhatikan login default adalah pengguna: pi dan kata sandi: raspberry. Sebelum memulai ulang, temukan alamat IP pi. Klik ikon 'panah atas+bawah' di bilah atas desktop atau masukkan instruksi berikut di terminal/jendela terminal:
sudo ifconfig alamat
Kemudian catat alamat IP setelah: inet addr:. Itu akan dalam bentuk 192.168.x.y
Catat alamat ini dan mulai ulang (masukkan: sudo shutdown –r now)
Kuncinya pada titik ini adalah SSH telah diaktifkan dan seseorang dapat mengatur tautan ke Pi dari PC (Mac dan Linux menyertakan antarmuka SSH). Program yang bagus untuk melakukan ini adalah unduhan gratis bernama Putty yang juga dapat digunakan sebagai antarmuka serial dan dapat melakukan Telnet. Dempul tersedia dari:
www.chiark.greenend.org.uk/~sgtatham/putty…
Unduh dan instal Putty.
Sekarang, dengan Pi restart, mulai Putty dan masukkan alamat IP yang disebutkan sebelumnya. Lihat contoh di bawah ini:
Sekarang klik Buka
Setelah Login sebagai: masukkan pi
Kemudian masukkan kata sandi Anda.
Sekarang ikuti instruksi di sini dan secara opsional mulai video dari 23:35. Anda dapat dalam banyak kasus menyalin dan menempel. Sorot teks dan gunakan ctrl+C untuk menyalin. Kemudian klik kanan di Putty untuk menempel. Terkadang teks tidak langsung muncul jadi tunggu beberapa detik. Jika Anda memasukkan dua kali, gunakan backspace untuk menghapus entri kedua. Tekan enter untuk menjalankan setiap instruksi.
sudo raspi-update
Saya mendapat perintah yang tidak ditemukan dan mengabaikan ini dan instruksi shutdown/restart berikut:
sudo shutdown -r sekarang
sudo apt-get -y update
sudo apt-get -y upgrade
Ini butuh waktu…..
sudo apt-get autoremove
sudo apt-get -y update
sudo shutdown -r sekarang
Pada titik ini kami memiliki sistem operasi Pi yang dimuat dan diperbarui, siap untuk langkah selanjutnya.
Langkah 2: Perbarui dan Tambahkan Fitur ke Node-Red
Koneksi Putty akan hilang dengan restart di akhir langkah sebelumnya. Jadi tutup Putty dan setelah menunggu Pi untuk boot, Masuk lagi seperti sebelumnya.
Saya telah pindah ke metode yang lebih sederhana dan lebih andal untuk memuat Node-Red – mengikuti pendekatan di https://nodered.org/docs/hardware/raspberrypi. Ini menggunakan skrip dan akan menginstal atau memutakhirkan Node-Red – jadi pendekatannya sama bekerja dari Raspbian Stretch versi lengkap atau ringan. Jadi masukkan:
bash <(curl -sL
Masukkan Y saat diminta (dua kali). Skrip ini juga memuat file yang diperlukan untuk mengaktifkan autostart Node-Red.
Jadi pada titik ini kami telah memuat dan memperbarui pi kami dan dengan pembaruan yang diperlukan untuk Node Red. Tidak ada salahnya untuk melakukan restart sebelum tahap selanjutnya.
sudo shutdown -r sekarang
Langkah 3: Instalasi MQTT Nyamuk
Jika Anda belum melakukannya, ada baiknya melihat video pengantar MQTT di video mulai pukul 27:00.
Di sinilah kita perlu mengambil jalan yang berbeda. Prosedur yang diuraikan dalam video hanya berfungsi untuk Raspian versi Jessie yang lebih lama. Ada diskusi di situs nyamuk tetapi tidak ada hasil yang jelas ditampilkan dan karenanya akan tetap menggunakan rute yang lebih sederhana dan lebih aman.
Jadi masuk menggunakan Putty dan masukkan yang berikut ini:
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
kamu
sudo /etc/init.d/mosquitto stop
sudo /etc/init.d/mosquitto start
Dua instruksi terakhir berhenti dan mulai mosquitto dan menunjukkan bahwa broker MQTT kami berfungsi.
Untuk tes cepat, buka dua sesi Putty lagi dan masuk ke masing-masing sesi.
Anda akan tahu sekarang bahwa MQTT bekerja dengan perangkat yang membutuhkan data berlangganan 'topik'. Broker akan mengirimkan data apapun dengan 'topik' yang sama. Kemudian perangkat yang ingin mengirim data/instruksi menerbitkan ini ke broker menggunakan 'topik' yang sama.
Jadi dalam satu sesi Putty masukkan:
mosquitto_sub -d -t halo/dunia
Ini adalah instruksi untuk berlangganan topik: hello/world.
Di sisi lain masukkan:
mosquitto_pub -d -t hello/world -m "Halo dari Terminal jendela 2!"
Ini adalah instruksi terbitkan dengan topik yang sama dengan pesan. Teks: "Halo dari Terminal jendela 2!" sekarang akan muncul di terminal lain.
Bagus sekali sampai sejauh ini. Kami sekarang memiliki Pi yang dimuat dan diperbarui dengan pembaruan yang diperlukan untuk Node-Red dan dengan broker nyamuk MQTT diinstal dan diuji. Mulai sekarang hidup menjadi lebih mudah sedikit lebih menyenangkan. Tutup dua sesi Putty yang digunakan untuk tes MQTT.
Langkah 4: Menyiapkan Antarmuka Node Red
Pertama kita perlu memulai Node Red. Masukkan instruksi:
node-red-pi --max-old-space-size=256
Tunggu hingga berjalan dan Anda melihat teks 'Mulai mengalir'.
Sekarang buka browser, saya menggunakan Chrome, dan masukkan alamat IP pi yang disebutkan sebelumnya diikuti oleh:1880 yaitu sesuatu seperti 192.168.0.8:1880
Anda sekarang harus memiliki halaman pemrograman Node Red dalam tampilan seperti di bawah ini:
Anda sekarang dapat mengikuti contoh Node Red mulai pukul 33:00 atau langsung melanjutkan ke sedikit pengaturan tambahan dan memuat alur pertama yang akan menunjukkan tautan ke MQTT dan siap untuk menjalankan sakelar kami.
Penyiapan tambahan yang diperlukan adalah menambahkan item dasbor yang mengaktifkan antarmuka web.
Ini ditunjukkan pada video di 14:14.
Ikuti petunjuk untuk memuat node-red-dashboard.
Sekarang kita bisa bermain sedikit dan menunjukkan MQTT bekerja dan digerakkan oleh Node-Red. Ini tidak ada di video tetapi adalah kunci untuk proyek ini. Anda dapat mengikuti instruksi saya dan/atau mengimpor alur dari file NRtest1.txt terlampir.
Pertama tambahkan node injeksi input dan node mqtt output dan hubungkan keduanya.
Klik dua kali node injeksi (yang awalnya diberi label timestamp). Di bagian Payload gunakan twiddly untuk mengubah ke string dan masukkan: Halo dari saya. Biarkan topik kosong karena kami dapat memasukkan ini di node MQTT. Klik Selesai
Sekarang klik dua kali simpul MQTT. Klik ikon pensil di sebelah kanan bagian Server. Ini membuka dialog baru. Masukkan: localhost di bagian Server. Klik Tambahkan. Sekarang, kembali ke simpul Edit mqtt out, masukkan topik kita di bagian Topik: hello/world. Atur QoS ke 1. Klik Selesai. Sekarang klik Terapkan. Anda akan melihat gumpalan hijau dan 'terhubung' di bawah simpul mqtt.
Sekarang tambahkan dua node lagi – input mqtt dan output debug, dan hubungkan keduanya. Sekarang klik dua kali node mqtt input dan masukkan hello/world di bagian topik. Server seharusnya sudah menunjukkan localhost:1883. Atur QoS ke 1. Klik Selesai. Kemudian klik Deploy dan klik tab debug di panel sebelah kanan. Sekarang klik kotak abu-abu di sebelah kiri simpul injeksi 'Halo dari saya'. Ini mengirimkan muatan teks ke broker MQTT dengan topik hello/world. Pialang mengetahui bahwa simpul masukan mqtt telah berlangganan topik yang sama dan meneruskan muatannya. Node masukan mqtt kemudian mengirimkan ini ke tab debug (RHS) dan teks 'Halo dari saya' akan muncul.
Ini mencentang kotak lain karena kami memiliki Node Red yang berbicara dengan broker MQTT kami. Perhatikan bahwa Node Red hanyalah klien bagi broker – seperti perangkat Sonoff yang akan kita sambungkan nanti. Namun itu memungkinkan otomatisasi canggih dan menyediakan antarmuka pengguna yang hebat.
Sekarang kita dapat membuat beberapa perubahan kecil dan mengatur alur untuk sakelar Sonoff kita.
Jadi hapus node injeksi input (klik untuk menyorot dan tekan tombol hapus). Sekarang tambahkan sakelar dari bagian dasbor dan hubungkan ke output mqtt. Saklar klik dua kali. Klik pensil di sebelah kanan Grup. Masuk ke Nama: Cahaya. Kemudian klik pensil di sebelah kanan Tab dan masuk ke bagian Name: Lounge. Klik Tambah/Perbarui dan Tambah/Perbarui lagi. Sekarang, kembali ke node Edit switch, atur dan matikan Payloads. Gunakan twidlys untuk memilih string dan masukkan ON untuk payload On dan OFF untuk payload OFF. Klik Selesai
Sekarang buka setiap node mqtt dan ubah Topic menjadi cmnd/sonoff/POWER. Jika menyalin dan menempel, periksa Anda belum menyertakan spasi di bagian akhir. Ini adalah topik yang berbeda dan tidak akan bekerja dengan Sonoff. Menemukan ruang yang tersesat bisa memakan waktu sekitar satu jam – percayalah! Saya juga pergi ke dasbor> Tema dan memilih: Gelap. Klik Deploy dan pilih tab debug.
Sekarang buka sesi browser baru di jendela baru dan ukur seperti ponsel di atas sesi Node Red. Masukkan alamat: alamat IP Pi Anda:1880/ui/#/0 yaitu sesuatu seperti 192.168.0.8:1880/ui/#/0. Anda akan melihat layar dengan Lounge dan Light dan beralih. Klik tombol on dan off. Jendela debug harus menunjukkan muatan ON dan OFF. Sekarang jika Anda ingin juga masuk melalui ponsel juga. Perhatikan bahwa posisi sakelar disinkronkan. Tidak masalah bahwa Sonoff kami belum terhubung. Ketika itu, dengan berlangganan Topik, itu akan mengambil pesan/payload dan menindaklanjutinya.
Langkah kecil terakhir adalah membuat Node Red mulai secara otomatis setelah Pi boot.
Node Red memiliki panduan di:
Namun file yang dibutuhkan sudah dimuat sehingga tidak diperlukan instalasi.
Untuk kemudian mengaktifkan Node-RED untuk berjalan secara otomatis di setiap boot dan saat crash masuk (buka sesi Putty):
sudo systemctl aktifkan nodered.service
Jika Anda perlu menonaktifkan ini, masukkan:
sudo systemctl nonaktifkan nodered.service
Sekarang matikan pi dengan Sudo shutdown sekarang dan lepaskan daya.
Ini sekarang membuat Pi kami terkunci dan siap untuk beraksi. Kami memiliki PC / ponsel kami yang terhubung ke Node Red dan ini berbicara ke server MQTT kami. Ini adalah perjalanan panjang dan layak mendapat tepukan besar di punggung. Sudah selesai dilakukan dengan baik. Saya menemukan yang berikutnya, Arduino bit, jauh lebih mudah!
Langkah 5: Menyiapkan Sistem Arduino untuk Memprogram Ulang Perangkat Sonoff
Semua info untuk melakukan ini ada di Sonoff-Tasmota GitHub. Satu-satunya bagian yang saya mengalami kesulitan adalah teks Topik - tetapi saya dengan licik telah membuat Anda memasukkan ini!
Buka
Anda akan menemukan petunjuk penyiapan pada tab Wiki di bagian Alat Unggah:
Daripada melewati setiap langkah, saya hanya akan mencatat aspek-aspek kunci yang menurut saya penting atau macet.
Petunjuknya bagus tetapi perlu perhatian terhadap detail. Saya tersandung oleh kebutuhan akan folder ESP8266 di dalam folder yang ada di dalam folder lain bernama ESP8266 dan karenanya melewatkan dua level.
Saya mengikuti rekomendasi untuk pengaturan Arduino yang sepenuhnya terpisah. Saya membuat folder baru bernama 'ArduinoSonoff' yang terpisah dari folder Arduino saya yang sudah ada. Pengaturannya cukup maju dan karenanya memisahkannya adalah ide yang sangat bagus. Jika ini adalah pengaturan Arduino pertama Anda, pastikan Anda menginstalnya untuk kedua kalinya di 'Arduino' atau folder lain untuk pekerjaan Arduino lainnya, termasuk bekerja pada ESP8266s.
Unduh Arduino IDE terbaru dari https://www.arduino.cc/en/Main/Software. Buka zip file ke folder baru Anda.
Instruksi termasuk mengunduh sistem Sonoff-Tasmoda dari https://github.com/arendst/Sonoff-Tasmota halaman utama melalui: Klon atau Unduh>Unduh ZIP. Buka zip file ke folder baru Anda.
Ikuti petunjuknya dengan cermat. Saya tidak melakukan Opsional: Siapkan bagian unggahan OTA. Kami akan meninggalkan ini untuk hari lain.
Sekarang mulai Arduino IDE (klik dua kali arduino.exe). Muat sketsa Sonoff-Tasmota melalui File>Sketchbook>sonoff. Tidak perlu melakukan pengeditan apa pun. Semua pengaturan dilakukan melalui koneksi serial setelah firmware dimuat. Ini disimpan di EEPROM. Oleh karena itu firmware dapat diperbarui dan semua pengaturan dipertahankan. Ini adalah hal yang cukup cerdas. Namun Anda dapat menghindari perlunya beberapa langkah di sini dengan membuka file user-config.h dan memasukkan SSID dan kata sandi wifi Anda dan MQTT_HOST (ganti 'domus1'– referensi kedua, dengan alamat IP Pi Anda). Nanti Anda mungkin ingin memasukkan pengguna dan kata sandi MQTT juga. Sebelum mengunduh, periksa pengaturan papan di bawah Alat. Ini akan membutuhkan beberapa perubahan agar sesuai dengan persyaratan yang ditetapkan dalam Wiki. Sekarang klik kompilasi (ikon centang). Itu harus dikompilasi OK. Jika tidak atau jika pengaturan papan yang diperlukan tidak tersedia, kembali dan periksa setiap langkah pengaturan.
Langkah 6: Memprogram Ulang Saklar Sonoff
Kami sekarang siap untuk mengunduh. Pada tahap ini, seseorang dapat langsung mem-flash sakelar Sonoff atau mem-flash modul ESP8266 terlebih dahulu. Saya melakukan yang terakhir, sebagian karena sakelar saya belum tiba (baru saja tiba ketika saya mengetik ini!) Tetapi juga sebagai tindakan pencegahan karena penginstalan sakelar Sonoff adalah langkah satu arah karena firmware asli tidak tersedia untuk umum sejauh ini. saya sadar. Saya memiliki beberapa papan NodeMCU. Ini mudah disambungkan, memiliki konverter USB ke serial terpasang. Namun metode reset nodemcu tidak bekerja dengan sistem ini. Jadi biarkan Tools> Reset Method diatur ke "ck". Lakukan pengaturan flash manual normal dengan menahan tombol Flash (GPIO 0 ke ground) sambil menekan dan melepaskan Reset (Reset ke ground). Saya tidak yakin apakah ini memiliki batas waktu atau mungkin saya tidak menahan GPIO 0 cukup lama tetapi saya memang perlu beberapa kali mencoba, termasuk melakukan ini saat Arduino IDE sedang dikompilasi!
Jika Anda ingin memeriksa tanggapan - keluaran relai adalah D6 pada papan NodeMCU. Pada ESP12 ini adalah GPIO 12. Output LED adalah D7 (NodeMCU) atau GPIO 13 (ESP12).
Saklar Sonoff.
PERINGATAN: Saya harus mengatakan "jangan sambungkan ke listrik dalam keadaan apa pun di mana enklosur terbuka". Perhatikan bahwa PCB (setidaknya pada Sonoff Basic (saklar in-line) hanya memiliki jarak 'isolasi tunggal' antara bagian tegangan rendah dan sumber listrik. Jadi, setiap bagian dari rangkaian Sonoff harus diperlakukan sebagai tegangan listrik. Sonoff- Tasmota GitHub memang menunjukkan koneksi sensor suhu dan kelembaban ke Sonoff S20. Saya tidak akan melakukan ini karena masalah isolasi. – jadi jika Anda ingin melakukan ini, dapatkan modul ESP12 atau NodeMCU dan atur ini secara terpisah dengan isolasi ganda yang tepat atau catu daya yang dibumikan.
Sakelar plug-in Sonoff S20 adalah titik awal yang baik karena tidak memerlukan kabel listrik. Ini dapat dibuka dengan melepas satu sekrup (di bawah segel keamanan) dan membuka casing. Foto di bawah ini menunjukkan di mana tag berada. Meremas kasing pada titik-titik ini membantu.
Konverter serial USB
Konverter favorit saya adalah versi FTDI. Namun ini tidak memiliki kemampuan yang memadai untuk memasok kebutuhan Sonoff 3.3v. Spesifikasi FTDI mengatakan maksimum 50ma. Alternatif terbaik berikutnya adalah yang menggunakan chip CP2102. Namun ini memiliki batas 100ma yang masih belum cukup. Jelas banyak yang menggunakan konverter ini secara langsung tetapi ada juga laporan gagal memuat. Saya akan membatasi waktu terhubung karena akan memanas di bawah beban. Lakukan dengan resiko ditanggung sendiri. Solusi ideal adalah memiliki regulator 3.3v juga, mis. sebuah AMS1117 3.3. Saya membuat PCB kecil untuk mengaktifkan ini. Lihat Programmer untuk perangkat Sonoff.
Urutan saya untuk pemrograman adalah sebagai berikut:
Buka Arduino IDE-nya.
Di bawah Alat periksa pengaturannya seperti di Wiki.
Lakukan pengeditan apa pun yang diperlukan untuk user_config.h. Saya mengatur SSID Wifi dan kata sandi dan alamat broker MQTT dan zona waktu/penghematan siang hari.
Klik 'verifikasi' untuk memeriksa kompilasi OK.
Colokkan konverter serial USB (sendiri) ke PC. Perhatikan nomor Port.
Sekarang lepaskan kabel serial USB dari PC dan sambungkan ke sakelar Sonoff. Periksa ground dan koneksi 3v3 sudah benar (ground terhubung ke ground plane pada PCB Sonoff).
Tahan pemrogram agar kontak aman sambil menekan tombol.
Sekarang pasang kabel USB ke PC, periksa nomor port sudah benar (di Tools), lalu klik download.
Saya terus menahan tombol selama pemrograman karena saya tidak ingin mengganggu koneksi.
Setelah selesai Anda akan melihat layar seperti di bawah ini:
Sonoff membutuhkan beberapa bit informasi untuk terhubung ke sistem kami: SSID dan kata sandi wifi jaringan lokal, dan alamat IP Pi. Ada beberapa cara untuk melakukannya, salah satunya adalah dengan memodifikasi file config.ino seperti yang telah disebutkan sebelumnya. Jika Anda memiliki ponsel cerdas, Anda dapat (setelah memasang kembali sakelar) menekan tombol Sonoff 4 kali dengan cukup cepat untuk memasukkannya ke mode server web. LED akan berkedip. Saya harus mencoba beberapa kali agar ini berhasil. Kemudian, pada ponsel cerdas Anda, cari jaringan Sonoff baru dan hubungkan. Sebuah halaman web akan muncul di mana Anda dapat mengatur data yang diperlukan. Alamat IP Pi masuk ke nama host. Saya juga mengubah SSID dan kata sandi kedua menjadi sesuatu yang panjang dan pada dasarnya tidak dapat digunakan.
Atau dapat diatur melalui koneksi serial setelah memuat. Buka Monitor Serial Arduino (di bawah Alat).
Perintah untuk masuk:
SSId WiFiSSID Anda
SandiWiFiPassword Anda
MqttHost 192.168.x.y (alamat IP PI)
Anda juga dapat memasukkan SSId1 dan Password1 diikuti dengan sesuatu yang panjang dan tidak dapat digunakan untuk menonaktifkan ini secara efektif.
Sekarang Anda dapat memasang sakelar Sonoff, buka Node-Red dan dasbor Node-red dan klik tombol sakelar dan lihat tab debug yang sekarang harus menyertakan tanggapan dari Sonoff. Jadi kami telah mencapai langkah besar lainnya - sakelar pertama kami digerakkan dari PC/smartphone.
Sampai sekarang kami belum menyebutkan keamanan. Ada kemungkinan untuk menggunakan komunikasi terenkripsi. Ini cukup rumit untuk diatur dan mungkin lebih tepat di mana broker berbasis cloud digunakan. Ada juga opsi untuk menambahkan nama pengguna dan kata sandi untuk semua perangkat yang terhubung dan melarang pengguna anonim. Ini cukup sederhana untuk diatur. Dan sekarang untuk Keamanan.
Langkah 7: Keamanan
MQTT memungkinkan nama pengguna dan kata sandi untuk setiap klien. Ini mudah diatur. Mungkin lebih mudah untuk terlebih dahulu mengganti nama setiap perangkat dan kemudian mengatur nama pengguna dan kata sandinya. Ini dapat dilakukan melalui perintah MQTT, dan Node-Red mungkin adalah cara termudah untuk mengirim ini. Pertama-tama putuskan konvensi penamaan. Salah satu pilihan adalah dengan mendasarkan nama pada lokasi dan fungsi. Kemudian Anda ingin mencatat nama (Topik) nama pengguna dan kata sandi bersama dengan topik fallback. Perhatikan juga ada 'opsi atur ulang' untuk mengatur ulang pengaturan Sonoff ke unduhan asli (lihat Penggunaan Wiki> Fungsi Tombol).
Nyalakan pi dan setelah beberapa detik buka browser ke Node-Red (alamat IP: 1880).
Di Node-Red, atur node injeksi dan tautkan ini ke output mqtt dan atur server mqtt ke localhost. Biarkan topik, pengguna, dan kata sandi kosong karena kami akan mengaturnya di node injeksi. Juga atur node input mqtt dan hubungkan ini ke node debug sehingga kita dapat melihat responsnya. Setel catatan input mqtt ke localhost (harus sudah disetel) dan masukkan +/+/+ untuk topik sehingga menangkap semua lalu lintas.
Masukkan urutan pengaturan berikut di node injeksi.
Pertama periksa konektivitas dengan
Topik: cmnd/sonoff/Status
Pesan: 6
klik 'Inject sekali saat mulai'. Menyebarkan. Kita akan melihat debug termasuk 7 baris data dari stat/sonoff/STATUS6
Masukkan Topik: cmnd/sonoff/Topik dan Pesan: loungelight. Menyebarkan. Ini mengubah nama sakelar dari sonoff menjadi loungelight
Tab debug akan menampilkan perangkat memulai ulang dengan nama/topik baru
Topik: cmnd/loungelight/MqttUser
Pesan: lampu lounge
Klik sebarkan. Debug harus dilihat dari stat/loungelight/RESULT dengan {“MtqqUser”:”loungelight”}
Topik: cmnd/loungelight/MqttPassword
Pesan: loungelightPW (perhatikan lebih imajinatif dari ini!)
Hapus tab debug dan Deploy.
Balasan akan terlihat dari stat/loungelight/RESULT dengan {"MqttPassword":"loungelightPW"}
Sekarang masukkan NodeRed dan NodeRedPW sebagai username dan password di mqtt out node. Ini melalui ikon pensil Server dan tab keamanan di jendela yang terbuka. Ini secara otomatis akan disalin ke node MQTT lainnya.
Periksa lagi dengan
Topik: cmnd/loungelight/Status dan Pesan: 6. Menyebarkan.
Dan bahwa tanggapan dikirim.
Jadi pada titik ini kami telah mengganti nama perangkat Sonof kami sehingga akan mendengarkan topik cmnd/loungelight/…… dan akan masuk ke server MQTT dengan nama pengguna loungelight dan password loungelightPW. Kami juga telah menetapkan nama pengguna dan kata sandi untuk Node-Red.
Selanjutnya kita harus memberi tahu server nyamuk MQTT untuk hanya menerima klien dengan nama pengguna dan mencantumkan nama pengguna dan kata sandi yang akan diterima.
Prosedurnya adalah:
- Hentikan nyamuk
- Buat file konfigurasi sendiri
- Edit file konfigurasi
- Buat file kata sandi
- Tambahkan pengguna/sandi.
Jadi masuk dengan sesi Putty baru dan jalankan melalui perintah berikut:
sudo /etc/init.d/mosquitto stop
cd /etc/mosquitto/conf.d/
sudo nano mosquitto.conf Ini memulai editor.
Tambahkan baris:
allow_anonymous false
password_file /etc/mosquitto/conf.d/passwd
membutuhkan_sertifikat palsu
Simpan dan keluar (Ctrl+X), Y, enter.
sudo touch passwd Ini membuat file kata sandi dan instruksi berikut menambahkan nama dan kata sandi.
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW
sudo /etc/init.d/mosquitto restart
Catatan saat menambahkan perangkat baru, Anda harus memasukkan pengguna dan kata sandi melalui port serial dan menambahkannya ke file kata sandi atau untuk sementara mengubah file konfigurasi nyamuk dan memberi komentar (tambahkan # di awal baris) baris "allow_anonymous false " dan "password_file /etc/mosquitto/conf.d/passwd" dan kemudian reset ini ketika rincian telah dikirim ke perangkat dan ditambahkan ke file password seperti di atas.
Kami telah mengubah nama sonoff menjadi loungelight dan memperbarui simpul keluaran mqtt (terhubung ke sakelar) untuk menggunakan topik cmnd/loungelight/POWER.
Klik Deploy dan periksa node mqtt menunjukkan 'terhubung'.
Selanjutnya coba tombol sakelar dan cari debug yang menunjukkan sakelar Sonoff merespons. Anda akan melihat bahwa perangkat menunjukkan perubahan dengan topik: stat/loungelight/POWER. Jadi sekarang ubah simpul input yang disetel ke cmnd/sonoff/POWER menjadi stat/loungelight/POWER. Kita dapat menggunakan ini untuk menutupi celah dalam fungsionalitas kita. Sistem seperti yang awalnya diatur akan disinkronkan dengan semua pengguna yang masuk tetapi tidak akan disinkronkan dengan perubahan sakelar yang dibuat dengan menekan tombol pada sakelar Sonoff. Jadi sekarang hubungkan output dari stat/loungelight/POWER mqtt input node ke input switch (LHS). Sekarang klik dua kali sakelar dan hapus centang "jika pesan tiba di input, teruskan ke output". Ini memunculkan beberapa opsi baru - pilih 'ikon sakelar menunjukkan status input'. Menyebarkan. Jadi sekarang kami memiliki umpan balik yang baik. Posisi sakelar dasbor akan selalu berubah saat sakelar Sonoff berubah, di mana pun perubahan dimulai.
Jadi kami sekarang memiliki sistem otomatisasi rumah mandiri yang aman dan berjalan dan siap untuk ekspansi ke apa pun yang Anda inginkan. Di bagian berikutnya saya akan membahas beberapa eksperimen saya sejauh ini dan tantangan yang saya rencanakan untuk diatasi.
Langkah 8: Langkah Awal untuk Ekspansi
Saya memiliki Papan Pengembangan LED Sonoff-Tasmota Sensors Instructable Home Automation lainnya yang menunjukkan beberapa kemampuan lebih lanjut dari firmware Sonoff-Tasmota:
Pengukuran Suhu dan Kelembaban
Deteksi penyusup (beralih input)
IR remote (untuk TV dll)
String LED - RGB dan NeoPixel (dapat dialamatkan secara individual)
sensor I2C
Untuk di atas saya menggunakan ESP12F dan PCB kustom. NodeMCU dan papan tempat memotong roti bisa sama-sama digunakan. Ini memungkinkan fungsi tambahan ini tanpa kabel ke perangkat Sonoff, dan karenanya merupakan pendekatan yang jauh lebih aman. Dengan input suhu, saya dapat menyelesaikan otomatisasi selimut listrik saya.
Musik dan Radio Internet dapat dengan mudah ditambahkan. Ini membuka opsi untuk mengaktifkan stasiun atau album tertentu pada waktu yang ditentukan atau mungkin sebagai respons terhadap terdeteksinya pengunjung (telepon). Instruksi terkait ini ada di Pemutar Musik dan Radio Internet berkualitas tinggi dengan Kontrol Ponsel Cerdas. Karena ini juga didorong oleh Node-RED, seharusnya dimungkinkan untuk memiliki lebih dari satu sistem suara dan menggunakan komunikasi MQTT untuk menggerakkannya.
Saya juga telah menjelajahi Node-Red, termasuk mengirim email dan membuat peringatan suara. Ada juga potensi sistem untuk mendeteksi saat Anda masuk/keluar - dengan melakukan ping ke alamat IP ponsel Anda. Node-Red juga dapat mengakses cuaca dan berita - sehingga seseorang dapat menambahkan informasi serta melakukan otomatisasi.
Ada beberapa trik yang harus dipelajari - tetapi ini menjadi sangat mudah untuk kedua kalinya.
Jalan lain adalah menambahkan tampilan ke pi untuk menunjukkan dasbor. Ini adalah 'pekerjaan dalam proses' - atau dengan kata lain saya tidak terlalu senang. Tampilan yang saya dapatkan sulit untuk diputar ke mode potret dan browser Chromium sangat lambat. Alternatifnya adalah mengambil tablet lama di ebay dan menggunakannya. Saya dapat mencoba dengan Pi 2 dan melihat apakah itu memberikan peningkatan yang cukup (model B digunakan untuk pengembangan ini).
Saya harap ini membantu Anda memulai dan membuat imajinasi Anda berdengung. Cakupan potensinya sangat besar. Seseorang bahkan dapat memodifikasi kode Sonoff untuk sensor lain jika diperlukan.
Secara keseluruhan saya kagum dengan apa yang dapat dilakukan sistem ini. Tujuan awal saya adalah hanya menggerakkan sakelar dari ponsel cerdas dengan cara yang andal melalui sistem mandiri. Saya memiliki visi perlu mengelola server dan klien dan menulis html untuk antarmuka pengguna. Di mana ini berakhir jauh di depan ini, dengan keamanan yang lebih besar, keandalan yang sangat baik, antarmuka pengguna yang fantastis, pemrograman seret dan lepas, dan potensi besar untuk ekspansi. Dan semua ini dengan sedikit usaha.
mike
Langkah 9: Tambahan - Memuat Dari Raspbian Stretch Lite
Opsi ini menghindari bloatware yang disertakan dengan versi Raspbian Stretch lengkap. Sebagian besar ini tidak akan diperlukan saat menggunakan Pi untuk otomatisasi rumah. Namun Node-Red memang harus diinstal.
Lanjutkan seperti pada Langkah 1 tetapi gunakan Raspbian Stretch Lite daripada Raspbian Stretch.
Alih-alih Langkah2 lakukan hal berikut:
sudo apt -y install npm
npm -v harus kembali: 1.4.21 atau lebih baru
sudo npm install -g n
sudo dan 8.9.0
Kita sekarang dapat menggunakan node packet manager untuk menginstal Node-Red:
sudo npm install node-red --global --unsafe-perm
Ini akan memberikan beberapa pesan kesalahan karena alamat yang salah. Namun sistem melakukan 'kompilasi sumber' untuk memperbaiki masalah ini. Jika Anda mengulangi instruksi di atas (tidak perlu) kesalahan tidak terjadi.
Kami sekarang telah menginstal Node-Red dan paket pendukungnya dan dapat melanjutkan ke Langkah 3, memuat mosquitto.
Runner Up dalam Kontes Nirkabel