Davis Windmesser am Arduino

Für eigene Projekte, Ideen und Spezielles
Antworten
WernerWetter
Offline
Beiträge: 79
Registriert: 07 Dez 2020, 18:19
Wohnort: Ulm / Grimmelfingen
Hat sich bedankt: 10 mal
Danksagung erhalten: 18 mal

Davis Windmesser am Arduino

#1

Beitrag von WernerWetter »

Vorwort
da sich mein Windmesser verabschiedet hatte, musste was Neues her. Gut und günstig sollte die Lösung sein, alle Daten sollten lokal bleiben. Auch etwas „lernen“ wäre nicht schlecht. Meine Wahl fiel auf einen Davis Windmesser der an einen Arduino angeschlossen wird.
Das Davis HW-Schaltungwird hier beschrieben:
http://cactus.io/sensors/weather/anemom ... anemometer



Umsetzung:
Herzstück des Ganzen ist die Außeneinheit, ein Windmesser 6410 Davis Vantage Pro 2. Dieser besitzt 2 Sensoren: Ein Windfahne mit Potentiometer (0-20KOhm) und ein Windschalenkreuz mit Reedrelais-Kontakt. Der Arduino soll diese Sensordaten in Windböen, Windgeschwindigkeit und Windrichtung umrechnen und an ein Host-System (hier Raspberry Pi) seriell weiter geben.

HW Windrichtung:
Für das Auslesen des Potentiometer benötigt man einen Analog-Digitalwandler (ADC), der die elektrische Spannung am Widerstandsteiler ermittelt.
Leider ist der ADC des Arduino nicht besonders gut, deshalb habe ich mich entschlossen einen externen ADC (ADS1115 – 16Bit / I²C ) zu nutzen. Die Referenzspannung(Vref) hat einen direkten Einfluss auf die zu messende Ausgangsspannung (Vout), sollte also möglichst genau sein: Hier benutze ich einen Spannungsregler HT73333 mit 3,3Volt. (Leider hat der REF198 nicht funktioniert). Durch die Rückrechnung der Gesamtspannung zur Ausgangsspannung lässt sich die Position der Windfahne berechnen.
Schematics_Wind_Direction.png
Schematics_Wind_Direction.png (69.62 KiB) 2894 mal betrachtet
HW-Windgeschwindigkeit:
Die Kreuzschale wirkt auf einen Reed-Kontakt, der bei jeder Umdrehung einmal betätigt wird. Das Entprellen der Reed-Kontaktes findet in de Software statt. Die Formel zur Berechnung der Windgeschwindigkeit (mph) beträgt:
v = p(2,25/t)
v: Windgeschwindigkeit in mph
t: Zeitperiode der Messung
P: Umrechnungsfaktor
Schematics_Wind_Speed.png
Schematics_Wind_Speed.png (49.02 KiB) 2894 mal betrachtet

Software:
Die Software auf dem Arduino liefert drei Werte: Windböen, Windgeschwindigkeit und Windrichtung über das serielle Interface jede 5 Sekunden (Parameter in der Software) an einen Hostrechner. Der Hostrechner - ein Raspberry schreibt dann die erstellt die Einträge in der Datenbank.

Die Windrichtung wird jede 500ms ermittelt und dann zum Sendezeitpunkt gemittelt (vektorieller Mittelwert). Bei Windstille wird UNDEF geliefert.
Für die Windgeschwindigkeit werden die Anzahl Pulse zwischen den Sendezeitpunkten/Messperiode gesammelt und mit der obigen Formel berechnet.
Für Windböen wird die minimale Zeit zwischen zwei Impulsen während einer Messperiode ermittelt. Mit dieser Zeitdifferenz lässt sich mit obiger Formel die maximale Geschwindigkeit des Windes innerhalb des Messzeitraums ausrechnen.

Status:
Die Platine und der Windmesser liegen hier fertig aufgebaut rum. Leider kann ich bei dem Wetter nicht aufs Dach um den Windmesser auszutauschen.

Anbei die Software

Bei Fragen gerne melden ....
VG Werner
Dateianhänge
Windmesser_v3.zip
(3.09 KiB) 327-mal heruntergeladen
Martin
Offline
Beiträge: 3
Registriert: 04 Jan 2022, 13:03
Hat sich bedankt: 2 mal

Re: Davis Windmesser am Arduino

#2

Beitrag von Martin »

Hallo Werner,

danke für die Infos. Ist es auch möglich den Windsensor direkt an den Raspeberry PI anzuschließen oder gibt es "wichtige" Gründe das vorher über den Arduino laufen zu lassen?

Hast Du ein Anzeigeprogramm (Webanewendung) mit der die Live Winddaten angezeigt werden können mit Windfahne?

Gruß
Martin
speerwerfer
Offline
Beiträge: 130
Registriert: 21 Dez 2020, 22:07
Wohnort: zwischen Osnabrück und Bremen
Hat sich bedankt: 6 mal
Danksagung erhalten: 2 mal

Re: Davis Windmesser am Arduino

#3

Beitrag von speerwerfer »

Moin,

wie wird denn der Umrechnungsfaktor P bestimmt?

Martin
Antworten