Home Cloud Nirkabel untuk Hal-Hal Internet
Saya menghabiskan banyak waktu mengulangi proyek orang lain pada hal-hal nirkabel pintar. Ini membawa saya pada kesimpulan yang jelas: setelah proyek ketiga atau keempat, Anda menemukan bahwa semuanya dijalankan dengan prinsip yang berbeda, menggunakan teknologi dan teknik yang berbeda, terutama setelah mengubah atau meningkatkan beberapa dari mereka. Ini berarti dunia Anda menjadi benar-benar bebas perawatan.Dengan kata lain, Anda harus mendukung perpustakaan besar spesifikasi dan kode. Dan lebih banyak waktu diperlukan untuk mengatasi semua perangkat mereka. Tentu saja, beberapa lebih terorganisir daripada saya, tetapi, kemungkinan besar, mayoritas dalam perjuangan melawan entropi telah mencapai sedikit keberhasilan. Jangan tersinggung.Apa yang harus dilakukan untuk mengekang invasi robot di rumah Anda (dan ini tidak bisa dihindari)? Sederhana saja. Segalanya lebih mudah. Awan lebih pintar.Konsep
- Perangkat sesederhana mungkin: modul standar untuk komunikasi dengan cloud pribadi. Terdiri dari modul nirkabel dan skrip inisialisasi (baik dalam modul dan di server). Jika modul gagal, buang dan ganti dengan modul standar baru.
- Semua logika dan kecerdasan terletak di server. Router Linux sederhana.
Segalanya lebih mudah. Cloud yang lebih cerdas
Server kecil menerima data dari sensor, menyimpannya, dan mengirim perintah ke perangkat eksekutif. Sekarang perangkat Anda bukan kerumunan hal-hal yang dipikirkan. Mereka hanya sinapsis dari otak server. Sederhana dan alami.Ada dua jenis perangkat di jaringan saya:- Sensor dan kontrol (input) dan
- Relay, katup, dll. (akhir pekan)
Mereka semua berkomunikasi dengan server melalui modul wifi (ESP8266 dari toko Cina yang terkenal). Input mengirim informasi status ke server database. Keluaran menerima dan menjalankan perintah dari server. Seperti yang telah saya sebutkan, perangkat tidak memiliki alasan.Tujuannya adalah membuat segala sesederhana mungkin.Semua logika tetap ada di server. Di server, semua algoritma, pemicu, dll. Sebagai contoh, server memutuskan untuk menyalakan pemanas jika suhu di ruangan tertentu turun di bawah level tertentu untuk jangka waktu tertentu. Server memutuskan untuk membuka katup solenoid irigasi di rumah kaca jika kelembaban tanah turun ke tingkat tertentu pada waktu tertentu dalam sehari. Secara alami, seseorang dapat selalu campur tangan dan mengambil kendali di tangannya sendiri atau mengubah logika. Server juga memberi tahu pemilik peristiwa penting melalui SMS. Itu dapat menerima perintah dari telepon tertentu.Core cloud cerdas

Saya menggunakan router nirkabel kecil dengan OpenWRT dan memori tambahan yang dapat berisi server web dan server database - Gl-iNet 6416A tidak lebih dari 25 USD.Perangkat luar biasa kecil memberi kita:- Server web Lighttpd untuk hosting laman antarmuka (prainstal)
- php sehingga bersifat interaktif (pra-instal)
- Server database MySQL untuk menyimpan data (diinstal). Seseorang menggunakan SQlite, tetapi ia tidak dapat menangani permintaan simultan ke kotak api.
Ini cloud pribadi saya. Ini menciptakan jaringan subnet sendiri (192.168.8.1), jaringan wifi sendiri, hanya dapat diakses oleh barang-barang saya. Ini juga memiliki antarmuka eksternal (WAN) yang terhubung ke router rumah biasa saya (dengan alamat yang ditetapkan 192.168.1.100). Diperlukan untuk mengakses panel kontrol dari jaringan wifi rumah saya.Perangkat lunak aplikasi yang digunakan dalam proyek:- WinSCP - Klien FTP Grafis untuk Akses File
- HeidiSQL - klien SQL grafis untuk akses database
- Putty - klien SSH untuk mengirim perintah ke sistem operasi OpenWRT
Konfigurasi saat ini disimpan di GitHub .Dan ya, yang salah, saya menggunakan USB flash drive sebagai penyimpanan file, walaupun saya tidak boleh menggunakan memori NAND sebagai orang dewasa (persyaratan mySQL).Modul standar
Modul wifi (ESP8266) dibumbui dengan sketsa standar. Singkatnya, dia membaca parameter dari akses terakhir ke titik akses, mencoba untuk terhubung, jika dia gagal, dia meluncurkan titik aksesnya dan halaman dengan formulir untuk parameter akses baru. Dan jika dia berhasil terhubung, dia mengunduh skrip yang dimaksudkan untuk modul ini dari server dan menjalankannya. Modul berbeda berdasarkan alamat MAC.Di cloud saya untuk setiap alamat MAC ada folder khusus dengan skrip yang berfungsi di alamat 192.168.8.1:86Jadi, awalnya modul hanya memiliki tiga skrip:AP_config - dua baris: SSID dan kata sandi.init.lua - koneksi ke titik akses dengan parameter yang disimpan dari AP_config. Jika tidak berhasil, jalankan do ("ap_request.lua"). Jika berhasil, unduh skrip yang berfungsi dan jalankan.ap_request.lua - meminta parameter baru untuk akses ke titik akses, tuliskan ke file AP_config (jika koneksi dengan yang sudah diinstal gagal).Skrip modulPerangkat yang dikelola


Tujuannya adalah membuat periferal sesederhana mungkin. Misalnya, modul dengan dua relay (sakelar lampu) terdiri dari:- Catu Daya AC-DC
- Stabilizer catu daya 3.3V
- ESP8266 (dalam hal ini, ESP-01 dengan dua pin yang dikontrol)
- modul relay
- tubuh
Segala sesuatu tentang segalanya - 7 USD.Sensor (input)

Perangkat dengan sensor terdiri dari:- Catu daya
- Kondisioner daya
- Modul wifi (lagi ESP01)
- DHT11 Sensor Suhu dan Kelembaban Digital
Semua tidak lebih dari 5 USD.Ini mengukur pembacaan suhu dan kelembaban dan mengirimkannya ke server setiap 3 menit, di mana mereka disimpan dalam database mySQL.Manajemen





Semua kesenangan di server!
Yang paling menarik adalah saya tidak punya panel kontrol konvensional. Semua antarmuka adalah virtual. Tombol, sakelar, mesin virtual. Tentu saja, Anda bisa menjadikannya nyata dan saya akan membuatnya.Menggunakan situs ini, kita dapat mengamati sejarah sensor dan nilai saat ini, kita dapat mengontrol lampu, katup, dll.Anda selalu dapat menambahkan perangkat baru ke panel menggunakan keterampilan coding HTML dan Javascript sederhana.Saya menggunakan tautan peta dengan gambar yang dibuat dalam program sederhana SweetHome 3D untuk mengatur navigasi rumah.Nyalakan imajinasimu
Banyak lagi orang yang tahu cara membuat kode untuk web (PHP, Javascript, HTML) daripada untuk pengontrol (C ++, Lua). Dengan menggunakan struktur ini, kita dapat menerima, meminta, mengirim data dan perintah dengan skrip php atau js sederhana. Kita dapat membangun sistem pembelajaran yang dapat beradaptasi dengan kebiasaan kita, memberi tahu kami tentang insiden. Source: https://habr.com/ru/post/id396755/
All Articles