ESP8266/NodeMcu Pulse Counter - Nutzbarkeit für Wind- und Regenmessung

Begonnen von econ_sl83, 15 September 2017, 09:39:04

Vorheriges Thema - Nächstes Thema

econ_sl83

Liebes Forum,
ich betreibe derzeit zumeist zufriedenstellend einen Wind- und Regenmesser über das 1Wire Zählermodul (DS2423) sowie parallel einen Nodemuc mit einem DHT22 Sensor.


Nun strebe ich einen besseren Standort für die Wind- und Regenmessung an, der allerdings nicht mehr per 1Wire, wohl aber per Wifi, erreichbar wäre . Zudem gibt es in letzter Zeit Probleme mit der Stromversorgung des o.g. 1Wire Moduls (entsprechende Fehlermeldungen: OWXCOUNT_BinValues getpage: Umweltsensor: invalid CRC). Diese hat zwar keine Auswirkungen auf die Daten, macht aber wohl eine Revision nötig.

Meine Idee ist nun eigentlich, die Wind- und Regenmessung über den Pulsecounter und die Pins des Nodemcu zu realisieren. Die Frage ist, ob das so klappt, insbesondere ob der Nodemcu die Auslösungen des Windrads stabil und zuverlässig erfassen kann. Immerhin sind das sehr sehr viele Auslösungen (1 oder 2 pro Umdrehung des Rads) bei stärkerem Wind.

Alternativ käme noch in Frage, statt des ESP8266 Moduls alles über einen separaten Pi zu regeln, der dann die Auslösungen des Windsensors zählt bzw. dort einen eigenen 1Wire-Strang betreibt. Das wäre sicher für die Erfassung der beschriebenen Daten Overkill, hätte aber den Charme, dass etwa eine Webcam integrierbar wäre.

Ich vermute, dass ich den ESP8266 hier massiv unterschätze, gleichwohl bleibt natürlich die Frage der Zuverlässigkeit - wobei ich auch da gute Erfahrungen mit diesen Modulen habe.

Vielen Dank für eure Meinungen  :)

Rampler

Hallo econ_sl83,
ich habe seit ein ein paar Monaten einen Windmesser mit dem ESP8266 unter ESPEASY am Start. Funktioniert einwandfrei, allerdings musst Du schon etwas basteln. In der Summe hochzufrieden.

Anbei mal ein List:
Internals:
   DEF        Gartenhaus
   IODev      MQTT
   NAME       Gartenhaus
   NOTIFYDEV  Gartenhaus
   NR         484
   STATE      Akku: 14.74 V | WS Now: 9 km/h | WS Max: 9 km/h (10 Min) | WS AVG: 4 km/h (20 Min)
   TYPE       MQTT_DEVICE
   READINGS:
     2017-09-15 12:05:33   Count           75
     2017-09-15 12:01:19   RSSI            -75
     2017-09-15 11:51:17   Voltage         14.74
     2017-09-15 12:05:33   Windspeed       9
     2017-09-15 12:05:33   Windspeed.av    4
     2017-09-15 12:05:33   Windspeed.max   9
     2017-09-15 12:05:33   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     /hooks/devices/1/SensorData/Count
     /hooks/devices/1/SensorData/RSSI
     /hooks/devices/1/SensorData/Voltage
   subscribeExpr:
     ^\/hooks\/devices\/1\/SensorData\/Count$
     ^\/hooks\/devices\/1\/SensorData\/RSSI$
     ^\/hooks\/devices\/1\/SensorData\/Voltage$
   subscribeReadings:
     /hooks/devices/1/SensorData/Count:
       cmd
       name       Count
     /hooks/devices/1/SensorData/RSSI:
       cmd
       name       RSSI
     /hooks/devices/1/SensorData/Voltage:
       cmd
       name       Voltage
