Hallo,
in einem anderen Fred hab ich ja die Realisation einer Pi-basierten Webcam mit Dateiupload beschrieben.
Die Lösung ist nun vor Ort im Einsatz, es ist aber ein kleines Problem aufgetaucht.
Kurz zum Hintergrund.
Hiermit ermittle ich die Temperatur (/usr/bin/gettemp.sh):
#! /bin/bash
# Temperatur des 1Wire Sensors auslesen
tempread=`cat /sys/bus/w1/devices/10-000802c3c507/w1_slave`
temp=`echo $tempread | egrep -o '.{5}$'`
temp2=`echo "scale=1; $temp / 1000" | bc`
Das Skript läuft alle 20 Min:
#!/bin/sh
#Kamerabild aufnehmen und speichern
raspistill -w 1024 -h 768 -q 70 -t 3000 -sh 10 -ex auto -awb auto -vf -hf -o /home/pi/wc_image.jpg
# Temperatur des Sensors auslesen
/usr/bin/gettemp
#aufgenommenes Bild mit Textstring versehen
convert /home/pi/wc_image.jpg \
-geometry 1024x768 \
-quality 80 \
-gravity North \
-background black \
-extent 1024x788 \
-gravity SouthEast \
-fill white \
-pointsize 16 \
-draw "text 0,0 'Webcam Flugplatz
Aichelberg `echo
$(date)` Temperatur `echo ${temp2}` °C'" \
/home/pi/wc_image_mod.jpg
#modifiziertes Bild via FTP hochladen
/bin/ftpupload /home/pi/wc_image_mod.jpg /
Alles anzeigen
Soweit läuft alles ordentlich, wenn auch die Internetanbindung (altes Android Smartphone als WLAN AP) via GPRS grenzwertig ist. Nur Temperaturen unter 10°C werden nicht "eingestempelt" (nur "°C" im Bild).
Ich vermute es liegt an der Zeile hier:
Da unter 10°C der String nur noch vierstellig ist, könnte hier (oder in der folgenden Berechnung) das Problem liegen.
Was muß ich ändern, damit auch negative Zahlen und auch 6stellige Strings (bei 2-stelligen Minusgraden) kein Problem bringen?
Ist es nicht besser, das t= in der Sensordatei des 1-Wire Temperatursensors abzufangen und alles danach bis zum Zeilenende einzulesen? Nur wie?
Als Programmier Noob steh ich da voll auf dem Schlauch.
Gruß
Onki