Raspberry PI - Raspbian - Webcam |
|
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.)
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
Schauen wir uns das erste Bild mal am besten über WinSCP an.
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