Isi kandungan:
- Langkah 1: Muatkan Pi Dengan Peregangan Rasbian
- Langkah 2: Kemas kini dan Tambah Ciri ke Node-Red
- Langkah 3: Pemasangan Mosquitto MQTT
- Langkah 4: Menyiapkan Node Red Interface
- Langkah 5: Menyiapkan Sistem Arduino untuk Memprogramkan Semula Peranti Sonoff
- Langkah 6: Memprogram semula Suis Sonoff
- Langkah 7: Keselamatan
- Langkah 8: Langkah Awal untuk Perluasan
- Langkah 9: Tambahan - Memuatkan dari Raspbian Stretch Lite
Video: Sistem Automasi Rumah Berdiri Kuat - Pi, Sonoff, ESP8266 dan Node-Red: 9 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Panduan ini akan membawa anda ke pangkalan pertama di mana anda dapat menghidupkan / mematikan lampu atau perkakas melalui mana-mana peranti yang dapat menyambung ke rangkaian tempatan anda, dan dengan antara muka web yang boleh disesuaikan. Skop untuk peluasan / penambahan ciri sangat luas, termasuk mengirim e-mel, mesej twitter, sensor membaca (mis. Suhu). Anda boleh menetapkan peraturan dengan mudah, mis. - jika suhu di bawah 15C pada pukul 11 malam hidupkan selimut elektrik selama 30 minit. Sistem ini menggunakan protokol MQTT dengan TCP yang jauh lebih dipercayai daripada UDP - yang secara mengejutkan digunakan oleh beberapa peranti automasi rumah komersial. Setelah kerja keras menyiapkan sistem, yang dijelaskan di sini, keseronokan dapat dimulakan. Node Red menyediakan antara muka pengguna yang hebat yang intuitif, cepat dan mudah disiapkan, dan memberikan kemampuan yang luar biasa.
Hasilnya adalah sistem automasi rumah yang kuat yang sepenuhnya berada di bawah kawalan seseorang dan sepenuhnya berada di rangkaian tempatan. Sebilangan besar sistem yang ditunjukkan pada Instructables berfungsi dengan pelayan berasaskan awan dan oleh itu berisiko keselamatan dan memerlukan langganan. Ini lebih mudah disediakan tetapi mempunyai risiko keselamatan yang lebih tinggi dan kos yang berpotensi lebih tinggi. Saya harus menambahkan bahawa seseorang boleh menyiapkan VPN (rangkaian peribadi maya) ke Pi untuk membolehkan sambungan selamat ke rangkaian / sistem rumah jika akses dari luar berguna (Google Pi OpenVPN untuk arahan).
Sistem ini memerlukan pengaturcaraan semula peranti Sonoff dengan sistem sumber terbuka yang hebat yang disebut Sonoff-Tasmoda. Ini dapat dilakukan dengan menggunakan persediaan Arduino khas dan penukar bersiri USB ke. Peranti Sonoff menggunakan cip Wi-Fi ESP8266 sehingga anda juga dapat membuat peranti anda sendiri menggunakan modul ESP8266 atau memasangkannya ke item lain untuk menyampaikan sambungan tanpa wayar.
Tugas terbesar adalah menyiapkan Raspberry Pi sebagai hub. Ini menjalankan broker MQTT (atau pelayan) yang menguruskan komunikasi dengan peranti yang disambungkan. Pi juga menjalankan sistem yang disebut Node-Red yang dapat memintas pesanan dan data serta arahan output - seperti kapan harus menghidupkan selimut elektrik. Node-Red juga menyediakan antara muka untuk melayani laman web yang boleh anda log masuk melalui telefon pintar / tablet / PC / Komputer riba, untuk melihat apa yang sedang berlaku dan mengaktifkan pertukaran lampu secara manual dan sebagainya.
Tujuan saya dengan arahan ini adalah untuk memberikan setiap langkah dengan cukup terperinci agar seorang pemula dapat membuat sistem berfungsi.
Langkah-langkahnya adalah:
- Muatkan Pi dengan Rasbian Stretch
- Kemas kini dan tambahkan ciri ke Node-Red
- Pasang broker Mosquitto MQTT
- Sediakan persekitaran Arduino untuk memuat naik firmware Sonoff-Tasmota
- Atur semula suis Sonoff
- Sediakan antara muka Node-Red
- Uji semuanya berfungsi.
Perkakasan yang anda perlukan:
- Raspberry Pi dan bekalan kuasa (dan papan kekunci dan monitor untuk penyediaan awal) (model B digunakan di sini)
- Suis Sonoff
- Penukar Serial USB
- Pilihan - papan pengembangan ESP seperti NodeMCU.
Pengalaman saya dengan Raspberry Pi adalah bahawa membuat apa-apa nampaknya melibatkan lebih banyak kesakitan daripada yang dapat dibayangkan oleh seseorang dengan perkara yang tidak berfungsi atau terjebak pada langkah remeh di mana penjelasannya lebih baik. Forum tidak selalu mendapat nasihat yang berkesan! Saya menjumpai beberapa laluan yang tidak berfungsi untuk satu sebab atau yang lain. Ini berharga 3 hari! Saya kemudian menghapuskan segalanya dan memulakan semula dan menyelesaikannya dalam masa kurang (satu hari). Ini bagaimanapun menggunakan Jessie Raspian yang lebih tua. Selepas ini saya menemui cara untuk menggunakan versi (Stretch) yang terkini dan yang baru dikeluarkan dan melakukannya sekali lagi. Panduan ini membolehkan salinan dan tampal arahan ke dalam Pi. Oleh itu, anda harus selesai dalam beberapa jam. Bagaimanapun saya harap ini dapat menjadikan anda lebih cepat dalam kelengkungan pembelajaran dan dengan rasa sakit yang lebih sedikit. Percayalah ia sangat berbaloi untuk hasil akhirnya.
Langkah 1: Muatkan Pi Dengan Peregangan Rasbian
Ini semestinya cukup mudah. Mulakan dengan kad SD 8Gb atau 16Gb. Muat turun versi terkini dari:
www.raspberrypi.org/downloads/
Utas utama di sini menganggap bahawa versi penuh dimuatkan. Walau bagaimanapun, anda boleh menggunakan versi lite untuk menjimatkan ruang. Sekiranya menggunakan Raspbian Stretch Lite teruskan langkah ini dan kemudian ke Langkah 9 pada akhir.
Membongkar fail yang dimuat turun memberikan folder dengan fail.img. 7Zip disyorkan untuk Windows (dan The Unarchiver Mac). Gambar mesti dibakar ke kad SD - tetapi program khas harus digunakan kerana sistem fail tidak serasi dengan Windows. Perisian yang disyorkan dipanggil Etcher dan boleh dimuat turun dari:
etcher.io/
Arahan untuk Etcher ada di laman web mereka dan mungkin lebih mudah. Pilih gambar dan pemacu dan klik Flash.
Sekarang dengan kad SD kami yang berkelip dengan dapat membuat Pi berjalan.
Sekiranya anda mengetahui alamat IP yang digunakan oleh Pi anda atau dengan senang hati mencarinya dengan log masuk ke penghala anda, maka anda boleh mengelakkan keperluan papan kekunci dan monitor serta menggunakan SSH dengan segera. Cukup tambahkan fail kosong bernama SSH ke kad SD, masukkan, sambungkan ke Ethernet dan hidupkan. Jika tidak, ikuti panduan di bawah.
Sambungkan Pi ke internet, skrin, tetikus dan papan kekunci dan sambungkan ke kuasa. Perkara pertama yang akan kami lakukan ialah mengaktifkan SSH sehingga kami dapat melakukan sebahagian besar persediaan dari keselesaan pada PC. Sudah tentu ia dapat dilakukan secara langsung tetapi sangat membantu untuk mengikuti panduan ini pada peranti yang sama dengan yang memandu Pi dan menggunakan salin dan tampal untuk kebanyakan arahan. Dalam kes saya, stesen kerja PC saya bagus dan selesa tetapi tidak cukup besar untuk pi.
Terdapat panduan untuk banyak kerja video YouTube. Di sinilah saya bermula. Anda boleh menjalankan video sambil mengikuti arahan ini. Tetapi ketika saya menjalani proses itu lagi semasa menulis ini, saya merasa lebih mudah untuk mengikuti arahan di sini. Terdapat beberapa penyimpangan yang ketara. Terdapat juga beberapa bahagian yang saya sarankan untuk mengikuti video daripada menyenaraikan langkah-langkahnya di sini. Akan tetapi saya mengesyorkan melihatnya untuk mendapatkan pemahaman mengenai MQTT, Node-Red dan proses penyediaan yang luas. Video berdurasi 38 minit jadi buat diri anda selesa. Video dimulakan dengan menunjukkan apa yang boleh dilakukan Node Red, dan kemudian merangkumi pemasangan dan penyediaan Pi, diikuti dengan menaik taraf Node Red dan terakhir memasang Mosquitto. Masa utama sekiranya anda ingin kembali ke bahagian:
00:00 Pengenalan kepada Video
03:00 Node Demonstrasi Merah
14:14 Mengimport item papan pemuka ke Node Red
21:05 Persediaan awal Pi, termasuk SSH
23:35 Pemasangan kod sokongan Node Red
27:00 Pengenalan MQTT
29:12 Pemasangan Mosquitto (MQTT) (Catatan hanya berfungsi untuk Raspian Jessie)
33:00 Node Red contoh
Saya akan menyenaraikan perintah dalam huruf miring tebal (daripada menggunakan “”). Pemformatan ini tidak diendahkan semasa anda menyalin dan menempelkannya ke dalam Pi.
Pengenalan kepada Node Red akan memberi anda idea tentang apa yang dapat dilakukan oleh sistem dan memberikan gambaran tentang di mana kita akan berakhir.
Video YouTube ada di:
Ikuti prosedur pemasangan dari 21:05 hingga 23:35. Perhatikan log masuk lalai adalah pengguna: pi dan kata laluan: raspberry. Sebelum memulakan semula cari alamat IP pi. Klik ikon ‘panah ke atas + bawah’ di bar atas desktop atau masukkan arahan berikut di tetingkap terminal / terminal:
alamat sudo ifconfig
Kemudian perhatikan alamat IP selepas: inet addr:. Ia akan dalam bentuk 192.168.x.y
Perhatikan alamat ini dan mulakan semula (masukkan: sudo shutdown –r now)
Kuncinya pada ketika ini adalah bahawa SSH telah diaktifkan dan seseorang dapat membuat pautan ke Pi dari PC (Mac dan Linux termasuk antara muka SSH). Program yang baik untuk melakukan ini adalah muat turun percuma yang disebut PuTTY yang juga boleh digunakan sebagai antara muka bersiri dan boleh melakukan Telnet. Putty boleh didapati dari:
www.chiark.greenend.org.uk/~sgtatham/putty…
Muat turun dan pasang PuTTY.
Sekarang, dengan Pi dimulakan semula, mulakan PuTTY dan masukkan alamat IP yang dinyatakan sebelumnya. Lihat contoh di bawah:
Sekarang klik Buka
Selepas Log masuk sebagai: masukkan pi
Kemudian masukkan kata laluan anda.
Sekarang ikuti arahan di sini dan mulakan video dari 23:35. Dalam kebanyakan kes, anda boleh menyalin dan menampal. Sorot teks dan gunakan ctrl + C untuk menyalin. Kemudian klik kanan di PuTTY untuk menampal. Kadang-kadang teks tidak muncul dengan segera jadi tunggu beberapa saat. Sekiranya anda memasukkan dua kali, gunakan ruang belakang untuk menghapus entri kedua. Tekan enter untuk melaksanakan setiap arahan.
sudo raspi-kemas kini
Saya mendapat arahan yang tidak dijumpai dan mengabaikan ini dan arahan mematikan / memulakan semula berikut:
penutupan sudo -r sekarang
sudo apt-get -y kemas kini
sudo apt-get -y naik taraf
Ini memerlukan sedikit masa…..
sudo apt-get autoremove
sudo apt-get -y kemas kini
penutupan sudo -r sekarang
Pada ketika ini, sistem operasi Pi dimuat dan dikemas kini, siap untuk langkah seterusnya.
Langkah 2: Kemas kini dan Tambah Ciri ke Node-Red
Sambungan PuTTY akan terputus apabila dimulakan semula pada akhir langkah sebelumnya. Oleh itu, tutup PuTTY dan setelah menunggu Pi dimuat, Log masuk semula seperti sebelumnya.
Saya telah beralih ke kaedah yang lebih mudah dan lebih dipercayai untuk memuat Node-Red - mengikuti pendekatan di https://nodered.org/docs/hardware/raspberrypi. Ini menggunakan skrip dan akan memasang atau menaik taraf Node-Red - jadi pendekatannya sama dari versi Raspbian Stretch versi penuh atau lite. Oleh itu, masukkan:
bash <(curl -sL
Masukkan Y apabila diminta (dua kali). Skrip ini juga memuatkan fail yang diperlukan untuk mengaktifkan permulaan Node-Red secara automatik.
Oleh itu, pada masa ini kita telah memuatkan dan mengemas kini pi kita dan dengan kemas kini yang diperlukan untuk Node Red. Tidak ada salahnya melakukan restart sebelum peringkat seterusnya.
penutupan sudo -r sekarang
Langkah 3: Pemasangan Mosquitto MQTT
Sekiranya anda belum melakukannya, anda perlu melihat pengenalan video ke MQTT pada video dari jam 27:00.
Di sinilah kita perlu mengambil jalan yang berbeza. Prosedur yang digariskan dalam video hanya berfungsi untuk Raspian versi Jessie yang lebih lama. Terdapat perbincangan di laman nyamuk tetapi tidak ada hasil yang jelas dan oleh itu akan menempuh jalan yang lebih mudah dan selamat.
Oleh itu, log masuk menggunakan PuTTY dan masukkan yang berikut:
sudo apt-get kemas kini
sudo apt-get pasang klien mosquitto mosquitto
Y
sudo /etc/init.d/mosquitto berhenti
sudo /etc/init.d/mosquitto mula
Dua arahan terakhir berhenti dan mulakan nyamuk dan menunjukkan bahawa broker MQTT kami berfungsi.
Untuk ujian pantas, buka dua lagi sesi PuTTY dan log masuk ke setiap sesi.
Anda akan tahu sekarang bahawa MQTT berfungsi dengan peranti yang memerlukan data yang melanggan 'topik'. Broker akan menghantar sebarang data dengan 'topik' yang sama. Kemudian peranti yang ingin menghantar data / arahan menerbitkan ini kepada broker menggunakan 'topik' yang sama.
Jadi dalam satu sesi PuTTY masukkan:
mosquitto_sub -d -t hello / dunia
Ini adalah arahan untuk melanggan topik: hello / world.
Di lain masukkan:
mosquitto_pub -d -t hello / world -m "Hello dari Terminal window 2!"
Ini adalah arahan penerbitan dengan topik yang sama dengan mesej. Teksnya: "Helo dari tetingkap Terminal 2!" sekarang mesti muncul di terminal lain.
Selamat berjaya sejauh ini Kami sekarang telah memuatkan dan mengemas kini Pi dengan kemas kini yang diperlukan untuk Node-Red dan dengan broker MQTT nyamuk dipasang dan diuji. Mulai sekarang kehidupan menjadi lebih senang sedikit lebih menyenangkan. Tutup dua sesi PuTTY yang digunakan untuk ujian MQTT.
Langkah 4: Menyiapkan Node Red Interface
Mula-mula kita perlu memulakan Node Red. Masukkan arahan:
node-red-pi --max-old-space-size = 256
Tunggu sehingga ia berjalan dan anda melihat teks 'Aliran yang dimulakan'.
Sekarang buka penyemak imbas, saya menggunakan Chrome, dan masukkan alamat IP pi yang dinyatakan sebelumnya diikuti oleh: 1880 iaitu seperti 192.168.0.8:1880
Anda kini harus melihat halaman pengaturcaraan Node Red seperti di bawah:
Anda kini boleh mengikuti contoh Node Red mulai pukul 33:00 atau teruskan ke sedikit persediaan tambahan dan memuatkan aliran pertama yang akan menunjukkan pautan ke MQTT dan bersedia untuk memacu suis kami.
Persediaan tambahan yang diperlukan adalah menambahkan item papan pemuka yang membolehkan antara muka web.
Ini ditunjukkan dalam video pada 14:14.
Ikuti arahan untuk memuat papan pemuka nod-merah.
Sekarang kita boleh bermain sedikit dan menunjukkan MQTT berfungsi dan didorong oleh Node-Red. Ini bukan pada video tetapi merupakan kunci projek ini. Anda boleh mengikuti arahan saya dan / atau mengimport aliran dari fail NRtest1.txt yang dilampirkan.
Pertama, tambahkan nod input input dan node mqtt keluaran dan pautkan bersama.
Klik dua kali node suntikan (yang pada awalnya dilabel cap waktu). Di bahagian Payload gunakan twiddly untuk menukar ke string dan masukkan: Hello dari saya. Biarkan topik kosong kerana kita boleh memasukkannya ke dalam nod MQTT. Klik Selesai
Sekarang klik dua kali nod MQTT. Klik ikon pensel di sebelah kanan bahagian Pelayan. Ini membuka dialog baru. Masukkan: localhost di bahagian Pelayan. Klik Tambah. Sekarang, kembali ke node Edit mqtt out, masukkan topik kami di bahagian Topik: hello / world. Tetapkan QoS ke 1. Klik Selesai. Sekarang klik Terapkan. Anda akan melihat gumpalan hijau dan ‘bersambung’ di bawah nod mqtt.
Sekarang tambahkan dua lagi nod - masukan mqtt dan output debug, dan sambungkannya bersama. Sekarang klik dua kali input mqtt node dan masukkan hello / world di bahagian topik. Pelayan sudah semestinya menunjukkan localhost: 1883. Tetapkan QoS ke 1. Klik Selesai. Kemudian klik Terapkan dan klik tab debug pada panel sebelah kanan. Sekarang klik petak kelabu di sebelah kiri nod suntikan ‘Hello from me’. Ini menghantar muatan teks kepada broker MQTT dengan topik hello / world. Broker tahu bahawa node input mqtt telah melanggan topik yang sama dan seterusnya meneruskan muatan. Nod input mqtt kemudian menghantarnya ke tab debug (RHS) dan teks 'Hello from me' akan muncul.
Ini menandakan kotak lain kerana Node Red bercakap dengan broker MQTT kami. Perhatikan bahawa Node Red hanyalah pelanggan kepada broker - seperti peranti Sonoff yang akan kita sambungkan kemudian. Walau bagaimanapun, ia membolehkan automasi yang canggih dan menyediakan antara muka pengguna yang hebat.
Sekarang kita dapat membuat beberapa perubahan kecil dan mengatur aliran untuk suis Sonoff kami.
Oleh itu, hapuskan nod input input (klik untuk menyerlahkan dan tekan kekunci hapus). Sekarang tambahkan suis dari bahagian papan pemuka dan sambungkan ke output mqtt. Suis klik dua kali. Klik pensel di sebelah kanan Kumpulan. Masukkan ke dalam Nama: Cahaya. Kemudian klik pensil di sebelah kanan Tab dan masukkan ke bahagian Nama: Ruang santai. Klik Tambah / Kemas kini dan Tambah / Kemas kini sekali lagi. Sekarang, kembali ke nod suis Edit, tetapkan Beban hidup dan mati. Gunakan twidlys untuk memilih rentetan dan masukkan ON untuk muatan On dan OFF untuk muatan MATI. Klik Selesai
Sekarang pergi ke setiap node mqtt dan ubah Topik ke cmnd / sonoff / POWER. Sekiranya menyalin dan menampal, periksa bahawa anda belum memasukkan ruang di hujungnya. Ini adalah topik yang berbeza dan tidak akan berfungsi dengan Sonoff. Mencari ruang sesat boleh mengambil masa satu jam atau lebih - percayalah! Saya juga pergi ke papan pemuka> Tema dan memilih: Gelap. Klik Terapkan dan pilih tab debug.
Sekarang buka sesi penyemak imbas baru di tetingkap baru dan ukurannya seperti telefon bimbit semasa sesi Node Red. Masukkan alamat: alamat IP Pi anda: 1880 / ui / # / 0 iaitu seperti 192.168.0.8:1880/ui/#/0. Anda akan melihat skrin dengan Ruang dan Lampu dan beralih. Klik suis dan kemudian matikan. Tetingkap debug harus menunjukkan muatan ON dan OFF. Sekarang jika anda mahu juga log masuk melalui telefon bimbit juga. Perhatikan bahawa kedudukan suis disegerakkan. Tidak menjadi masalah bahawa Sonoff kita belum lagi berhubung. Apabila ada, dengan melanggan Topik, ia akan mengambil mesej / muatan dan bertindak di atasnya.
Langkah kecil terakhir adalah membuat Node Red bermula secara automatik setelah Pi boot.
Node Red mempunyai panduan di:
Namun fail yang diperlukan sudah dimuatkan sehingga tidak diperlukan pemasangan.
Untuk kemudian membolehkan Node-RED berjalan secara automatik pada setiap but dan semasa crash masukkan (buka sesi PuTTY):
sudo systemctl aktifkan perkhidmatan nodered.service
Sekiranya anda perlu melumpuhkan ini masukkan:
sudo systemctl melumpuhkan anggukan.servis
Sekarang matikan pi dengan penutupan sudo sekarang dan keluarkan kuasa.
Sekarang ini Pi kita dikunci dan dimuat siap untuk tindakan. Kami mempunyai telefon bimbit PC / mudah alih kami ke Node Red dan ini bercakap dengan pelayan MQTT kami. Ini adalah jarak jauh dan bernilai tepukan besar di bahagian belakang. Bagus. Saya dapati Arduino seterusnya, lebih mudah!
Langkah 5: Menyiapkan Sistem Arduino untuk Memprogramkan Semula Peranti Sonoff
Semua maklumat untuk melakukannya adalah di Sonoff-Tasmota GitHub. Satu-satunya bahagian yang saya hadapi adalah teks Topik - tetapi saya dengan licik membuat anda memasukkan ini!
Pergi ke
Anda akan menemui arahan penyediaan pada tab Wiki di bahagian Alat muat naik:
Daripada menempuh setiap langkah, saya hanya akan memperhatikan aspek-aspek penting yang saya rasa penting atau terjebak.
Arahannya bagus tetapi perlu diperhatikan dengan teliti. Saya tersandung kerana memerlukan folder ESP8266 dalam folder yang berada di dalam folder lain bernama ESP8266 dan dengan itu ketinggalan dua tahap.
Saya mengikuti cadangan untuk persediaan Arduino yang sama sekali terpisah. Saya membuat folder baru bernama 'ArduinoSonoff' yang terpisah dengan folder Arduino saya yang ada. Penyediaannya cukup maju dan dengan itu memisahkannya adalah idea yang sangat baik. Sekiranya ini adalah persediaan Arduino pertama anda, pastikan anda memasangnya untuk kali kedua dalam ‘Arduino’ atau folder lain untuk kerja Arduino lain, termasuk kerja pada ESP8266s.
Muat turun Arduino IDE terkini dari https://www.arduino.cc/en/Main/Software. Buka zip fail ke folder baru anda.
Arahan termasuk memuat turun sistem Sonoff-Tasmoda dari https://github.com/arendst/Sonoff-Tasmota halaman utama melalui: Klon atau Muat turun> Muat turun ZIP. Buka zip fail ke folder baru anda.
Ikut arahan dengan teliti. Saya tidak melakukan pilihan: Bersedia untuk bahagian muat naik OTA. Kami akan meninggalkannya untuk hari lain.
Sekarang mulakan Arduino IDE (klik dua kali arduino.exe). Muatkan lakaran Sonoff-Tasmota melalui Fail> Buku Sketsa> sonoff. Tidak perlu melakukan pengeditan. Semua tetapan dilakukan melalui sambungan bersiri setelah firmware dimuat. Ini disimpan di EEPROM. Oleh itu firmware dapat dikemas kini dan semua tetapan dikekalkan. Ini adalah barang yang cukup pintar. Walau bagaimanapun, anda boleh mengelakkan perlunya beberapa langkah di sini dengan pergi ke file user-config.h dan memasukkan SSID dan kata laluan wifi anda dan MQTT_HOST (ganti 'domus1'– rujukan kedua, dengan alamat IP IP anda). Kemudian anda mungkin mahu memasukkan pengguna dan kata laluan MQTT juga. Sebelum memuat turun, periksa tetapan papan di bawah Alat. Ini akan memerlukan beberapa perubahan untuk memenuhi syarat yang ditetapkan dalam Wiki. Sekarang klik kompilasi (tandakan ikon). Ia mesti menyusun OK. Sekiranya tidak atau jika tetapan papan yang diperlukan tidak tersedia, kembali dan periksa setiap langkah penyediaannya.
Langkah 6: Memprogram semula Suis Sonoff
Kami kini bersedia memuat turun. Pada peringkat ini seseorang boleh terus maju dan menyalakan suis Sonoff atau yang pertama dapat memancarkan modul ESP8266. Saya melakukan yang terakhir, sebahagiannya kerana suis saya belum tiba (baru tiba semasa saya menaip ini!) Tetapi juga sebagai langkah berjaga-jaga kerana pemutus suis Sonoff adalah langkah sehala kerana firmware asal tidak tersedia secara umum sejauh Saya sedar. Saya mempunyai beberapa papan NodeMCU. Ini mudah disambungkan, dengan penukar siri USB ke siri mereka. Bagaimanapun kaedah reset nodemcu tidak berfungsi dengan sistem ini. Oleh itu, biarkan Tools> Reset Method ditetapkan ke "ck". Lakukan penyediaan denyar manual biasa dengan menahan butang Flash (GPIO 0 ke tanah) sambil menekan dan melepaskan Reset (Reset ke ground). Saya tidak pasti sama ada ini mempunyai masa tamat atau mungkin saya tidak mendapat GPIO 0 rendah dalam jangka masa yang lama tetapi saya memerlukan beberapa percubaan, termasuk melakukan ini semasa Arduino IDE sedang menyusun!
Sekiranya anda ingin memeriksa respons - output relay adalah D6 pada papan NodeMCU. Pada ESP12 ini adalah GPIO 12. Output LED adalah D7 (NodeMCU) atau GPIO 13 (ESP12's).
Suis Sonoff.
PERINGATAN: Saya harus mengatakan "jangan menyambung ke sesalur dalam keadaan di mana kandang terbuka". Perhatikan bahawa PCB (sekurang-kurangnya pada Sonoff Basic (suis dalam talian) hanya mempunyai jarak 'pengasingan tunggal' antara bahagian voltan rendah dan sesalur. Oleh itu, seseorang harus menganggap mana-mana bahagian litar Sonoff sebagai voltan utama. Tasmota GitHub memang menunjukkan sambungan sensor suhu dan kelembapan ke Sonoff S20. Saya tidak akan melakukan ini kerana masalah pengasingan. - jadi jika anda mahu melakukan ini, dapatkan modul ESP12 atau NodeMCU dan tetapkan ini secara berasingan dengan dua kali ganda terpencil yang betul. atau bekalan kuasa yang dibumikan.
Suis pemalam Sonoff S20 adalah titik permulaan yang baik kerana tidak memerlukan pendawaian utama. Ini boleh dibuka dengan melepaskan satu skru (di bawah meterai keselamatan) dan membuka sarungnya. Foto di bawah menunjukkan di mana tanda nama. Menekan sarung pada titik-titik ini sangat membantu.
Penukar bersiri USB
Penukar kegemaran saya adalah versi FTDI. Tetapi ini tidak mempunyai kemampuan yang mencukupi untuk memenuhi keperluan Sonoff 3.3v. Spesifikasi FTDI mengatakan maksimum 50ma. Alternatif terbaik seterusnya adalah menggunakan cip CP2102. Walau bagaimanapun, ini mempunyai had 100ma yang masih belum mencukupi. Jelas banyak yang menggunakan penukar ini secara langsung tetapi terdapat juga laporan memuatkan gagal. Saya akan menghadkan masa ia disambungkan kerana ia akan menjadi panas di bawah beban. Lakukan ini atas risiko anda sendiri. Penyelesaian yang ideal adalah mempunyai pengatur 3.3v juga, mis. AMS1117 3.3. Saya membuat PCB kecil untuk membolehkannya. Lihat Pengaturcara untuk peranti Sonoff.
Urutan saya untuk pengaturcaraan adalah seperti berikut:
Buka Arduino IDE.
Di bawah Alat periksa tetapannya seperti di Wiki.
Buat pengeditan yang diperlukan untuk user_config.h. Saya menetapkan Wifi SSID dan kata laluan dan alamat broker MQTT dan perincian penjimatan waktu / waktu siang.
Klik 'sahkan' untuk memastikannya menyusun OK.
Pasang penukar siri USB (sendiri) ke PC. Perhatikan nombor Port.
Sekarang putuskan sambungan siri USB dari PC dan sambungkan ke suis Sonoff. Periksa tanah dan sambungan 3v3 adalah cara yang betul (tanah disambungkan ke permukaan tanah pada Sonoff PCB).
Pegang pengaturcara supaya kenalan selamat sambil menekan butang.
Sekarang pasangkan plumbum USB ke PC, periksa nombor port yang betul (di Tools), kemudian klik muat turun.
Saya terus menekan butang sepanjang pengaturcaraan kerana saya tidak mahu mengganggu sambungan.
Setelah selesai, anda akan melihat skrin seperti di bawah:
Sonoff memerlukan beberapa maklumat untuk menyambung ke sistem kami: SSID dan kata laluan wifi rangkaian tempatan, dan alamat IP IP. Ada beberapa cara untuk melakukan ini, salah satunya adalah mengubah fail config.ino seperti yang dinyatakan sebelumnya. Sekiranya anda mempunyai telefon pintar, anda boleh (setelah memasang kembali suis) tekan butang Sonoff 4 kali dengan cukup cepat untuk memasukkannya ke mod pelayan web. LED akan berkelip. Saya terpaksa mencuba beberapa kali agar ini berjaya. Kemudian, pada telefon pintar anda cari rangkaian Sonoff baru dan sambungkan. Halaman web akan muncul di mana anda dapat menetapkan data yang diperlukan. Alamat IP Pi masuk ke nama host. Saya juga menukar SSID dan kata laluan kedua menjadi sesuatu yang panjang dan pada dasarnya tidak dapat digunakan.
Sebagai alternatif, ia boleh disediakan melalui sambungan bersiri sejurus selepas memuatkan. Buka Monitor Serial Arduino (di bawah Alat).
Perintah untuk memasukkan:
SSIIDWiFiSSID anda
Kata laluanWiFiPassword anda
MqttHost 192.168.x.y (alamat IP PI)
Anda juga boleh memasukkan SSId1 dan Kata Laluan1 diikuti dengan sesuatu yang panjang dan tidak dapat digunakan untuk mematikannya dengan berkesan.
Sekarang anda boleh memasukkan suis Sonoff, membuka papan pemuka Node-Red dan Node-red dan mengklik butang beralih dan melihat tab debug yang kini harus merangkumi respons dari Sonoff. Oleh itu, kita mempunyai satu lagi langkah besar yang dicapai - suis pertama kita didorong dari PC / telefon pintar.
Sehingga kini kita belum menyebut keselamatan. Ada kemungkinan untuk menggunakan komunikasi yang disulitkan. Ini agak rumit untuk disiapkan dan mungkin lebih sesuai di mana broker berasaskan awan digunakan. Terdapat juga pilihan untuk menambahkan nama pengguna dan kata laluan untuk semua peranti yang disambungkan dan tidak membenarkan pengguna tanpa nama. Ini cukup mudah untuk disediakan. Dan sekarang ke Keselamatan.
Langkah 7: Keselamatan
MQTT membenarkan nama pengguna dan kata laluan untuk setiap pelanggan. Ini mudah disediakan. Mungkin lebih mudah untuk menamakan semula setiap peranti dan kemudian menetapkan nama pengguna dan kata laluan mereka. Ini dapat dilakukan melalui perintah MQTT, dan Node-Red mungkin merupakan kaedah termudah untuk menghantarnya. Mula-mula memutuskan konvensyen penamaan. Salah satu pilihan adalah mendasarkan nama pada lokasi dan fungsi. Kemudian anda ingin merakam nama pengguna (Topik) dan kata laluan bersama dengan topik penggantian. Perhatikan juga terdapat 'pilihan reset' untuk menetapkan semula tetapan Sonoff ke muat turun asal (lihat Penggunaan Wiki> Fungsi Butang).
Nyalakan pi dan setelah beberapa saat buka penyemak imbas ke Node-Red (alamat IP: 1880).
Di Node-Red sediakan node suntikan dan pautkan ini ke output mqtt dan tetapkan pelayan mqtt ke localhost. Biarkan topik, pengguna dan kata laluan kosong kerana kami akan menetapkannya di nod suntikan. Sediakan juga node input mqtt dan sambungkan ini ke simpul debug sehingga kita dapat melihat responsnya. Tetapkan nota input mqtt ke localhost (seharusnya sudah ditetapkan) dan masukkan + / + / + untuk topik sehingga menangkap semua lalu lintas.
Masukkan urutan tetapan berikut di nod suntikan.
Periksa kesambungan pertama dengan
Topik: cmnd / sonoff / Status
Mesej: 6
klik ‘Suntikan sekali pada permulaan’. Sebarkan. Kita mesti melihat debug termasuk 7 baris data dari stat / sonoff / STATUS6
Masukkan Topik: cmnd / sonoff / Topik dan Mesej: ruang santai. Sebarkan. Ini mengubah pertukaran nama dari sonoff menjadi ruang santai
Tab debug harus menunjukkan peranti dimulakan semula dengan nama / topik barunya
Topik: cmnd / ruang santai / MqttUser
Mesej: ruang santai
Klik sebarkan. Debug harus dilihat dari stat / loungelight / RESULT dengan {"MtqqUser": "loungelight"}
Topik: cmnd / loungelight / MqttPassword
Mesej: loungelightPW (nota lebih berimaginasi daripada ini!)
Kosongkan tab debug dan Terapkan.
Balasan harus dilihat dari stat / loungelight / RESULT dengan {"MqttPassword": "loungelightPW"}
Sekarang masukkan NodeRed dan NodeRedPW sebagai nama pengguna dan kata laluan dalam nod keluar mqtt. Ini melalui ikon pensel Server dan tab keselamatan di tetingkap yang terbuka. Ini secara automatik disalin ke nod MQTT yang lain.
Semak semula dengan
Topik: cmnd / ruang santai / Status dan Mesej: 6. Sebarkan.
Dan bahawa respons dihantar.
Oleh itu, pada masa ini kami telah menamakan semula peranti Sonof kami sehingga akan mendengar topik cmnd / loungelight / …… dan akan masuk ke MQTT dengan nama pengguna dan ruang tunggu kata laluan. Kami juga telah menetapkan nama pengguna dan kata laluan untuk Node-Red.
Seterusnya kita harus memberitahu pelayan MQTT nyamuk untuk hanya menerima klien dengan nama pengguna dan menyenaraikan nama pengguna dan kata laluan yang akan diterima.
Prosedurnya adalah:
- Hentikan nyamuk
- Buat fail konfigurasi sendiri
- Edit fail konfigurasi
- Buat fail kata laluan
- Tambahkan pengguna / kata laluan.
Oleh itu, log masuk dengan sesi PuTTY baru dan jalankan arahan berikut:
sudo /etc/init.d/mosquitto berhenti
cd /etc/mosquitto/conf.d/
sudo nano mosquitto.conf Ini memulakan penyunting.
Tambahkan baris:
izinkan_anonim palsu
kata laluan_file /etc/mosquitto/conf.d/passwd
memerlukan_sijil palsu
Simpan dan keluar (Ctrl + X), Y, masukkan.
sudo touch passwd Ini membuat fail kata laluan dan arahan berikut menambah nama dan kata laluan.
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 mulakan semula
Perhatikan semasa menambah peranti baru, anda perlu memasukkan pengguna dan kata laluan melalui port bersiri dan menambahkannya ke fail kata laluan atau menukar sementara fail konfigurasi mosquitto dan memberi komen (tambahkan # pada awal baris) baris "allow_anonymous false "dan" password_file /etc/mosquitto/conf.d/passwd "dan kemudian tetapkan semula ini apabila butiran telah dihantar ke peranti dan ditambahkan ke fail kata laluan seperti di atas.
Kami telah menukar nama sonoff menjadi loungelight dan seterusnya mengemas kini node output mqtt (disambungkan ke suis) untuk menggunakan topik cmnd / loungelight / POWER.
Klik Terapkan dan periksa node mqtt menunjukkan 'bersambung'.
Seterusnya cuba butang suis dan cari debug yang menunjukkan suis Sonoff bertindak balas. Anda akan melihat bahawa peranti menunjukkan perubahan dengan topik: stat / loungelight / POWER. Jadi sekarang ubah node input yang ditetapkan ke cmnd / sonoff / POWER ke stat / loungelight / POWER. Kita boleh menggunakan ini untuk menutup jurang fungsi kita. Sistem seperti yang disiapkan pada awalnya akan diselaraskan dengan semua pengguna yang masuk tetapi tidak akan diselaraskan dengan perubahan suis yang dilakukan dengan menekan butang pada suis Sonoff. Jadi sekarang sambungkan output nod input stat / loungelight / POWER mqtt ke input suis (LHS). Sekarang klik dua kali suis dan hapus centang "jika msg tiba pada input, lulus ke output". Ini memunculkan beberapa pilihan baru - pilih 'ikon suis menunjukkan keadaan input'. Sebarkan. Jadi sekarang kita mempunyai gelung maklum balas yang baik. Posisi suis papan pemuka akan selalu berubah ketika suis Sonoff berubah, tidak kira di mana perubahan itu dimulakan.
Oleh itu, kami kini mempunyai sistem automasi kediaman yang selamat dan berfungsi dan siap untuk dikembangkan ke apa sahaja yang anda mahukan. Pada bahagian seterusnya saya akan membahas beberapa percubaan saya setakat ini dan cabaran yang ingin saya atasi.
Langkah 8: Langkah Awal untuk Perluasan
Saya mempunyai satu lagi Papan Pembangunan LED Sonoff-Tasmota Sensor Automasi Rumah yang Dapat Diajar yang menunjukkan beberapa keupayaan selanjutnya dari firmware Sonoff-Tasmota:
Pengukuran suhu dan kelembapan
Pengesanan penceroboh (input suis)
Alat kawalan jauh IR (untuk TV dll)
Rentetan LED - kedua-dua RGB dan NeoPixel (boleh diatasi secara individu)
Sensor I2C
Untuk perkara di atas, saya menggunakan ESP12F dan PCB khusus. NodeMCU dan papan roti boleh digunakan sama. Ini membolehkan fungsi tambahan ini tanpa kabel ke peranti Sonoff, dan oleh itu adalah pendekatan yang lebih selamat. Dengan input suhu, saya dapat menyelesaikan automasi selimut elektrik saya.
Muzik dan Radio Internet boleh ditambah dengan mudah. Ini membuka pilihan agar stesen atau album tertentu muncul pada waktu yang ditentukan atau mungkin sebagai tindak balas terhadap pengunjung (telefon) yang dikesan. Arahan yang berkaitan ini terdapat di Pemain Muzik berkualiti tinggi dan Radio Internet dengan Kawalan Telefon Pintar. Oleh kerana ini juga didorong oleh Node-RED, mungkin mempunyai lebih dari satu sistem suara dan menggunakan komunikasi MQTT untuk menggerakkannya.
Saya juga telah menjelajah Node-Red, termasuk menghantar e-mel dan membuat amaran suara. Terdapat juga potensi sistem untuk mengesan ketika anda masuk / keluar - dengan melakukan ping alamat IP telefon bimbit anda. Node-Red juga dapat mengakses cuaca dan berita - jadi seseorang dapat menambahkan maklumat serta melakukan automasi.
Terdapat beberapa helah untuk dipelajari - tetapi ini menjadi mudah untuk kedua kalinya.
Jalan lain ialah menambahkan paparan ke pi untuk menunjukkan papan pemuka. Ini 'kerja sedang berjalan' - atau dengan kata lain saya tidak terlalu gembira. Paparan yang saya dapat sukar dipusingkan ke mod potret dan penyemak imbas Chromium sangat perlahan. Alternatifnya ialah dengan mengambil tablet lama di ebay dan menggunakannya. Saya mungkin mencuba Pi 2 dan melihat apakah itu memberikan peningkatan yang cukup (model B digunakan untuk pengembangan ini).
Saya harap ini dapat memulakan anda dan menjadikan imaginasi anda semakin kuat. Skop berpotensi sangat besar. Malah seseorang boleh mengubah kod Sonoff untuk sensor lain jika diperlukan.
Secara keseluruhan saya kagum dengan apa yang dapat dilakukan oleh sistem ini. Objektif asal saya adalah hanya menukar suis dari telefon pintar dengan cara yang boleh dipercayai melalui sistem yang berdiri sendiri. Saya mempunyai visi untuk menguruskan pelayan dan pelanggan dan menulis html untuk antara muka pengguna. Di mana ini berakhir lebih awal daripada ini, dengan keselamatan yang lebih besar, kebolehpercayaan yang sangat baik, antara muka pengguna yang hebat, pengaturcaraan seret dan lepas dan potensi besar untuk pengembangan. Dan semua ini dengan usaha yang lebih sedikit.
Mike
Langkah 9: Tambahan - Memuatkan dari Raspbian Stretch Lite
Pilihan ini mengelakkan bloatware yang disertakan dengan versi Raspbian Stretch penuh. Sebilangan besar ini tidak akan diperlukan semasa menggunakan Pi untuk automasi rumah. Walau bagaimanapun Node-Red mesti dipasang.
Teruskan seperti di Langkah 1 tetapi gunakan Raspbian Stretch Lite dan bukan Raspbian Stretch.
Daripada Langkah 2, lakukan perkara berikut:
sudo apt -y pasang npm
npm -v hendaklah kembali: 1.4.21 atau lebih baru
sudo npm pasang -g n
sudo n 8.9.0
Kita sekarang boleh menggunakan pengurus paket nod untuk memasang Node-Red:
sudo npm pasang node-red --global --unsafe-perm
Ini akan memberikan beberapa mesej ralat kerana alamat yang tidak betul. Walau bagaimanapun, sistem melakukan 'kompilasi sumber' untuk membetulkan masalah ini. Sekiranya anda mengulangi arahan di atas (tidak perlu) kesalahan tidak berlaku.
Kami sekarang telah memasang Node-Red dan pakej sokongannya dan boleh beralih ke Langkah 3, memuatkan mosquitto.
Naib Johan dalam Peraduan Tanpa Wayar
Disyorkan:
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar)
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay | Idea Automasi Rumah: Dalam projek automasi rumah ini, kami akan merancang modul relai rumah pintar yang dapat mengawal 5 peralatan rumah. Modul relay ini dapat dikendalikan dari telefon bimbit atau telefon pintar, jauh IR atau TV jauh, suis manual. Relay pintar ini juga dapat merasakan
Penjejak Kereta GPS Dengan Pemberitahuan SMS dan Muat Naik Data Perkara, Berbasis Arduino, Automasi Rumah: 5 Langkah (dengan Gambar)
Penjejak Kereta GPS Dengan Pemberitahuan SMS dan Muat Naik Data Thingspeak, Berasaskan Arduino, Automasi Rumah: Saya membuat pelacak GPS ini tahun lalu dan kerana ia berfungsi dengan baik, saya menerbitkannya sekarang di Instructable. Ia disambungkan ke palam aksesori di bagasi saya. Penjejak GPS memuat naik kedudukan kereta, kelajuan, arah dan suhu yang diukur melalui data mudah alih
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
Sistem Automasi Rumah Menggunakan Modul Bluetooth Arduino dan HC-05: 5 Langkah (dengan Gambar)
Sistem Automasi Rumah Menggunakan Modul Bluetooth Arduino dan HC-05: Hai Guys Bagaimana anda semua lakukan! Hari ini Saya Di Sini Dengan Arduino Kedua Saya Diarahkan. Ia adalah Sistem Automasi Rumah yang Dikendalikan Bluetooth. Anda Boleh Mengendalikan Peralatan Rumah Tangga Anda Hanya Dari Telefon Pintar Anda. Semua perkara berfungsi dengan sempurna! Juga Saya Merangka Aplikasi
Sistem Automasi Rumah yang Dikendalikan dengan Murah, Mudah, Internet: 5 Langkah (dengan Gambar)
Sistem Automasi Rumah yang Dikendalikan dengan Murah, Mudah, Internet: Sekiranya anda mempunyai haiwan peliharaan / anak-anak dan perlu memberi makan atau memukulnya melalui internet, sistem ini mungkin berguna bagi anda. Ini adalah kaedah yang sangat mudah dan murah untuk mengawal motor, LED, dll di rumah dari mana-mana komputer yang disambungkan ke web. Yang diperlukan hanyalah Webc