Beveiligingscameramonitor

18-07-2022
Mancave wordt controlekamer.

In de mancave een film kijkend wil ik wel graag het overzicht houden zoals in een echte controlekamer. Twee camera's houden alles in de gaten en met een druk op de knop activeer ik een monitor om de live beelden te kunnen bekijken.

Camerastromen
Als "beveiligingscamera's" heb ik een IP-camera die vanuit het raam naar buiten kijkt en een oude webcam die ergens binnen staat. De IP-camera streamt uit zichzelf, de webcam zit via USB aangesloten aan de altijd aan staande politiescanner-server en wordt gestreamt met een simpel bash-script:
#!/bin/bash
pkill vlc
cvlc v4l2:///dev/video0 --sout "#transcode{vcodec=theo,vb=800,acodec=none}:\
rtp{sdp='rtsp://192.168.0.102:8080/cam.sdp'}"

Mechanische opbouw
De HDMI-monitor heeft een nieuwe ge-3d-printte standaard gekregen met twee bedieningsknoppen. Die knoppen zijn aangesloten op de GPIO van een Raspberry Pi (model A) die op de achterkant van de monitor is geplakt.

Een bash-script dat op die Pi draait (oneindige lus, zie regel 12) vangt de knoppen af en zet de monitor aan en uit. Met het Linux xset commando kun je namelijk je monitor aan en uit zetten: dat werkt prima op de Pi.
#!/bin/bash
#Camera 1
echo "4" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio4/direction

#Juli 2022: tweede camera (webcam)
echo "3" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio3/direction

status=1 # Aan

while :
do
knop=$(cat /sys/class/gpio/gpio4/value)
knop2=$(cat /sys/class/gpio/gpio3/value)
if [[ $knop2 == 0 ]] && [[ $status == 0 ]]; then
status=1
pkill vlc
sleep 0.6
vlc --fullscreen rtsp://192.168.0.102:8080/cam.sdp &
xset s 180
xset s off
xdotool mousemove 100 100
sleep 0.6
elif [[ $knop2 == 0 ]] && [[ $status == 1 ]]; then
# Uit en scherm aan: zet uit
status=0
echo "Zet uit"
pkill vlc
xset s on
xset s 1
xset s blank
xdotool mousemove 120 100
sleep 0.6
fi

if [[ $knop == 0 ]] && [[ $status == 0 ]]; then
# Ingedrukt en uit: zet aan
status=1
echo "Zet aan"
pkill vlc
sleep 0.6
vlc --fullscreen rtsp://gebruikersnaam:wachtwoord@192.168.0.91:80/videoSub &
xset s 180
xset s off
xdotool mousemove 100 100
sleep 0.6
elif [[ $knop == 0 ]] && [[ $status == 1 ]]; then
# Uit en scherm aan: zet uit
status=0
echo "Zet uit"
pkill vlc
xset s on
xset s 1
xset s blank
xdotool mousemove 120 100
sleep 0.6
fi

#echo $knop
sleep 0.1
done
Het script start VLC op en laat de betreffende stream (IP-camera of webcam) zien.

3d-print-bestanden
Monitorstandaard
Behuizing Raspberry Pi Model A+

Apparaten

Al mijn apparaten zijn werkende installaties.

Als je een apparaat na wilt maken of wilt verbeteren en je hebt hulp nodig, neem dan gerust contact met mij op.

Bekijk 24 apparaten
 
×
×