Mittwoch, 6. Januar 2016

Fortschritte beim Raspberry mit der Einrichtung einer Überwachungskamera

Eine durchaus nützliche Anwendung mit dem Raspberry Pi ist die Einrichtung einer Überwachungskamera. Denn der kleine RasPi braucht kaum Strom und selbst mit einer Webcam und einem WLAN-Adapter und ggfls. einem kleinen Gehäuse (falls man die Sachen noch kaufen muss und nicht sowieso irgendwo noch übrig hat) ist man billiger als bei den meisten Kauflösungen. Zumal man die genialen Programme im Linux-Umfeld nutzen kann. Ich brauche zwar eigentlich keine Überwachungskamera, aber die Neugier und der Spieltrieb (letztendlich aber auch Know How-Aufbau als Investition in meinen Job) haben mich zum Fertigstellen gebracht.

Schritt 1 - WLAN einrichten

Bisher hatte mein RasPi an der Leitung (sprich Ethernet-Kabel) gehangen und erstmal musste der WLAN-Adapter für den Raspberry Pi eingerichtet werden. Zuerst habe ich rein physikalisch den WLAN-Adapter an einen der beiden freien USB-Ports eingesteckt (USB-Port 2 brauche ich für die Cam). Mit lsusb kann man herauszufinden, ob der WLAN-Adapter überhaupt erkannt wurde. Das ging bei meinem RasPi problemlos und die Netzwerk-Schnittstelle mit der Bezeichnung wlan0 war sofort vorhanden. Danach habe ich iw bzw. iwlist als Tool installiert (sudo apt-get install iw). Mit sudo iwlist wlan0 scan kann man dann ganz bequem die WLAN in der Gegend scannen. Um die Verbindung einzurichten muss man die Netzwerk-Konfigurationsdatei bearbeiten. Dazu öffnet man die interfaces-Datei: sudo nano /etc/network/interfaces Hier gibt es vermutlich bereits einen WLAN-Bereich, wenn der Adapter erkannt wurde (war bei mir auf jeden Fall da). Und da trägt man so was wie das ein: # WLAN auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-ssid "WLAN-Name" wpa-psk "WLAN-Passwort" Da habe ich ein bisschen rumspielen müssen, denn ein paar Einträge bei mir haben wohl kollidiert. Der Adapter wollte einfach keine IP-Nummer vom DHCP-Server beziehen. Aber mit dem Code ist mein WLAN-Zugriff dann gegangen. Natürlich muss man die Netzwerkschnittstelle nach jeder Änderung neu starten: sudo ifconfig down wlan0 sudo ifconfig up wlan0

Schritt 2 - Motion einrichten

Die Open-Source-Software Motion befindet sich in den Repositories der Linux-Distribution Raspbian. Als Kamera verwende ich eine alte USB-Webcam, die mit etwas Mühe auch unter Raspian endlich gelaufen ist. Allgemein sollte jede Kamera gehen, die mit dem V4L-Treiber (Video for Linux) kompatibel ist und als Gerät unter Linux in der Form /dev/videoX auftaucht. Mit dem folgenden Befehl kann man schauen, ob die Cam ordnungsgemäß funktioniert: dmesg | tail Noch besser: ls -ltrh /dev/video* Allerdings hat das bei mir von Anfang an funktioniert, aber der Video-Device ließ sich dennoch nicht öffnen. Erst nach dem komplette Upgrade der Distribution und Bereinigung ging das plötzlich. Motion spricht nun die Cam über eben /dev/video0, /dev/video1, etc. an und beobachtet den Video-Stream. Das Spannende ist nun der Bewegungsmelder. Man kann dazu einfach bei Motion ein Limit für sich ändernde Pixel in einem Bild festlegen. Wird die Grenze dieser Pixelzahl überschritten, wertet Motion das als Bewegung und kann je nach Konfiguration entsprechend reagieren. In der Regel wird dann ein Bild gespeichert. Geniale und einfache Lösung. Man installiert Motion so: sudo apt-get update sudo apt-get install motion Motion lässt sich dann über ein Init-Script starten, das nach der Installation des Programms bei Raspian unter /etc/init.d/motion zu finden ist. Für den automatischen Start zusammen mit dem System bearbeiten man die Datei /etc/default/motion und ersetzt das no hinter start_motion_ daemon durch yes. Ansonsten startet man Motion einfach manuel: sudo motion Nach Aufruf des Befehls erzeugt Motion diverse Bildschirmausgaben. Besonders wichtig ist Started stream webcam server in port 8081. Das sind die Infos, um die Bilder live abzugreifen. Das Bild kann man mit jedem Streaming-Client oder in einem beliebigen Webbrowser betrachten - über http://localhost:8081. Wenn sich jetzt was für der Cam bewegt, sieht man in der Konsole, dass Bilder gespeichert werden. In der Standardkonfiguration legt Motion diese unter /tmp/motion ab.
Konfigurieren
Per Standard ist Motion auf localhost beschränkt. Das kann man in der Standardkonfigurationsdatei /etc/motion/motion.conf anpassen. Die Zeile webcam_ localhost on ( Sektion „Live Webcam Server“) muss geändert werden auf: webcam_ localhost off An anderer Stelle findet man die Bildbreite und Bildhöhe. width 320 height 240 Kann man natürlich anpassen, soweit das die Cam unterstützt und der Platz auf dem Datenträger ausreicht. Sehr spannend - die Anzahl der Bilder/Sekunde framerate 2 Kann man bei Überwachung eher niedriger wählen, damit die Datenmenge nicht zu hoch wird. Bei einem Livestream hingegen sollte man den Wert eher hochsetzen. Muss ich auch noch ausprobieren. Die Sektion „Motion Detection Settings“ ist dazu da festzulegen, wie viele Pixel sich ändern müssen, damit Motion dies als Bewegung erkennt. Der erste Parameter threshold bestimmt, wie viele Pixel sich in einem Bild ändern müssen, um als Bewegung wahrgenommen zu werden. Per Standard steht das auf 1500 und das ist auf die vorgegebene Breite und Höhe des Bildes gemünzt. Setzt man die Bildgröße hoch, wird die Sache viel sensibler, da Motion früher reagiert. Will man das eher unempfindlicher, muss man den Wert erhöhen. Sobald Motion eine Bewegung erkennt, speichert das Programm die Dateien per Standard im JPG-Format. Ganz klasse - zusätzlich wird nach jeder Bewegungssequenz per Standard eine SWF-Datei als kleiner Film erstellt. Wo diese Dateien hinterlegt werden, konfigurieren man über den Parameter target_dir. Per Standard ist das /tmp/motion. Das Verzeichnis wird jedoch bei jedem Neustart des RasPi gelöscht. Sollte man die Dateien erhalten wollen, ändert man das Verzeichnis besser.
Kommentar veröffentlichen

Onlinetraining mit Ralph Steyer

Onlinetraining mit Ralph Steyer
Onlinetraining mit Ralph Steyer und anderen Autoren bei Video2Brain