Attributes:
   IODev      MQTT
   event-aggregator Windspeed.*:600:none:max
   event-min-interval Count:900
   event-on-change-reading Count:20
   event-on-update-reading Voltage,Windspeed
   icon       control_building_empty
   room       Garten,QuickFhem,Ueberblick
   stateFormat Akku: Voltage V | WS Now: Windspeed km/h | WS Max: Windspeed.max km/h (10 Min) | WS AVG: Windspeed.av km/h (20 Min)
   subscribeReading_Count /hooks/devices/1/SensorData/Count
   subscribeReading_RSSI /hooks/devices/1/SensorData/RSSI
   subscribeReading_Voltage /hooks/devices/1/SensorData/Voltage
   userReadings Windspeed:Count.* {sprintf("%.0f",(((ReadingsVal("Gartenhaus","Count",0)+2)/3)*3.6)/20)} , Windspeed.av:Count.* {sprintf("%.0f",movingAverage("Gartenhaus","Windspeed",1200))}
   verbose    0


VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

econ_sl83

Zitat von: Rampler am 15 September 2017, 12:09:16
Hallo econ_sl83,
ich habe seit ein ein paar Monaten einen Windmesser mit dem ESP8266 unter ESPEASY am Start. Funktioniert einwandfrei, allerdings musst Du schon etwas basteln. In der Summe hochzufrieden.

Besten Dank! Genau was ich gesucht habe.

Zusatzfrage: Betreibst Du den ESP per Batterie oder Solar? Wundere mich über dein Voltage-Reading bei ca. 15v.. :)

Rampler

Zitat von: econ_sl83 am 15 September 2017, 15:19:46
Zusatzfrage: Betreibst Du den ESP per Batterie oder Solar? Wundere mich über dein Voltage-Reading bei ca. 15v.. :)

Zwei kleine Solarpanel mit Akku auf der Gartenhütte. (bin mal auf den Winter gespannt)
DeepSleep macht ja leider keinen Sinn beim PulsCounter ...

Windmesser:
https://www.amazon.de/gp/product/B0018LBFG8/ref=oh_aui_detailpage_o09_s00?ie=UTF8&psc=1
Wemos:
Pro Version, da externen Antennenanschluss ..

Auch einen DHT-22 könntest Du locker noch mit drann hängen ...

VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

Welchen Regenmesser nutzt Du denn ?
Funktioniert das zufriedenstellend ?

VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

econ_sl83

Ich habe mir vor 2 Jahren bei froggit.de einen Regenmesser und einen Windsensor, jeweils zu €10 für die WH108, bestellt - die laufen am 1Wire super.
Da ich die Doku erst später gefunden hatte, musste ich beide Sensor über Vergleichswerte von wetherunderground kalibrieren, was erstaunlich gut funktionierte.

Zielsetzung ist im Moment neben der Migration meiner 1Wire-Lösung zu ESP auch der Aufbau einer weiteren Station. Leider ist der Regenmesser bei froggit nicht mehr lieferbar, nur noch bei anderen ebay-Händlern zu €30 (!).

Es handelt sich dabei übrigens um einen Regenmengenmesser, d.h. es bedarf eines gewissen Niederschlags, ehe die Wippe tatsächlich fällt und den Kontakt auslöst. Leichte Schauern kann man schon mal übersehen. Ungeachtet dessen bin ich sehr zufrieden. Anbei ein Bild der Konstruktion, man beachte den Vogel, der irgendwie noch verbaut werden musste.

Kannst Du mir mal Daten zu den Solarpanelen geben, das wäre ggf. auch was für mich.

econ_sl83

Zitat von: Rampler am 15 September 2017, 12:09:16
Hallo econ_sl83,
ich habe seit ein ein paar Monaten einen Windmesser mit dem ESP8266 unter ESPEASY am Start. Funktioniert einwandfrei, allerdings musst Du schon etwas basteln. In der Summe hochzufrieden.

