
Desde o momento em que recebi um sistema de alarme GSM em meu apartamento, fiquei com a ideia de que seria bom ter "olhos" na minha ausência no apartamento se os sensores de alarme fossem acionados (ou talvez o alarme seja falso?). Como sou engenheiro no campo da tecnologia da informação, não havia dúvida de nenhuma solução profissional na forma de registrador e um monte de câmeras - apenas tudo sozinho, com minhas próprias mãos. Também foi decidido definir o orçamento imediatamente para limitar e, se o projeto for bem-sucedido, já pense em sua melhoria e modernização.
Ferro
Primeiro de tudo, selecionamos o ferro. "Olhos" significa uma câmera, nĂŁo há como chegar a lugar nenhum. Surge entĂŁo a questĂŁo do que fazer com a imagem recebida - armazená-la, transferi-la para algum lugar, etc. Por isso, pensei em um roteador conectado via UPS com um modem 4G para um canal estável da Internet, difĂcil de colocar em risco para um ladrĂŁo em potencial.
No trabalho, usamos roteadores com portas USB ZyXel Keenetic há vários anos (especificamente meu modelo Giga2 já desatualizado). Depois que os desenvolvedores do firmware “estragaram” algo como OPKG (gerenciador de pacotes), tornou-se possĂvel transformar meu roteador em um computador pessoal com Linux com as maiores possibilidades, que eu decidi usar para o meu propĂłsito. No total, já tendo em casa um roteador de computador com um modem 4G conectado, sĂł me faltavam os “olhos” - uma câmera USB. Lembrando que comprei uma webcam Logitech C270 para meus pais há trĂŞs ou quatro anos para a comunicação com parentes atravĂ©s do Skype no computador e que agora eles já se comunicam atravĂ©s de um tablet - eu requisitei a câmera deles. A propĂłsito, há um LED no painel frontal da câmera que mostra se a câmera está funcionando ou nĂŁo - no futuro se mostrou muito conveniente para determinar visualmente a operação do sistema de vigilância por vĂdeo.

Emparelhar e configurar o ferro
Então, tem ferro. E o que não pode deixar de se alegrar - enquanto estamos dentro do orçamento.
Existem duas portas USB no meu roteador, uma das quais já estava ocupada por um modem USB 4G. Usaremos o segundo colocando a câmera logitech C270 lá. Para que o roteador funcione com a câmera, vocĂŞ deve primeiro instalar o componente OPKG no roteador (neste componente, colocamos todas as marcas de seleção, exceto “MĂłdulos do Kernel para Suportar Sintonizadores USB DVB”). Mas há um problema: para o OPKG funcionar no roteador, vocĂŞ precisa de espaço em disco (um gigabyte Ă© suficiente para os olhos), mas onde posso obtĂŞ-lo, porque as duas portas USB do roteador já estĂŁo ocupadas? Havia duas soluções possĂveis - um hub USB com uma unidade flash USB (a primeira coisa que vem Ă mente) ou o fato de que vocĂŞ pode colocar um cartĂŁo microSD no meu modem USB 4G. E o antigo cartĂŁo microSD lento de 8 gigabytes encontrado em casa foi imediatamente para o modem. Deixou o sistema de arquivos em um cartĂŁo NTFS (embora EXT2 ou EXT3 seja altamente recomendado). Crie a pasta Install e faça o upload da imagem desejada do Entware.
Em seguida, vamos ao painel de administração do roteador, a guia OPKG, selecione nosso cartão de memória, na linha "script initrc"
/opt/etc/init.d/rc.unslung
e clique em
Aplicar .
Depois de instalar o OPKG, o cliente SSH (eu uso o programa Putty no meu laptop com Windows) se apega ao roteador e executa os seguintes comandos para atualizar o OPKG:
opkg update opkg upgrade
Por padrĂŁo, no SSH, a senha do
root Ă©
keenetic (ou
zyxel , dependendo da versão do firmware). É altamente recomendável que você altere a senha com o comando
passwd .
De software
Em seguida, instale o programa de movimento.
opkg install motion
É ela quem trabalha com nossa câmera, analisa a alteração na imagem e instrui o roteador para onde enviar a imagem recebida. O arquivo de configurações do programa de movimento é \ etc \ motion \ motion.conf, editando-o, alteramos as configurações necessárias. Antes de tudo, configurei a resolução máxima suportada pela câmera para 1280x720, girei-a 180 graus (era mais conveniente colocar a câmera de cabeça para baixo), gravando 2 quadros por segundo.
rotate 180 width 1280 height 720 framerate 2
NĂŁo percebi a necessidade de gravar todo o fluxo de vĂdeo e transmiti-lo para a Internet; portanto, defino o movimento para gravar e transferi-lo somente se a imagem mudar. No processo de configuração do movimento, ficou claro que ele nĂŁo suporta o modo MJPEG com minha câmera, mas suporta apenas o modo YUYV - como resultado, o resultado do trabalho nĂŁo Ă© uma sequĂŞncia de vĂdeo, mas apenas uma sequĂŞncia de fotos JPEG.
v4l2_palette 15
Também configurei o movimento para que uma cópia das fotos seja copiada para um servidor FTP externo.
on_picture_save wput ftp://login:pass@XX.29.136.XX %f
No caso de um roteador com um cartão de memória ser retirado do apartamento, ainda haverá uma oportunidade de ver exatamente como isso aconteceu.
É altamente recomendável que você altere a senha de login para conectar-se à sua câmera.
stream_authentication login:pass
Após todas as configurações, procure no navegador o resultado em:
IP:8081
Atenção! Se vocĂŞ nĂŁo viu nenhuma imagem no navegador, preste atenção Ă sua versĂŁo do firmware Keenetic. Presumivelmente, a partir da versĂŁo de firmware 2.11.A.4.0-1, os mĂłdulos de vĂdeo nĂŁo sĂŁo carregados por padrĂŁo; portanto, vocĂŞ precisa carregá-los nas “canetas” “SSH” ou adicioná-los ao script de inicialização:
/opt/sbin/insmod /lib/modules/3.4.113/i2c-core.ko /opt/sbin/insmod /lib/modules/3.4.113/i2c-dev.ko /opt/sbin/insmod /lib/modules/3.4.113/videodev.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-core.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-memops.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-vmalloc.ko /opt/sbin/insmod /lib/modules/3.4.113/v4l2-common.ko /opt/sbin/insmod /lib/modules/3.4.113/uvcvideo.ko
Se a imagem nĂŁo apareceu mesmo depois disso, primeiro analisamos os registros do Keenetic, o que acontece quando a câmera está conectada. A câmera foi detectada como um dispositivo de vĂdeo etc.
GerĂŞncia
Depois de fazer todo esse trabalho, surgiu a ideia de que precisamos gerenciar isso de alguma forma, ou seja, ligue e desligue no momento certo (e principalmente remotamente). Resolvi o problema instalando o cliente SSH no meu smartphone Android. Depois de escolher o SSH, os clientes optaram pelo ScriptKitty. Ao pressionar duas ou trĂŞs teclas em um smartphone, vocĂŞ pode ativar ou desativar rapidamente o movimento.
Executando o movimento através do SSH:
/opt/etc/init.d/K99motion restart
Concluindo o movimento através do SSH:
/opt/etc/init.d/K99motion stop
Mas havia mais um problema: um endereço IP "cinza" no meu modem 4G. Ao conectar-se ao roteador via Wi-fi, você pode desativar ou ativar o movimento sem problemas. Mas e se você estiver fora do Wi-fi do seu roteador e o seu roteador tiver um ip "cinza"? Eu encontrei o resgate na forma de uma VPN. O esquema é o seguinte - com meu roteador doméstico, eu me apego ao roteador no trabalho com um IP estático usando um cliente PPTP (um servidor PPTP está instalado no trabalho no roteador). Agora, depois de encaminhar a porta SSH do roteador ativo para o residencial, posso finalmente controlar minha câmera remotamente acessando o endereço estático do roteador em funcionamento no meu smartphone.
Também tentei automatizar o controle usando a ferramenta de automação Tasker (ele possui seu próprio cliente SSH) - para monitorar a conexão do smartphone ao roteador Wi-Fi e ativar ou desativar o movimento, dependendo disso. A lógica aqui é a seguinte: o smartphone está conectado ao roteador Wi-Fi - então estou em casa - para desligar a câmera. O smartphone não está conectado ao roteador Wi-Fi - por isso não estou em casa - ligue a câmera. Mas depois de experimentar, ele recusou essa opção - há muitos falsos positivos. Por exemplo, estou em casa, o smartphone adormeceu, o roteador perdeu o smartphone, a câmera ligada - bem, etc. Atualmente eu uso apenas o método manual.
ConclusĂŁo
Em princĂpio, o que eu queria do projeto era o que consegui. Posso "ver" o apartamento quando quiser e, em caso de alarme GSM, já posso decidir o que fazer a seguir. No processo de implementação, resolvi vários problemas, mas a solução deles causou certa emoção no conhecimento adquirido e na implementação do plano.