Home Sonstige Artikel Tests Site Map counter

Testbericht Tinkerforge Wetterstation

Im Zuge der Arduino-Welle und dem Trend der Hardware-Hacks wollte ich auch mal etwas angehen was ich mir schon immer gewünscht hatte - eine eigene Wetterstation.

Nun kann man eine Wetterstation heute für 30 Euro kaufen. Schon billige Modelle zeigen die Luftfeuchtigkeit und Temperatur an. Wenn man das doppelte anlegt auch den Druck und sie sind dann fürs Freiland geeignet oder haben Meßfühler, die über Funk die Daten senden und die man dann im Freien unterbringen kann, während die Station selbst drinnen ist.

Doch das war mir zu wenig. Meine Wetterstation sollte:

Als ich mir die Arduinos, die man heute als Einsteigerbausätze empfiehlt weil sie eine einfache Programmiermöglichkeit und Windows Tools bieten ansah, stellte ich rasch fest, dass es da problematisch werden würden. Der Knackpunkt war das Speichern der Meßwerte. Wenn man nur alle 5 Minuten einen Messwert erfasst und dieser im Schnitt 2 Byte belegt (16-Bit Analogwert, ein Byte für maximal 256 Zustände reicht nicht mal um die Temperatur auf 0,1 Grad genau zu messen) dann braucht man bei drei Basiswerten (Luftdruck, Umgebungstemperatur und Luftfeuchtigkeit) schon 6 x 12 Byte pro Stunde oder 1,72 KByte am Tag. Soll der Speicher ausreichend sein für 14 Tage Urlaub so braucht man mindestens 24 KByte Speicher zu denen dann auch noch andere Variablen kommen und das ist schon eine kleine Anforderung an das System. Normalerweise wird man öfters als nur alle 5 Minuten messen. Diese Daten muss der Controller speichern können, denn man vergisst vielleicht mal das tägliche Auslesen oder geht eben mal in Urlaub.

Bei den Arduinos bräuchte ich da schon den Arduino due, der jedoch wegen der anderen 3,3 V Eingangsspannung nicht ganz kompatibel mit den "normalen" Arduinos ist. In der ct' kam dann noch ein Artikel über den Color Maximite, einen Computer mit BASIC Interpreter und 128 KByte RAM, also nochmals 32 kbyte mehr als beim Arduino Leonardo. Er war lange Zeit für mich die beste Option weil er auch einen SD-Slot und VGA Anschluss hat, d.h. man kann die Daten direkt auf einer Karte ablegen und man braucht keinen PC um ihn mal kurz zu checken ob alles läuft, sondern kann Keyboard und Monitor anschließen und ihn "echt" wie einen früheren Heimcomputer programmieren (das war auch die Intension des Autors).

Offen war bei beiden die Sensorfrage und wie man die zum Laufen bekommt. Wenn ich bei Reichelt oder anderen Händlern nur die verfügbaren Sensoren für Temperaturen anschaue bekomme ich etliche pro Anwendung angezeigt, mit unterschiedlichen Spezifikationen aber auch Anschlüssen. Da ich kein Bastler bin schreckte mich das eher ab. Für mich wichtig war ja nicht das zusammenbauen oder Löten, sondern die Programmierung.

Das änderte sich, als ich in der Weihnachtsausgabe der ct einen Artikel für Geschenkideen fand und da gab es auch die die der Tinkerforge Bricks für "Bastler ohne Lötkolbenambitionen". Die Firma Tinkerforge stellt ein System her das aus einem Brick und mehreren Bricklets besteht. Ein Brick ist eine etwa 2-3 cm im Quadrat große Platine mit einem Microcontroller und 4 Anschlüssen an den Seiten. An jedem Anschluss kann man einen Bricklet anbauen. Das kann wie in meinem Falle ein Sensor sein, aber auch ein Aktor (Motor) eine I/O Einheit oder eine komplexe Apperatur wie ein GPS-Gerät oder ein Inertialsystem. Dann gibt es noch Extension, das sind Erweiterungen des Systems wie Wlan. Braucht man mehr als vier Anschlüsse muss man einen weiteren Brick aufmontieren - so kommt der Name zustanden, es entstehen Würfel.  Das ganze erinnert schon ein bisschen an LEGO - nur eben mit Elektronikbauteilen,

