Interessiert in meine neueren Projekte?
Logo

Über das Projekt

Dieser Text hier ist inzwischen etwas veraltet.
Aktuellere und ausführichere Informationen findet man in meiner vorwissenschaftlichen Arbeit über das Projekt:

zur PDF

In meinem Projekt möchte ich mithilfe eines Raspberry Pi Umweltdaten aufzeichnen, speichern und auswerten.

Zur Aufzeichnung verwende ich einen Temperatursensor, einen Luftdrucksensor, einen Luftfeuchtesensor und einen Luftqualitätssensor. Die Daten werden abgespeichert und einerseits grafisch mithilfe von Javascript dargestellt und andererseits rechnerisch mit einem von mir geschriebenen Python-Programm ausgewertet.

Aufzeichnung:

Die Sensoren werden regelmäßig von einem Shell-Script (main.sh) ausgelesen.
Dieses Skript bereitet die Daten auf und speichert sie in eine csv-Datei. Zusätzlich werden Textdateien generiert, welche von der Weboberfläche und dem Display regelmäßig ausgelesen werden. Bei jedem 1000. Aufruf wird die CSV-Datei gesichert, per E-Mail an mich verschickt und ich darüber mit einer Pushbenachrichtigung am iPad benachrichtigt.

Bild des Displays

Display:

Damit man nicht immer zum Computer laufen muss, um die aktuellen Werte zu erfahren, habe ich ein Display an den Raspberry Pi angeschlossen. Ich habe ein Beispielprogramm erweitert, damit es eine von main.sh generierte Textdatei ausliest und der Inhalt auf mehreren Seiten dargestellt wird. (→ display.py)

Webinterface:

Zur grafischen Darstellung der Daten habe ich zwei Webseiten erstellt, die auf einem Apache-Webserver am Raspberry Pi liegen. Mithilfe von Javascript und Dygraphs wird ein Diagramm der Daten dargestellt. Zur Darstellung der aktuellen Werte gibt es eine zweite Seite, die mithilfe von Javascript alle 5 Sekunden die aktuellen Daten nachläd und grafisch darstellt. Beide Seiten können auf mobilen Geräten (iOS, eventuell auch Android) nachdem sie zum Homebildschirm hinzugefügt wurden als Web-Application genutzt werden (im Vollbildmodus, eigenes Icon am Homebildschirm). Wenn die Aufzeichnung gerade aus irgendeinem Grund nicht laufen soll, wird der Webseitenbesucher benachrichtigt.

Screenshot von Anzeige der aktuellen Werte

Endauswertung:

Nachdem Daten aufgezeichnet wurden, kann die fertige CSV-Datei rechnerisch ausgewertet werden.
Zunächst muss sie mit einem Shell-Script vorbereitet werden. Danach kann es ein von mir geschriebenes Python(3)-Programm auswerten. Hierbei wird die Datei zuerst nach Ausreißern durchsucht, welche anschließend angezeigt werden. Danach kann man den Zeitraum auswählen, in dem die Messung ausgewertet wird. Danach wird das arithmetische Mittel, Minimum, Maximum und Standardabweichung für jeden Sensor berechnet. („Video“ des Programms)

Gnuplot:

Ursprünglich habe ich versucht die Diagramme mit Gnuplot zu generieren. Da die fertigen Bilder jedoch statisch sind und der Raspberry Pi mit zunehmender Datenmenge sehr lange für die Erstellung benötigt, habe ich dies aufgegeben. (zu Gunsten von Dyngraphs)

Autostart:

Damit der Start und Stop der Aufzeichnung (und des Displays) einfacher funktioniert habe ich ein init.d-Skript erstellt. Nun kann mit „sudo service aufzeichnung {start/stop/restart} die Aufzeichnung einfach gesteuert werden. Zusätzlich wird die Aufzeichnung beim Hochfahren gestartet und vorm Herunterfahren gestoppt.

diverses:

Zusätzlich zu den wichtigen Teilen habe ich noch ein paar kleinere Funkionen, wie ein Windows Vista/7-Desktop-Gadget oder ein (etwas zu buntes) Logo für das Projekt.

Präsentationen

Während ich am Projekt arbeitete, hatte ich mehrmals die Möglichkeit es anderen vorzustellen. So konnte ich zum Beispiel am 23. April 2014 bei den EDU|days den Raspberry Pi – Anfänger/innen Workshop von meinem Klassenvorstand MMag. Rene Schwarzinger begleiten und dort den aktuellen Zwischenstand präsentieren.

Nach dem Workshop sprach mich Dr. Johann Stockinger an und fragte mich, ob ich beim computer creative wettbewerb teilnehmen möchte. Noch in dieser Woche habe ich diesen kurzen Text über mein Projekt 30 geschrieben und eingereicht.

Ein Monat später erfuhr ich, dass ich im Finale bin 31 und daher am 17. Juni 2014 mein Projekt vor einer Jury präsentieren darf. Nach einem langen Tag mit vielen Präsentationen erfuhr ich am Nachmittag: Ich habe den ersten Preis in der Sekundarstufe II erreicht. Anschließend schrieb ich im Sommer einen Artikel für das OCG Journal (Seite 33).

Am 6. Oktober 2014 hatte ich die Möglichkeit mein Projekt der Arbeitsgruppe Bildung, Wissenschaft und Forschung am 3. IKT-Konvent präsentieren.

komplette Wetterstation