Desde o último artigo (o
link foi quase um ano. E durante este ano, repensei algumas coisas, a Internet e resultou em algo como IoT :) → a Internet das coisas).
Tentarei resumir uma nova parte do conhecimento acumulado, descrever onde estou me esforçando e o que quero alcançar → Peço que você o leia.
Noolite F v2.0
Na manchete, recebi as palavras: seixo e noolite. Vamos para eles!Eu ainda administro com seixo minha luz noolite, garagem e portão. Muitas informações úteis já foram escritas sobre noolite, a
pesquisa mostra novos artigos.
Além das unidades de primeira geração do sistema noolite, eu tenho novas: uma unidade de potência SLF-1-200 (nooLite-F) com feedback (
e criptografia de nova geração ).

bloco de potência SB-1-150

e adaptador usb atualizado MTRF-64 USB.

Toda a luz da minha casa no sistema noolite.
Até recentemente, eu tinha um adaptador USB de primeira geração com 16 dispositivos e agora 64 canais (MTRF-64 USB) no “sistema home cramp”, e também para dispositivos de nova geração com feedback (noolite F). Mas a tecnologia está se movendo na direção certa, criando dispositivos novos e modernos.
Existem 2 opções mais importantes para novos dispositivos: feedback e o princípio de identificação de dispositivos por endereços: ID. Agora você não precisa gravar dispositivos no canal 1 e controlar o canal. Agora você pode acessar um dispositivo específico em um canal pelo seu ID e enviando um comando de execução.
A documentação para os novos blocos de geração
está disponível no site do fabricante.
Tudo funciona através da porta serial usando código python. Usando as funções necessárias no momento certo, podemos controlar blocos noolite e receber status de novos. Como eu tenho 99% desses blocos antigos, resta usar o esquema antigo de gravar 1 bloco em 1 canal, levando em consideração o fato de que o adaptador usb suporta blocos antigos e novos (obrigado aos desenvolvedores pela compatibilidade sem dança de pandeiro). Em tempo real, você pode gerenciar e receber o status de novos blocos e gerenciar os antigos.
Até recentemente, não havia um único botão na casa. Eu tive que adicionar luz à garagem (cheguei lá para colocar as coisas em ordem: D), e também apareceu um interruptor na luz de fundo do espelho de maquiagem. Sabendo que existe
uma unidade de energia SB-1-150 , ajustei a chave normal e conectei a unidade. A luz de fundo do espelho era feita de um prato branco, lâmpadas de 3w de 4000 K, luz branca. O SB-1-150 é único, pois pode ser colocado na caixa do comutador de parede no contexto do circuito existente e conectando um comutador de botão à própria unidade.
Exatamente o que minhas meninas precisam para maquiagem :) Seixo
Quando comecei a me envolver na automação, um dos principais fatores era: gerenciamento competente e conveniente.
Parece ser conveniente controlar a partir de um smartphone, mas ... e não é conveniente carregar o aplicativo toda vez, onde existem pequenos botões desconfortáveis, publicidade com a mão esquerda ou até você pressionar o botão ... todo desejo desaparece. O controle por voz desaparece, pois também é inconveniente e estranho :) - permaneça nas tramas dos filmes de ficção científica.

E resolvi o problema de outra maneira - através de um relógio de pulso, que CONSTANTEMENTE comigo, não ocupa espaço e combina todas as comodidades, mobilidade e velocidade de controle. Geralmente - Pebble está vivo! Mas o mais importante é que, para o relógio, você ainda pode escrever aplicativos - seus próprios aplicativos, para gerenciar seus sistemas de automação. Na verdade é uma bomba.
A tragédia de fechar a empresa pebble.com (a Fitbit comprou toda a pebble.com por patentes) não afetou seu desempenho e desempenho. Recentemente, houve uma atualização do ios, android - o relógio foi desatado dos serviços de nuvem de calhau (no caso de rescisão do suporte) e autorização.
Visualmente - nada mudou, mas o serviço
permanece :
cloudpebble.net - WTF? Isso é uma coisa muito útil. Se você pode escrever código em JS (e não há desejo de gastar muito tempo em C ++) - seja bem-vindo a bordo :) - o seixo da nuvem permite que você "jogue" rapidamente o aplicativo. Bem, foi assim que eu fiz. Obviamente, o desempenho do JS não deve ser comparado ao C ++ (isso é sagrado), fique atolado. sim!
Código JS de nuvem de cascalho para trabalhar com 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) {
O código é escrito, compilado diretamente no site do Pebble na nuvem e, por telefone, baixando o aplicativo compilado, pode ser instalado no relógio - em segundos. Tudo é tão simples que qualquer jovem engenheiro de automação pode lidar com isso;)
É uma pena ... é uma pena que Pebble tenha deixado de existir e no momento não vejo uma alternativa. O tempo do seixo estará sempre em nossos corações!
MQTT
No ano passado, conheci um protocolo tão maravilhoso como o MQTT (História: a primeira versão do protocolo foi desenvolvida pelo Dr. Andy Stanford-Clark (IBM) e Arlene Nipper (Arcom) em 1999 e publicada sob uma licença livre de royalties. A especificação MQTT 3.1.1 foi padronizado pelo consórcio OASIS em 2014.
Link ).
Há muita informação sobre como o protocolo funciona e quais clientes são ... e fiquei muito desapontado por não haver clientes reais para aplicativos móveis, apenas no Android.
Entendendo que a falta de um bom aplicativo móvel é um grande problema (buraco) no campo da IoT (muitas pessoas dizem, mas fazem muito pouco ....) - Eu e minha equipe, no trabalho, decidimos criar um cliente para android, ios, wp para que ele atenda a todos os critérios e seja confortável. Escreverei sobre o cliente um pouco mais tarde, além de como fizemos amigos ESP8266 + MTRF64 (Noolite) e preparamos o firmware do Nodemcu. Vai ser ótimo, conveniente, barato e bonito! Siga as notícias do aplicativo
aqui .

Agora você pode controlar a iluminação Noolite sem servidores domésticos e adaptadores USB por US $ 50-100!Esquema geral de automação residencial
O esquema a seguir ainda existe:
Vigilância por vídeo: vigilância por vídeo xeoma [câmera ip]
Servidor na unidade de sistema: nginx + gunicorn + python + mqtt broker
Gerenciamento: relógio Pebble + cliente MQTT
Módulos de controle (nós do sistema): acopladores ópticos ESP8266 + \ ds18b20, sensores dht11 [22]
Devido ao fato de eu ter visto muitas comodidades no protocolo MQTT, a partir da arquitetura de assinatura e comunicação instantânea com os dispositivos IoT finais, terminando com o fato de que as mensagens MQTT podem voar pelo roteador sem "encaminhar" nenhuma porta e dançar com um pandeiro. Convenientemente! Divirta-se! Fervorosamente :)
Tudo isso me levou a descentralizar o sistema, ou seja, evitando um “home korchvagen” e alternando para muitos nós chamados e usando um broker MQTT na nuvem (existem corretores MQTT gratuitos, por exemplo:
mqtt.ximxim.com (no site, faça login e passe pelo acesso )) - já que o esp8266 resolve todos os problemas e, por sua vez, funciona através de wifi usando o protocolo MQTT.
Como o MQTT Buddy fornecerá um serviço de script, não pensarei em escrever nenhum script doméstico, apenas criá-los em uma solução em nuvem e essa será uma IoT real e funcionará! Das palavras às ações!
ESP8266
Quando me familiarizei com esta placa de desenvolvimento, fiquei imediatamente impressionado com o fato de a placa ser pequena, há suporte para a linguagem de programação LUA no firmware do Nodemcu. O que você precisa + módulo MQTT é. Na automação, soluções simples e confiáveis são a base. O custo de US $ 2 a US $ 5 por uma taxa (para o quinto modelo imediatamente com um adaptador USB a bordo) permite implantar rapidamente subsistemas.
A conexão Wi-Fi é rápida, com muitas possibilidades. Por exemplo: portão / garagem \ rega \ controle de iluminação. Eu tenho 30% da irrigação de gramado alimentada pelo sistema Noolite (blocos de contato seco), os 70% restantes da placa de desenvolvimento esp8266 controlados pela linguagem LUA usando o protocolo MQTT.
Exemplo de código LUA para esp8266, obtendo ip e chamando o arquivo de trabalho com MQTT
- arquivo mqtt.lua
local door = 7
O problema
Passando para uma enorme comunidade de
pessoas que pensam , eu queria abordar um tópico extremamente importante, ou melhor, o problema que quero resolver, mas não há tempo suficiente para pesquisas / conhecimentos mais aprofundados.
Conclusão: com a descentralização, a vigilância por vídeo permanece, o que, de uma maneira ou de outra, requer uma máquina host para (no mínimo) transferir imagens de origem para um servidor de vigilância por vídeo (por exemplo, ivideon) ou até mesmo processar vídeo em uma máquina doméstica, como xeoma (embora eles também tenham uma nuvem) - de uma maneira ou de outra - você precisa "encaminhar" os fluxos de vídeo, as imagens para obter o poder final da computação (soluções em nuvem) - ou vice-versa - para simplificar a transmissão.
Pensamos em receber imagens de origem da câmera (também existe um problema aqui, nem todas as câmeras têm um URL para receber uma foto da câmera e geralmente não está claro como os outros reconhecerão esse URL ....) e encaminhar para o canal MQTT onde os dados binários são suportados (que existe uma imagem que pode ser facilmente transmitida via protocolo mqtt em formato binário).
Talvez alguém já tenha tentado implementar essas coisas = web cam ESP8266 + IP?
Responda por favor (bogdanovich.alex [@] gmail.com). Ficarei muito grato!
Ao implementar probros, a questão do servidor doméstico desaparece. Porque Porque ele come eletricidade e aquece meu forno :)

Todo um dia positivo e bom humor!