Pages

Google Ads

Showing posts with label Usando Motion para comandar um dispositivo externo através de uma camera. Show all posts
Showing posts with label Usando Motion para comandar um dispositivo externo através de uma camera. Show all posts

Monday, June 23, 2014

Usando Motion para comandar um dispositivo externo através de uma camera


raspberry pi. Fonte: Flickr
Motion é um programa de monitoramento de câmeras no Linux em modo console com diversas opções que o torna poderoso. Foi feito primeiramente como um programa para detectar movimento e gravar os quadros quando o movimento ocorrer (dai o nome). Entre suas opções estão servidor web, envio remoto dos quadros, e um poderoso sistema de saída via comandos pré-configurados na ocorrência de eventos. E são estes comandos que iremos usar.

Instalação

A instalação será para uma instalação Debian pois torna este artigo quase que universal permitindo por exemplo rodar no Raspberry PI.
Faça a instalação normalmente com:
sudo apt-get install motion
Para Raspberry PI faça um update:
sudo apt-get install rpi-update
Seu arquivo de configuração esta em /etc/motion/motion.conf:
sudo nano /etc/motion/motion.conf
Altere as seguintes linhas que respectivamente faz o programa iniciar no boot e permite a visualização da camera fora do localhost:
daemon on

webcam_localhost off
Inicie o motion:
sudo services motion start
Veja se tudo esta correto acessando sua camera pelo browser (que deverá estar conectada) no endereço do raspberry pi na porta 8081. Pode-se controlar algumas câmeras e configurá-las na porta 8080.
Estando tudo ok vamos à ligação externa.

GPIOs

Há diversas formas de se comandar um aparelho externo usando as GPIOs do raspberry pi inclusive há um artigo aqui mesmo sobre o assunto.
Para comandar uma GPIO a forma mais rápida será usar o sistema de arquivos /sys. Antes é preciso configurar a porta e usaremos a GPIO 4 como nossa comunicação externa:
Exportar os arquivos GPIOs para /sys: 
echo "4" > /sys/class/gpio/export
Direcionar a porta para saida: 
echo "out" > /sys/class/gpio/gpio4/direction
E finalmente para testar comandar a porta:
echo "1" > /sys/class/gpio/gpio4/value

Unindo 

Para executar um comando quando um movimento for detectado use a seguinte opção no arquivo de configuração (e não esqueça de reiniciar o motion):
on_motion_detected COMANDO
Para a GPIO escolhida:
on_motion_detected echo "1" > /sys/class/gpio/gpio4/value

on_event_end  echo "0" > /sys/class/gpio/gpio4/value
Quando um movimento for detectado on_motion_detected ira ligar a gpio e quando a visão ficar estática por um tempo a gpio será desligada.

Conclusão

O comando motion é poderoso e flexível. Aqui foi dado um exemplo mais amplo que envolve hardware, mas usando as opções de eventos do motion pode-se facilmente fazer um sistema de vigilância que emita alertas por e-mail ou salve os quadros do evento em algum servidor remoto.
Usando Raspberry PI é uma opção barata para se comandar uma porta quando alguém chega em um local. O comando motion faz todo o serviço para nós e só precisamos configurar a porta usada e o que fazer com ela. Com os comandos on_*  e a possibilidade de executar scripts a criatividade é posta a prova.
Também é perfeitamente possível usar um computador normal para esta etapa, entretanto comandar um dispositivo externo é mais complicado. A vantagem de usar um computador desktop é que o Raspberry PI não tem poder de processamento suficiente para altas resoluções e alguns tipos de cameras. Usando computadores desktop podemos ainda visualizar mais cameras ao mesmo tempo.
Fonte:
http://www.protejaecontrole.com.br/usando-motion-para-comandar-um-dispositivo-externo-atraves-uma-camera