Neben dem für mich interessanten Aspekt dass man ein System hat, das aufeinander abgestimmt ist also nicht man nach Sensoren suchen muss und die selbst löten sondern einfach Kabel einstecken und fertig ist die Sache, fiel mir auch die Sprachenunterstützung für die Programmierung auf. Es gibt nicht nur wie bei Arduino eine IDE für C, sondern es gibt Bindings, sprich Bibliotheken für C/C++ sondern für andere Programmiersprachen wie PHP, Perl, Ruby, Phyton aber auch Anwendungsprogramme mit Programmierschnittstellen wie Labview oder Matlab. Meine Lieblingssprache Pascal war auch dabei. Anstatt in einer eigenen IDE zu arbeiten nimmt man seine Lieblingsentwicklungsumgebung und bindet nur die Bibliotheken für die Ansteuerung oder Abfrage ein.

Die eigentliche Ansteuerung der Bricks erfolgt über einen Brickdämon der die Api aufrufe an den Brick weitergibt. mit einem Brickviewer, den es ebenfalls gibt kann man selbst die ganzen Meßwete in Realzeit ansehen. Für die Programmierung stellt es sich sehr einfach dar:

BrickviewerMan braucht pro Brick eine Verbindung, die interessanterweise über IP geht. Man übergibt ihr den Host und den Port (der steht fest auf 4223). Die einzelnen Bricklets werden dann über eine UID eine dreistellige Zeichenkette angesprochen. Deise kann man über den Brickviewer auslesen. Die Aufrufe der Programme sind recht simpel:

function TMessdaten.GetDruck: double;
begin
  if BarometerUID <> '' then
    Result := Druck.GetAirPressure / 1000
  else
    Result := 0;
  lastdruck := Result;
end;

Druck ist ein Objekt vom Typ TBarometer und es gibt einfache aufrufe um den momentanen (Druck)Wert auszulegen oder über Callback sich periodisch informieren zu lassen. Man kann die Bricks auch von der Ferne auslesen, so zeigt dieses Bild z.B. das meine Bricks nicht am Rechner angeschlossen sind (localhost) sondern auf meinem Raspberry Pi einen Stock höher auf dem Balkon. Ich vermute mit DnyDns und Port-Forwarding wird man sie auch aus dem Internet abfragen können, eine Anwendung der Überwachung ihres Serverraums zeigt die Tinkerforge Seite.

Was allerdings ein Riesenunterschied zum Arduino ist, ist das die Bricks nicht alleine arbeiten können. Es ist also kein Microcontroller, den man mit einem Programm füttert sondern sie werden an den USB-Port angeschlossen und müssen dotrt auch angeschlossen bleiben Mit einer WLAN-Erweiterung kann man sie auch aus der Ferne ansprechen, aber in jedem Falle haben die Bricks keinen Speicher für Programme. Da ich dafür nicht einen Rechner zum Überwachen opfern wollte behielt ich die Idee der Umsertung meiner Wetterstation mit Tinkerforge erst mal im Kopf.

Das änderte sich als der Raspberry Pi 2 herauskam. Der Raspberry Pi in der Version 1 (Model B) nutzte ich während meines Urlaubs. Ich habe kein Notebook, kein Tablett und halte aus ergonomischen Gründen auch nichts von den Dingern. Im Urlaub konnte ich mit dem Raspi 1 aber die Mails checken und surfen - mit viel Geduld. Nicht mal als ich 1997 mit Internet anfing, kam es mir so lahm vor wie mit dem Raspberry.

