Webcam-Update: RaspberryPi-Kamera im Einsatz

RaspberryPi als Cycloppi

RaspberryPi als Cycloppi – ganz oben am Fenster

Neulich auf facebook: Die RaspeberryPi-Cam ist lieferbar. Gleich bestellt und zügig geliefert – wie immer.

 

Ein paar Tage lag das gute Stück herum – aber nun ist sie installiert und positioniert. Die Cycloppi-Webcam hat ein Update erfahren.

Die ideale Befestigungsmethode am Fenster habe ich noch nicht gefunden. Das Pi-Gehäuse will ich mit Klettband befestigen – derzeit muss durchsichtiges breites Klebeband aushelfen. Für die Kamera ist noch kein Gehäuse lieferbar. Immerhin passt das flache Datenkabel der Kamera neben dem Ethernet-Anschluss durch das Gehäuse.

Die Kamera kommt mit einem eigenen Snapshot-Befehl raspistill, der allerdings im Gegensatz zu motion keine Option für Text auf dem Bild hat.

Unter Debian installierte ich daher ImageMagick nach, das in der aktuellen Version den convert annotate-Befehl kennt. Dort kann mit einer der installierten Schriften Text auf das Bild an eine bestimmte Position geschrieben werden.

Das Originalbild im Format 2592 × 1944 Pixel wird ohne Bearbeitung gespeichert. Der Befehl

convert ORIGINAL.jpg -resize 1024 -font FONTNAME -fill white -pointsize 20 -annotate 0x0+20+720 "TEXT" KOPIE.jpg

verkleinert die Datei auf 1024×768 Pixel und schreibt ab Pixel x=20, y=720 den Text TEXT.

Mit der Shell-Variablen
irt=`date -d "$imt" +%e.' '%B' '%Y' | '%H:%M' Uhr'`
wird das aktuelle Datum in ein gefälliges Format gebracht. Davor kommt noch das Branding: „CyclopPi@Berlin | “

Der Dateiname wird nach der Konvention des bisher verwendeten motion-Befehls erstellt. Die vorhandenen Scripte funktionieren somit problemlos weiter. Das kleine Shellscript sieht so aus:

#!/bin/bash
#Zeit eindeutig festlegen
imt=`date --rfc-2822`
imf=`date -d "$imt" +%Y%m%d%H%M%S`
irt=`date -d "$imt" +%e.' '%B' '%Y' | '%H:%M' Uhr'`
brand="MEINE WEBCAM | "
pt=$brand$irt
#Dateiname fuer grosses Bild (Video)
img=$imf.jpg
#Dateiname fuer kleines Bild (Twitter/Web)
imk=$imf-snapshot.jpg
#Pfad grosses Bild
imp=/home/pi/snapshotsfull/
#Pfad kleines Bild
imn=/home/pi/snapshots/
#Pfad und Dateiname grosses Bild
impn=$imp$img
#Pfad und Dateiname kleines Bild
impk=$imn$imk
#Bild gedreht aufnehmen und im full-Verzeichnis speichern
/usr/bin/raspistill -o $impn -rot 180 -n
#Bild kleinrechnen und beschriften
/usr/bin/convert $impn -resize 1024 -font FONT -fill white -pointsize 20 -annotate 0x0+20+720 "$pt" $impk
ln -sf $impk /home/pi/snapshots/lastsnap.jpg
exit 0

Ein Bild der Kamera von heute:

Blick aus dem Fenster mit der RaspberryPi-Cam

Blick aus dem Fenster mit der RaspberryPi-Cam

Zum Vergleich ein Bild vom 28. Juli:

Blick aus dem Fenster mit der alten Webcam

Blick aus dem Fenster mit der alten Webcam

Der Pi twittert unter @cycloppi weiterhin einmal pro Stunde, alle fünf Minuten auf blog.hildwin.de/webcam ein neues Bild.

Update 5.08.13: Wir haben die Bilder um das Logo des Twitter-Accounts und eine analoge Uhr ergänzt.

Der Code hierfür:


#!/bin/bash
#Zeit eindeutig festlegen
imt=`date --rfc-2822`
t1b=`date -d '30 minutes ago' +%Y%m%d%H%M`
t2b=`date -d '1 hour ago' +%Y%m%d%H%M`
imf=`date -d "$imt" +%Y%m%d%H%M%S`
thr=`date -d "$imt" +%l`
tmi=`date -d "$imt" +%M`
ty=`date -d "$imt" +%Y`
tm=`date -d "$imt" +%b`
td=`date -d "$imt" +%e`
takt=`date -d "$imt" +%s`
#Standard-Bild-Namen
CAMPIC='lastsnap.jpg'
CAMPIC30='snap30m.jpg'
CAMPIC60='snap60m.jpg'
#Sonnenaufgang und Sonnenuntergang einlesen / jeweils 90 Minuten davor bzw. danach berechnen
sr=`cut -c 1-5 /home/pi/sunphase.txt`
su=`cut -c 6-11 /home/pi/sunphase.txt`
spr=`date --date "$sr 90 minutes ago" +%s`
spu=`date --date "$su 90 minutes" +%s`
#Konstante Pi definieren
pi=$(echo "scale=10; 4*a(1)" | bc -l)
#Dateiname fuer grosses Bild (spaeter timelapse))
img=$imf.jpg
#Dateiname fuer kleines Bild (Twitter/Web)
imk=$imf-snapshot.jpg
#Pfad grosses Bild
imp=/home/pi/snapshotsfull/
#Pfad kleines Bild
imn=/home/pi/snapshots/
#Pfad done-Bilder
imd=/home/pi/snapshotsdone/
#Temp-Bild
ite="/home/pi/snapshots/snapshot169.jpg"
#Pfad und Dateiname grosses Bild
impn=$imp$img
#Pfad und Dateinamen kleines Bild
impk=$imn$imk
imp1=$imn$t1b*-snapshot.jpg
imp2=$imn$t2b*-snapshot.jpg
if [ ! -f $imp1 ]; then
imp1=$imd$t1b*-snapshot.jpg
fi
if [ ! -f $imp2 ]; then
imp2=$imd$t2b*-snapshot.jpg
fi
#Pfad Overlay Bild
OVER="/home/pi/cam-overlay169.png"
if [ $takt -gt $spr ] && [ $takt -lt $spu ]; then
#Bild aufnehmen und im full-Verzeichnis speichern
/usr/bin/raspistill -o $impn -rot 180 -n -w 1280 -h 720
#Laenge des Minutenzeigers
Lm=19
#Laenge des Stundenzeigers
Lh=15
#Bild-Koordinaten des Mittelpunktes der Uhr
Cy=675
Cx=1173
#Endpunkte der Zeiger berechnen
Xh=`echo "scale=10 ; $Cx+($Lh*s($pi/6*$thr+$pi/360*$tmi))" | bc -l`
Yh=`echo "scale=10 ; $Cy+($Lh*c($pi/6*$thr+$pi/360*$tmi)*-1)" | bc -l`
Xm=`echo "scale=10 ; $Cx+($Lm*s($pi/30*$tmi))" | bc -l`
Ym=`echo "scale=10 ; $Cy+($Lm*c($pi/30*$tmi)*-1)" | bc -l`
#draw-String zusammenbauen
dr="line $Cx,$Cy $Xm,$Ym line $Cx,$Cy $Xh,$Yh"
#Logo drauf
/usr/bin/composite -gravity center $OVER $impn $ite
#Kalenderblatt beschriften (Jahr und Monat)
/usr/bin/convert $ite -font FONT.ttf -fill grey90 -pointsize 10 -annotate 0x0+1095+660 "$ty" -annotate 0x0+1100+695 "$tm" -fill none -stroke grey90 -strokewidth 2 -draw "$dr" $ite
#Kalenderblatt beschriften (Tag)
/usr/bin/convert $ite -font FONT.ttf -fill grey90 -pointsize 22.5 -annotate 0x0+1094+685 "$td" $impk
ln -sf $impk $imn$CAMPIC
if [ -f $imp1 ]; then
ln -sf $imp1 $imn$CAMPIC30
fi
if [ -f $imp2 ]; then
ln -sf $imp2 $imn$CAMPIC60
fi
#Upload auf Webserver
/home/pi/bin/ftp_he_up.sh
exit 0
else
exit 0
fi
exit 0

Auf meiner neuen Seite zur Geschichte der Cyclopstraße sind das aktuelle und zwei weitere Bilder im Abstand von je 30 Minuten.

