Bouw je eigen videobewakingssysteem: MotionEyeOS ziet elke verdachte beweging

De Raspberry Pi leent zich uitstekend om een compacte en lichte videocamera mee te maken. De onderdelen hiervoor zijn allemaal standaard componenten. Bovendien is motionEyeOS een kant-en-klaar besturingssysteem, waarmee je de camera omtovert tot een heus videobewakingssysteem. Waarom zou je dus nog een duur beveiligingssysteem kopen als je het zelf kunt maken?

Met motionEyeOS zie je vanuit de browser wat de camera van je Raspberry Pi waarneemt. Bovendien analyseert motionEyeOS de videobeelden om beweging te detecteren en slaat het indien gewenst alarm. Door meerdere camera's te koppelen, kun je vanuit je luie stoel de hele omgeving overzien. 

 

Onderdelen

Hier zie je de basiscomponenten voor het videobewakingssysteem:

•Raspberry Pi

•Voeding

•MicroSD-kaart

•Camera

 

We hebben gekozen voor de Raspberry Pi 3 Model B. Deze heeft namelijk ingebouwde WiFi en ondersteunt zelfs het snelle 802.11n-protocol.  

De microSD-kaart heeft een capaciteit van 8 GB. Het besturingssysteem is slechts 200 MB groot, waardoor je voldoende ruimte overhoudt om videobeelden op te slaan. Links ervan zie je de adapter met het logo van de Raspberry Pi. Deze heb je alleen nodig om de microSD-kaart in de laptop te gebruiken.

Als camera gebruiken we de NoIR Camera V2. NoIR staat voor 'No IR', oftewel 'Geen IR'. Dit betekent dat de camera geen infrarood filter bevat. Door middel van infrarood LED’s is je systeem daardoor ook 's nachts te gebruiken. De camera heeft 8 megapixels, waarmee je foto's van maximaal 3280x2464 pixels maakt. Videobeelden zijn met 1920x1080 pixels van HDTV-kwaliteit.

Deze set kost je ongeveer 70 euro. Voor een camerabehuizing met draaibare bevestigingssteun en fisheye-lens om een heel groot deel van de omgeving in de gaten te houden, moet je rekenen op zo'n 30 euro extra. Een set infrarood LED’s kost slechts enkele euro's, maar je moet wel de handen uit de mouwen steken om te solderen en te programmeren. Hierop zullen we in dit artikel niet ingaan.

 

MotionEyeOS

Als eerste installeer je op de microSD-kaart het besturingssysteem motionEyeOS. Hiermee heb je meteen de noodzakelijke software voor het videobewakingssysteem, waarbij motionEye als gebruikersinterface fungeert. Hiermee bedien je motion, het hart van je videobewakingssysteem. Motion monitort het videosignaal en detecteert beweging op de beelden.

