Verschiedenes > ESP8266

Niederschlagsmessung mit optischem Hydreon RG-11 Regensensor und WeMos D1 mini

(1/4) > >>

Mihca:
Ich möchte mein Regensensor-Projekt mit Euch teilen. Insgesamt entenstehen Kosten von ca. 80€, wovon der Hauptteil auf den optischen Regensensor entfällt. Es funktioniert bei mir prima.
Dazu benötigt man:

1.   einen WeMos D1 mini
2.   einen 1kOhm Widerstand
3.   ein 12V Gleichspannungsnetzteil
4.   einen AMS1117CS-5.0 DC-DC Wandler
5.   einen Hydreon RG-11 Regensensor (http://rainsensors.com) Er kostet USD59. Es kommt aber noch Transport und Einfuhrumsatzsteuer dazu, so dass er am Ende rund 75€ kostet.
6.   Telefonkabel 4-adrig

ESPEasy:
Auf den WeMos flasht man die ESPEasy Firmware (https://github.com/letscontrolit/ESPEasy/releases). Sobald man den WeMos im eigenen Netz hat, konfiguriert man ihn über sein Web-Interface unter dem Reiter „Controllers“ als MQTT-Device. Unter dem Reiter „Devices“ stellt man ihn als „Generic – Pulse Counter“ ein. Weitere Einstellungen siehe anliegendes pdf.

A C H T U N G: Will man den WeMos neu flashen, bitte vorher unbedingt die 12V Spannungsversorgung unterbrechen!

Schaltung:
Den Schaltplan findet ihr ebenfalls in der Anlage. Ich habe den WeMos innen in einer Box sitzen und ihn per 15m Telefonkabel mit dem Regensensor verbunden. Über das Telefonkabel laufen die 12V sowie das Signal; das funktioniert trotz der Länge ohne „Fehlimpulse“.

FHEM:
Sobald der WeMos im Netz ist und als MQTT-Device eingerichtet ist, wird in FHEM automatisch ein entsprechendes Gerät angelegt, wenn in FHEM bereits ein MQTT-Server bereits angelegt ist. Soweit der MQTT-Server in FHEM noch nicht installiert hat, geht das so:


--- Code: ---define MQTT2Server MQTT2_SERVER 1883 global
--- Ende Code ---

Im Nachfolgenden wird davon ausgegangen, dass das Gerät in „Regensensor“ umbenannt wird. Der Regensensor erhält folgende userReadings:


--- Code: ---RainCumDay:Total.* {sprintf("%.3f",(ReadingsNum($name,"Total",0)*ReadingsNum($name,"mmRainPerCount",0)))},
RainCumTotal:Total.* monotonic {sprintf("%.3f",(ReadingsNum($name,"RainCumDay",0)))}
--- Ende Code ---

Desweiteren benötigt man das reading “mmRainPerCount“ damit die Impulse des Sensors in mm Regen umgerechnet werden können. Dazu gibt man in der FHEM Kommandozeile ein:


--- Code: ---setreading Regensensor mmRainPerCount 0.0005
--- Ende Code ---

Damit man auch im Web den Zustand sieht, setzt man das Attribut StateFormat auf:


--- Code: ---Heute [l/m²]: RainCumDay Gestern [l/m²]: RainCumDayBefore Status: LWT
--- Ende Code ---

Weiterhin wird ein „at“ angelegt, das den Sensor täglich neu startet und Werte zurücksetzt (Achtung: für xxx.xxx die IP des WeMos einsetzen):


--- Code: ---define Regensensor_restart_at at *23:59:59 {my $RainCumDayBefore = ReadingsNum("Regensensor","RainCumDay","0");fhem("setreading Regensensor RainCumDayBefore $RainCumDayBefore");;system "wget -O /dev/null -q 192.168.xxx.xxx/?cmd=reboot";;}
--- Ende Code ---

Viel Spass beim Basteln!

Viele Grüße
Achim

JHo:

--- Zitat von: Mihca am 13 August 2019, 18:02:41 ---Es funktioniert bei mir prima.

--- Ende Zitat ---
Hallo Achim,
das klingt spannend für mich. Hast du schon etwas Erfahrung mit dem Sensor und magst die hier teilen? Mich interessiert vor allem, ...

* ... wie genau der Regensensor ist. Hast Du einen Vergleich zu einer (sehr) nahegelegenen Wetterstation? Lese ich die Auflösung des Sensors mit 0,0005mm richtig?
* ... in welchem "Modus" du ihn betreibst, und ob du die anderen Modi auch getestet hast? Hier klingt für mich vor allem die "Irrigation Control" interessant und welche Werte hier übertragen werden.
* ... ob der Regensensor auch Schnee erkennen kann.[li]... und wie das 12V-Netzteil dimensioniert sein muss.
[/li][/list]

Punkt 3 beantwortet die Webseite zwar selber (nein), aber ich verstehe nicht, warum - die Reflexion müsste doch bei Schnee wie bei Wasser auch gegeben sein. Niederschlagsmenge sicher nicht mehr, aber...

Danke!
Jan

Mihca:
Hallo Jan,
gerne:

1. Der Sensor läuft seit Juli bei mir. In dieser Zeit hat es nicht viel, aber immer wieder geregnet. Ich kontrolliere die vom Sensor gemessenen Mengen mit einem skalierten Auffanggefäß, das man immer mal wieder ausschütten muss. Das stimmt auf +-10% überein. Also überraschend gut.
2. Ich betreibe den Sensor im "Mode 0-- Tipping Bucket" entsprechend der Dip-Schalter-Stellung im pdf.
3. In der Dip-Stellung gemäß pdf ist die Auflösung 0,001mm. Da im WeMos/ESPEasy im Device auf "Change" detektiert wird, gibt es 2 Impulse je 0,001mm. Also muss in Fhem die Anzahl der Impulse mit 0,0005 multipliziert werden um auf mm-Regen zu kommen.
4. Schnee sind keine Tropfen sondern Kristalle. Ich vermute, daher wird das wohl nicht detektiert. Das kann ich erst nach dem ersten Schnee weiter beantworten.
5. Laut Manual benötigt der Regensensor 55mA und für der WeMos ca. 70mA. In Summe also <200mA. Mein Steckernetzteil hat stabilisierte 12V, 1,5A. Es ist also überdimensioniert, aber ich hatte halt noch eins über.

Ich hoffe, es hilft Dir.

Viel Spass beim Basteln  :)

Achim

JHo:
Super, danke für die Infos.
Ich überlege mal... Der Regensensor an meiner TFA Nexus ist wohl Recht genau, aber erst ab größeren Regenmengen. Wenn ich das richtig zusammenbringe, ist ein Wippenschlag 0,7mm. D
Bis das dann auslöst, kann das (zu) lange dauern.

Mihca:
Das Teil ist extrem empfindlich. Kaum sind die ersten Tropfen da, schon meldet er das. Er macht aber auch keine Fehlmeldungen (Fliegen, Vögel, ...)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln