Als weiteres Element zur Erfassung von Wetterdaten wird hier ein Niederschlagsmesser, oft als Regenmesser bezeichnet, vorgestellt. Damit wird der beelogger-SMD oder beelogger-Universal um eine weitere Komponente zum Aufbau einer Wetterstation ergänzt.
Der hier verwendete Niederschlagsmesser arbeitet nach dem Wippenverfahren. Über eine Auffangschale oder einen Trichter wird der Regen gesammelt und dem Wippensystem zugeführt. Mit jeder Füllung einer Seite der Wippe wird die Wippe gekippt und mittels eines Magneten ein Reed-Kontakt betätigt.
Der hier beschriebene Aufbau wurde von uns in mehreren Prototypen getestet. Anregungen zur Optimierung der Beschreibung und Aufbauhinweise nimmt der beelogger-support gerne auf.
Der Niederschlagsensor ist kompatibel mit allen beelogger Varianten! |
Hinweis: beelogger-STM Systeme mit STM32F4xy haben mit Niederschlagmesser einen deutlich höheren Ruhestrombedarf von ca. 2mA gegenüber sonst üblichen Werten unter 20µA. Der Aufbau solcher Systeme sollte nicht erfolgen, wenn die Versorgung des Akku über die Solarzelle nicht sichergestellt ist.
WLAN-Sketch vom 05.09.2024 mit Niederschlagmesser hat einen Ruhestrom von ca. 300uA.
Das Messen von Regen erscheint damit relativ trivial. Eine genaue Messung hat jedoch ihre Tücken. Die Art des Regens, Niesel, feiner Nebel oder auch gefroren (Schnee), zeigen schnell die Grenzen eines Wippensystems auf. Informationen zu den Stärken und Schwächen der Niederschlagsmessverfahren finden sich bei https://de.wikipedia.org/wiki/Niederschlagsmesser . Auch der Aufstellort des Regenmessers hat Einfluß: https://www.wetterstation.net/regenmesser-aufstellen/ . Der Deutsche Wetterdienst beschreibt in seinem ‚Technikhandbuch der Wettermeldestellen‘ ausführlich Vorgaben für Wetterstationen.
Die Anzahl der Wippenbewegungen ist das Maß für die Regenmenge und wird vom ATmega mittels einer Interruptroutine gezählt. Der Microcontroller führt das Zählen quasi so nebenbei durch. Damit bleibt die bisherige Eigenschaft des geringen Stromverbrauchs erhalten.
. . |
Bauteile und Bezug:
Der Wippenmechanismus mit Auffangschale und Reedkontakt ist bei den div. Verkaufsportalen im Internet für ca. 10-15 € zu erwerben. Oft wird es als Ersatzteil für Wetterstationen angeboten. In Suchmaschinen bzw. den Verkaufsportalen führt der Begriff „Rain Gauge“ meist schnell zum Ziel. Eine Libelle zur waagerechten Ausrichtung erleichtert die Aufstellung.
Eine Beschreibung zum Aufbau findet sich auch unter: http://www.elektronik-labor.de/Notizen/Regensensor.html. Für den Selbstbau stellen wir hier die 3-D-Druckvorlage der Wippe zur Verfügung. 3-D-Vorlage
Wir haben uns gegen die oft eingesetzten Hall-Sensoren entschieden, weil diese fortwährend Strom verbrauchen. Anstelle dessen werden ein Reedkontakt (Schliesser) z.B. PIC MS-324-3 oder 313-3; reichelt LITT FLEX141015 und ein/zwei Rundmagnete 4mm, z.B. reichelt Magnet 4.2 benötigt. Zur Ansteuerung des Reed-Kontakt ggf. zwei Magnete übereinander montieren.
Als Gehäuse des Regenmessers kann ein Abflussrohr HT DN 110 dienen. Benötigt wird das Rohrende mit Muffe, weil es etwas größer ist und die Wippe gut aufnehmen kann. Das Rohr wird so abgelängt, dass der im Rohr befindliche Trichter mit seinem Auslaufende ca. 5-10mm Abstand zur Wippe hat.
Für den Wippenmechanismuss und die Montage des Reedkontakts ist ein wenig Kreativität gefragt. Ein passender Trichter findet sich in gut sortierten Handel/Baumarkt usw..
Die Wippe darf im eingebauten Zustand nur eine minimale Vorzugslage haben. Ggf. durch Zusatzgewicht eine gute Symetrie herstellen.
Im rechten Bild zu sehen, dass die Wippe durch Anbringen einer Unterlagscheibe (eingeschmolzen mit dem Lötkolben), ausgeglichen wurde.
Neuere Platinenversionen des Universal und STM32/Black haben die Bauteile/Anschaltung des Niederschlagmessers im Layout vorgesehen.
Anpassungen für ältere beelogger-Platinenversionen ohne Anschlussklemme für den Niederschlagmesser:
Der Anschluss an den beelogger und die Inbetriebnahme des Niederschlagmesser sind wie folgt durchzuführen:
Um einen Eingangsfilter an der beelogger-Platine, z.B. Universal Version 1.x, aufzubauen wird ein Widerstand (470Ohm bis 1kOhm, 1/4 -1 W) und ein Kondensator (1-4,7nF, 16-100V, X7R/X5R) benötigt. Beide sollen bedrahtet sein, damit diese an der Schraubklemme montiert werden können.
Der ATmega 328, der im beelogger verwendet wird, verfügt über zwei Interrupteingänge.
Für den Regenmesser wird der Interrupt am ATmega Pin D3 benötigt. Damit die Verwendung von D3 für den Regenmesser möglich ist, sind kleinere Anpassungen notwendig:
– Der Anschluss des DS18B20 kann nicht mehr an D3 erfolgen.
– Der DS18B20 kann stattdessen anstelle des DHT Nr.2 Pin D6 angeschlossen werden.
– Der Widerstand (4k7) an D3, Anschluss für DS18B20 (beim der Solar-Platine beschriftet mit Z-R1), darf nicht bestueckt sein, ggf. entfernen.
Der oben genannte Eingangsfilter wird so aufgebaut:
– Der Kondensator (1nF- 4,7nF) wird an der Anschlussklemme zwischen D3 und GND eingebaut.
– Der Widerstand 470Ohm-1kOhm wird mit einer Seite an D3 angeklemmt, an die andere Seite wird ein Draht der Leitung zum Reed-Kontakt des Regenmesser angelötet. Der zweite Draht des Reed-Kontakt des Regenmessers wird an GND angeschlossen.
Für die STM32F… µC wird PIN PA15 verwendet. Ein 4k7 Pullup von PA15 nach 3,3V (Dauerspannung von einer der 3,3V Pins des Controller-Moduls) ist einzubauen. Der Kondensator (1nF – 10nF) und Widerstand 150 Ohm (anstelle 1K) werden wie im Bild gezeigt an PA15 (anstatt D3) verdrahtet.
Anpassung bestehender Sketche:
In neueren Sketchen sind die Sketchanteile meist enthalten. In der Konfigurationsdatei ist der Sensor zu aktivieren und der Kalibrierwert einzutragen.
Ältere Sketche oder solche bei denen die Funktion nicht implementiert ist:
Der Multi-Sketch wird mit der beelogger_RAIN.ino erweitert. Dazu die beelogger_RAIN.ino, Teil des WLAN-Sketch, in das Sketch-Verzeichnis kopieren.
Die Zuordnung des Sensor-Wertes ist in der Funktion Sensor_Regen() auf die Variable Aux[2] programmiert.
Der Haupt-Sketch muss in der setup() und loop erweitert werden.
In setup() ist diese Zeilen zu ergänzen:
Init_Rain_Int();
In loop() bzw. in der routine measure_and_send() werden unmittelbar vor dem Aufruf der Funktion Daten_Senden diese Anteile eingefügt:
Sensor_Regen();
Die Aktivierung des Sensors_Regen für die Messung und Datenübertragung erfolgt in der Sketch-Konfiguration:
#define Anzahl_Sensor_Regen 1 // Mögliche Werte: '0','1' --- Nr 2 ---- (Regenmesser, erfordert Umbau des beelogger und zusätzliche INO)
In der beelogger_config.h wird die Zuordnung des ONE_WIRE_BUS von PIN D3 auf PIN D6 mit Aktivierung des Regensensors in der Sketch-Konfiguration automatisch geändert, so dass keine Anpassung notwendig ist.
Systeme mit zwei DHT und einem DS18B20 sind nach zuzätzlicher Anpassung des beelogger möglich, z.B. Nutzung von D7 und zusätzlichem Pull-Up-Widerstand. Im Sketch ist die Konfiguration in der beelogger_config.h entsprechend dem Systemaufbau anzupassen.
Beispiel der notwendigen Ergänzungen und Anpassungen für den Niederschlagsmesser finden sich im MULTI-WLAN-Sketch.
Bei Fragen bitte eine Mail an den beelogger-support.
Kalibrierung:
Die Kalibrierung des Regenmessers ist mit wenigen Schritten durchgeführt.
– 100ml Wasser langsam durch das Messsystem laufen lassen und die Ticks vom beelogger zählen lassen. Größere Mengen Wasser, z.B. 300ml, erhöhen die Genauigkeit. Zum Test der Schaltung, zählen der „Ticks“ steht ein Testprogramm zu Verfügung. Ungültige-Download-ID.
– Die Wassermenge durch die Anzahl der Ticks teilen. z.B. 100ml ergeben 20 Ticks, ergibt dann ca. 5ml.
– Die Oberfläche des Auffangbehälters berechnen: Pi * (Radius)² oder Pi * (Durchmesser/2)²
Im getesten Aufbau ist die 104cm² (Trichter mit 11,5cm Durchmesser).
Mit diesen Werten kann der Kalibrierwert errechnet werden. Kal_Wert = Wassermenge pro Tick[ml] / Oberfläche des Auffangbehälters[cm²]; Der Wert ist auf Liter pro Quadratmeter umzurechnen, mit 10000 cm²/m² und 1000 ml/l ergibt sich Faktor 10.
Das ergibt im Beispiel einen Kalibrierfaktor mit (5ml / 104 cm²)*10 von 0,48 l/m².
In der beelogger_addon.ino ist der Kalibrierwert des Regenmessers einzutragen.
const float Rain_Cal = { 0.48 }; // Hier ist der Wert aus der Kalibrierung einzutragen
Ein Sketch dazu findet sich hier: Kalibrierung&Test
Der Programmcode zum Messbetrieb für den Arduino Datenlogger mit Stockwaage für Imker ist für ATmega328 oder STM32Fxyz für unterschiedliche Konfigurationen mit bis zu vier Waagen pro System verfügbar.