LoraWAN Regenmesser

LoRaWAN Regenmesser mit langem Batteriebetrieb
geöffneter LoRaWAN Regenmesser mit Wippe
LoRaWAN Regenmesser with lowest Current

Schon längere Zeit hatte ich vor, die heimische Niederschlagsmenge zu messen. Es gibt einfache Regenmesser mit einem Sammelgefäß. Die Regenmengen müssen aber regelmäßig abgelesen, geleert und dokumentiert werden. Elektronische Regenmesser mit Funktechnologie gibt es nicht viele und oft ist hier neben dem Regenmesser selbst auch noch ein Gateway mit Software notwendig. Der mechanische Selbstbau ist mühsam und sehr aufwändig. Daher entschied ich mich den Regenmesser zu erwerben und diesen für meine Zwecke umzubauen.

Ziel:
– Batteriebetrieb mit mindestens 1 Jahr Batterielaufzeit
– Möglichkeit einer universellen Anbindung für nahezu alle Home-Visualisierungen (ioBroker, FHEM, Mosquito …)

Umsetzung / Ergebnis:
– Batteriebetrieb mit einer erwarteten Batterielaufzeit von 5 Jahren
– Datenversand über eine energiesparende LoRaWAN Funkverbindung zum TTS Netzwerk
– aus dem TTS  Netzwerk werden die Daten per MQTT für den Log und eine Visualisierung zu Thingspeak gesendet
– die oben genannten Homeautomatisierungen können dabei die Daten von Thingspeak oder auch direkt aus dem TTS Netzwerk per MQTT verarbeiten
– auch ein Raspberry oder ein ESP kann sich mit wenigen Programmzeilen-Code Daten aus der Cloud von Thingspeak für eine Weiterverarbeitung holen 

Beide Graphen weiter unten zeigen aktuell eine Ansicht der aufgezeichneten Regenmengen ab 06.11.2022 in Hoyerswerda – Sachsen – Germany
Wenn man mit der Maus die Graphen berührt, werden Detaildaten dargestellt. Nach 365 aufgezeichneten Tagen wird sich der Graph automatisch verschieben.

Diese beiden Diagramme zeigen die Regenmenge und den Füllstand meiner 6000 Liter Zisterne der letzten 14 Tagen.

Beschreibung und Details

Nach etwas Recherche kaufte ich mir einen TFA Regen-Sensor WeatherHub (Artikel Nr. 30.3306.02) bei Reichelt. Die Regenmengendaten wollte ich aber nicht in einer Station oder per APP ablesen, sondern diese in meine bestehenden Haussensoren integrieren. Eine ausreichende Dokumentation der Funkbaugruppe und das Protokolls war nigendwo zu finden. Eine Funkverbindung per WLAN würde in jedem Fall eine Batterie zu stark belasten und extra ein Netzteil wollte ich nicht für den Regenmesser verwenden.
Da in meiner Nähe ( < 10 Km) ein LoraWan Gateway erreichbar ist (Reichweite dieser Technologie 10 Km und mehr) sollte die Verbindung wieder per LoraWan erfolgen. Schon öfters habe ich ein preiswertes „Lora Radio Node V1.0“ für verschiedene Projekte verwendet. Die Baugröße passt auch perfekt in die geschützten Elektronikkasten und am Regenmesser kann auch der vorhandene Batteriekasten von zwei AA Batterien als Stromversorgung verwendet werden. Die Erfassung einer Bewegung der Regensammler-Kippe erfolgt magnetisch mit einem Reedkontakt. Hier brauchte ich nur zwei Leitungen anlöten und mit meinem „Lora Radio Node V1.0“ verbinden.

Meine Software im Lora Radio Node V1.0 verbindet sich per OTAA und sendet alle ca. 3 Stunden ein Lebenszeichen, auch wenn es nicht regnet. Es werden dabei die gezählten Impulse seit dem letzten Sendevorgang und auch die Gesamtsumme dieser in das TTS (The Things Stack) Sensornetzwerk versendet. Das Lora Radio Node ist eine Version für Deutschland mit 868 MHz. Wenn Es regnet, werden die Daten in einem 5 Minuten Intervall gesendet.

