Uma câmera IP não precisa custar muito. Com um Raspberry Pi Zero W e um módulo de câmera, você pode fazer uma câmera boa e particularmente compacta com relativa facilidade e usá-la para configurar um servidor de streaming rtsp, por exemplo. Neste artigo, você aprenderá como fazer isso e, em seguida, usar a câmera no Surveillance Station em um Synology ou QNAP NAS.
É claro que você pode comprar uma câmera IP muito barata com todos os enfeites da China, mas geralmente são mal protegidas e difíceis de configurar. Não é imediatamente mais barato se você mesmo construí-lo, mas você é mais flexível e, acima de tudo, é divertido e educativo. Usamos um Raspberry Pi Zero W (cerca de 11 euros) junto com o módulo de câmera oficial de 8 megapixels v2 (29,95 euros). Possui um excelente sensor Sony IMX219. Uma variante NoIR também está disponível, que fornece uma imagem melhor no crepúsculo. Se você combiná-los com LEDs infravermelhos, também terá boas imagens noturnas (em tons de cinza). Se você quiser economizar algum dinheiro, você pode encontrar alternativas acessíveis na China por cerca de 8 euros. Você também precisa de um cartão micro SD para o software e um adaptador de energia com micro USB que pode fornecer, preferencialmente, pelo menos 1,2 amperes.
01 Qual software?
Existem muitos métodos de streaming de um Raspberry Pi Zero W. Além do módulo de câmera, a maioria dos métodos também oferece suporte a uma câmera USB ou webcam que você conecta ao Pi Zero W por meio de um cabo USB on-the-go. Qualquer que seja o método que você escolher: devido ao poder de processamento bastante limitado, é aconselhável deixar a detecção de movimento para o software de vigilância por vídeo, como Surveillance Station. Uma opção bem conhecida é motionEyeOS, que possui uma interface web agradável para configurar a câmera. Uma desvantagem é o atraso relativamente grande, mesmo com a opção Câmera de rede rápida com o qual você também perde muitas outras opções. Portanto, optamos por configurar um fluxo manual.
02 instalação Raspbian
Começamos com a instalação do Raspbian Buster Lite. Obtenha a versão mais recente. Após o download, extraia o arquivo e use balenaEtcher para colocar o arquivo img em um cartão micro-SD. Antes de iniciar o Pi com o cartão micro-SD, adicione a raiz (que também contém o arquivo kernel.img estado) um arquivo de texto chamado wpa_supplicant.conf com as regras abaixo. coloque na parte de trás ssid o nome da sua rede WiFi e preencha psk a senha. Na mesma pasta, crie um arquivo vazio chamado ssh para que você possa fazer login por meio de um shell após iniciar.
country = NL
update_config = 1
ctrl_interface = / var / run / wpa_supplicant
rede = {
scan_ssid = 1
ssid = "seuid"
psk = "sua senha"
}
Após a inicialização do Pi Zero W, você pode descobrir o endereço IP atribuído pelo servidor DHCP do seu roteador nas páginas de configuração do roteador (se tudo correr bem). Faça login nesse endereço IP via ssh com um programa como PuTTY e use o nome de usuário padrão pi e a senha correspondente framboesa. Em seguida, altere preferencialmente esses detalhes de login.
03 Instalando o servidor rtsp
Certifique-se de que o Pi está atualizado com os comandos:
sudo apt-get update
sudo apt-get dist-upgrade
Use sudo raspi-config para abrir a página de configuração do Pi. Ativar via Opções de interface o módulo da câmera. Você ativa o driver do kernel video-for-linux com:
sudo modprobe bcm2835-v4l2
Verifique se você tem um / dev / video0 tem com:
sudo ls -la / dev / vid *
Instale as ferramentas git e cmake com:
sudo apt install git cmake
Depois disso, você pode compilar e disponibilizar o servidor rtsp, que suporta h.264, entre outras coisas, com os seguintes comandos:
git clone //github.com/mpromonet/v4l2rtspserver.git
cd v4l2rtspserver
cmake.
faço
sudo make install
04 Iniciando o stream rtsp
Por exemplo, você inicia um stream a partir da pasta v4l2rtspserver do:
./v4l2rtspserver -F 10 -W 1920 -H 1080
Depois de iniciar o servidor rtsp, você pode ler todas as mensagens de erro e um link para o fluxo no formulário rtsp: // ipaddress: 8554 / unicast. Você pode usar isso, por exemplo, no VLC player para se conectar à câmera, mas também no Surveillance Station, como mostraremos a seguir. Com a opção -Você usuário: senha insira um usuário e uma senha para proteger o stream. Nesse caso, o link para o fluxo rtsp assume a forma rtsp: // usuário: senha @ endereço ip: 8554 / unicast. É legal que a carga do processador permaneça muito limitada, o GPU faz a maior parte do trabalho.
05 Autostart do servidor
Queremos que o servidor rtsp inicie automaticamente após ligar o Pi. Para fazer isso, crie um script simples com:
sudo nano /etc/systemd/system/v4l2rtspserver.service
Isso inclui as seguintes regras:
[Unidade]
Descrição = v4l2rtspserver rtsp-server
Depois de = network.target
[Serviço]
ExecStartPre = / usr / bin / v4l2-ctl --set-ctrl vertical_flip = 1
ExecStartPre = / usr / bin / v4l2-ctl --set-ctrl h264_i_frame_period = 5
ExecStart = / home / pi / v4l2rtspserver / v4l2rtspserver -F 10 -W 1280 -H 720
ExecReload = / bin / kill -HUP $ MAINPID
Tipo = simples
user = pi
Grupo = vídeo
Reiniciar = sempre
[Instalar]
WantedBy = multi-user.target
Verificar novamente ExecStart a localização do v4l2rtspserver. Existem algumas opções que você pode experimentar (como vertical_flip para rotação da imagem). Torne o script ativo com:
sudo systemctl enable v4l2rtspserver
E comece o script com:
sudo systemctl start v4l2rtspserver
Adicionar imagem da câmera ao Surveillance Station
Você pode usar facilmente a imagem da câmera no Surveillance Station especificando manualmente uma câmera. Com este software, o atraso da imagem parece ser bastante limitado. Enquanto no VLC player isso é cerca de dois segundos, o atraso no Surveillance Station é de apenas cerca de um segundo. Parece muito, mas muitos outros métodos de streaming de um Raspberry Pi costumam ter um atraso ainda maior de quatro segundos ou mais.