zur Navigation springen


Raspberry PI - Raspbian - Webcam

Raspbian

erstellt 10.2013

Raspbian und eine USB-Webcam.
Mit dem Raspi eine USB-Webcam betreiben, die zeitgesteuert die bearbeitete Bilder mit Zusatzinformationen ins Internet stellt.




Wird unsere Webcam erkannt.
Dazu schließen wir die USB Webcam an unseren Raspi an, eventuell ist es nötig die Webcam über einen USB-HUP mit eigener Stromversorgung anzuschließen, wenn sie zu viel Strom zieht.
$ dmesg
(der Ringpuffer des Kernels wird ausgegeben, der wichtige informationen der Hardware beinhaltet.)

dmesg.png

Wenn wir Linux video capture interface finden, wurde die Webcam erkannt und die Treiber sind schon im Kernel integriert, ansonsten könnten noch eventuell die Treiber per Hand nachgeladen werden.

Nach dem die Webcam erkannt wurde, können wir ein Testbild machen, dazu müssen wir das Programm fswebcam installieren.
$ apt-get install fswebcam
Das erste Bild wird geschossen.
$ fswebcam -r 640x480 -d /dev/video0 -v /tmp/test.jpg

fswebcam.png

Schauen wir uns das erste Bild mal am besten über WinSCP an.

winscp.png

Nach dem die ersten Bilder erfolgreich abgelegt worden sind, machen wir uns an die Installation der Webcam. Aus meinem Büro kann ich nicht mit einem überragenden Ausblick glänzen. Die Webcam hat einen Weitwinkel der zugeschnitten wurde. Anschließend sollten wir einen Projektordner anlegen.

$ cd /var
$ mkdir webcam
$ cd webcam

Für die Steuerung der Webcam- Bilder legen wir eine webcam.cfg Datei an.
Meine hat folgenden Inhalt.

device /dev/video0
jpeg 95
resolution 1280x720
crop 930x570,190x150
scale 465x282
timestamp "%d.%m.%Y %H:%M"
title "www.M-Wulff.de | B?ro Raspberry"
set "White Balance Temperature, Auto"=True
set "Backlight Compensation"=0
set "Brightness"=150
set "Contrast"=4
set "Saturation"=90
skip 3
frames 3
save "/var/webcam/live.jpg"

Die Werte resolution ist die Auflösung, crop ist das Zuschneiden des Bildes und scale ist die Ausgabegröße. (FSWebcam Manpage)
Bevor man sich an die Einstellung der Parameter macht, ist es sinnvoll zu wissen welche Einstellungen und Grenzen meine Webcam hat.
$ fswebcam -d /dev/video0 --list-controls
Da jede Webcam andere Wertebereiche hat, kann die Ideale Einstellung nur erspielt werden, viel Spaß dabei.
Aufgerufen wird FSWebcam mit Parameterdatei:
$ fswebcam -c webcam.cfg

Jetzt können wir die Bilder auf unsere Homepage laden, dafür verwende ich ncftp als FTP-Client. (ncftpput Manpage)
$ apt-get install ncftp
Anschließend legen wir die ftp.cfg an mit dem Inhalt:
$ nano ftp.cfg
host HOST-IP
user NUTZERNAME
pass PASSWORT

Die Bild-Datei wird mit
$ ncftpput -f ftp.cfg /cam live.jpg
per FTP ins Verzeichnis /cam gesendet.

Wenn alles geklappt hat, können wir uns an die Automation machen, dazu brauchen wir nur ein kleines Shellscript welches die Befehle nach einander aufruft (In der Windowswelt Batch).
$ nano webcam.sh
fswebcam -c /var/webcam/webcam.cfg
sleep 1
ncftpput -f /var/webcam/ftp.cfg /cam /var/webcam/live.jpg

Nicht vergessen das Shellscript "webcam.sh" noch mit dem folgendem Befehl ausführbar machen.
$ chmod u+x webcam.sh
Der lokale Ausruf erfolgt mit
$ ./webcam.sh

Jetzt legen wir noch einen Cronjobs an der alle 5 Minuten unser Script aufruft. Dazu legen wird nano als Standard Editor festgelegt.
$ EDITOR=joe
Anschließend öffnen wir die Crondatei.
$ crontab -e
und schreiben die Anweisung rein.
*/5 8-16 * * * /var/webcam/webcam.sh

Mit dieser Anweisung wird alle 5 Minuten von um 08:00 bis 16:55 das Shellscript ausgeführt.
(Da meine Webcam im Büro hängt, spiegelt es zu stark in der Scheibe, wenn Licht an ist.)

Für Erweiterungen am Skript ist noch viel Platz, denkbar ist das die Wetterdaten ins Bild geschrieben werden, oder eine Bildershow vom vergangenen Tag, Woche oder Monat zu erstellen.
Euch wird schon was einfallen.

Viel Spass

Matthias Wulff


Seitenanfang