Ga naar de site op GitHub (http://github.com/ccrisan/motioneyeos) en download de juiste versie via het tabblad releases. In ons geval is dat motioneyeos-raspberrypi3-20160919.img.gz. Ga naar de download-directory om dit bestand uit te pakken:

 

cd <download_directory>

gunzip motioneyeos-raspberrypi3-20160919.img.gz

 

Vervolgens plaats je als root dit image op de microSD-kaart. In dit voorbeeld is dat het device sdb (gebruik bijvoorbeeld het commando lsblk):

 

dd bs=4M if=motioneyeos-raspberrypi3-20160919.img of=/dev/sdb

 

Let heel goed op welke device-naam je achter of= opgeeft. Het commando dd overschrijft zonder pardon elk device, dus ook je harde schijf! Na ongeveer een minuut zie je wat uitvoer en dan is dd klaar.

 

Netwerk

MotionEyeOS haalt via DHCP een netwerkadres op. De hostnaam is variabel en pas na de eerste boot zelf te definiëren. Het is daarom handig om eerst een statisch IP-adres te definiëren, zodat je straks voor de webinterface een bekend adres hebt. We configureren niet meteen WiFi, omdat we daarvoor eerst iets moeten aanpassen na de eerste boot.

Maak een tijdelijke directory aan en mount als root de eerste partitie van de microSD-kaart. Hier is dat sdb1:

 

mkdir eyeos

mount /dev/sdb1 eyeos

 

Plaats vervolgens in de directory eyeos een bestand static_ip.conf met een inhoud, die vergelijkbaar is met onderstaande listing.

 

static_ip="192.168.0.42"    

static_gw="192.168.0.1"    

static_dns="213.75.63.75"

 

Static_ip is het adres voor het bordje, terwijl static_gw het adres is van je router, de zogeheten gateway. Kies voor static_dns het adres van de DNS-server van je internetprovider. Forceer voor de zekerheid het wegschrijven van eventuele data in de cache naar het kaartje. 

 

sync

 

Ontkoppel tenslotte als root het kaartje:

 

eject /dev/sdb

 

Montage

Monteer nu de onderdelen. De houder voor de microSD-kaart vind je aan de achterkant van de RPi. Let op de juiste oriëntatie: de koperen stripjes van het microSD-kaartje moeten naar het bordje wijzen.

Het bordje heeft in het midden een connector voor de camera. Hierop zit een plastic beschermfolie. Verwijder dit eerst en til vervolgens het klemmetje omhoog. De platte kabel van de camera heeft aan het uiteinde een blauwe zijde en een zijde met metalen stripjes. De blauwe zijde moet wijzen in de richting van de USB- en ethernet-aansluitingen. Duw de kabel in de connector. Druk dan het klemmetje aan beide zijden weer naar beneden, totdat je een duidelijke klik hoort.

Verbind de RPi middels een ethernetkabel met je router of switch. Bevestig tenslotte de voeding aan de microUSB-ingang en schakel hem in. Bij de eerste boot zet motionEyeOS enkele componenten op, waaronder SSH en de camera. Dit duurt ongeveer twee minuten.

 

WiFi-aanpassing

Om betrouwbaar WiFi te gebruiken, moeten we een kleine aanpassing doorvoeren. Maak een bestandje modules met de volgende inhoud:

 

cfg80211 ieee80211_regdom=NL

 

Kopieer dit naar de Raspberry Pi. Hiervoor is geen wachtwoord nodig:

 

scp modules root@<static_ip>:/data/etc

 

Dit probleem is bekend bij de ontwikkelaar en bij een volgende release is deze actie niet meer nodig.

 

Webinterface

Ga nu met je browser naar het statische IP-adres. Je ziet dan meteen de camera aan het werk. Het beeld heeft een lichtrode waas, doordat de camera geen infrarood filter heeft. Als de software een beweging detecteert, verschijnt er een rode rand rondom het beeld.

Als je op het beeld klikt, verschijnen rechtsboven een aantal knoppen. Je hebt hier onder andere toegang tot opgeslagen beelden. Omdat er echter standaard geen beelden bewaard worden, gaan we dit en andere instellingen daarom nu meteen aanpassen.

Log in via de knop met het persoontje linksboven. Gebruik op het inlogscherm als naam admin zonder wachtwoord. Gebruik vervolgens de knop met drie horizontale streepjes ernaast om de instellingen aan te passen. Het bovenste deel betreft de configuratie voor het videobewakingssysteem als geheel. Het deel eronder heeft betrekking op de camera. Als je een instelling verandert, verschijnt bovenin een oranje knop Apply. Druk hierop om aanpassingen te activeren en op te slaan.

 

Systeeminstellingen

Pas als eerste in General Settings de naam van administrator aan en stel een wachtwoord in. Dit zijn eveneens de inloggegevens voor de console en SSH. De administratornaam is een alias voor root. Om te voorkomen dat iemand anders zomaar je beelden ziet, zoals nu het geval is, maak je een wachtwoord aan bij Surveillance Password. Desgewenst verander je tevens de gewone gebruikersnaam onder Surveillance Username.

Vink dan Advanced Settings aan. De tijdzone staat op UTC. Zet dit op Europe/Amsterdam, zodat je een correcte tijdsaanduiding op de bewakingsbeelden ziet. Definieer eronder je eigen hostnaam.

Bovendien zijn enkele extra menu’s verschenen, waaronder Network. Open dit en activeer vervolgens Wireless Network. Geef dan het SSID met bijbehorende key van je draadloos netwerk op. Om zo min mogelijk poorten open te zetten, deactiveer je tot slot onder Services de niet benodigde servers.

Als je nu op de oranje knop Apply klikt, krijg je een melding dat een reboot nodig is. Klik op Yes en koppel de ethernetkabel los. Wacht ongeveer een minuut en ga vervolgens naar de webinterface. Deze vind je nu op http://<gekozen_hostnaam>. Log opnieuw in als admin.

 

Beeldinstellingen

De standaard camera-instellingen zijn conservatief. Pas deze aan in het menu Video Device. Verhoog de Video Resolution van 320x240 naar bijvoorbeeld 1024x768 pixels om meer detail te zien. Door het ophogen van de Frame Rate van 2 naar 10 beelden per seconde loop je een stuk minder kans om een goede opname te missen. Het opkrikken van de resolutie en frame rate vergt wel meer opslag en bandbreedte. Ook de belasting van de CPU loopt op, omdat motion de grafische processor niet benut. Als het camerabeeld op zijn kop staat, zet je de videorotatie op 180 graden.

Beelden worden op de microSD-kaart opgeslagen in de directory /data/output/<camera_naam>. Een netwerk share of externe USB-schijf configureer je onder File Storage. MotionEyeOS ondersteunt alleen Samba en helaas geen NFS. Ook opslaan in Google Drive of Dropbox is mogelijk.

Het daadwerkelijk bewaren van beelden activeer je door het knopje links bij Still Images van OFF naar ON te zetten. Als motion nu beweging detecteert, heb je de betreffende beelden tot je beschikking. In dit menu vind je ook opties om alle beelden op te slaan en de bewaartermijn aan te passen. Als je liever video wilt, voer je soortgelijke aanpassingen uit in het menu Movies.

 

Bewegingsdetectie

Het kalibreren van de bewegingsdetectie doe je via het menu Motion Detection. Hier stel je bijvoorbeeld in hoeveel procent van een beeld moet veranderen om het aan te merken als beweging. Zo voorkom je dat een voorbijvliegende vogel tot alarm leidt. Als je 's avonds het licht aandoet, verandert juist een heel groot deel van het beeld. Een dergelijk vals alarm voorkom je door Light Switch Detection te configureren.

Om continue bewegende delen, zoals bijvoorbeeld takken, te maskeren zet je eerst de optie Mask aan. Standaard probeert de software continue beweging automatisch te detecteren. Om het zelf te bepalen kies je Editable als Mask Type. Vervolgens klik je op Edit Mask. Op het camerabeeld verschijnen kleine vierkantjes. Door hierop te klikken bouw je een masker op. Tot slot klik je op Save Mask.

Een hulpmiddel om bewegingsdetectie in te stellen is de knop Show Frame Changes. Zet die op ON, zodat het camerabeeld een rode rechthoek rond bewegende delen toont. Ook zie je het aantal pixels, dat sinds het vorige frame is veranderd.

Om meldingen te krijgen in geval van gedetecteerde beweging ga je naar het menu Motion Notifications. Hier stel je de e-mailgegevens in en geef je aan of en hoeveel beelden je als attachment wilt ontvangen. Normaal monitort het systeem 24/7. Om bijvoorbeeld alleen 's nachts meldingen te krijgen, zet je de knop links in het menu Working Schedule op ON en maak je vervolgens een bijpassend schema.

 

Meerdere camera's

MotionEyeOS is makkelijk uit te breiden met meerdere camera's. We tonen dat hier door het toevoegen van een Pi-camera. Merk op hoe compact het Raspberry Pi camera is ten opzichte van zo'n camera.

Ga in het configuratiemenu helemaal bovenin naar het veld Camera1 en klik hierop. Kies in het drop down menu add camera. In het pop-up venster geef je als Camera Type Network Camera op. Vervolgens voer je de URL naar de video-stream in samen met de inloggegevens. De URL is sterk afhankelijk van de camera. In ons geval is dat http://192.168.0.34/videostream.cgi. Let op dat je niet de URL van de gebruikersinterface van de camera opgeeft. Als de waarden correct zijn, verschijnt in het veld Camera onderin de gedetecteerde camera. Klik op OK. Nu zie je twee camerabeelden in de webinterface. Alle camera specifieke instellingen moet je voor Camera2 wel opnieuw uitvoeren.

 

Tot slot

Je eigen videobewaking opzetten is niet moeilijk. Zelfs het uitbreiden met andere camera's is eenvoudig. Als er nu nog een plug-and-play set met infrarood LED’s op de markt komt, dan is het systeem helemaal compleet.

 

NEDLINUX FORUM

Het nederlandse linuxforum
Voor beginners en pro’s

 

 

 

 

E-mailadres



 

 

Nieuwste editie:

Linuxmag op Facebook

@linuxmagnl op Twitter

linuxmagNL Niemand kent alle opties van alle commandline tools uit het hoofd. Het is belangrijker om te weten waar je de juist… https://t.co/4DwEhHOKBX
linuxmagNL Package management is één van de sterke punten van Linux in vergelijking met Windows en macOS. Linux Mint bevat eig… https://t.co/pLxEVxktdp
linuxmagNL Mailto-links voor webmail, Heimwee naar Unity, rc.local activeren in systemd & Schakel zwakke encryptie in OpenSSH… https://t.co/VL6XwCiP8O