Anbei mal ein List:
Internals:
   DEF        Gartenhaus
   IODev      MQTT
   NAME       Gartenhaus
   NOTIFYDEV  Gartenhaus
   NR         484
   STATE      Akku: 14.74 V | WS Now: 9 km/h | WS Max: 9 km/h (10 Min) | WS AVG: 4 km/h (20 Min)
   TYPE       MQTT_DEVICE
   READINGS:
     2017-09-15 12:05:33   Count           75
     2017-09-15 12:01:19   RSSI            -75
     2017-09-15 11:51:17   Voltage         14.74
     2017-09-15 12:05:33   Windspeed       9
     2017-09-15 12:05:33   Windspeed.av    4
     2017-09-15 12:05:33   Windspeed.max   9
     2017-09-15 12:05:33   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     /hooks/devices/1/SensorData/Count
     /hooks/devices/1/SensorData/RSSI
     /hooks/devices/1/SensorData/Voltage
   subscribeExpr:
     ^\/hooks\/devices\/1\/SensorData\/Count$
     ^\/hooks\/devices\/1\/SensorData\/RSSI$
     ^\/hooks\/devices\/1\/SensorData\/Voltage$
   subscribeReadings:
     /hooks/devices/1/SensorData/Count:
       cmd
       name       Count
     /hooks/devices/1/SensorData/RSSI:
       cmd
       name       RSSI
     /hooks/devices/1/SensorData/Voltage:
       cmd
       name       Voltage
Attributes:
   IODev      MQTT
   event-aggregator Windspeed.*:600:none:max
   event-min-interval Count:900
   event-on-change-reading Count:20
   event-on-update-reading Voltage,Windspeed
   icon       control_building_empty
   room       Garten,QuickFhem,Ueberblick
   stateFormat Akku: Voltage V | WS Now: Windspeed km/h | WS Max: Windspeed.max km/h (10 Min) | WS AVG: Windspeed.av km/h (20 Min)
   subscribeReading_Count /hooks/devices/1/SensorData/Count
   subscribeReading_RSSI /hooks/devices/1/SensorData/RSSI
   subscribeReading_Voltage /hooks/devices/1/SensorData/Voltage
   userReadings Windspeed:Count.* {sprintf("%.0f",(((ReadingsVal("Gartenhaus","Count",0)+2)/3)*3.6)/20)} , Windspeed.av:Count.* {sprintf("%.0f",movingAverage("Gartenhaus","Windspeed",1200))}
   verbose    0


VG
Klaus

Hallo,
ich komme nochmal auf deinen Beitrag zurück und würde mich mal für deine Erfahrungen nach den ersten Herbststürmen (sofern Du betroffen warst) interessieren.
Ich habe meine Station inzwischen auf dem (Kletterhaus-) Dach und folgende Sensoren installiert: DS18b20 (Temperatur), Regenmesser, BH1750 (Helligkeit), SI7021 (Luftfeuchte), BMP280 (Druck) Windrichtung über a0-Pin.


Den Windmesser rechne ich über Windstaerke {ReadingsVal($name,"Count",0)*0.02} um, was sich wiederum an der Dokumentation des Rads orientiert. Mein ESPEasy-Device ist ähnlich zu deinem erstellt worden - allerdings hatte ich bisher eine Debounce-Time von 1ms.

Im Vergleich zu einer (sehr guten) Weatherunderground Station bin ich wegen sehr vergleichbarer Ergebnisse sehr zufrieden - bis zum Sturm vorgestern. Während ich maximal 25 km/h erreicht habe hat die Referenzstation bis zu 50 km/h gemessen. Dabei würde ich davon ausgehen, dass mein Aufstellort mindestens ebenso exponiert ist.

Woran könnte es also liegen, dass ich wenige Windgeschwindigkeit messe? War die debounce-Time falsch gewählt? Was macht die eigentlich? Hast Du absichtlich eine kurze Abfrage (20sec) gewählt?
Wie sind deine aktuelle Erfahrungen mit der Windmessung?

Rampler

