Sensorit
Käytössä olevat sensorit:
Arduino
Lämpötilan ja tuulen mittaustulokset kerätään Arduino-kehitysalustaa hyödyntäen. Mittausjärjestelmässä on kaksi Arduino Uno -alustaa käytössä.
Raspberry Pi
Mittaustuloksia lukuunottamatta kaiken muun sisällön tuottaa Raspberry Pi tietokone. Graafit, kuvat, twiitit yms. tuotetaan automaattisesti.
Ohjelmisto
Pelkkä rauta-alusta ei tee yksinään mitään, vaan sitä ohjaamaan tarvitaan ohjelmistoa. Kaikki tämän sivuston tuottamiseksi tehty ohjelmisto on enimmäkseen omaa tekoa. En ole koodari enkä harrasta ohjelmointia, joten tämän sivun tekeminen tarkoitti opiskelua alusta alkaen. Tässä esimerkiksi skripti, joka tuottaa 24 h lämpötilakaavion:
# Temperature outside
#
rrdtool graph /var/www/saasivu/images/outdaily.png \
-s "-1d" \
-a PNG \
--slope-mode \
--watermark "$(date +%d-%m-%Y) $(date +%H:%M:%S) (c) Janne Karaste" \
--title="Temperature in Mäntsälä, Finland, last 24 and 48 hours" \
--right-axis="1:0" \
--right-axis-label="Deg C" \
--vertical-label "Deg C" \
--height="225" \
--width="597" \
'DEF:temp2=/home/pi/sensors/rrddata/temperature.rrd:temp2:AVERAGE' \
'DEF:yesterday=/home/pi/sensors/rrddata/temperature.rrd:temp2:AVERAGE:end=now-24h:start=end-24h' \
'VDEF:temp2max=temp2,MAXIMUM' \
'VDEF:temp2min=temp2,MINIMUM' \
'CDEF:temp=temp2' \
'VDEF:slope=temp,LSLSLOPE' \
'VDEF:cons=temp,LSLINT' \
'CDEF:trend=temp,POP,slope,COUNT,*,cons,+' \
'SHIFT:yesterday:86400' \
'LINE1:yesterday#dddddd:Temperature 24...48 hours ago' \
'LINE0.5:temp2max#990000' \
'LINE0.5:temp2min#000099' \
'GPRINT:temp2:LAST:Current\: %2.1lf C \j' \
'CDEF:temp2blue=temp2,0,GT,UNKN,temp2,IF' \
'LINE1:temp2#ff0000:Temperature last 24 h, above 0' \
'GPRINT:temp2:MAX:Max\: %2.1lf C \j' \
'LINE1:temp2blue#0000cc:Temperature last 24 h, below 0' \
'GPRINT:temp2:MIN:Min\: %2.1lf C ' \
'LINE0.5:trend#000000'
#