Laitteisto

Sääsivun laitteiston ja ohjelmiston kuvaus

Sensorit

Käytössä olevat sensorit:

  • Lämpötilasensori DS18B20
  • Tuulimittari

  • 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'
    #