Hallo,
die Debounce-Time ist die Prellzeit !
Bei schlechten Reedschaltern im Windrad kann es vorkommen das der Schalter bei schließen nachprellt, soll heißen, er macht mehrmals auf und zu. Innerhalb der Debounce-Time werden die auf und zu's ingnoriert. 1ms ist meiner nach dicke ausreichend. Sollte dein Windrad prellen, wird die WS zu hoch angezeigt, da dann mehr Impulse kommen.
Entscheidend ist aber der Messinterval, denke ich. 20 Sek. ist das absolute Minimum (Ideal 1 Sek). Du misst dann quasi die Durchsschnittsgewschwindigkeit in 20 Sekunden. Wenn du beispielsweise nur alle 60 Sekunden misst, und es für 30 Sekunden mit 100 km/h bläst, und danach Windstill ist, bekommst Du nor 50 km/h....
Probiers doch einfach aus ..
Ich hatte am WOE Peaks mit 71 km/h (gemittelt auf 20 Sek.)
VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

econ_sl83

Zitat von: Rampler am 30 Oktober 2017, 10:09:01
Hallo,
die Debounce-Time ist die Prellzeit !
Bei schlechten Reedschaltern im Windrad kann es vorkommen das der Schalter bei schließen nachprellt, soll heißen, er macht mehrmals auf und zu. Innerhalb der Debounce-Time werden die auf und zu's ingnoriert. 1ms ist meiner nach dicke ausreichend. Sollte dein Windrad prellen, wird die WS zu hoch angezeigt, da dann mehr Impulse kommen.
Entscheidend ist aber der Messinterval, denke ich. 20 Sek. ist das absolute Minimum (Ideal 1 Sek). Du misst dann quasi die Durchsschnittsgewschwindigkeit in 20 Sekunden. Wenn du beispielsweise nur alle 60 Sekunden misst, und es für 30 Sekunden mit 100 km/h bläst, und danach Windstill ist, bekommst Du nor 50 km/h....
Probiers doch einfach aus ..
Ich hatte am WOE Peaks mit 71 km/h (gemittelt auf 20 Sek.)
VG
Klaus

Ich arbeite nun mit 20sec und finde die Ergebnisse nicht unplausibel, danke für den Hinweis.
Die Tatsache, dass ich einen Durchschnitt über 60sec bilde, wenn ich das als Abfragezeitraum nehme, war mir schon klar. Ich hätte nur nicht gedacht, dass das bei starkem Wind so viel ausmacht.


Anbei übrigens ein Bild vom aktuellen Aufbau. Insbesondere ist erstaunlich, wie viel die exponierte Lage fernab/10m vom Haus entfernt in Bezug auf die Messwerte ausmacht: Die Temperatur lag in den letzten kälteren Nächten um ca. 4° unter einem (baugleichen) 1W Sensor (DS18b20) an der Hauswand.

Rampler

Ist das die Gartenhütte ? (Das Fesnter ist so klein ;) )
Dein Tempsensor liegt aber doch völlig in der Sonne oder ?
Wie hast Du denn das mit dem Regenmesser realisiert, der fehlt mir noch in meiner Sammlung ?
VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Marlen

Hallo Rampler,

welchen WEMOS hast du genommen? Hast du einen Link dazu? Und welches ESPeasy hast du draufgespielt?

LG
  Marlen

Rampler

Zitatwelchen WEMOS hast du genommen? Hast du einen Link dazu? Und welches ESPeasy hast du draufgespielt?

Wemos (Pro, weil externer Antennenanschluss):
https://www.amazon.de/Rokoo-Pro-Upgrade-Entwicklungsboard-externer-Antennenanschluss/dp/B0768H3JBW/ref=sr_1_1?ie=UTF8&qid=1509693074&sr=8-1&keywords=esp8266+pro
Die externe Antenne geht aber erst, wenn man einen 0 Ohm Widerstand umlötet, gibts aber genug Anleitungen im www.

ESPEASY:
Die DEV11 aktuell, ist aber eigentlich total egal ..., laufen alle...

VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!


Rampler

3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Marlen