Die eigentliche Sinatra-Webanwendung steckt in den Zeilen 8 bis 13. Der Aufruf von erb :index baut die Daten in die Webseite ein, die wiederum ab Zeile 18 gleich in das Skript eingebettet ist. Erb ersetzt in Zeile 23 den Code <%= @data %> durch den Inhalt der Variable @data. Das Ergebnis im Browser zeigt Abbildung 2.
Um das regelmäßige Erfassen der Daten kümmert sich ein Cron-Job mit einem stündlichen Aufruf des Lade-Skripts aus Listing 7. Das Skript legen Sie im Verzeichnis /etc/cron.hourly ab und markieren es mit sudo chmod a+x crontab_pi als ausführbar. Das im Listing aufgeführte Skript load_data liest die Messdaten aus, schreibt sie in die CSV-Datei und lädt diese in die Datenbank.
Listing 7
30 * * * * /usr/local/bin/load-data > /dev/null 2>&1
Ausblick
Listing 6 hat das Prinzip einer Sinatra-Webanwendung gezeigt, in der mit relativ wenig Code eine vollwertige Webanwendung entsteht. Der Rest ist Fleißarbeit und besteht größtenteils darin, die anderen Messwerte der Wetterstation einzubeziehen und das Programm etwas aufzuräumen. Ein mögliches Resultat dieser Bemühungen zeigt Abbildung 3.
Das vorläufige Ergebnis meiner Wetter-Anwendung habe ich als Quellcode in gitHub.com [5] eingestellt. Um die Sourcen mit Git herunterzuladen und auszuprobieren, erzeugen Sie zunächst eine lokale Kopie:
$ git clone git://github.com/rheikvaneyck/rnexus.git
Später können Sie Aktualisierungen dann mit git pull nachladen. Noch ist der Code an vielen Stellen verbesserungsfähig. Einen Einblick in die Möglichkeiten, mit dem einem Raspberry Pi auch eigene Webanwendungen zu bauen, verschafft er aber allemal.
Infos
- TFA Wetterstation Nexus: http://tfa-dostmann.de/index.php?id=62
- Te93tool: http://te923.fukz.org/
- Rbenv: https://github.com/sstephenson/rbenv
- Highcharts: http://www.highcharts.com/
- Rnexus Wetter-Web-Anwendung: https://github.com/rheikvaneyck/rnexus







