Artigo atualizado: https://viktorkirilov.me/post/home-automation-raspberry-pi/
https://youtu.be/wh0OoLUTeM8
Desde criança sou apaixonado pela electrónica e por diversos tipos de mecanismos. Anteriormente, fiz diversos pequenos projetos com o Arduino, como freio de mão para meu volante de jogos, tacômetro LED personalizado para meu carro (veja meu repositório no GitHub), LEDs controlados por voz e assim por diante. Recentemente comprei o Raspberry PI 3 e com todo o hype da IoT, decidi começar a automatizar minha casa.
Como estou bastante familiarizado com javascript e seu ecossistema, decidi criar meu próprio aplicativo de telefone via react native
e conectá-lo via websockets
ao backend NodeJS
. Estou usando os registros do ImmutableJS para consistência da estrutura de dados e desempenho do aplicativo. Os dados são enviados entre o cliente e o servidor por meio de strings JSON, que são convertidas em registros imutáveis, quando recebidos em ambos os lados. Separei os módulos compartilhados (entre cliente e servidor) em pacotes npm locais separados - home-records e home-config. Para controle GPIO (pinos do framboesa) usei a biblioteca pi-blaster
, junto com wiringPi
. Como não consegui encontrar códigos para meu AC, gravei-os sozinho e adicionei-os ao arquivo de configuração lirc
. Duckdns
cron é usado como DNS dinâmico, porque meu endereço IP muda periodicamente e não terei que recompilar o aplicativo inteiro ou alterar a configuração todas as vezes. O servidor transmite as alterações para todos os usuários conectados em tempo real. O aplicativo de telefone está localizado na pasta /phone-app , o servidor está localizado em /server . Por que você não dá uma olhada?
Raspberry Pi 3
é a unidade de controle. Dispositivos de alta potência, como fitas de LED, são alimentados por 12V 5A power supply
(aterramento compartilhado com o PI). O AC é controlado por LED infravermelho de 950 nm. O sistema de aquecimento é conectado via relé (liga e desliga) e servo para o termostato, pois evitei a desmontagem. Tanto a faixa de LED branca quanto a faixa RGB são conectadas ao PI por meio de transistores lógicos IRLZ34N
. Há também um receptor IR, caso eu queira gravar mais alguma coisa. A temperatura é medida através do sensor de temperatura DS18B20.
A fiação se parece com:
Estou aberto a todos os tipos de ideias sobre diferentes módulos. Se você tiver algumas ideias em mente, ficarei grato se você adicioná-las no rastreador de problemas e rotulá-las como Idea
.