LoraWAN Regenmesser

LoRaWAN Regenmesser mit langem Batteriebetrieb
geöffneter LoRaWAN Regenmesser mit Wippe
geringer Stromverbrauch LoRaWAN Regenmesser

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 2 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.

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 148 µA mit frischen Batterien. Im Laufe der Zeit wird die Klemmspannung der AA Alkaline-Batterien absinken. Dann verringert sich der Stromverbrauch weiter. Auch durch die großen Sendepausen von 3 Stunden werde ich bestimmt Batterielaufzeiten von bis zu 2 Jahren mit zwei preiswerten AA Batterien (Mignon) erreichen.
Damit nicht der ATMEGA328P bei unter 2,7 Volt Batteriespannung abschaltet oder neu startet habe ich per ISP Programmieranschluss das BODLEVEL von 2,7 auf 1,8 Volt gestellt. 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 Kristalloszillator vom „Lora Radio Node V1.0“ habe ich wieder abgelötet (siehe Beitrag) und durch einen viel genaueren normalen 8 MHz Quarz ersetzt. Denkbar wären weitere Optimierungen und Anpassungen um noch weniger Ruhestrom zu verbrauchen. Die blaue LED und auch der nichtgenutzte 3,3 Volt LDO Spannungsregler könnte entfernt werden. Weiter µA ließen sich einsparen, wenn Brown-Out am Controller ganz abgeschaltet wird. Ich möchte hier aber kein Raumschiff zum Mars senden, wenn alle zwei Jahre die Batterie gewechselt werden muss ist 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 1,8 Volt stellen. Das ist der Spannungspegel, an dem der Controller von selbst einen Restart durch eine erkannte Unterspannung macht. Bei Original 2,7 Volt würde das schon bei leicht entladenen Batterien oder im Sendemoment passieren, wenn die Schaltung etwas mehr Strom aus dem Batterien zieht. (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)

Arduino Quellcode ist weiter unten (Wenn dieser nicht zu sehen ist, wird gerade daran gearbeitet. Bitte später noch mal versuchen die Seite zu aktualisieren oder mir eine Mailanfrage schreiben)