
Essa história começou há um ano e meio, quando as unidades de controle de iluminação “noolite” caíram em minhas mãos (bem, como eu a comprei, eu a comprei, tenho uma fraqueza por todos os tipos de hardware interessante). Então, à minha disposição estavam dois blocos da série SB e o adaptador MTRF-64. Os blocos desta série me atraíram pelo fato de que eles podem ser incorporados na fiação doméstica sem nenhuma refazição significativa: peguei um interruptor e inseri um bloco em seu lugar, e pendurei o interruptor em fios especialmente removidos do bloco. Nesta configuração, a luz pode ser controlada tanto a partir de um canal de rádio quanto, de acordo com os clássicos, de um comutador. Obviamente, há um ponto negativo: os blocos desta série não suportam feedback, mas eu gostaria, porque no MTRF-64 sim, mas tudo bem. Mas então eu me recusei a comprar um gateway em favor de um adaptador, seu potencial é maior que o de um gateway.
Tendo piscado bastante com o candelabro, havia um desejo de levar tudo a algum denominador comum, mas, aparentemente, outras peças interessantes de ferro eclipsaram esse desejo, porque os blocos foram enviados para uma caixa distante. Então, eles estariam lá se, até recentemente, eu não tivesse prestado atenção neles com
mais precisão na camada indecentemente espessa de poeira sobre eles .
Bloco de potência SB-1-150 e MTRF-64Imediatamente uma imagem surgiu na minha cabeça, na qual apago a luz antes de ir para a cama sem sair da cama, ou use o script "Estou saindo" com um clique de um botão para desligar tudo o que deve ser desligado na minha ausência.
Finalmente, foi decidido agir. Por que comecei a rebitar minha bicicleta e não comprei o sistema pronto imediatamente? Só porque eu queria fazer algo com minhas próprias mãos. Você conhece esse sentimento quando cria algo e funciona. Além disso, finalmente começo a aprender alguma linguagem orientada a objetos usando um exemplo de um projeto real (eu escolhi o python 3).
Idéia
É simples - controle luzes e eletrodomésticos de qualquer lugar da casa. Como dispositivo de controle principal, o Raspberry Pi modelo B + foi selecionado em conjunto com o MTRF-64. Devido à falta de experiência no desenvolvimento de tais aplicativos, foi decidido começar com algo simples. Então vim para a implementação do bot do Telegram.
Raspberry Pi B + e MTRF-64Por mim, decidi que, pela primeira vez, as seguintes funções de bot seriam suficientes para mim:
- Controle de luz e eletrodomésticos;
- Suporte para dispositivos reguláveis (luz, capô, etc.);
- A distribuição de dispositivos por sala;
- Suporte para scripts para gerenciar rapidamente um grupo de dispositivos;
- Adicionando usuários e distribuindo-os em grupos: proprietários (podem controlar dispositivos na casa, ter acesso às configurações da casa), convidados (podem controlar dispositivos na casa, não têm acesso às configurações da casa), assinantes (espere até que o proprietário os convide para a casa) .
Instalação
Para começar, baixe o sistema operacional da nossa torta de framboesa. Prefiro o oficial para este
xale raspbian . É conveniente carregar uma imagem em um CD usando o utilitário Win32DiskImager.
Aqui eu estava esperando por uma pequena capturaO fato é que eu estou acostumado a trabalhar com o framboesa remotamente, mas devido ao fato de que nas versões recentes do acesso ao Raspbian SSH está desativado por padrão, eu tive
que me aproximar de usar um adaptador USB-UART

1. Conecte a coisa toda e faça o login:
login: pi password: raspberry
2. Para começar, é aconselhável garantir o uso das versões mais recentes dos programas. Você pode pensar: acabamos de baixar o kit de distribuição, onde é novo? Mas não ...
sudo apt-get update sudo apt-get -y dist-upgrade
3. Instalamos o gerenciador de pacotes pip3 e git:
sudo apt-get install -y python3-pip git
4. Baixe as bibliotecas necessárias para o bot funcionar. Eu uso a biblioteca pyTelegramBotAPI, que cuida de todas as nuances do envio e recebimento de solicitações HTTP, permitindo que eu me concentre diretamente na lógica:
sudo pip3 install pytelegrambotapi pyserial
5. Baixe o bot:
sudo git clone https://github.com/DZimasik/nooBot.git
Antes de iniciar o bot, é necessário registrá-lo, ou seja, obtenha seu ID exclusivo (token). Outro bot especial nos ajudará a fazer isso -
@BotFather . Basta enviar a ele
/ newbot e ele pede um nome para o nosso novo bot, esse nome será exibido na lista de contatos do Telegram. Além disso, o BotFather oferece um nome de usuário de bot exclusivo. A única limitação é que o nome de usuário deve terminar em "bot". Nome de usuário também é usado para procurar um bot entre muitos outros.
Em princípio, isso é suficiente para começar. Alguns perfeccionistas aqui podem pedir ao bot um avatar ou escrever uma mensagem de boas-vindas. Depois que tudo for digitado, o BotFather retornará o token:
6. Adicione o token ao arquivo config.py
sudo nano /home/pi/nooBot/config.py
token = '_'
7. Finalmente, você pode iniciar o bot:
sudo python3 /home/pi/nooBot/noobot.py
Envie para o nosso bot
/ start . Se o token for inserido corretamente, o teclado aparecerá e vamos ver uma mensagem:
Planejar para o futuro
Nesta fase, controlo a luz no quarto e no corredor, mas no futuro pretendo comprar mais unidades de energia (desta vez com feedback) e mudar toda a minha iluminação para o controle remoto. Também há planos de adicionar suporte de feedback ao bot para que seja possível descobrir o status dos dispositivos e os parâmetros dos sensores na casa, estando fora dele.
Por enquanto é tudo. Ficarei feliz em ouvir sua opinião. Bom para todos!
Links úteis: