In diesem Artikel will ich zeigen, wie man seine eigene Überwachungskamera mit dem Raspberry Pi bauen kann. Dabei stelle ich drei unterschiedliche Möglichkeiten vor.
Alles zusammen kann man hier für ca. 50 Euro kaufen.
Ich habe eine Rasberry Cam 1.3 mit einem Zero W und dem offiziellen Gehäuse verwendet. Die 2.1 hat im Vergleich zur 1.3 beim Video keine großen Vorteile (beide 1080p30) und ist spottbillig zu haben.
Der Zusammenbau erfolgt ähnlich wie in meinem anderen Artikel und sieht mit dem offiziellen Gehäuse so aus:
Für die übliche Inbetriebnahme muss bei den Einstellungen noch die Kamera aktiviert werden. Zu empfehlen ist auch VNC und SSH Zugang zu aktivieren und beim Einsatz von mehreren Raspberrys noch einen anderen Namen als raspberry zu vergeben.
Als erstes eine ganz einfache Möglichkeit: In der offiziellen Doku der picamera Python-Bibliothek findet sich ein Skript, das einen einfachen Webstream erzeugt.
Das Skript (hier benant in webstream.py) einfach in den /home/pi Ordner legen und dann mit crontab -e
beim Booten das Skript ausführen lassen:@reboot sudo python3 /home/pi/webstream.py &
Nun kann man im eigenen Netzwerk die IP Adresse des Rasberry Pi aufrufen mit dem Port 8000: http://your-pi-address:8000/
.
Von Unterwegs kann man das ganze ansehen, indem man sich einen VPN einrichtet. Für die Fritzbox ist das hier beschrieben.
Der Stream ist recht flüssig. Man kann die Bildqualität noch erhöhen, indem man im Skript folgende Anpassung vornimmt: resolution='1920x1080'
. Der Raspberry Zero packt das schon, wenn nichts anderes auf ihm läuft. Je nachdem wie die Kamera montiert ist, muss man das Bild ggf. noch drehen. das geht über camera.rotation = 90
bevor die Kamera mit camera.start_recording
aktiviert wird.
Verzichten muss man auf Bewegungserkennung und Benachrichtigungen.
Wenn man eine Bewegungserkennung, Sicherung als Video und Bild und Benachrichtigung will, empfiehlt sich das Projekt Motion. Auf dem Rapsberry Pi ist es recht schnell eingerichtet. Mit dieser Anleitung geht es recht gut. Im Unterschied zu dem Tutorial starte ich Motion aber nicht als Deamon, sondern gebe einfach wieder über crontab -e
folgendes an: @reboot sudo motion &
Wichtig ist auf jeden Fall, dass die magische Zeile:sudo modprobe bcm2835-v4l2
eingegeben wird.
Nur dann ist die Rasberry Kamera in Linux über /dev/video0 verfügbar und für Motion auch erreichbar. Die wichtigsten Konfigurationen für den Webstream sind beschrieben und über sudo nano /etc/motion/motion.conf
einstellbar.
Der Livestream ist über http://your-pi-address:8081
erreichbar. Von außen wieder über VPN.
Das meiste davon geht einfach über sudo nano /etc/motion/motion.conf
in der Konfiguration einzustellen.
Ich habe meine motion.conf hier bereitgestellt.
Das wichtigste in Kürze:
target_dir /home/pi/motion-images
legt das Verzeichnis fest, in das Bilder und Videos geschrieben werden. Das Vereichnis muss dazu angelegt sein.threshold
und noise_level
gibt die Empfindlichkeit an und event_gap
die Zeit ab wann eine Bewegung als neu erkannt wird und damit ein neues Video aufgenommen wird.rotate
die Bilddrehung angegeben werden.Hierzu installiere ich yagmail:sudo pip install yagmail
und sudo pip3 install yagmail
.
Yagmail macht es einfach E-Mail über Googlemail zu senden. Man braucht nun eine Googlemail-Adresse zum Versenden und eine Zieladresse zum Empfangen der Beanchrichtigung. Bei der Senderadresse muss man bei den Google-Sicherheitseinstellungen die Erlaubnis für unsichere Apps einstellen.
Dann lege ich ein neues Verzeichnis im root an:sudo mkdir /motion-notification
und dann weise ich die Gruppe zu:sudo chown motion:motion /motion-notification
.
Dann füge ich noch den Nutzer Pi zur Gruppe motion hinzu:sudo usermod -a -G motion pi
Danach lege ich ein Python-Skript (email_n.py) in diesem Ordner mit dem Inhalt aus diesem Gist (Eingabe von Sender-Adresse mit Passwort und Zieladresse noch nötig) an, und setze die Rechte wie zuvor. Es müssen also nun für alle Verzeichnisse und die Python-Datei selbst Ausführrechte für den User motion vorhanden sein.
Nun kann man in der motion.conf in Zeile 609 beim Speichern-Event das Python Skript ausführen lassen:on_picture_save /usr/bin/python /motion-notification/email_n.py %f
.
%f übergibt das Bild als Pfad an das Python Skript und Yagnmail sendet es im Anhang.
Nun wird die SD-Karte ziemlich zugemüllt. Über folgenden Eintrag in der sudo crontab können die Bilder und Videos nach einem Tag gelöscht werden:0 23 * * * root find /home/pi/motion-images/ -type f -mtime +1 -delete;
netcam_url
die URL des streamenden Raspberrys ein.Basierend auf Motion gibt es auch ein eigenes Image für ein abgespecktes Betriebssystem für den Raspberry. Dieses verwandelt den Raspberry recht einfach in eine Überwachungskamera, man hat dann aber keinen Einfluss mehr auf das Betriebssystem.
Ich hab Motioneyeos noch nicht ausprobiert, aber die Beschreibungen sehen recht vielversprechend aus.
Aber auch hier ist der Stream wohl nicht ganz flüssig, da die Basis Motion bildet.
Mittlerweile wird die Option in Googlemail für weniger sichere Apps nicht mehr unterstützt. Alternativ muss man das Konto mit einer Zwei-Faktor Authentifizierung versehen und dann ein App-Passwort generieren. Das muss man sich nachdem es angezeigt wird notieren oder kopieren und im Pythonskript statt dem alten Passwort angeben. Dann klappt es ebenfalls.
Als erster einen Kommentar schreiben.
Schreibe einen Kommentar