Atualização GaragePI com Câmera e Node.js
Já se passou mais de um ano desde que fiz o GaragePi , um abridor de porta de garagem feito com um Raspberry Pi, e desde então, ele é útil em algumas situações. Como quando vou de férias ou até mesmo um passeio de bicicleta, posso deixar minhas chaves em casa. Eu também fiz as seguintes melhorias:
- reescreveu o servidor usando Node.js
- adicionou um módulo de câmera para tirar uma foto da porta da garagem
- removeu a bateria do controle remoto da garagem e conectou-a diretamente ao Pi
Instruções de instalação do Node-GaragePi
O motivo da reescrita do Node.js foi apenas uma preferência pessoal e nada contra o Python. Como também tenho outros aplicativos de nó em execução no mesmo Pi, isso torna as coisas um pouco mais fáceis de gerenciar.
Baixe e instale o Node.js e o NPM:
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
Verifique se a instalação funcionou corretamente digitando o comando abaixo:
node -v
As próximas etapas são configurá-lo para que os pinos GPIO possam ser usados por sua conta conectada em vez de root, como normalmente requer:
git clone git://github.com/quick2wire/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin
make
sudo make install
sudo adduser $USER gpio
Depois disso, você precisa simplesmente fazer logout e, em seguida, fazer login novamente.
A seguir, faremos o download e a configuração do Node-GaragePi:
cd ~
git clone git://github.com/chasechou/node-garagepi.git
cd node-garagepi
npm install
Isso deve instalar os módulos necessários e você pode testar tudo executando:
node garagepi.js
Carregue http://192.168.1.60:8000 em um navegador para ver se está funcionando. Mude o IP para o da sua máquina se for diferente.
[atualização 2/8/15] Se você vir um erro como este:
[[23:45:47]] [ERROR] gpio-admin: failed to change group ownership of /sys/devices/virtual/gpio/gpio4/direction: No such file or directory
Em seguida, você também precisará corrigir o gpio-admin porque em algum ponto o Raspbian mudou o caminho para algo que o gpio-admin esperava. O patch é descrito aqui e podemos facilmente fazer a edição necessária manualmente:
https://github.com/quick2wire/quick2wire-gpio-admin/pull/6/files
cd quick2wire-gpio-admin/src
vi gpio-admin.c
Mude esta linha:
int size = snprintf(path, PATH_MAX, "/sys/devices/virtual/gpio/gpio%u/%s", pin, filename);
Em vez disso:
int size = snprintf(path, PATH_MAX, "/sys/class/gpio/gpio%u/%s", pin, filename);
Em seguida, basta executar os comandos a seguir no diretório root do quick2wire-gpio-admin, exatamente como fizemos anteriormente:
sudo make uninstall
sudo make install
sudo adduser $USER gpio
Efetue logout e, em seguida, volte a executar o aplicativo de nó e o erro não deve acontecer novamente.
Se tudo parecer correto, a última etapa é configurá-lo para que seja executado na inicialização. Escolhi usar o PM2 como gerente de processo, pois tive uma boa experiência com o uso em outros projetos.
sudo npm install -g pm2
sudo env PATH=$PATH:/usr/local/bin pm2 startup raspberry -u pi
cd ~/node-garagepi
pm2 start garagepi.js -x --name "node-garagepi"
pm2 dump
Em seguida, reinicie o Pi novamente para testar se ele iniciou o aplicativo automaticamente, carregando-o em seu navegador.
Adicionando o Módulo de Câmera Pi
O módulo da câmera foi adicionado para que eu possa verificar visualmente o estado da porta da garagem. Eu sugiro adicionar uma câmera se você planeja usar o GaragePi remotamente. Comprei esta câmera:
Módulo de placa de câmera Raspberry PI 5MP – $ 9
A configuração foi bastante direta e as instruções que segui foram as seguintes:
instruções de instalação do módulo da câmera
O Node-GaragePi já está configurado para tirar um instantâneo a cada 30 segundos e usa isso como imagem de fundo da página. A imagem é salva em ~ / node-garagepi / public / images / garage.jpg.
Substitua a bateria do controle remoto da porta da garagem
E, por último, o hack da bateria foi o mais importante de todos. No último ano de uso do GaragePi, descobri que precisava trocar a bateria do controle remoto 2 ou 3 vezes. Mesmo com uso leve, descobri que a bateria estava esgotada a ponto de não conseguir abrir a porta da garagem depois de apenas alguns meses. Essa modificação faz com que a bateria não seja mais necessária.
A ideia é simples. Meu controle remoto da porta da garagem usa uma bateria CR-2032 em forma de moeda de 3,3V. Acontece que o Pi tem um terminal de 3 V que deveria ser de uso livre. Portanto, basta remover a bateria do controle remoto e conectar o terminal positivo do controle remoto ao pino 3V no Pi e o negativo a um GND no Pi.
Deve ser isso. Não se preocupe mais com a bateria, desde que seu Pi esteja ligado!
Me diga como foi … boa sorte e divirta-se!