In diesem Februar kam das neue Modell 2 auf den Markt mit vier (anstatt zwei) USB-Port, einem Vierkernprozessor und höherer Taktfrequenz und 1 GByte RAM anstatt 512 MB. Das erschien mir eine bessere Wahl. Was aber mit dem alten Raspi machen? Nun ich beschloss ihn dazu zu benutzen die Tinkerforge Bricks zu betreiben. Es gibt die Tools auch für den Raspi und Lazarsus als freie Pascal IDE läuft auch unter dem Raspi.

Ein Projekt "Wetterstation mit dem Raspberry" gibt es auch auf der Webseite von Tinkerforge. Ich bestellte mir das Kit, das für rund 120 Euro besteht aus:

Dass Zusammenbauen ging ganz schnell. Ich habe bisher nur die Sensoren miteinander verschraubt. Das erlaubt es leichter den Testaufbau umziehen zu lassen, das war wie sich zeigte auch nötig.

Ich habe dann eine Anwendung geschrieben. Dabei habe ich einiges erlebt, doch das liegt nicht an den Bricks, sondern den Mühen der Cross-Plattform Entwicklung mehr dazu in dem Blog dazu. Die Anwendung sollte eigentlich nur eine Konsolenanwendung sein, die Webseiten erstellt, aber keine Werte anzeigt. Wie sich zeigte ging das nicht so einfach. So wurde schließlich eine grafische Anwendung draus. Das Ergebnis kann man hier bestaunen. Der Raspberry sammelt die Daten, speichert sie regelmäßig über FTP auf meinem Webserver ab und generiert die Diagramme und Webseiten. Später ist dann ein Verarbeiten der Daten über Tage hinweg um die Jahreszeiten und Klimatischen Veränderungen zu visuelleren, doch dazu muss es erst mal genügend Daten geben. Dies erfolgt dann aber mit einem Programm auf dem PC.

Was ist nun von der Wetterstation als "Kit" zu halten? Nun man sollte sich erstmal informieren was man will. Ich habe zu dem Kit gegriffen in der Hoffnung eine abgestimmte, "Read to Use" Lösung für eine Wetterstation zu bekommen. Der Begriff Wetterstation impliziert für mich das die Station draußen ist, bei mir z.B. auf dem Balkon. Was Tinkerforge verkauft, ist eine "Indoor-An-den-PC" Station. Wetter gibt es aber nicht in Räumen sondern nur draußen. Das sieht man an einigen Punkten:

Was fehlt ist dafür ein Temperatursensor. Der Barometersensor hat ein Temperaturmessfunktion zwischen -40 und +85 Grad. Der Wert ist in 1/100 Celsius. Aber das Thermometer soll ungenauer als die dezidierten Temperatursensoren sein, was angesichts der Genauigkeit verwundert. Es gibt bei Tinkerforge zwei Temperatursensoren, einen einfachen und einen teuren. Der einfache misst nur die Temperatur auf 0,5 Grad genau. Der zweite mittels Infrarot hat sowohl einen höheren Bereich (könnte auch für die Überwachung des Kuchens im Backofen genutzt werden (er geht bis +300°C) und kann die Temperatur der Umgebung und eines Objektes vor dem Sensor messen. Der erste ist für eine Wetterstation zu ungenau, der zweite kostet dann über 20 Euro

Beim Barometer ist es so, dass man einen Referenzluftdruck übergeben kann, anhand dessen die Höhe berechnet wird. Bei meinem Ort (411 m Höhe) wäre nach der barometrischen Höhenformel der Reifendruck  964,85 hPa. (965 HPa entsprechen rund 1013 Hpa auf Meereshöhe. 1013,25 hPa sind der Referenzwert für die Meereshöhe - liegt der reale wert höher so ist man in einem Hoch, umgekehrt wäre man in einem Tief),Übergebe ich dies an den Sensor so sinkt die Höhenausgabe von 462 auf 54 m. Der ausgegebene Luftdruck des Sensors verändert sich aber nicht. So ist mir der Zweck nicht klar. Ich komme wahrscheinlich auf den Luftdruck in Meereshöhe wenn ich die Differenz vom Referenzwert für Meereshöhe (1013,5 mb) und Referenzluftdruck zum aktuellen Luftdruck addiere. So zeigt die Deutschlandkarte bei mir einen Luftdruck zwischen 1005 und 1010 hPa an, ich messe aber nur 960. Korrigiere ich diesen Wert um die Differenz von mittlerem Luftdruck auf Meereshöhe und in 411 m Höhe so komme ich auf 1007,6 hPa, also ein Wert der nach aktueller Wetterkarte passt. Warum der Sensor da nichts macht ist mir unverständlich.

Was vorbildlich ist: die Webseiten von Tinkerforge. Zu jedem Bricklet gibt es eine Beschreibung nicht nur allgemein sondern mit allen Spezifikationen und die Api für jede Programmiersprache wird auch erklärt. Man kann sich vorher im Details informieren ob es das richtige für einen ist und wie man es ansprecht. Die Unterstützung an Plattformen ist sehr groß. Der Brick Dämon gibt es als ARM-Debian Packet. Damit kann man neben dem Raspberry Pi auch andere Kleincomputer einsetzen die auf Debian fußen. Tinkerforge hat auch einen eigenen Kleinrechner dieser Art im Programm, der sogar noch kleiner als ein Raspberry ist: der Red-Brick Anders als beim Raspberry kann man Programme direkt auf den Red-Brick übertragen und das in sehr vielen Programmiersprachen. Damit spart man sich wahrscheinlich die Problem der Crossplattformprogrammierung. Dafür ist er mit 70 Euro auch gut 30 Euro teurer als ein Raspberry Pi bei weniger Schnittstellen.

Wetterstation 2In der Summe: In der Handhabung ist das Tinkerforge System wirklich einfach. es eignet sich für alle die gerne Hardwareprojekte angehen wollen und jetzt nicht die Kenntnisse über alle Sensoren haben die man verbauen kann. Zudem braucht man keine Lötkenntnisse oder muss schon mal viel mit Elektronik zu tu gehabt haben. Ich denke das eignet sich auch sehr gut für Jugendliche die damit gut experimentieren können (den Zusammenbau schaffen auch Kinder, aber man muss ja auch noch programmieren).

Der Nachteil ist das es eben ein System aus Bauteilen eines Herstellers ist. Man ist daher auf diesen angewiesen und es ist ein bisschen teuer als nur ein Microcontroller und einige Sensoren beim nächsten Elektronikmarkt zu kaufen. Wer nur die Sensoren nutzen will, die ja schon in fertigen Miniplatinen stecken sodass man nicht SMD-Bauteile löten will, für den gibt es auch eine Erweiterung welche die Signale als Drähte herausschleift.

Für das konkrete Projekt Wetterstation empfehle ich den Basisbrick zu kaufen und die Sensoren die man braucht. Das LCD-Feld ist weitegehend unnötig. Der Lichtsensor nur in Innenräumen sinnvoll nutzbar. Es gibt einen zweiten Sensor zur Farbmessung der auch Licht misste und dessen Empfindlichkeit man regulieren kann. Vielleicht eignet der sich als Ersatz. Für eine Wetterstation wäre auch noch ein Sensor der die Umgebungslautstärke misste interessant. Besonders wenn man neben einem Flughafen wohnt oder laute Nachbarn hat.  Auch den gibt es im Programm.

Nach den Erfahrungen die ich mit dem Crossplattform-Compilieren gemacht habe würde ich empfehlen wenn man die Station alleine betreiben möchte, also nicht über USB am Arbeitsplatz PC der auch mal in den Ruhezustand geht oder abgeschaltet wird, entweder einen PC zu nehmen der dauernd läuft bei dem man ein x86-Programm laufen lassen kann (manche Leute haben ja einen solchen als Medienserver, NAS oder Printserver) und es dort zu installieren oder auf den RedBrick zurückzugreifen.

Addendum Februar 2015

Die Wetterstation habe ich im Juli aufgesetzt, bis zum September habe ich noch einiges dran gemacht und nun, nach einem halben Jahr will ich etwas Bilanz ziehen.

Den oben erwähnten Ambient Light Sensor hat Tinkerforge nun durch eine 2.0 Version ersetzt die ich dann im September auch gekauft und eingesetzt habe. Sie geht bis 64.000 Lux, das klingt nach viel mehr als die rund 900 Lux des Vorgängers, 64000 Lux werden aber selbst im Winter bei vollem Sonnenschein erreicht. Nach Wikipedia kann die Beleuchtungsstärke im Sommer bis 170.000 Lux erreichen. So war im Sommer das Lichtdiagramm über Stunden bei 64.000 Lux. Der Sensor hat einen höheren dynamischen Bereich ist aber auch etwas heikler. Man kann Belichtungsspielraum und Integrationszeit wählen. Macht man das falsch so liefert er einen konstanten Wert zurück. Nach einigem Experimentieren gab ich es auf dynamisch den Bereich anzupassen (rein theoretisch sollte man mit dem Sensor eine Vollmondnacht von einer Neumondnacht unterscheiden wenn man den Bereich entsprechend anpasst). Ich bekam trotz Umschalten des Bereiches wenn es heller wurde immer den Fehlerwert. Wenn man ihn mit dem maximalen Bereich von 0 bis 64.000 Lux und 50 ms Integrationszeit betreibt hat man vielleicht bei 1-10 Lux einen hohen Fehler, doch der ist eigentlich nicht relevant, das ist Dämmerung vor Sonnenaufgang die wir schon als sehr dunkel empfinden.

Als Toolkette hat sich bei mir etabliert: Auf dem PC programmieren und testen, dann über Remote Desktop auf einem Raspberry Pi 2 kompilieren und das Programm dann auf dem Raspi 1 hochspielen. Der letzte fungiert als Wetterstation. Er hat sich als zuverlässiger als der Raspi 2 herausgestellt und wird von mir auch zu nichts anderem benutzt weil er so langsam ist. Der Raspi 2 hing ab und an. Der Raspi 1 läuft seit rund 5 Monaten ohne Probleme. Ausfälle gab es nur wenn ab und an die Netzwerkverbindung abriss, was bei meinem Internet over Poeweline ab und an vorkommt. Das lies sich durch dynamisches Erzeugen des FTP-Objektes und Vernichten nach Übertragen der Daten lösen. Ein durch eine kurzzeitig gestörte Verbindung hängendes FTP-Objekt hält so nicht den Transfer der Daten auf, sie setzt nur eben mal aus, doch eine Viertel Stunde später wird ein neues erzeugt.

Der Raspi 2 erzeugt seit dem Upgrade von Wheezy auf Jessie nun auch Binarys die auf dem Raspi 1 laufen (das war beim Vorgänger nicht der Fall, allerdings habe ich bei dem auch den Compiler aus den Quellen neu erstellt weil die von der Raspberry Foundation ausgegebene Version hoffnungslos veraltet war). Ich habe so eine bequeme Toolkette und eine funktionierende Wetterstation.

Die Station verzichtet nun auf das Gehäuse. Ich habe die Sensoren direkt mit kleinen Nägeln an der Wand befestigt, den Raspberry Pi in eine alte Eiscremeverpackung mit zwei Löchern für die Kabel gesteckt und das ganze mit Steckdosenleiste und einem Internet über Stromnetzadapter durch eine Plastiktüte geschützt. Das klingt abenteuerlich, hat aber sowohl Schnee wie auch strömenden Regen bei einem Sturm gut überstanden.


Sitemap Kontakt Neues Impressum / Datenschutz Hier werben / Your advertisment here Buchshop Bücher vom Autor Top 99