Wetterdaten mit Linux aufzeichnen und verarbeiten

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche


...der Artikel befindet sich noch im Aufbau!


Inhaltsverzeichnis

Was soll das hier?

Angefangen hat die Geschichte eigentlich nur mit ein paar Experimenten mit Temperatursensoren an diversen Mikrocontroller-Boards (z.B. BLIT2008-Board mit 1-Wire und BLIT2008-Board-Thermo). Irgendwann kam der Wunsch auf, diese Temperaturmessdaten dauerhaft mitzuschreiben, zu archivieren (z.B. auf einer, an einem Mikrocontroller angeschlossenen SD-Karte) und die Verläufe in geeigneter Form anzuzeigen. Die Ergebnisse waren aber nicht allzu befriedigend, was an den beschränkten Ressourcen und Möglichkeiten der eingesetzten Mikrokontroller lag.

Also begann ich sukzessive die Temperaturmessungen mit einem "richtigen" Linux-Rechner aufzubauen. Nachdem dies gelungen war, reifte der Wunsch nochmehr Daten zu erfassen und zu visualisieren. Es kam also schrittweise die Aufzeichnung der Helligkeit, der Luftfeuchtigkeit und des Luftdrucks hinzu. Der derzeitige Stand ist auf einer kleinen Webseite einsehbar: Das Klima bei Uwe.

Dieser Wiki-Artikel soll ein wenig von den Techniken berichten, die hinter diesem System stecken. Vielleicht kann der eine oder andere Interessierte ein paar Anregungen für eigene Experimente finden.

Einige der technischen Grundlagen habe ich bereits in einem Vortrag "Busverkehr unter Linux" zusammengefasst, welchen ich 2012 auf dem Chemnitzer Linuxtag und der FrOSCon präsentiert habe.

Viel Spaß!

Hardware

Überblick

Rechner-Hardware

I2C-Bus

Allgemeines

Temperatur mit einem LM75

Helligkeit mit Fotowiderstand und Solarzelle

realtive Luftfeuchtigkeit mit einem HIH-4030

Luftdruck mit einem BMP085

1-wire-Bus

Allgemeines

Temperatur mit einem DS1820

LC-Display

Software

Datenbank

Zur Aufzeichnung/Archivierung der Messdaten bietet es sich an, eine Datenbank zu verwenden. Da eine serverbasierte Datenbank (wie z.B. MySQL) etwas überdimensioniert ist, habe ich mich für SQLite entschieden, zumal dafür auch ein sehr komfortables TCL-Interface existiert.

Es wurden mehrere Tabellen angelegt:

  • eine Tabelle für die 1-wire-Temperatursensoren
  • eine Tabelle für die ADC-Werte (Fotowiderstand, Solarzelle) aus der Helligkeitsmessung
  • eine Tabelle für den ADC-Wert des Feuchtigkeitssensors und dem Messwert des daneben plazierten Temperatursensor (LM75)
  • eine Tabelle für den Luftdruck-Wert und dem dazugehörigen Temperaturwert

Es werden jeweils die Messwerte ansich und der dazugehörige Timestamp abgelegt. Für jede Tabelle wurde ein Index auf dem Timestamp angelegt, um diverse Zugriffe zu beschleunigen.

Visualisierung

Diagramme mit gnuplot

Ansteuerung eines LC-Display

ToDo

Kontakt

Uwe

'Persönliche Werkzeuge