Una càmera IP no ha de costar gaire. Amb un Raspberry Pi Zero W i un mòdul de càmera, podeu fer una càmera bona i especialment compacta amb relativa facilitat i utilitzar-la per configurar un servidor de transmissió rtsp, per exemple. En aquest article, aprendràs a fer-ho i, a continuació, utilitzaràs la càmera a Surveillance Station en un Synology o QNAP NAS.
Per descomptat, podeu comprar una càmera IP barata amb totes les guarnicions de la Xina, però normalment estan mal assegurades i són difícils de configurar. No és immediatament més barat si el construïs tu mateix, però ets més flexible i sobretot és divertit i educatiu. Utilitzem un Raspberry Pi Zero W (uns 11 euros) juntament amb el mòdul oficial de càmera de 8 megapíxels v2 (29,95 euros). Té un excel·lent sensor Sony IMX219. També hi ha disponible una variant NoIR que proporciona una millor imatge al crepuscle. Si els combineu amb LED infrarojos, també teniu imatges de bona nit (en escala de grisos). Si voleu estalviar una mica de diners, podeu trobar alternatives assequibles a la Xina des d'uns 8 euros. També necessiteu una targeta micro SD per al programari i un adaptador de corrent amb micro USB que preferiblement pugui oferir almenys 1,2 amperes.
01 Quin programari?
Hi ha molts mètodes per transmetre des d'un Raspberry Pi Zero W. A més del mòdul de càmera, la majoria dels mètodes també admeten una càmera USB o una càmera web que connecteu al Pi Zero W mitjançant un cable USB on-the-go. Sigui quin sigui el mètode que trieu: donada la potència de processament bastant limitada, és aconsellable deixar la detecció de moviment al programari de videovigilància, com ara Surveillance Station. Una opció coneguda és motionEyeOS, que té una bona interfície web per configurar la càmera. Un desavantatge és el retard relativament gran, fins i tot amb l'opció Càmera de xarxa ràpida amb la qual també perds moltes altres opcions. Per tant, optem per configurar un flux manual.
02 Instal·lació de Raspbian
Comencem amb la instal·lació de Raspbian Buster Lite. Obteniu la versió més recent. Després de la descàrrega, extreu l'arxiu i utilitzeu balenaEtcher per posar el fitxer img en una targeta micro-sd. Abans d'iniciar el Pi amb la targeta micro-sd, afegiu l'arrel (que també conté el fitxer kernel.img state) un fitxer de text anomenat wpa_supplicant.conf amb les regles següents. posa-ho al darrere ssid el nom de la vostra xarxa WiFi i empleneu-lo psk la contrasenya. A la mateixa carpeta, creeu un fitxer buit anomenat ssh perquè pugueu iniciar sessió mitjançant un shell després de començar.
país=NL
update_config=1
ctrl_interface=/var/run/wpa_supplicant
xarxa={
escaneja_ssid=1
ssid="el teu"
psk="la teva contrasenya"
}
Un cop arrenqui el Pi Zero W, podeu esbrinar l'adreça IP assignada pel servidor DHCP del vostre encaminador a les pàgines de configuració de l'encaminador (si tot va bé). Inicieu sessió a aquesta adreça IP mitjançant ssh amb un programa com PuTTY i utilitzeu el nom d'usuari predeterminat pi i la contrasenya corresponent gerds. Aleshores, preferiblement, canvieu aquestes dades d'inici de sessió.
03 Instal·lació del servidor rtsp
Assegureu-vos que el Pi estigui al dia amb les ordres:
sudo apt-get update
sudo apt-get dist-upgrade
Utilitzeu sudo raspi-config per obrir la pàgina de configuració del Pi. Activar mitjançant Opcions d'interfície el mòdul de la càmera. Activeu el controlador del nucli de vídeo per a Linux amb:
sudo modprobe bcm2835-v4l2
Comprova que tens un /dev/video0 tenir amb:
sudo ls -la /dev/vid*
Instal·leu les eines git i cmake amb:
sudo apt install git cmake
Després d'això, podeu compilar i posar a disposició el servidor rtsp, que admet h.264, entre altres coses, amb les ordres següents:
git clone //github.com/mpromenet/v4l2rtspserver.git
cd v4l2rtspserver
cmake .
fer
sudo make install
04 Inici del flux rtsp
Per exemple, inicieu un flux des de la carpeta v4l2rtspserver de:
./v4l2rtspserver -F 10 -W 1920 -H 1080
Després d'iniciar el servidor rtsp, podeu llegir qualsevol missatge d'error i un enllaç al flux al formulari rtsp://adreça IP:8554/unicast. Podeu utilitzar-ho, per exemple, al reproductor VLC per connectar-vos a la càmera, però també a Surveillance Station, com us mostrarem a continuació. Amb l'opció -Tu usuari:contrasenya introduïu un usuari i una contrasenya per protegir el flux. En aquest cas, l'enllaç al flux rtsp pren la forma rtsp://usuari:contrasenya@adreça IP:8554/unicast. És bo que la càrrega del processador segueixi sent molt limitada, la gpu fa la major part de la feina.
05 Inici automàtic del servidor
Volem que el servidor rtsp s'iniciï automàticament després d'encendre el Pi. Per fer-ho, creeu un script senzill amb:
sudo nano /etc/systemd/system/v4l2rtspserver.service
Això inclou les regles següents:
[Unitat]
Descripció=v4l2rtspserver rtsp-server
After=network.target
[Servei]
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
Tipus=simple
usuari=pi
Grup=vídeo
Reiniciar=sempre
[Instal·lar]
WantedBy=multi-user.target
Torna a comprovar ExecStart la ubicació de v4l2rtspserver. Hi ha algunes opcions amb les quals podeu experimentar (com ara gir_vertical per a la rotació de la imatge). Feu que l'script sigui actiu amb:
sudo systemctl habilitat v4l2rtspserver
I comença el guió amb:
sudo systemctl start v4l2rtspserver
Afegeix la imatge de la càmera a Surveillance Station
Podeu utilitzar fàcilment la imatge de la càmera a Surveillance Station especificant manualment una càmera. Amb aquest programari, el retard de la imatge sembla ser força limitat. Mentre que al reproductor VLC és d'uns dos segons, el retard a Surveillance Station és només d'un segon. Sembla molt, però molts altres mètodes de transmissió des d'un Raspberry Pi sovint tenen un retard encara més gran de quatre segons o més.