AVR Webserver für Wetterstation WS2300

  1. Wetterstation WS2300
  2. Software für Wetterstation WS2300
  3. Anpassung der Software open2300
  4. Eigener Webserver mit PHP-Projekt
  5. AVR Webserver
  6. AVR Webserver mit Anbindung an die Wetterstation
  7. Lizenz


AVR-Wetter-Webserver

Welcher Windsurfer möchte nicht gern von seinem Homespot die aktuellen Wind und Wetterdaten übers Web angezeigt bekommen? Eine statistische Auswertung der Wind- und Wetterdaten wäre da auch nicht schlecht.

Also kauft man sich als erstes eine Wetterstation und montiert sie an entsprechendem Ort. Hat diese Wetterstation noch eine Anschlussmöglichkeit für einen PC, dann sind die Wetterdaten schnell durch eine Software aufbereitet und stehen auf dem heimischen PC zur Verfügung.
Noch schnell einen eigenen Webserver ins Internet gestellt, fertig ist die Web-Wetterstation!

In meinem Projekt möchte ich diesen Weg von der einfachen Wetterstation zur Web-Wetterstation über einen Mikrocontroller (ATMega 32) beschreiben.

 

Wetterstation WS2300

Eingesetzt wird die Funkwetterstation WS 2300. Es handelt sich um eine recht preisgünstige Station, die mit Sensoren für Temperatur und Luftfeuchtigkeit (innen und außen), Regenmenge, Windrichtung und Windgeschwindigkeit gut ausgestattet ist.

Sie erlaubt die Übertragung der Messwerte auf den PC über einen RS-232-Anschluss. Und wird mit der Software Heavyweather ausgeliefert.

Link http://www.wetterstationen.info/ws2300_matrix.php

Software für Wetterstation WS2300

Diese Software funktioniert mit der WS 2300

Kostenpflichtige Programme für Windows:
PC-Wetterstation
Weather Display
Heavyweather gehört zum Lieferumfang
meinWetter
Virtual Weatherstation

Open Source für Windows, Linux und Mac OS X:
open2300
WS 2300 Perl Tools

Meine Entscheidung war natürlich eine Open Source Lösung.
"open2300" ist sowohl für Windows und Linux nutzbar und der Quellcode in C geschrieben. Beste Voraussetzugen für eigene Programmentwicklungen.

Anpassung der Software open2300

Dieses Programmpaket des Dänen Kenneth Lavrsen stellt verschiedene Funktionen zur Auswertung der WS 2300 bereit.

Die Programme liegen als C-Quelltext vor und stehen unter der GPL. Die Open Source kann also jeder Zeit angepasst oder erweitert werden. Das gesamte Projekt ist in einem Wiki dokumentiert und herunterladbar.

Meine verwendeten Funktionen beschränken sich auf:
log2300.c
Schreibt die aktuellen Messwerte in eine Datei zur Weiterverarbeitung mittels oder PHP.
fetch2300.c
Zur direkten Übernahme aktueller Messwerte in ein HTML-Dokument mittels PHP.

Als Compiler diente eine GCC-Anwendung: DEV-C++  auf der Basis MINIGW
Download des angepassten Quellcodes

 

Eigener Webserver mit PHP-Projekt

 

Zur Bereitstellung der Wetterdaten wurde auf einem Windows-PC ein Apache-Webserver mit dem PHP-Modul installiert und die Wetterstation an die COM1 des PC’s angeschlossen.

Meine geänderten open2300 Module log2300.exe und fetch2300.exe werden über Batch-Dateien aufgerufen. Eine Einbindung als VB-Script ergab eine günstigere Lösung, da das Script nicht die cmd in einem Fenster öffnen muss.

Die Scripte werden über die „Geplanten Task“ des Windows jede Minute ausgeführt und die Log-Dateien in ein entsprechendes Verzeichnis geschrieben . Die Log-Dateien beinhalten im Dateinamen das aktuelle Datum.

Auf die Speicherung der Daten in einer SQL-Datenbank wurde vorerst verzichtet.

Jetzt kommt PHP ins Spiel. Beim Aufruf der entsprechenden Seiten werden die Logdateien ausgelesen und als Grafik oder Statistik ausgewertet.

Die Log-Datei "wetter_akt.log" wird über fetch2300 belegt und, dient zur Anzeige der aktuellen Daten in der Windrose.

Die Log-Datei "2007-10-10_wetter.log" wird über log2300 belegt und dient zur Anzeige der Statistik des Tages.

Dyndns und DSL sorgen für den Zugriff auf den Webserver über das Internet.

 

Probleme:

Bei dieser Lösung muss ein extra PC ständig in Betrieb sein und die Daten über das LAN ans Internet liefern. Damit sind relativ hohe Energiekosten (ca. 10€ pro Monat) die Folge. Weitere Überlegungen sind die Geräuschbelastungen durch den PC sowie der große Aufwand an notwendigen Sicherheitsvorkehrungen. Eine Lösung dieser Probleme ist der nachfolgend beschriebene AVR-Webserver.

 

AVR Webserver

Der AVR Webserver beruht auf einem Projekt von Ulrich Radig (http://www.ulrichradig.de) und Holger Buss (http://www.mikrocontroller.com/). Dabei wurde eine ISA-Ctrl-Platine (Bestellung hier ) mit einem AVR- ATMega 644 und eine ISA RTL 8019 Netzwerkkarte eingesetzt.

Leiterplatte
Die verwendete Software im Quellcode (AVR-GCC) stammt ebenfalls aus den Projekt von Ulrich Radig, in der Version 1.39.
Die Platine wurde bestückt und getestet. Das AVR-GCC Projekt wurde im AVR-Studio programmiert und mittels PonyProg V2.07c auf den Mikrocontroller geladen.
Der AVR Webserver ist unter http://surf-erfurt.dynalias.net/ erreichbar.

AVR Webserver mit Anbindung an die Wetterstation

Der funktionsfähige ARV Webserver soll nun die Daten aus der Wetterstation auslesen und auf Webseiten bereitstellen.

Zur besseren Kontrolle der eingelesenen Daten und des aktuellen Programmablaufes wurde ein LCD-Display an den Mikrocontroller angeschlossen. Da mein AVR Webserver keine SD/MMC –Karte verwenden soll, waren die Ports frei und wurden für die Ansteuerung der LCD-Displays im 4-Bit Modus verwendet.

Zur Kopplung der Wetterstation WS2300 mit dem AVR Webserver konnte die im ATMega 644 vorhandene serielle Schnittstelle verwendet werden. Auf der ISA-Ctrl-Platine ist zu Pegelanpassung der Signale RxD/TxD (TTL/V24) ein MAX 232 vorhanden. Da aber die WS2300 ein Stromschleifenprinzip zur seriellen Übertragung verwendet müssen die Leitungen DTR und RTS ebenfalls verwendet und angepasst werden. Am PC genügt das Einschalten der Singale DTR auf Low(12V) und RTS auf High (-12V). Da über en MAX 232 aber nur je ein Ausgang und ein Eingang mit V24 –Pegel zur Verfügung stehen, war ein weiterer MAX 232 auf einer extra Platine notwendig.
Schaltplan und Pinbelegung folgt noch.
avr

Als Softwarelösung wurde auf den vorhandenen AVR Webserver zurückgegriffen und die Programme von OPEN2300 an das AVR-GCC angepasst. Im Projekt werden jetzt die GCC-Teilprogramme rw2300 und ws2300 zum Auslesen der Daten aus der Wetterstation verwendet. Die Daten werden jede Minute gelesen und in entsprechenden Variablen der wsdate.h gespeichert. Der AVR Webserver bindet diese Variablen beim Aufruf einer Webseite in den HTML-Code ein.

Der AVR Webserver stellt 3 verschiedene Webseiten dar:
surf-erfurt.dynalias.net/index.htm allgemeine Webseite mit Wetterdaten
surf-erfurt.dynalias.net/log_00.log Logdatei für aktuelle Wetterdaten
surf-erfurt.dynalias.net/log_01.log Logdatei für Statistik der Wetterdaten


Diese HTML-Seiten werden jetzt durch PHP-Scripte ausgewertet und aufbereitet.

Beim Aufruf der Windrose wird direkt die log_00.log vom AVR Webserver abgefragt und die aktuellen Wetterdaten angezeigt.
Die Werte für die Statistikdiagramme setzen sich aus den Werten des entsprechenden Tages zusammen. Der AVR-Webserver ließt im Minutentakt die Daten aus der Wetterstation und errechnet einen Mittelwert der letzten 5 Messungen. Die Windböen speichert er separat ab. Ein externer Cronjob fragt die log_01.log alle 5 Minuten ab und speichert die momentanen Werte in einer fortlaufenden Textdatei für jeden Tag (2008_02_12_logdaten.log) ab. Diese Textdatei wird beim Aufruf eines Diagramms ausgewertet und mit jpgraph angezeigt.

 

Noch zu erledigen:

- Bessere Statisikauswertung

- Weitere Wetterdaten aus der WS2300 auslesen

- Webseite mit allen Wetterdaten der WS2300

- Daten in SQL-Datenbank schreiben und damit keine Textdateien mehr



Lizenz:

In dem Projekt wurden folgende Softwareentwicklungen eingesetzt und angepasst:
1. AVR Small Webserver von Ulrich Radig www.ulrichradig.de
2. Open2300 Software für Wetterstation WS2300 von Kenneth Lavrsen www.lavrsen.dk
3. uart.c von Peter Fleury www.mikrocontroller.net

Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version.

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.

Sie werden eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten. Falls nicht, schreiben Sie an die Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. r 

 

avr avr avr avr
avr avr avr avr



 

Links:

wetter.surf-erfurt.de/windroseavr.php

surf-erfurt.dynalias.net

surf-erfurt.dynalias.net

 

Download Quelltext und MAX232-Schaltung

{jsmallfib [Download/WS2300]}