Mit Nutzung einer selbst geschriebenen Sleepmode Routine am ATMEGA328P und der Zählung der Kippimpulse per Interrupt verbraucht das Lora Radio Node V1.0 nur etwa 4,6 µA. Auch durch die großen Sendepausen von 3 Stunden werde ich bestimmt Batterielaufzeiten von bis zu 5 Jahren mit zwei preiswerten AA Batterien (Mignon) erreichen.
Damit der ATMEGA328P bei unter 2,7 Volt Batteriespannung nicht abschaltet oder neu startet habe ich per ISP Programmieranschluss das BODLEVEL deaktiviert. Aber Achtung ! Das Board läuft mit 3,3 Volt –  die ISP Spannung des Programmieradapters unbedingt vorher auf maximal 3,3 Volt stellen. Auch den ungenauen originalen Kristall Oszillator vom „Lora Radio Node V1.0“ habe ich wieder abgelötet (siehe Beitrag) und durch einen viel genaueren normalen 8 MHz Quarz ersetzt. LED und LDO Regler habe ich auch vom LoraRadio Node entfernt. Ich möchte hier aber kein Raumschiff zum Mars senden, wenn alle zwei Jahre die Batterie gewechselt werden muss wäre das nicht schlimm. Eine Reinigung der mechanischen Kipp-Wippe muss eh durchgeführt werden. Nach dem Wechseln der Batterie kann der alte Gesamtzähler (Variable: zaehler_old) auch bequem in das JavaScript vom Payload Formatter eingetragen werden.

Die Sensordaten des Regenmessers kommen also im TTS Netzwerk (The Things Stack) an und werden dann durch einen Webhook zu Thinspeak gesendet. Thingspeak kann mit einem kostenfreien Account über viele Jahre diese Daten aufzeichnen und auch schön in Graphen darstellen. Wer will, kann sich die Daten auch über einen Download herunterladen und u.a. auch per Excel weiterverarbeiten. Ich nutze die graphische Darstellung und werde nach genügend vielen Daten auch Jahre miteinander vergleichen können. Die Regenmenge wird in einer Auflösung von 0,21 Litern pro Quadratmeter erfasst. Genau diese Regenmenge ist für das einmalige Umkippen der Wippe erforderlich.

TIPP: Sollte man kein „Lora Radio Node V1.0“ auftreiben können, so kann man die Schaltung auch mit einer Lochrasterplatte nachbauen. Die Schaltung zum Lora Radio Node ist weiter unten im Downloadbereich zu finden. Als Controller verwendet man ein Arduino PRO Mini mit 3 Volt und 8 MHz.

Download

Download Schaltung des Lorawan Radio Node V1.0 als PDF (53 Kb)

Achtung ! Bevor man den ISP Programmer an das Lora Wan Radio Node anschliesst, unbedingt als ISP Spannungsversorgung nur maximal 3,3 Volt einstellen. Das auf dem Bord gelötete RFM95 Modul könnte sonst einen Schaden nehmen. (linkes Bild)

Mit dem ISP Programmer dann über den Fuse den BODLEVEL auf disabled stellen. (rechtes Bild)

Direkt nach dem Empfang der Daten des Regenmessers im TTS Netzwerk können diese durch die Nutzung vom „Webhook“ zu Thinspeak weitergesendet werden. Im Bild sind die notwendigen Einstellungen zu sehen. In die Felder „Autorisation“ und „ChannelID“ setzen Sie natürlich Ihre eigenen Werte ein. Das Anlegen eines kostenfreien Accounts bei Thinspeak ist dafür Voraussetzung. (linkes Foto)

Damit die vom Regenmesser gesendeten 6 Byte hexadezimalen Werte den passenden „Fields“ bei Thingspeak zugeordnet werden können ist noch die Einstellung eines simplen Java Script Formatters notwendig. Man kann sehr gut erkennen, dass die aktuelle Regenmenge (wert1) in zwei Byte Werte, also als INT16 ankommt und der Wert der Gesamtregenmenge (wert2) als 4 Byte Werte übertragen wird. Dieser Wert ist ein INT32 Wert. (rechtes Foto)

Der neueste und aktuellste Versionsstand der Software kann über Github geladen werden.