Zelfbouw ip-camera in 5 stappen

Door: Gertjan Groen | 20 februari 2020 16:55

Camera
How To

Een ip-camera hoeft niet veel te kosten. Met een Raspberry Pi Zero W en cameramodule kun je relatief eenvoudig een goede en bijzonder compacte camera maken, en daarmee bijvoorbeeld een rtsp-streamingserver opzetten. In dit artikel lees je hoe je dat doet, en hoe je de camera vervolgens in Surveillance Station op een Synology- of QNAP-nas kunt gebruiken.

Je kunt in China natuurlijk een spotgoedkope ip-camera met alles erop en eraan kopen, maar ze zijn doorgaans slecht beveiligd en lastig in te stellen. Het is niet direct goedkoper als je het zelf bouwt, maar je bent wel flexibeler en het is bovenal leuk en leerzaam. We gebruiken een Raspberry Pi Zero W (ongeveer 11 euro) samen met de officiële 8megapixel-cameramodule v2 (29,95 euro). Die beschikt over een prima Sony IMX219-sensor. Er is ook een NoIR-variant beschikbaar die een beter beeld geeft bij schemering. Als je die combineert met infrarood-leds heb je ook goede nachtbeelden (in grijswaarden). Wie wat wil besparen kan in China voordelige alternatieven vinden vanaf zo’n 8 euro. Verder heb je een micro-sd-kaart nodig voor de software en een voedingsadapter met micro-usb die bij voorkeur minimaal 1,2 ampère kan leveren.

Picamera
De Raspberry Pi Zero W kun je met de cameramodule inzetten als bewakingscamera.

01 Welke software?

Er zijn veel methodes om te streamen vanaf een Raspberry Pi Zero W. Naast de cameramodule ondersteunen de meeste methodes ook een usb-camera of webcam die je via een usb-on-the-go-kabel op de Pi Zero W aansluit. Welke methode je ook kiest: gezien de vrij beperkte processorkracht is het verstandig de bewegingsdetectie aan de videobewakingssoftware zoals Surveillance Station over te laten. Een bekende optie is motionEyeOS dat een mooie webinterface heeft voor de configuratie van de camera. Een nadeel is de relatief grote vertraging, zelfs met de optie Fast Network Camera waarmee je ook nog veel andere opties kwijt bent. Wij kiezen daarom voor het opzetten van een handmatige stream.

motionEye
01 De software MotionEyeOS biedt een mooie webinterface voor je camera.

02 Installatie van Raspbian

We beginnen met de installatie van Raspbian Buster Lite. Haal de meest recente versie op. Pak het archief na het downloaden uit en gebruik balenaEtcher om het img-bestand op een micro-sd-kaartje te zetten. Voordat je de Pi opstart met het micro-sd-kaartje voeg je in de root (waar ook onder meer het bestand kernel.img staat) een tekstbestand genaamd wpa_supplicant.conf toe met onderstaande regels. Zet daarin achter ssid de naam van jouw wifi-netwerk en vul achter psk het wachtwoord in. Maak in dezelfde map een leeg bestand genaamd ssh zodat je via een shell kunt inloggen na het starten.

country=NL

update_config=1

ctrl_interface=/var/run/wpa_supplicant

network={

scan_ssid=1

ssid="jouwssid"

psk="jouwwachtwoord"

}

Nadat de Pi Zero W is gestart, kun je het ip-adres dat door de dhcp-server van je router is toegekend achterhalen via de configuratiepagina’s van de router (als het goed is). Log op dat ip-adres in via ssh met een programma als PuTTY en gebruik de standaard gebruikersnaam pi en het bijbehorende wachtwoord raspberry. Wijzig daarna bij voorkeur die inloggegevens.

Raspbian
02 Begin met de installatie van Raspbian Buster Lite.

03 De rtsp-server installeren

Zorg dat de Pi up-to-date is met de commando’s:

sudo apt-get update

sudo apt-get dist-upgrade

Met sudo raspi-config open je de configuratiepagina van de Pi. Activeer via Interfacing Options de cameramodule. De video-for-linux-kerneldriver activeer je met:

sudo modprobe bcm2835-v4l2

Controleer dat je een /dev/video0 hebt met:

sudo ls -la /dev/vid*

Installeer de tools git en cmake met:

sudo apt install git cmake

Hierna kun je met de volgende opdrachten de rtsp-server compileren en beschikbaar maken, die onder meer h.264 ondersteunt:

git clone https://github.com/mpromonet/v4l2rtspserver.git

cd v4l2rtspserver

cmake .

make

sudo make install

04 De rtsp-stream starten

Je start bijvoorbeeld een stream starten vanuit de map v4l2rtspserver met:

./v4l2rtspserver -F 10 -W 1920 -H 1080

Na het starten van de rtsp-server kun je eventuele foutmeldingen aflezen en een link naar de stream in de vorm rtsp://ipadres:8554/unicast. Die kun je gebruiken in bijvoorbeeld VLC player om verbinding met de camera te maken, maar ook in Surveillance Station zoals we verderop laten zien. Met de optie -U gebruiker:wachtwoord geef je een gebruiker en wachtwoord op om de stream af te schermen. De link naar de rtsp-stream krijgt in dat geval de vorm rtsp://gebruiker:wachtwoord@ipadres:8554/unicast. Netjes is dat de processorbelasting zeer beperkt blijft, de gpu doet het meeste werk.

05 Server automatisch opstarten

We willen dat de rtsp-server automatisch wordt gestart na het aanzetten van de Pi. Maak hiervoor een eenvoudig script met:

sudo nano /etc/systemd/system/v4l2rtspserver.service

Hierin komen de volgende regels:

[Unit]

Description=v4l2rtspserver rtsp-server

After=network.target

[Service]

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

Type=simple

User=pi

Group=video

Restart=always

[Install]

WantedBy=multi-user.target

Controleer achter ExecStart de locatie van v4l2rtspserver. Er staan enkele opties in waarmee je kunt experimenteren (zoals vertical_flip voor rotatie van het beeld). Maak het script actief met:

sudo systemctl enable v4l2rtspserver

En start het script met:

sudo systemctl start v4l2rtspserver

Startscript
05 Met een startscript zorg je dat de rtsp-server altijd actief is.

Camerabeeld toevoegen aan Surveillance Station

Het camerabeeld kun je eenvoudig in Surveillance Station gebruiken door handmatig een camera op te geven. Bij deze software blijkt de vertraging van het beeld behoorlijk beperkt. Waar dat bij VLC player ongeveer twee seconden is, is de vertraging in Surveillance Station maar ongeveer een seconde. Dat lijkt vrij veel maar veel andere methodes voor het streamen vanaf een Raspberry Pi hebben vaak een nog grotere vertraging van wel vier seconden of meer.

Surveillance station
Het camerabeeld toegevoegd aan Surveillance Station.

0 Reactie(s) op: Zelfbouw ip-camera in 5 stappen

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • Er zijn nog geen reacties op dit artikel.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.