Oh Mann Leute
Habe heute Nachmittag stundenlang nach einem Fehler gesucht, wo keiner war. Naja, einfach eine Stringvariable zu klein bemessen und die ganze Sch... ist einfach stehen geblieben. Regelrecht eingefroren. So was habe ich noch nie gesehen !
OK, jetzt sind die Meßwerte alle online, sogar die Druckmessung sollte funktionieren. Kann es leider noch nicht prüfen, da die kleine Platine für den Drucksensor noch nicht da ist.
Ein paar Grafiken, die dynamisch alle 6 Minuten aktualisiert werden :
(je kleiner der Wert, desto klarer der Himmel
)
Und hier die "paar" Scripte, die das ins WWW übertragen :
# vi /page1.txt
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="600; url=seeing.htm">
<meta http-equiv="Pragma" content="no-cache">
<meta name="GENERATOR"
content="Mozilla/4.78 [de] (Windows NT 5.0; U) [Netscape]">
<title>Sternhimmel über Ulm</title>
</head>
<body
style="background-color: rgb(0, 0, 0); background-image: url(verlauf.jpg);"
link="#ffff00" text="#000000" vlink="#ffff00">
<center>
<h1><font color="#dfdfdf">Wetter- und Seeingvorhersage für Ulm
</font></h1>
<p>
</p>
<hr>
<p><img src="/scratch/webcam.jpg" nosave=""></p>
<p>
<font color="#dfdfdf">Die Kamera zeigt den Himmel in westlicher Richtung aus Weidach. Das Bild wird alle 10 Minuten aktualisiert.</font></p>
<br>
<font color="#dfdfdf"><b>Aktuelle Wetterdaten aus Weidach :</b><br>
</font><br>
<table style="color: rgb(223, 223, 223); text-align: left; width: 300px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
# vi /page2.txt
</tbody>
</table>
<p><font color="#dfdfdf">Die Meßwerte der letzten 24 Stunden grafisch dargestellt :</font></p>
<p> <img src="temp.gif" align="middle"> </p>
<p> <img src="humi.gif" align="middle"> </p>
<p> <img src="druck.gif" align="middle"> </p>
<p> <img src="wolken.gif" align="middle"> </p>
</center>
<p>
</p>
<hr>
<p><font color="#dfdfdf">Zurück zur <a href="index.htm">Startseite</a>.</font></p>
</body>
</html>
# vi /messung.sh
#!/bin/sh
# Werte von Wetterstation ausgeben, aufbereiten und auf Webserver übertragen
ZEILE=`grep '*' /logfile.txt | tail -1`
echo "$ZEILE" >> /logfile.dat
FELD1=$(echo $ZEILE | cut -d , -f3)
FELD2=$(echo $ZEILE | cut -d , -f4)
FELD3=$(echo $ZEILE | cut -d , -f5)
FELD4=$(echo $ZEILE | cut -d , -f8)
FELD5=$(echo $ZEILE | cut -d , -f6)
cat /page1.txt > /seeing.htm
echo '<td>Temperatur :</td><td style="text-align: right;">' >> /seeing.htm
echo "$FELD1" >> /seeing.htm
echo '°C</td></tr><tr>' >> /seeing.htm
echo '<td>Tau- oder Frostpunkt :</td><td style="text-align: right;">' >> /seeing.htm
echo "$FELD2" >> /seeing.htm
echo '°C</td></tr><tr>' >> /seeing.htm
echo '<td> rel. Luftfeuchte :</td><td style="text-align: right;">' >> /seeing.htm
echo "$FELD3" >> /seeing.htm
echo '%</td></tr><tr>' >> /seeing.htm
echo '<td>Luftdruck :</td><td style="text-align: right;">' >> /seeing.htm
echo "$FELD4" >> /seeing.htm
echo 'mbar</td></tr><tr>' >> /seeing.htm
echo '<td>Wolkentemperatur :</td><td style="text-align: right;">' >> /seeing.htm
echo "$FELD5" >> /seeing.htm
echo '°C</td></tr>' >> /seeing.htm
cat /page2.txt >> /seeing.htm
tail -241 /logfile.dat > /logfile.tmp
/opt/bin/gnuplot /script.plt
ftp -n
www.sternhimmel-ueber-ulm.de << EOT
user <zensiert> <zensiert>
put /seeing.htm /seeing.htm
put /temp.gif /temp.gif
put /humi.gif /humi.gif
put /druck.gif /druck.gif
put /wolken.gif /wolken.gif
bye
EOF
# vi /script.plt
set term gif
set size 1.0,0.5
set border 15
set datafile separator ","
set data style lines
set grid
unset key
set xrange [0:240]
set xtics ("0" 240,"" 230,"" 220,"" 210,"-4" 200,"" 190,"" 180,"" 170,"-8" 160,"" 150,"" 140,"" 130,"-12" 120,"" 110,"" 100,"" 90,"-16" 80,"" 70,"" 60,"" 50,"-20" 40,"" 30,"" 20,"" 10,"-24" 0)
set yrange [-20:40]
set title "Temperatur (rot) Tau-/Frostpunkt (grün) [°C]"
set out "/temp.gif"
plot "/logfile.tmp" using :3, "/logfile.tmp" using :4
set yrange [0:100]
set title "relative Luftfeuchte [%]"
set out "/humi.gif"
plot "/logfile.tmp" using :5
set yrange [900:1100]
set title "Luftdruck [mbar]"
set out "/druck.gif"
plot "/logfile.tmp" using :8
set yrange [-30:0]
set title "Wolkentemperatur [°C]"
set out "/wolken.gif"
plot "/logfile.tmp" using :6
# vi /opt/etc/init.d/S99wetter
#!/bin/sh
# Startet USB-Verbindung mit Wetterstation und Logging
killall cat
/opt/bin/stty -F /dev/ttyUSB0 19200
/opt/bin/nohup cat /dev/ttyUSB0 > /logfile.txt &
killall USB_Detect
# vi /etc/crontab
1 * * * * root /opt/bin/ntpclient -s -h 0.pool.ntp.org > /var/log/ntp.log && hwclock --systohc --utc
50 19 * * * root /opt/etc/init.d/S99wetter
*/6 * * * * root /messung.sh
Jeder mit ein bißchen Linux-Kenntnisse sollte das eigentlich zum Rennen bringen
Thomas