Quer ter a casa automatizada mas não quer declarar falência no processo ?
Eu sempre gostei de brincar com automação residencial, mas sempre optei pelo lado DIY (Faça você mesmo) por conta de boa parte das soluções de mercado serem bem caras. Pois bem meus amigos, existe uma forma bem bacana de iniciar nesse mundo com um valor um pouco mais baixo. Aqui teremos um tutorial curto em como fazer isso com um Raspberry Pi rodando o Home Assistant **** e alguns módulos de tomada com Radio Frequência (RF), tudo isso **sem precisar programar**.
Não tem o Home Assistant instalado ? Dá uma olhada no nosso post sobre como configurar ele no Raspberry Pi.
Existem tomadas que funcionam via RF ( normalmente 433Mhz), esses módulos são facilmente encontrados na internet e são uma maneira bem simples de começar a automatizar sua casa. Segue alguns exemplos dos produtos que estou falando, encontrados tanto aqui no Brasil quanto em sites chineses (obviamente na China é muito mais barato).
Porém esses dispositivos funcionam via controle remoto (socorro…), o que me dá uma dor no peito só de pensar em ver minha casa com controles remoto espalhados por todo lado, sendo que eu tenho o melhor controle do mundo na minha mão, meu celular. Vamos transforma-los em um dispositivo IoT, que pode ser controlado via WiFi e não indo muito longe podemos controlar eles via comandos de voz usando um Amazon Echo, a Siri com HomeKit ou o Google Home. Eu fiz a parte de controle de voz com a Siri e a Alexa, mas isso vou mostrar em outro tutorial, por enquanto vou ensinar como controlar via web com o Home Assistant.
Bom o centro da nossa casa neste caso vai ser o Raspberry Pi, que vai poder rodar um servidor web para receber as requisições dos celulares da casa e converter isso para chamadas de RF de 433mhz que esses módulos trabalham para ligar e desligar algo na casa. No caso aqui vamos integrar o Home Assistant com a biblioteca 433Utils para fazer a comunicação mais baixo nível com o radio. Mãos a obra.#### O que você vai precisar
- Um Raspberry Pi rodando o Home Assistant (Qualquer versão serve, tenho o primeiro modelo)
- Módulo Receptor e Transmissor 433Mhz (Bem baratos iguais este aqui)
- Algum dos módulos de tomada ou interruptores citados no começo do post.
Ligações do Hardware
Ligações Receptor:
- Amarelo / Sinal de Dados (DATA): ligue no pino 11 do Raspberry.
- Preto / Terra (GND) : ligue no pino 6, um dos terras do Raspberry.
- Vermelho / Força (5V) : ligue no 5v do pino 2 no Raspberry.
Ligações Transmissor:
- Amarelo / Sinal de Dados (DATA): ligue no pino 13 do Raspberry.
- Preto / Terra (GND) : ligue no pino 9, outro terra do Raspberry.
- Vermelho / Força (5V): ligue no outro 5v no pino 4 do Raspberry pi.
Configurando o Raspberry Pi
Como foi mencionado anteriormente vamos usar o Home Assistant e a ferramenta 433Utils. Para configurar o Home Assistant dá uma olhada neste outro post meu sobre ele.
Nós precisamos instalar as seguintes dependências:
- wiringPi
- 433Utils
Primeiro instale o wiringPi
:
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
Depois baixe o 433Utils e compile os executaveis para Raspberry Pi:
git clone --recursive git://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils
make
Depois de rodar os comandos você terá instalado alguns utilitários para envio e recepção de dados via RF com o Raspberry Pi. Eles vão estar na pasta 433Utils/RPi_utils onde você baixou a ferramenta. Os comandos mais importantes são os seguintes:
- ./RFSniffer: Essa ferramentar serve para escutar os dados que são enviados pelo controle remoto RF, dessa forma podemos saber qual código enviar para ligar e desligar cada tomada, dependendo do botão pressionado.
- ./codesend [codigo] [protocolo] [pulso]: Essa ferramenta envia dados via RF. Os parâmetros de protocolo e pulso vão depender das tomadas que você comprou, já o código é o que foi coletado utilizando a ferramenta anterior.
Obtendo os códigos do controle
Com os comandos os módulos RF instalados e no Raspberry Pi, podemos utilizar o RFSniffer, pra escutar os códigos que são enviados pelo controle que veio junto com as tomadas. Para iniciar o RFSniffer, digite o comando na pasta que compilamos os executaveis:
# Dar permissão de execução, fazer apenas uma vez isso
chmod +x RFSniffer
# Execute o comando
sudo ./RFSniffer
Agora pegue o controle e encoste ele no receptor RF que está conectado no Raspberry Pi, e vai apertando os botões e guardando os códigos que cada um representa. As vezes aparece alguns códigos estranhos, desconsidere, use os que aparecem mais frequentemente.
Agora você vai poder transmitir esses mesmo códigos usando o Raspberry Pi, mas agora vem a parte meio chata, temos que descobrir o protocolo e comprimento de pulso que funciona o módulo, pois só o código não é o suficiente. O protocolo pode ser de 0 a 5 e o comprimento de pulso pode ser entre 100 e 800 em meus testes aqui. Eu fiz o seguinte, para cada protocolo, teste um comprimento de pulso em incrementos de 50 em 50. Cheguei que os meus módulos funcionam no protocolo 0 e comprimento 200. Para enviar usamos o comando codesend, que configuramos anteriormente, substituindo pelos valores que você encontrou:
# Dar permissão de execução, fazer apenas uma vez isso
chmod +x codesend
# Execute o comando
# aqui você vai ter que variar de acordo com seu módulo
# Aqui estou enviando o comando de ligar
# da tomada 1, com protocolo 0 e comprimento 200
sudo ./codesend 333107 0 200
Encotrando os valores e conseguindo ligar e desligar os módulos via Raspberry Pi, falta muito pouco para terminarmos as configurações. Pode comemorar meu caro amigo leitor.
Configurando o Home Assistant
Nós vamos utilizar um componente bastante versátil do Home Assistant, o Command line switch, com ele você consegue executar um comando no terminal quando os atuadores são acionados em sua central. Com isso vamos utilizar as ferramentas do 433Utils, como utilizamos no passo anterior para ligar e desligar os módulos de tomada. Segue a minha configurações no arquivo configuration.yaml do Home Assistant:
switch:
- platform: command_line
switches:
rf_switch1:
friendly_name: "Tomada 1"
command_on: "/home/pi/433Utils/RPi_utils/codesend 333107 0 200"
command_off: "/home/pi/433Utils/RPi_utils/codesend 333116 0 200"
rf_switch2:
friendly_name: "Tomada 2"
command_on: "/home/pi/433Utils/RPi_utils/codesend 333251 0 200"
command_off: "/home/pi/433Utils/RPi_utils/codesend 333260 0 200"
rf_switch3:
friendly_name: "Tomada 3"
command_on: "/home/pi/433Utils/RPi_utils/codesend 333571 0 200"
command_off: "/home/pi/433Utils/RPi_utils/codesend 333580 0 200"
Também aproveitei e agrupei as tomadas, utilizando o componente Group do Home Assistant, a minha configuração foi a seguinte:
group:
tomadas:
name: Tomadas entities:
- switch.rf_switch1
- switch.rf_switch2
- switch.rf_switch3
Agora é só reiniciar o Home Assistant e visualizar os componentes na interface principal dele:
sudo systemctl restart home-assistant.service
E por hoje é só pessoal, as possibilidades são grandes com esses módulos de tomada RF e o bom é não precisamos ter conhecimento profundo de eletrônica para se aventurar em automatizar algumas coisas em casa.