Sejak artikel terakhir (
tautannya berjalan hampir setahun. Dan selama tahun ini, saya memikirkan kembali beberapa hal, Internet dan ternyata sesuatu seperti IoT :) β Internet of things).
Saya akan mencoba merangkum bagian baru dari akumulasi pengetahuan, menjelaskan di mana saya berusaha dan apa yang ingin saya capai β Saya meminta Anda untuk membacanya.
Noolite F v2.0
Dalam tajuk utama, saya mendapatkan kata-kata: pebble & noolite. Mari kita beralih ke mereka!Saya masih mengelola dengan kerikil, lampu, garasi, dan gerbang noolit saya. Cukup banyak informasi bermanfaat yang telah ditulis tentang noolite,
pencarian menunjukkan artikel baru.
Selain unit generasi pertama dari sistem noolite, saya memiliki yang baru: unit daya SLF-1-200 (nooLite-F) dengan umpan balik (
dan enkripsi generasi baru ).

blok daya SB-1-150

dan adaptor USB yang diperbarui MTRF-64 USB.

Semua cahaya di rumah saya pada sistem noolite.
Sampai baru-baru ini, saya memiliki adaptor USB generasi pertama dengan 16 perangkat dan sekarang 64 saluran (MTRF-64 USB) di "system home cramp", dan juga untuk perangkat generasi baru dengan umpan balik (noolite F). Tetapi teknologi bergerak ke arah yang benar, menciptakan perangkat baru dan modern.
Ada 2 opsi paling penting untuk perangkat baru: umpan balik dan prinsip mengidentifikasi perangkat berdasarkan alamat: ID. Sekarang Anda tidak perlu menulis perangkat ke saluran 1 dan mengontrol saluran. Sekarang Anda dapat mengakses perangkat tertentu dalam satu saluran dengan ID-nya dan mengirimkannya perintah eksekusi.
Dokumentasi untuk blok generasi baru
tersedia di situs web pabrikan.
Semuanya berfungsi melalui port serial menggunakan kode python. Menggunakan fungsi yang diperlukan pada waktu yang tepat, kita dapat mengontrol blok noolite dan menerima status dari yang baru. Karena saya memiliki 99% dari blok lama ini, saya tetap menggunakan skema lama yaitu merekam 1 blok dalam 1 saluran, dengan mempertimbangkan fakta bahwa adaptor usb mendukung blok lama dan baru (terima kasih kepada pengembang untuk kompatibilitas tanpa menari rebana). Dengan cepat, Anda dapat mengelola dan menerima status blok baru dan mengelola yang lama.
Sampai saat ini, tidak ada saklar tombol tunggal di rumah. Saya harus menambahkan cahaya ke garasi (saya baru saja sampai di sana untuk membereskan: D), dan juga sebuah saklar muncul di lampu latar cermin rias. Mengetahui bahwa ada
unit daya SB-1-150 , saya mengatur saklar normal dan menghubungkan unit. Lampu belakang cermin terbuat dari plat putih, bola lampu 3w 4000 K, cahaya putih. SB-1-150 unik karena dapat ditempatkan di dalam kotak sakelar dinding (sakelar) dalam konteks sirkuit yang ada dan dengan menghubungkan sakelar tombol tekan ke unit itu sendiri.
Persis apa yang dibutuhkan gadis-gadisku untuk makeup :) Kerikil
Ketika saya mulai terlibat dalam otomatisasi, salah satu faktor utama adalah: manajemen yang kompeten dan nyaman.
Tampaknya nyaman untuk dikendalikan dari smartphone, tetapi ... dan tidak nyaman memuat aplikasi setiap saat, di mana ada tombol kecil yang tidak nyaman, iklan tangan kiri, atau sampai Anda menekan tombol ... semua keinginan menghilang. Kontrol suara menghilang, karena juga merepotkan dan aneh :) - biarkan tetap di plot film fiksi ilmiah.

Dan saya memecahkan masalah dengan cara lain - melalui jam tangan, yang terus-menerus dengan saya, tidak memakan tempat dan menggabungkan semua fasilitas, mobilitas dan kecepatan kontrol. Umumnya - Pebble masih hidup! Tetapi yang paling penting adalah bahwa, untuk jam Anda masih dapat menulis aplikasi - aplikasi Anda sendiri, untuk mengelola sistem otomasi Anda. Ini sebenarnya bom.
Tragedi menutup perusahaan pebble.com (Fitbit membeli semua pebble.com untuk paten) tidak memengaruhi kinerja dan kinerja mereka. Baru-baru ini ada pembaruan ios, android - arloji dilepaskan dari layanan cloud kerikil (dalam hal penghentian dukungan) dan otorisasi.
Secara visual - tidak ada yang berubah, tetapi layanan
tetap :
cloudpebble.net - WTF? Ini adalah hal yang sangat berguna. Jika Anda dapat menulis kode dalam JS (dan tidak ada keinginan untuk menghabiskan banyak waktu di C ++) - silakan diterima di papan :) - cloud pebble memungkinkan Anda untuk "melempar" aplikasi dengan cepat. Ya begitulah cara saya melakukannya. Tentu saja, kinerja JS tidak boleh dibandingkan dengan C ++ (ini suci), macet. ya!
Kode JS cloud kerikil untuk bekerja dengan API var UI = require('ui'); var ajax = require('ajax'); var noolite = [ ['','http://your-home-server-ip-address:1183/mqtt/gate/slidegate', 'images/gate.png'], ['','http://your-home-server-ip-address:1183/mqtt/gate/garage', 'images/door.png'], ['!','http://your-home-server-ip-address:1183/noolite/switch/103', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/100', 'images/system2.png'], ['1 ','', 'images/light.png'], ['2 ','', 'images/light.png'], [' 1','http://your-home-server-ip-address:1183/noolite/switch/101', 'images/light.png'], [' 2','http://your-home-server-ip-address:1183/noolite/switch/102', 'images/light.png'], ['','', 'images/water.png'], ['','http://your-home-server-ip-address:1183/admin/system/1', 'images/system1.png'], ]; var water = [ [' ','http://your-home-server-ip-address:1183/admin/poliv/1', 'images/water.png'], [' ','http://your-home-server-ip-address:1183/admin/poliv/2', 'images/water.png'], [' 1 ','http://your-home-server-ip-address:1183/noolite/switch/20', 'images/water.png'], [' 2 ','http://your-home-server-ip-address:1183/noolite/switch/21', 'images/water.png'], [' 3 ','http://your-home-server-ip-address:1183/noolite/switch/22', 'images/water.png'], [' 4 ','http://your-home-server-ip-address:1183/noolite/switch/23', 'images/water.png'], [' 5 ','http://your-home-server-ip-address:1183/admin/poliv/switch/5', 'images/water.png'], [' 6 ','http://your-home-server-ip-address:1183/admin/poliv/switch/6', 'images/water.png'], [' 7 ','http://your-home-server-ip-address:1183/admin/poliv/switch/7', 'images/water.png'], [' 8 ','http://your-home-server-ip-address:1183/admin/poliv/switch/8', 'images/water.png'], [' 9 ','http://your-home-server-ip-address:1183/admin/poliv/switch/9', 'images/water.png'], ]; var light1 = [ [' ','http://your-home-server-ip-address:1183/noolite/switch/6', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/0', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/1', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/7', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/8', 'images/light.png'], [' 1 ','http://your-home-server-ip-address:1183/noolite/switch/2', 'images/light.png'], [' 1 ','http://your-home-server-ip-address:1183/noolite/switch/3', 'images/light.png'], [' 1 ','http://your-home-server-ip-address:1183/noolite/switch/4', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/5', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/9', 'images/light.png'], ]; var light2 = [ [' ','http://your-home-server-ip-address:1183/noolite/switch/15', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/16', 'images/light.png'], [' 2 ','http://your-home-server-ip-address:1183/noolite/switch/10', 'images/light.png'], [' 2 ','http://your-home-server-ip-address:1183/noolite/switch/11', 'images/light.png'], [' 2 ','http://your-home-server-ip-address:1183/noolite/switch/12', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/13', 'images/light.png'], [' ','http://your-home-server-ip-address:1183/noolite/switch/14', 'images/light.png'], ]; var menu = new UI.Menu({ sections: [{ items: [{ title: '', subtitle: '' }] }] }); var menu1 = new UI.Menu({ sections: [{ items: [{ title: '', subtitle: '' }] }] }); var menu2 = new UI.Menu({ sections: [{ items: [{ title: '', subtitle: '' }] }] }); var menu3 = new UI.Menu({ sections: [{ items: [{ title: '', subtitle: '' }] }] }); var items = []; for (var i=0; i<noolite.length; i++) { items[i] = { title: noolite[i][0], subtitle: '', icon: noolite[i][2] }; } var items1 = []; for (var i=0; i<light1.length; i++) { items1[i] = { title: light1[i][0], subtitle: '', icon: light1[i][2] }; } var items2 = []; for (var i=0; i<light2.length; i++) { items2[i] = { title: light2[i][0], subtitle: '', icon: light2[i][2] }; } var items3 = []; for (var i=0; i<water.length; i++) { items3[i] = { title: water[i][0], subtitle: '', icon: water[i][2] }; } menu.items(0, items); menu1.items(0, items1); menu2.items(0, items2); menu3.items(0, items3); menu.show(); menu.on('select', function(e) { if (e.itemIndex == 4) { menu1.show(); } else if (e.itemIndex == 5) { menu2.show(); } else if (e.itemIndex ==8) { menu3.show(); } else { var url = noolite[e.itemIndex][1]; console.log(url); ajax({ url: url, method: 'get' }, function(data) { console.log('switched OK'); }, function(error) {
Kode ini ditulis, dikompilasi langsung di situs web cloud Pebble, dan melalui telepon, mengunduh aplikasi yang dikompilasi, dapat diinstal pada jam - dalam detik. Semuanya sangat sederhana sehingga insinyur otomasi muda dapat menanganinya;)
Sangat disayangkan ... Sayang sekali bahwa Pebble sudah tidak ada lagi dan saat ini saya tidak melihat alternatif. Kerikil Waktu akan selalu ada di hati kita!
MQTT
Tahun lalu, saya bertemu dengan protokol yang luar biasa seperti MQTT (Sejarah: Versi pertama protokol dikembangkan oleh Dr. Andy Stanford-Clark (IBM) dan Arlene Nipper (Arcom) pada tahun 1999 dan diterbitkan di bawah lisensi bebas-royalti. Spesifikasi MQTT 3.1.1 adalah distandarisasi oleh konsorsium OASIS pada tahun 2014.
Tautan ).
Ada banyak informasi tentang cara kerja protokol dan apa itu klien ... dan saya sangat kecewa karena tidak ada klien nyata untuk aplikasi seluler, hanya di android.
Memahami bahwa kurangnya aplikasi seluler yang baik adalah masalah yang sangat besar (lubang) di bidang IoT (banyak orang mengatakan, tetapi mereka sangat sedikit ....) - Saya dan tim saya, di tempat kerja, memutuskan untuk membuat klien untuk android, ios, wp sehingga memenuhi semua kriteria dan nyaman. Saya akan menulis tentang klien sedikit kemudian, serta bagaimana kami berteman ESP8266 + MTRF64 (Noolite) dan menyiapkan firmware Nodemcu. Ini akan menjadi luar biasa, nyaman, murah dan indah! Ikuti berita aplikasi di
sini .

Sekarang Anda dapat mengontrol pencahayaan Noolite tanpa server rumah dan adaptor usb sebesar $ 50-100!Skema umum otomatisasi rumah
Skema berikut masih ada:
Video surveillance: pengawasan video xeoma [ip camera]
Server pada unit sistem: nginx + gunicorn + python + broker mqtt
Manajemen: Pebble watch + MQTT client
Modul kontrol (node ββsistem): ESP8266 + optocouplers \ ds18b20, sensor dht11 [22]
Karena kenyataan bahwa saya melihat banyak fasilitas dalam protokol MQTT, mulai dari arsitektur berlangganan dan komunikasi instan dengan perangkat IoT akhir, berakhir dengan fakta bahwa pesan MQTT dapat terbang melalui router tanpa "meneruskan" semua port di sana dan menari dengan rebana. Dengan nyaman! Selamat bersenang-senang! Dengan sungguh-sungguh :)
Semua ini mendorong saya untuk mendesentralisasikan sistem, yaitu menghindari satu "rumah korchvagen" dan beralih ke banyak yang disebut node dan menggunakan broker cloud MQTT (ada broker MQTT gratis, misalnya:
mqtt.ximxim.com (di situs login dan lulus untuk akses )) - karena esp8266 menyelesaikan semua masalah, dan, pada gilirannya, bekerja melalui wifi menggunakan protokol MQTT.
Mengingat MQTT Buddy akan menyediakan layanan skrip, saya tidak akan berpikir untuk menulis skrip apa pun di rumah, saya hanya akan membuatnya dalam solusi cloud dan ini akan menjadi IoT nyata dan ini akan berhasil! Dari kata-kata hingga perbuatan!
ESP8266
Ketika saya berkenalan dengan papan pengembangan ini, saya langsung terkesan oleh kenyataan bahwa papan itu kecil, ada dukungan untuk bahasa pemrograman LUA pada firmware Nodemcu. Yang Anda butuhkan + modul MQTT. Dalam otomatisasi, solusi sederhana dan andal adalah fondasinya. Biaya dari $ 2 hingga $ 5 untuk biaya (untuk model ke-5 segera dengan adaptor usb di papan) memungkinkan Anda untuk menggunakan subsistem dengan cepat.
Koneksi WiFi cepat, banyak kemungkinan. Misalnya: gerbang / garasi \ penyiraman \ kontrol pencahayaan. Saya memiliki 30% irigasi kebun yang ditenagai oleh sistem Noolite (blok kontak kering), 70% sisanya dari papan pengembangan esp8266 dikendalikan melalui bahasa LUA menggunakan protokol MQTT.
Contoh kode LUA untuk esp8266, mendapatkan ip dan memanggil file kerja dengan MQTT
- file mqtt.lua
local door = 7
Masalah
Beralih ke komunitas besar
orang-orang yang berpikir , saya ingin menyentuh topik yang sangat penting, atau lebih tepatnya masalah yang ingin saya selesaikan, tetapi tidak ada cukup waktu untuk penelitian / pengetahuan yang lebih mendalam.
Intinya: dengan desentralisasi, pengawasan video tetap, yang dengan satu atau lain cara memerlukan mesin host untuk (minimum) mentransfer gambar sumber ke server pengawasan video (mis. Ivideon) atau bahkan memproses video pada mesin rumah, seperti xeoma (walaupun mereka juga memiliki cloud) - satu atau lain cara - Anda perlu "FORWARD" video stream, gambar untuk daya komputasi akhir (solusi cloud) - atau sebaliknya - untuk membuat streaming menjadi sederhana.
Ada pemikiran untuk menerima gambar sumber dari kamera (ada juga masalah di sini, tidak setiap kamera memiliki URL untuk menerima gambar dari kamera dan umumnya tidak jelas bagaimana orang lain akan mengenali URL ini ....) dan meneruskan ke saluran MQTT di mana data biner didukung (yang ada gambar yang dapat dengan mudah ditransmisikan melalui protokol mqtt dalam bentuk biner).
Mungkin seseorang sudah mencoba mengimplementasikan hal-hal seperti itu = ESP8266 + IP web cam?
Mohon jawab (bogdanovich.alex [@] gmail.com). Saya akan sangat berterima kasih!
Saat menerapkan probros, pertanyaan dari server rumah akan hilang. Mengapa Karena dia makan listrik dan memanaskan tungku saya :)

Semua hari yang positif dan suasana hati yang baik!