O mais importante é que o sistema deveria enviar notificações para o celular. O Whatsapp não permite robôs, então recorri ao Telegram.
Desenvolvi usando um Raspberry Pi B, mas o sistema final roda num Raspberry Pi A+ (que é ainda menor e mais barato). Acredito que funcionaria igualmente bem num Raspberry Pi Zero (que custa apenas US$5).
A ideia do projeto é bastante simples: a câmera, quando ativada por movimento, copia imagens para o Raspberry Pi e este, por sua vez, as encaminha para uma conta do Telegram. O Telegram entrega as fotos para o meu celular.
Se o código da câmera fosse aberto, ou ela oferecesse alguma API, seria possível que ela falasse diretamente com o Telegram. Ponto negativo para o código fechado.
Ingredientes
- Um Raspberry Pi B (512MB de RAM, 700MHz de CPU e custa ~US$25);
 - Uma câmera D-Link 930LB (custa menos de R$200,00);
 - Uma conta no Telegram (Whatsapp não aceita robôs);
 - Um cartão de memória SDHC de 16GB (um de 8GB já resolveria);
 - Um pouco de Perl.
 
1. Gravar Raspbian no cartão.
2. Instalar um servidor de ftp (sudo apt-get install vsftpd).
3. Configurar o servidor de ftp (/etc/vsftpd.conf).
É preciso habilitar a possibilidade de escrever e de fazer login com contas locais:
local_enable=YES
write_enable=YES
4. Configurar um ramdisk (para não desgastar o cartão de memória, se o número de escritas fugir ao controle e porque é mais rápido).
É preciso adicionar esta linha ao arquivo /etc/fstab:
tmpfs  /home/pi/tmp  tmpfs  nodev,nosuid,size=1M 0 0
Esse comando cria um espaço de 1MB que fica montado no diretório tmp/ dentro do home do usuário pi, mas poderia ser qualquer outro lugar. Os arquivos não passam de 50KB, então essa área poderia ser muito menor.
5. Configurar a câmera.
Configurei a câmera para fazer o ftp da imagem quando for detectado um movimento (usei sensibilidade de 30%, porque ela envia muitas imagens com mais que isso).
O nome do arquivo indiquei como DCS-930LB e isso acaba resultando num arquivo JPEG chamado DCS-930LB.jpg.
6. Criar uma conta no Telegram.
É preciso procurar a conta @BotFather e conversar. Ele dá todas as instruções.
7. Programar em Perl (essa é a melhor parte).
É preciso instalar algumas bibliotecas, o curl, o cpanm e o módulo WWW::Telegram::BotAPI:
sudo apt-get install libnet-ssleay-perl libio-socket-ssl-perl --fix-missing
sudo apt-get install curl
sudo curl -L http://cpanmin.us | perl - --sudo App::cpanminus
sudo cpanm WWW::Telegram::BotAPI
Usei um modelo de robô e fiz algumas adaptações.Em primeiro lugar, criei ums lista das contas autorizadas (para que estranhos não brinquem com meu robô):
my %chat_ids=(
  123456789=>'forinti',
  987654321=>'derpina'
);
Depois, mudei o loop principal para descansar 5s a cada iteração, verificar se a imagem mudou (pela hora de criação), e enviar a imagem se algo novo surgiu.
my $paused=0;
my $last_update=get_last_update();
while(1) {
  sleep(5);
  my $update=get_last_update();
  if(!$paused && $update>$last_update) {
    for my $id (keys %chat_ids) {
      $api->sendPhoto({
         chat_id=>$id, 
         photo=>{file=>'/home/pi/tmp/DCS-930LB.jpg'}
      });
    } 
    $last_update=$update;
  }
  ...
Finalmente, criei comandos para recuperar a última imagem (/li), parar o envio (/pause) e reiniciar o envio (/go).
sub get_last_update {
  return (stat('/home/pi/tmp/DCS-930LB.jpg'))[9];
}
sub get_last_image {
  return {
    method=>'sendPhoto',
    photo=>{ file=> '/home/pi/tmp/DCS-930LB.jpg' }
  };
}
sub pause {
  $paused=1;
  return 'Parou. Por enquanto...';
}
sub go {
  $paused=0;
  return 'Reiniciou.';
}
Resultado
Consegui produzir um sistema de segurança bastante simples e barato. Ele consome pouquíssima energia (menos de R$10,00 para operar um ano inteiro) e não precisa ser monitorado já que envia alertas. Por usar pouca energia, poderia funcionar ligado a uma bateria ou a um painel solar. Se conectasse a uma rede de celular, seria realmente resiliente.
