Raspberry Pi Webkamera overvåkning

Bilde av Bernard Hermant fra Unsplash

Bilde av Bernard Hermant fra Unsplash

I dette prosjektet her bruker jeg en eldre Raspberry Pi 3, som jeg bruker som infoskjerm ved utgangsdøren min. Planen er å lage en hjemmelaget løsning for ringeklokke kamera, så vi kan se hvem som ringer på uten å måtte åpne døren først.

Som kamera bruker jeg et billig kretskort webkamera som jeg kjøpte for en 20-30kr på banggood. De viktigste egenskapene jeg ønsket av kamera, var at det var et USB kamera som jeg kunne bruke via en kabel igjennom veggen, det måtte ha ca 140 - 160 graders synsfelt, og ta liten plass slik at det ble lett å plassere den i en smekker innkapsling sammen med ringeklokke ute ved inngangsdøren.

Streaming server oppsett

Installasjon og configurasjon av Linux program

Etter at maskinen er i drift, åpner du terminalen. Om du har lyst å være litt fancy i Linux kan det gjøres ved å trykke Ctrl+Alt+T.

Som alle andre prosjekt jeg starter på, er det ofte noen uker eller måneder siden jeg har gjennomført en oppdatering av systemet. Derfor er dette et perfekt tidspunkt for en systemoppdatering så jeg får den siste versjonen av programmene som ligger på Raspberry Pi'en. I mitt tilfelle hadde jeg ikke oppdatert på over ett halvt år, så da tok det over en hel time å oppdatere... Heldigvis er packet manager apt veldig beskrivende, så man skjønner at maskinen ikke har hengt seg opp pga den konstante strømmen med bokstaver på skjermen.

sudo apt update
sudo apt upgrade

Når dette er på plass er det lurt å sjekke IP-adressen til maskinen.

ifconfig

Hvis du er tilkoblet med WiFi er det adressen som står under wlan0, hvis du bruker kablet nettverk er det under eth0. Denne adressen er den som blir brukt til å få tilgang til overvåkningskamera senere.

Stort sett er det alltid lurt å ha satt opp en statisk IP-adresse på alle servere du har i huset. På den måten er det lett å finne den på nettverket.

Jeg skal skrive en guide om hvordan man gjør det senere, men det kan være verdt å merke seg at det er forskjellig for mange av Linux Distroene, derfor kan det enkleste være å google "static ip raspbian jesse" eller "static ip ubuntu 20.04".

Videre installerer vi pakken "motion" som tar seg av alt som skal til for å kjøre en webkamera server.

sudo apt install motion

Når denne er installert må vi konfigurere programmet. Dette gjør vi ved å bruke tekstbehandlingsprogrammet nano, det er ikke min favoritt, men det er lett å lære og kommer forhåndsinstallert med RaspberryPi OS og det eldre operativsystemet Rasbian.

sudo nano /etc/motion/motion.conf

Let etter følgende linjer og sett de til disse verdiene:

motion.conf
############################################################
# Daemon
############################################################

# Start in daemon (background) mode and release terminal (default: off)
daemon on

###########################################################
# Capture device options
############################################################

# Image width (pixels). Valid range: Camera dependent, default: 320
width 640

# Image height (pixels). Valid range: Camera dependent, default: 240
height 480

# Maximum number of frames to be captured per second.

# Valid range: 2-100. Default: 100 (almost no limit).
framerate 100

############################################################
# Image File Output
############################################################

# The quality (in percent) to be used by the jpeg and webp compression (default: 75)
quality 100

############################################################
# Live Stream Server
############################################################

# Maximum framerate for stream streams (default: 1)
stream_maxrate 100

# Restrict stream connections to localhost only (default: on)
stream_localhost off

############################################################
# HTTP Based Control
############################################################

# Restrict control connections to localhost only (default: on)
webcontrol_localhost off

Videre må motion daemonen settes slik at den starter når maskinen starter.

sudo nano /etc/default/motion
motion
# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

Lagre endringene ved å trykke Ctrl+S, og lukk tekstbehandlingsprogrammet ved å trykke Ctrl+X. Dette tar deg tilbake til terminalen.

Nå kan vi starte motion med endringene vi gjorde i konfigurasjons filen.

sudo service motion start

Hvis du på et senere tidspunkt må endre innstillinger må motion restartes for at endringene skal tas i bruk. Da bruker du denne kommandoen:

sudo service motion restart

Test av overvåkningskameraet

Åpne en nettleser på en annen datamaskin og skriv in IP-adressen til RaspberryPi'en som skal fungere som overvåkningskamera, og port nummeret som webkamera serveren ligger på. Du kan også bruke VLC for å se videostrømmen med samme URL.

http://<ip-adresse>:8081

Da skal du kunne se hva kamera filmer.

Webkamera bilde fra raspberry pi

Skjermdump fra VLC som strømmer video fra Raspberry Pi webkamera

Noe av det som er utrolig moro og spennende med slike enkle prosjekter er at det kan få kreativiteten til å bruse. Hva med å lage en fjernstyrt bil eller robot som du kan styre via nettlesere som du kan se hvor du kjører via webkamera?