Zeitraffer-Video vom 28. August 2013:

Zeitraffer vom 28. August 2013

CyclopPi mit Kalender- und Ziffernblatt

CyclopPi mit Kalender- und Ziffernblatt

Flattr this!

10 Reaktionen auf “Webcam-Update: RaspberryPi-Kamera im Einsatz

  1. Hallo. Wie hast du den Film auf dem RPi gerendert? Bei mir kommt immer, dass die libxvid264 nicht vorhanden ist für den avconv oder ffmpeg Befehl.

    • Bei mir funktioniert es ohne weitere Hilfsmittel, allerdings langsam. Vielleicht mal apt-get install update && apt-get install upgrade probieren?

      avconv -f image2 -i %03d.jpg -r 25 -vcodec libx264 -aspect 16:9 output.mp4

  2. Hallo,
    leider kann ich mit dem Code-Update vom 5.08.13 nichts anfangen…
    An welcher stelle muss ich diesen einbauen?¿?
    Wo wird $ite definiert?
    Wie lasse ich das fertige Script alle 5 Min laufen? per cron?

    Sorry für die vielen Fragen und Danke im Voraus für eine Rückinfo!

    Gruß
    Peter

  3. Hi,
    so endlich habe ich meine PiCam stabil zum Laufen gebracht. Alle halbe Stunde wird über ein Bash-script sowie ein Python Programm ein Bild gemacht -dank der schönen Anleitung hier auch beschriftet – und dann auf meinen Webspace hochgeladen. Das Ganze ist mit UMTS mit dem Internet verbunden. Da der Provider die IP Adresse verschleiert kommeich nur auf Umwegen (Stichwort Pagekite) aum meinen Pi.
    was mich noch interssieren würde st, wo ich die im obigen Script verwendete Sunphase.txct Datei herbekomme. Grüsse aus Norditalien.
    Chris

  4. Aller Anfang ist schwer. Ganz besonders, wenn man den Raspberry Pyi nicht physisch erreichen kann, weil zu weit weg.
    Mit der Leistung des Raspi Kameramoduls war ich nur so lala zufrieden. Ein Update der Firmware mit –>sudo rpi-update<– bringt bessere Leistung bei schlechten Lichtverhätnissen. Außerdem funktioniert jetzt der Night Modus besser (aber auch nicht berauschend).
    Mit dem Parameter -ss kann man die Belichtungszeit verlängern. Bringt auch etwas. -ISO xxx geht jetzt auch.
    Klassisch: Beim Updaten (remote) schmiert mir der Raspi ab und ist nicht mehr erreichbar. Keine Bilder für 2 Wochen :-(
    Ich hänge mit dem Teil an einem UMTS Router, weshalb man nur über Umwegen darauf zugreifen kann (mehrfache Network Address Translation und firewalls beim Provider). Bisher hab' ich das mit Pagekite gelöst; das ist zwar einfach zu konfigurieren aber kostenpflichtig und leider nicht sehr stabil. Nach dem Durcharbeiten von gefühlten 10.000 Internet Anleitungen, hab ich es jetzt geschafft, einen "Reverse SSH Tunnel" aufzusetzen, der den Raspi von außen per Browser aber auch per SSH von meinem zweiten Raspi aus erreichbar macht. Evtl komme ich demnächst dazu eine Anleitung zu schreiben.
    Manchmal hängt sich der UMTS Router auf. Als Fangleine habe ich jetzt eine Zeitschaltuhr dazwischengeschaltet, die den Router nachts aus- und wieder einschaltet. Eine Fehlerquelle weniger.
    Zusätzlich hat mein Raspi jetzt eine Temperatur- und Luftdruckmessung mit einem BMP085 Sensor bekommen. Das Ganze erlaubt auch eine 10 Tage Historie der aufgezeichneten Werte.
    Auch das werd' ich hoffentlich auf meiner Seite dokumentieren können.
    Das wars erstmal an Neuigkeiten vom Gardasee. Was macht die "Schwestercam" Seite? Meine Rusticam finde ich da noch nicht…
    Gruß
    Chris

  5. Pingback: Blick auf den Tab, aus dem Fenster - Webcam im Custom Tab | Klas Roggenkamp « Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *