Forum: Mikrocontroller und Digitale Elektronik Windmesser / Anemometer - best practice?


von Jürgen H. (calor)


Lesenswert?

Ich bastele gerade an einem Windmesser mit einem Schalenanemometer vom 
Chinamann. Die Auswertung und die Datenübertragung per Bluetooth erfolgt 
mit einem nRF52840. Die Daten gehen letztlich zum ioBroker, sollen aber 
auch auf einem kleinen Display angezeigt werden. Das funktioniert auch 
grundsätzlich.

Meine Frage ist nun, gibt es da "best practices" in Bezug auf die 
Häufigkeit der Datenübermittlung, der Messzeit usw. Mein googeln nach 
Fertiggeräten hat in der Hinsicht wenig Aufschluss gegeben.

Einerseits möchte ich den Server nicht mit Daten zumüllen, andererseits 
möchte ich auch meine Neugier befriedigen und bei Böen schnell mal 
nachschauen können. Aktuell übertrage ich alle 6 Sekunden die 
Windgeschwindigkeit. Mein Anemometer gibt 20 Impulse pro Umdrehung. 
Daraus bestimme ich, über die 6 Sekunden, den Mittelwert der Impulslänge 
und somit die Windgeschwingikeit.
Es ist ein reines Hobbyprojekt, muss also keine speziellen Anforderungen 
erfüllen.

von Rahul D. (rahul)


Lesenswert?

Wenn die Dauer zwischen zwei Impulsen einen Grenzwert unterschreitet, 
könntest du doch Messwerte außerhalb der regelmäßigen Übertragungen 
verschicken.

von Cyblord -. (cyblord)


Lesenswert?

Rahul D. schrieb:
> Wenn die Dauer zwischen zwei Impulsen einen Grenzwert unterschreitet,
> könntest du doch Messwerte außerhalb der regelmäßigen Übertragungen
> verschicken.

Das macht heute jedes Smart Thermometer so. Die Sendeintervalle werden 
an die Änderung der Temperatur angepasst. Um Batterien zu sparen.

von Rahul D. (rahul)


Lesenswert?

Cyblord -. schrieb:
> Das macht heute jedes Smart Thermometer so. Die Sendeintervalle werden
> an die Änderung der Temperatur angepasst. Um Batterien zu sparen.

ja, und nun? Vielleicht weiß Jürgen das ja nicht, oder er sieht den Wald 
vor lauter Bäumen nicht, oder, oder...

von Cyblord -. (cyblord)


Lesenswert?

Rahul D. schrieb:
> ja, und nun? Vielleicht weiß Jürgen das ja nicht, oder er sieht den Wald
> vor lauter Bäumen nicht, oder, oder...

Fühlst du dich häufiger angegriffen? Möchtest du mit jemandem darüber 
reden?

von Jürgen H. (calor)


Lesenswert?

Rahul D. schrieb:
> Wenn die Dauer zwischen zwei Impulsen einen Grenzwert unterschreitet,
> könntest du doch Messwerte außerhalb der regelmäßigen Übertragungen
> verschicken.

Ja.
Im Moment habe ich schon das Gegenteil integriert. Der Wert 0 m/s wird 
nur noch alle 3 Minuten übertragen. Sozusagen als Lebenszeichen, daß das 
Teil noch funktioniert. Das häufigere Senden bei hohen 
Windgeschwindigkeiten kam mir auch schon in den Sinn.

Der Hintergrund meiner Frage war, mal zu schauen wie das die "Profis" 
machen. Einfach aus dem Gedanken heraus, ob meine 6 Sekunden Taktung 
nicht eh schon viel zu häufig sendet.

(Sicher kommt da auch ein wenig der "Spieltrieb" am neuen Gerät zum 
Tragen. Am Anfang schaut man vielleicht öfter nach, als nach einem 
halben Jahr.)

von Michael B. (laberkopp)


Lesenswert?

Jürgen H. schrieb:
> gibt es da "best practices"

Ja: schliesse das Ding über Kabel an, nicht Funk, dann musst du dir 
keine Gedanken um die Auswertung machen, das dem Wetter ausgesetzte Teil 
muss gar keine Elektronik enthalten die nach 2 Jahren wegen 
Kondenswasser und drastischen Temperaturwechseln sowieso kaputt ist und 
du ersparst der Umwelt viel Batteriemüll und dir selbst ständigen 
Batteriewechsel.

Theoretisch reicht die Datenerfassung in den Abständen in denen du sie 
speichern möchtest, z.B. täglich oder stündlich, Maximalböen kann man ja 
aggregieren. Aber wenn das Ding eine Aktion auslösen soll, z.B. Markise 
einfahren, dann muss es häufiger sein, oder bei Überschreitung der 
Grenzwerte. Deine 'Neugier' alle 6 Sekunden befriedigen zu wollen kann 
natürlich ein Grund sein, für den gibt es aber keine Festlegung. Der 
eine hat ADHS, der andere nicht.

von Detlef _. (detlef_a)


Lesenswert?

Hi,

20 Impulse sind eine Umdrehung. Schick eine message wenn 20 oder 100 
oder 200 Impulse angekommen sind. Aus der Zeitdifferenz zur letzten 
message errechnet der empfangende Controller die Windgeschwindigkeit.

Cheers
Detlef

von Udo S. (urschmitt)


Lesenswert?

Detlef _. schrieb:
> Aus der Zeitdifferenz zur letzten
> message errechnet der empfangende Controller die Windgeschwindigkeit.

Unnötige zusätzliche Fehlerquelle. Wenn ein Datenpaket verloren geht 
führt das zu völlig falschen Werten.
Da im Sender sowieso Intelligenz steckt, kann er genausogut die mittlere 
Windgeschwindigkeit und die maximale Böengeschwindigkeit übermitteln, 
statt der Anzahl der Impulse.

von Cyblord -. (cyblord)


Lesenswert?

Udo S. schrieb:
> Unnötige zusätzliche Fehlerquelle. Wenn ein Datenpaket verloren geht
> führt das zu völlig falschen Werten.
> Da im Sender sowieso Intelligenz steckt, kann er genausogut die mittlere
> Windgeschwindigkeit und die maximale Böengeschwindigkeit übermitteln,
> statt der Anzahl der Impulse.

Was auch das gesamte System robuster macht, da der Messteil komplett 
ausgetauscht werden könnte, ohne dass es den Empfänger tangieren muss. 
Der Empfänger benötigt keine Detailinfos des Messverfahrens.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Udo S. schrieb:
> Unnötige zusätzliche Fehlerquelle. Wenn ein Datenpaket verloren geht
> führt das zu völlig falschen Werten.

Deshalb werden die Datenpakete besser durchnummeriert, so dass der 
Empfänger erkennen kann, wenn eins nicht angekommen ist. Dann wird 
lediglich das Mittelungsintevall länger aber vor völlig falschen Werten 
ist man sicher.

Jürgen H. schrieb:
> Einfach aus dem Gedanken heraus, ob meine 6 Sekunden Taktung
> nicht eh schon viel zu häufig sendet.

Es kommt drauf an, ob du Einzelwerte der Geschwindigkeit überträgst oder 
schon am Sensor Dinge wie Mittelwerte/Streuung/Windspitzen auswertest 
und dann nur regelmäßig oder bei nennenswerten Änderungen diese 
Kennwerte zur Basisstation schickst. Bei Böen kannst du Spitzenwerte 
zusätzlich sofort übertragen, um ggf. auf kurze Reaktionszeiten zu 
kommen.

von Hendrik L. (hlipka)


Lesenswert?

Meine Wetterstation sendet ungefähr alle 30-60 Sekunden. Dabei wird zum 
einen die durchschnittliche Windgeschwindigkeit übertragen, und 
zusätzlich noch ein Wert für Böen ('gust'). Vermutlich ist dass dann 
einfach der Maximalwert seit der letzten Messung.

von Helmut -. (dc3yc)


Lesenswert?

Mein Windmesser ohne Kabel, nur mit Solarzellen und Backupakku, sendet 
alle 6 Sekungen die Windrichtung, die Windstärke und die höchste Böe. 
Weniger ist auch nicht recht sinnvoll. Datenübertragung per LoRa ist 
auch bei der Häufigkeit kein Problem.

von Uwe B. (boerge) Benutzerseite


Lesenswert?

Michael B. schrieb:
> Maximalböen kann man ja
> aggregieren
...bitte wie, wenn der entsprechende Wert (zufällig) fehlt?

Grüße Uwe

von Ralf X. (ralf0815)


Lesenswert?

Uwe B. schrieb:
> Michael B. schrieb:
>> Maximalböen kann man ja
>> aggregieren
> ...bitte wie, wenn der entsprechende Wert (zufällig) fehlt?

Einfach wie wetter.de/com machen und reine Zufallszahlen generieren. :-)

von Jürgen H. (calor)


Lesenswert?

Danke an Alle, für die Meinungen!

Ich werde mich wohl in Richtung variable Sendefolge orientieren. Die 
Auswertung soll weiterhin am Anemometer stattfinden und 
Durchschnittswerte wie auch Spitzenwerte, wie oben erwähnt, versenden.

Zur Stromversorgung kann ich eine kleine Leitung verlegen. Wobei die 
Versorgung per Solarzelle einen gewissen Charme hat.
Aktuell wird das Ganze zum Testen mit einer LiPo-Zelle versorgt. In 24h 
werden daraus etwa 220mAh entnommen.

von Detlef _. (detlef_a)


Lesenswert?

Hendrik L. schrieb:
> Meine Wetterstation sendet ungefähr alle 30-60 Sekunden. Dabei wird zum
> einen die durchschnittliche Windgeschwindigkeit übertragen, und
> zusätzlich noch ein Wert für Böen ('gust'). Vermutlich ist dass dann
> einfach der Maximalwert seit der letzten Messung.

Für die 'Böe' gibt es es eine ausgefuchste Definition der WMO. Die hab 
ich auf die Schnelle nicht gefunden, aber mein chatkumpel kennt die 
auch.

Cheers
Detlef

Wie definiert WMO Böen
ChatGPT:
Die Weltorganisation für Meteorologie (WMO) definiert eine Böe als einen 
kurzfristigen, plötzlichen Anstieg der Windgeschwindigkeit, der sich von 
der mittleren Windgeschwindigkeit unterscheidet.

Definition einer Böe laut WMO:
Ein Windstoß oder eine Böe liegt vor, wenn die Windgeschwindigkeit 
innerhalb von 3 Sekunden einen deutlichen Spitzenwert erreicht und 
anschließend wieder abnimmt.
Eine Böe wird in der Regel registriert, wenn die Windgeschwindigkeit um 
mindestens 10 Knoten (≈18,5 km/h) über den mittleren Wind steigt.
Sie tritt typischerweise innerhalb eines kurzen Zeitraums auf (wenige 
Sekunden bis Minuten).
Bedeutung und Messung
Böen entstehen durch Turbulenzen, Konvektion, Gewitter oder orografische 
Einflüsse.
Sie werden mit Anemometern gemessen und häufig in METAR-Wetterberichten 
als "G" (Gust) gekennzeichnet, z. B. "27015G25KT" (Wind aus 270° mit 15 
Knoten Mittelwind und Böen bis 25 Knoten).

von Jochen D. (joe_d1)


Lesenswert?

Ich hab meine Windgeschwindigkeitserfassung gemäß dem hier gemacht:

https://www.umweltaerodynamik.de/bilder-originale/Zeichnungen/Informationsblatt%20zur%20Windgeschwindigkeit.pdf

Ein China-Anemometer mit ModBus-Ausgang 
(https://de.aliexpress.com/item/1005007142444730.html) liefert mir die 
Daten, die ich mit einem Atmega324P als Modbus-Slave so schnell wie 
möglich polle - müsste im SourceCode nachschauen, denke aber so alle 
100ms...

Da ich "nur" auf 4m Höhe messe rechne ich mit dem Potenzgesetz nach 
Hellmann (https://de.wikipedia.org/wiki/Potenzgesetz_nach_Hellmann) 
näherungsweise auf 10m Höhe um.

Alle 10 Minuten wird mit gleitendem Mittelwert der "Mittelwind" 
ermittelt und das Maximum der letzten 10 Minuten als Böengeschwindigkeit 
ausgegeben.

Die aktuelle Windgeschwindigkeit übertrage ich aber auch noch - was zu 
0-3 Werten pro Sekunde führt, mit MQTT aber kein Problem...

Stromversorgung und Datenübertragung alles über Kabel.

von Jürgen H. (calor)


Lesenswert?

Jochen D. schrieb:
> Ein China-Anemometer mit ModBus-Ausgang
> (https://de.aliexpress.com/item/1005007142444730.html)

Ich habe das Gleiche, allerdings mit dem NPN-Ausgang.
Nur aus Neugier, welche Infos gibt das Anemometer über den Modbus aus? 
Schon die Windgeschwindigkeit in m/s?
Danke, für das pdf!

von Michael B. (laberkopp)


Lesenswert?

Uwe B. schrieb:
> Michael B. schrieb:
>> Maximalböen kann man ja
>> aggregieren
>
> ...bitte wie, wenn der entsprechende Wert (zufällig) fehlt?

Auf SENDERseite.

von Jochen D. (joe_d1)


Lesenswert?

Jürgen H. schrieb:
> Nur aus Neugier, welche Infos gibt das Anemometer über den Modbus aus?
> Schon die Windgeschwindigkeit in m/s?

Ja gibt im Endeffekt "nur" die Windgeschwindigkeit mit einer 
Nachkommastelle in m/s  aus. Impulse zählen wollte ich nicht...

von Crazy Harry (crazy_h)


Lesenswert?

Jürgen H. schrieb:
> Mein Anemometer gibt 20 Impulse pro Umdrehung.
> Daraus bestimme ich, über die 6 Sekunden, den Mittelwert der Impulslänge
> und somit die Windgeschwingikeit.

Woher weißt du, welcher Windgeschwindigkeit x Impulsen/s entsprechen? Zu 
dem Ding gibts doch sicher kein Datenblatt oder?

von Jürgen H. (calor)


Lesenswert?

Crazy Harry schrieb:
> gibts doch sicher kein Datenblatt

Au contraire. Wenn Du dem obigen Link zu Aliexpress folgst, findet sich 
dort eine Übersicht der wichtigsten Angaben. Das Gleiche liegt dann auch 
nochmal mit im Paket.

In meinem Fall: 1 Umdrehung/Sekunde = 1,75 m/s Windgeschwindigkeit.
Die Abtastung erfolgt intern mit einer Lichtschranke. Insgesamt war ich 
positiv überrascht von dem Teil.

: Bearbeitet durch User
von Lotta  . (mercedes)


Lesenswert?

Nicht schlecht, Geiles Hobby!!

Auch für den Luftdruck sollte ein Sensor vorhanden sein.
Wichtig ist das alle Deine Meßwerte dann in
einer Datenbank landen, zum Bleistift SQLLITE.

Dann kannst Du nämlich mit selbstgeschriebenem oder
gekauftem Proggy wettermäßig in die Vergangenheit
zurückschauen und mit elektronischen Schätzverfahren
ne Wettervorhersage machen.

Und Dein System kann dann der Landwirtschaft dienen, wie
etwaa das System eines 17 Jährigen, der milbentragene
Bienen beim "Betreten" ihres Stockes automatisch
aussortiiert und damit den Imkern nen
großen Dienst erweisen wird, wenn es dann vermarktet
werden kann.


mfg

von Ein T. (ein_typ)


Lesenswert?

Lotta  . schrieb:
> Auch für den Luftdruck sollte ein Sensor vorhanden sein.
> Wichtig ist das alle Deine Meßwerte dann in
> einer Datenbank landen, zum Bleistift SQLLITE.

Hmhmhm... Sqlite (ja, ein "L")? Für Append-Only-Daten und Datenanalysen 
eher nicht so gut geeignet. Einerseits sind die klassischen Datenbanken 
wegen der ACID-Garantien nicht allzu schnell beim Schreiben einzelner 
Datensätze. Das Lesen von Spalten für Analyse und Visualisierung ist bei 
zeilenorientierten Speichermodellen eher schlecht. Erklärungen gibt es 
hier [1] und da [2].

Ich würde für solche Anwendungsfälle eher TimescaleDB [3] empfehlen, das 
zwar ein bisschen mehr Einarbeitung erfordert sowie natürlich eine 
Maschine, auf der man die Software betreiben kann, aber dafür die volle 
Leistungsfähigkeit der beliebten OpenSource-Datenbank PostgreSQL als 
Basis plus zusätzlich die Möglichkeiten der Erweiterung bietet.


[1] https://en.wikipedia.org/wiki/Data_orientation
[2] https://www.tinybird.co/blog-posts/what-is-a-columnar-database
[3] https://www.timescale.com/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.