Hoje em dia é fácil montar solução de
monitoramento por câmeras IP sem muito custo ou trabalho (bem, trabalho dá um pouquinho dependendo das questões físicas da sua casa ou empresa, como por exemplo tubulação para passar cabos etc.).
A receita 100% livre é
Ubuntu Server +
ZoneMinder.
Ubuntu é o sistema operacional baseado em Linux mais conhecido que existe. A vantagem de usar a versão "Server" do Ubuntu é porque você não instala por padrão interface gráfica e outros tantos programas que não serão usados.
ZoneMinder é um conjunto integrado de aplicações que provê solução completa de vigilância e possibilita caputra, análise, gravação e monitoramente de qualquer CCTV ou câmera de segurança conectada a uma máquina baseada em Linux.
O ZoneMinder é muito interessante porque trabalha com o sistema
"Motion Detection", ou seja, Sensor de Movimento, fazendo com que a gravação seja iniciada se algum movimento for detectado. Mais do que isso, permite que você crie e edite zonas de interesse, ou seja, somente se o movimento ocorrer dentro da zona de interesse é que a gravação será acionada.
 |
| Painel de edição de zonas. Somente o movimento na área verde acionará a gravação. |
A primeira questão a se preocupar é com a passagem de cabos. Se não tiver energia elétrica perto dos locais onde as câmeras ficarão posicionadas, você poderá usar apenas o cabo de rede para enviar dados + energia para a câmera IP. Nesse caso, há duas possibilidades:
- comprar câmeras IP com tecnologia PoE (Power over Ethernet), que em geral custam bem caro;
- comprar câmeras IP tradicionais e usar separadores e injetores para injetar a energia no cabo de rede e depois separá-la na outra ponta, para energizar a câmera.
 |
| Injetor e Separador PoE com plugue de energia P4 |
Isso é possível porque, na verdade, dos quatro pares de cabos que compõem o cabo de rede, um par não é usado para nada e, portanto, é aproveitado para transmitir a energia.
A maioria das câmeras IP possuem fonte de energia com plugue do tipo P4, que é o mesmo desses kits de injetor + separador PoE, então não deve haver problemas.
A grande questão ao usar esses injetores e separadores é que dificilmente a eletricidade chegará na outra ponta com a mesma intensidade e, em razão disso, câmeras que funcionam a 5V, por exemplo, provavelmente não ligarão. Isso ocorre porque a voltagem é muito pequena e a perda que ocorre nos injetores e por conta do próprio cabo de rede (Cat 5e) torna-se significante.
Para contornar esse problema, pode ser usada fonte de energia com voltagem regulável. Aumentando-se a voltagem da fonte, aumenta-se o "empurrão" com que a energia chega do outro lado e, assim, compensam-se as perdas pelo caminho, fazendo com que a câmera consiga a corrente (amperagem) suficiente.
 |
| Fonte de energia com voltagem regulável. Fornece até 1500mA. |
Mas
muito cuidado: vá fazendo testes começando sempre pela
menor voltagem e aumentando aos poucos, caso contrário poderá queimar sua câmera. Faça isso por sua conta e risco.
VOCÊ FOI AVISADO.
Em distâncias de 30 metros, por exemplo, consegui ligar câmeras que funcionam a 5V regulando a voltagem da fonte para 8,4V, para compensar as perdas. Em distâncias menores precisei ajustar para 7.5V e assim por diante.
Solução melhor será você emendar um regulador de tensão no separador. Ou seja, você corta os fios do separador que é ligado à câmera 5V, antes do conector, e insere um regulador de tensão, que converte tensões maiores (de 23V a 5.5V) para 5V, como por exemplo o
BEC Turnigy 5V/3A, 6V/3A ou algum semelhante.
Sim, é uma "gambiarra", mas funciona! Com isso, você pode, por exemplo, deixar uma fonte de 12V, fazendo com que a distância seja superada, e o regulador de tensão se encarregará de reduzir a voltagem para 5V justamente antes de a corrente elétrica entrar na câmera.
Já as câmeras que funcionam a 12V em geral não apresentam esse problema porque a voltagem de 12V já dá um "empurrão" suficiente na eletricidade até o outro lado. Nesse caso, a própria fonte que vem com a câmera poderá ser usada. Não será preciso de fonte de mais de 12V.
Antes de usar suas câmeras no ZoneMinder, tenha certeza de elas estejam funcionando corretamente. Faça testes de uso pela interface web própria da câmera ou por endereços de acesso direto (por exemplo: http://192.168.0.25/video.cgi?user=usuario&pws=senha).
Para instalar e configurar o servidor que rodará o ZoneMinder, segue o passo a passo.
Baixe e instale o
Ubuntu Server 12.04 LTS.
Antes de mais nada, atualize todo o sistema e reinicie a máquina:
sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get upgrade -y
sudo init 6
O ideal é que o servidor tenha IP fixo, para poder ser facilmente localizado dentro da rede e também para que possa ser mapeado no "Port Forwarding" do seu roteador, para que seja acessível pela internet externamente.
sudo nano /etc/network/interfaces
Mude a "primary network interface" para um endereço IP estático, por exemplo:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8 208.67.222.222 208.67.220.220
Reinicie novamente a máquina para as mudanças operarem efeito.
sudo init 6
Agora será necessário instalar o servidor web, servidor de banco de dados e php - alguns componentes do "
LAMP stack" (Linux + Apache + MySQL + PHP).
sudo apt-get install mysql-server apache2 php5 libapache2-mod-php5
Pequeno ajuste para evitar mensagens de erro do apache:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
Para usar conexão web segura (altamente recomendado):
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart
Abra um navegador e veja se o servidor apache está funcionando (http://ipdoservidor, por ex., http://192.168.0.19, ou, no caso de conexão segura, https://ipdoservidor etc.)
A última versão do ZoneMinder está disponível nesse repositório pessoal (PPA):
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:iconnor/zoneminder
Para instalar o ZoneMinder e o codec x264:
sudo apt-get update && sudo apt-get install zoneminder x264 libavcodec-extra-53
Durante a instalação, serão perguntadas questões sobre configuração do Nullmailer. Pode ignorar e pressionar "Enter" em todas, pois ao final vamos remover o Nullmailer (a versão dos repositórios do Ubuntu 12.04 LTS não trabalham com STARTTLS e qualquer servidor de email decente requer autenticação criptografada para funcionar).
Se aparecer a mensagem: invoke-rc.d: initscript zoneminder, action "status" failed., não se importe.
Aguarde mais um pouco que o zoneminder será iniciado em instantes:
Starting ZoneMinder: success
Agora adicione atraso para que o ZoneMinder somente seja iniciado durante o boot após o servidor MySQL já estar ativo. Adicione a linha "sleep 15" antes de zmfix -a, conforme demonstrado abaixo.
nano /etc/init.d/zoneminder
start() {
echo -n "Starting $prog: "
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
# Delay to allow MySQL to start before Zoneminder
sleep 15
zmfix -a
$command start
Crie link para o arquivo de configuração do zoneminder para que o apache saiba da existência dele:
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
Adicione o usuário www-data ao grupo video:
sudo adduser www-data video
O
Cambozola é um visualizador simples para fluxo jpeg de multipartes que geralmente são originados de webcams, enviando múltiplas imagens por segundo. O Cambozola é um substituto que exibe as imagens corretamente. O ZoneMinder pode fazer uso dele. Para instalá-lo:
wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz
tar zxvf cambozola-latest.tar.gz
sudo cp -v cambozola-*/dist/cambozola.jar /usr/share/zoneminder
sudo chown root:www-data /usr/share/zoneminder/cambozola.jar
sudo chmod ug+x /usr/share/zoneminder/cambozola.jar
rm -rf cambozola-*
Remova o nullmailer e instale o ssmtp:
sudo apt-get remove nullmailer
sudo apt-get install ssmtp
Configure o ssmtp (faça as alterações necessárias ao seu email etc.):
nano /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=seuemail@gmail.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
AuthUser=seuemail@gmail.com
AuthPass=suasenhadogmail
UseTLS=YES
UseSTARTTLS=YES
# Where will the mail seem to come from?
rewriteDomain=seudominio.com.br
# The full hostname
hostname=nomedohost.seudominio.com.br
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
Instale o ntpd para manter o horário do servidor sempre atualizado:
sudo apt-get install ntp
Pronto, agora pode abrir o ZoneMinder no navegador e começar a configurá-lo:
http://ipdoservidor/zm ou https://ipdoservidor/zm
ATENÇÃO. Antes de mais nada:
Cique em "Options"
Desmarque: Check with zoneminder.com for updated versions (?)
Clique em "Save"
Clique na aba "Images"
Marque "Is the (optional) cambozola java streaming client installed (?)"
Clique "Save"
E, por último, habilite o sistema de autenticação por senha, para deixar seu ZoneMinder seguro.
Faça isso antes de adicionar qualquer câmera, caso contrário terá problemas e não conseguirá ver as imagens das câmeras em razão de problemas de autenticação:
Clique em "Options"
Marque a opção "OPT_USE_AUTH | Authenticate user logins to ZoneMinder (?)"
Clique "Save"
A senha padrão do usuário admin será admin.
Agora vá de novo em opções e na aba "Users" modifique a senha do admin e se for o caso crie outros usuários, definindo os níveis de permissão para cada um!
Se quiser exportar os eventos como vídeos mp4 (x264) de alta qualidade:
Clique em "Options" -> aba "Images"
Ajuste a opção FFMPEG_OUTPUT_OPTIONS para:
-r 25 -vcodec libx264 -threads 2 -b 2000k -minrate 800k -maxrate 5000k
Ajuste a opção FFMPEG_FORMATS para:
mp4* mpg mpeg wmv asf avi mov swf 3gp**
Reinicie o servidor:
sudo init 6
Boa sorte e não deixe de ler o
FAQ do ZoneMinder para configurá-lo corretamente e resolver eventuais problemas.
 |
| Exemplo de câmera na opção de "Monitor". |
Depois que estiver tudo certo e funcionando, experimente os aplicativos que controlam o ZoneMinder pelo celular, como por exemplo o
ZmView:
Fontes