Ein wie ich finde recht interessantes Projekt ist auch der Aufbau einer kleinen Wetterstation. Limitiert wird das ganze im Prinzip nur durch die eigene Vorstellungskraft sowie den Geldbeutel. Wobei der letztere allein schon bei der Auswahl der Sensorik gehörig strapaziert werden kann. Zunächst gilt es zu überlegen, welche Umweltgrößen eigentlich gemessen werden sollen. Hierfür bieten sich an:

Als Zusatzfeature soll die Station natürlich auch die aktuelle Uhrzeit anzeigen können. Die nötigen Informationen dafür finden sich hier.

Für alle oben genannten Größen lassen sich Sensoren in verschiedensten Bauformen und Preisklassen finden. Auch gilt es zu unterscheiden, ob deren Signal eine analoge oder digitale Größe ist.

Für die Temperatur bieten sich beispielsweise die folgenden an:

Für Druckmessungen findet man viele Sensoren, allerdings arbeiten nicht alle im eigentlich gewünschten Druckbereich. Verwenden könnte man beispielsweise:

Zum Messen der Luftfeuchte gibt es:

Zum Messen von Luftfeuchte und Temperatur ist dieser Sensor erhältlich:

Zuletzt noch zur Indikation der Helligkeit:

Wie man sieht, gibt es durchaus genügend verfügbare Sensoren für die gewählte Aufgabenstellung. Die Preise der einzelnen Elemente gehen von wenigen Cent für eine Fotodiode bis zu 25-30€ für einen Drucksensor bzw. den SHT75.

Die Visualisierung der gewonnenen und ausgewerteten Daten erfolgt über ein 4*20 LCD mit blauer Hintergrundbeleuchtung und weißer Schrift, denn die Sache soll unterm Strich schon ein "Hingucker" werden :-)
Allerdings muss ich schon hier darauf hinweisen, dass dieses Display mit dem Controller KS0073 bestückt ist. Dieser ist alles andere als HD44780 kompatibel, so dass ich einige Änderungen in der bis hierhin gut funktionierenden LCD-Bibliothek von Peter Pfleury vornehmen musste. Das Problem liegt darin, dass man bei der Initialisierung zunächst ein Extension-Bit aktivieren muss, um den 4-Zeilen-Modus aktivieren zu können. Danach muss das Bit wieder gelöscht werden. Die Anpassung der Display-Adressen (Zeilenbeginn) kann als formal betrachtet werden, da diese bei fast jedem Display zu ändern sind.

Nun gilt es, eine geeignete Wahl bezüglich des Mikrocontrollers zu treffen:

Für die Temperatursensoren von Dallas reicht im Prinzip ein Pin. Durch den 1-Wire-Bus ist es ohne Probleme möglich, diverse Sensoren an einen Pin anzuschließen und getrennt anzusprechen. Der AD592AN wird mindestens einen AD-Pin benötigen, welcher 10 Bit Auflösung beherrscht. Mit 8 Bit ist meiner Ansicht nach kein Blumentopf zu gewinnen. Es wird sich zeigen, ob eventuell noch ein externer Wandler mit 12 Bit hinzugezogen werden muss. Auch gilt es, eine geeignete Beschaltung für den Sensor zu entwickeln. Der SHT75 wird zwei weitere digitale Ports benötigen.
Der von mir verwendete Drucksensor benötigt einen AD-Pin mit 10 Bit Auflösung. Auch hier gilt es abzuwägen, ob der Anschluss eines externen AD-Wandlers nützlich ist.
Die kapazitiven Sensoren zur Messung der Luftfeuchte benötigen je nach gewählter Beschaltung entweder je einen digitalen Pin bzw. je einen AD-Pin.
Die Helligkeitssensoren benötigen funktionsbedingt auch je einen AD-Pin mit mind. 10 Bit Auflösung.
Gesamt zeigt sich, dass die Wahl allein aufgrund der AD-Fähigkeiten nicht mehr auf einen ATMega8 fallen kann. Deshalb werde ich einen ATMega32 (oder ATMega128) verwenden. Da die Kosten für den MC im Vergleich zu den Sensoren relativ gering sind, fällt dieser Schritt auch nicht weiter schwer.

Da ein Abhandeln der einzelnen Sensoren in einer HTML-Seite die Übersichtlichkeit doch arg gefährden würde, habe ich jedem eine eigene Seite gewidmet.

DS16S20

DS1620

AD592AN

LM75

MPXA4100A

MiniCap 2

SHT75

TSL250R

Wer der Meinung ist, dass das Verwenden so vieler Sensoren, welche von ihrer Funktion her zum Teil auch redundant sind, ein ziemlicher Overkill ist, der mag recht haben. Allerdings wollte ich möglichst viele gängige Sensoren ausprobieren. So ist auch ein besserer Vergleich der Sensoren untereinander möglich. In der endgültigen Applikation werden nicht alle verbaut, für einen Prototypen ist ein großes Testfeld aber durchaus etwas Feines.

Da zum sinnvollen Auswerten der gewonnenen Daten auch ein gewisses Grundwissen erforderlich ist, habe ich hierzu auch noch ein paar Informationen zusammen gestellt.

Grundlagen

Sobald meine Wetterstation in Bezug auf Platinendesign und Gehäuseentwurf fertig ist, werde ich natürlich wieder Bilder hier veröffentlichen. Wie die einzelnen Sensoren anzuschließen sind, wurde ja bereits in deren Einzelseiten behandelt.

Gesamt kann bereits gesagt werden, dass der SHT75 mein Favorit im "Sensortestfeld" war. Zu ihm sind gute Dokumentationen verfügbar und seine digital ausgegebenen Messdaten sind mehr als zufrieden stellend. Ein weiterer Vorteil ist, dass man sich größere Eichungen und Kennlinienaufnahmen schenken kann.
Auch als gut kann man den Lichtsensor TLS250R bezeichnen. Dieser besitzt vor allem die Fähigkeit, zwischen düster und dunkel noch unterscheiden zu können. Dies ist meiner Ansicht nach wichtiger, als wenn er zwischen hell und sehr hell unterscheiden könnte. Somit eignet er sich gut für Helligkeitsregelungen bei Anzeigen und ähnliche Sachen. Das ganze klingt zwar komisch, aber wer schon einmal etwas Ähnliches versucht hat, der weiß was ich meine :-)

Parallel zur Entwicklung auf MC-Ebene habe ich mich noch ein wenig mit der Datenvisualisierung befasst. Diese könnte zum einen mit einem Dotmatrix-LCD erfolgen oder auch über den PC. Ich habe mich zunächst mit der zweiten Variante befasst. Die PC-Schnittstelle wurde mit Hilfe von Visual C++ erstellt. Gute Hilfestellung beim Einarbeiten gaben mir:

www.codeproject.com
http://www.c-plusplus.de

Tutorials zur Programmierung mit den MFC (Microsoft Foundation Classes) findet man zuhauf im Internet. Gute Bücher sind dagegen sehr rar gesät. Es empfiehlt sich vor dem Kauf eines solchen bspw. die Kundenrezensionen bei Amazon zu bemühen.

Genug der Vorrede, heraus gekommen ist das folgende:

Damit in den Grafen auf der rechten Seite überhaupt etwas sichtbar wird, habe ich einmal kurz an den SHT75 gefasst. Der COM-Port kann beinahe frei konfiguriert werden. Mein Wetterstation-Prototyp sendet sekündlich einen kompletten Datensatz, dessen Inhalt auf der linken unteren Seite in blauer Schrift dargestellt wird. Dieser Datensatz wird noch anwachsen.

Ziel wird es einmal sein, dass die Wetterstation von einer externen Platine ständig Daten bekommt (vergl. Rubrik Wireless) und diese zu ihrem eigenen Datensatz hinzufügt. Gespeichert werden die Daten auf einem größeren Speicher (z.B. MMC). An den PC wird ein zusätzlicher Transceiver (Funk) angeschlossen. Startet man nun die Software, so beginnt diese automatisch eine Verbindung zur Wetterstation aufzubauen und diese sendet alle verfügbaren Daten (incl. History). Der PC schreibt diese Daten vorerst in ein Log bevor er dann mit der Auswertung beginnt. Er empfängt nun weiterhin im Sekundentakt zusätzlich die aktuellen Daten.

Der externe Teil wird ungefähr das folgende Layout haben:

Ein Großteil der Schaltung sollte klar sein. Erwähnenswert sind unten die drei eingezeichneten Batterien, welche die gesamte Schaltung (3*1,2V=3,6V) versorgen. Rechts oben sieht man zum einen den Spannungsteiler (Überwachung der Batteriespannung) sowie den SHT75. Rechts neben dem MC befindet sich zusätzlich eine Stiftleiste, in die das Funkmodul gesteckt wird. Die Spannungsversorgung des Moduls erfolgt über den AVR. So kann es einfach zum Energie sparen abgeschaltet werden.
Der MC befindet sich im Normalfall ständig in einem Energiesparmodus. Er wird regelmäßig durch Timer2 reaktiviert, sendet einen Datensatz (Temperatur, Luftfeuchte, Batteriestatus) und legt sich wieder schlafen.
Inwieweit das alles zusammenspielen wird, kann nur ein Langzeittest zeigen.

Eine pdf-Datei des obigen Schaltplans kann hier herunter geladen werden. Ich habe oben aus Ladezeitgründen mit Absicht nur ein kleines Bild verwendet. Ein Vorgehen, dass nur Modemnutzer wie ich nachvollziehen können :-)

Der Schaltplan für die "Zentrale" wurde mit Absicht einfach gehalten. Sie wird mit einem ATmega128 arbeiten, um eine parallele Kommunikation mit dem PC sowie dem externen Sensor zu ermöglichen. Sie beinhaltet einen Drucksensor, Luftfeuchtesensor sowie einen Temperatursensor. Zusätzlich wird ein LCD, ein DCF77-Empfänger, ein MAX232 (PC-Schnittstelle) sowie ein weiteres Funkmodul verwendet. Ein Batteriebetrieb ist nicht vorgesehen.

Eine PDF-Datei des Schaltplans kann natürlich herunter geladen werden, auch wenn nicht viel dazu ist. Es wird ein externer AD-Wandler verwendet, um die Signale des Lichtsensors sowie des Drucksensors auszuwerten. An den angedeuteten I²C-Bus wird der Temperatursensor LM75 sowie ein paar EEPROMs angeschlossen, um die Daten des externen Sensors puffern zu können. Diese Variante wird später einmal durch eine MMC bzw. CF-Card abgelöst. Zusätzlich wird noch der Temperatursensor DS18S20 verwendet. An Port A wird ein LCD zur Visualisierung angeschlossen.

 

Zurück zur Startseite.