Smart Gardening: Bodenfeuchte überwachen mit dem Tektelic Agriculture LoRaWAN® Sensor
Letzte Änderung am 11.04.2024
Der Beitrag „Pflanzen mit IoT-Sensoren und LoRaWAN® überwachen…“ beschreibt, was man alles braucht, um seine Pflanzen mit LoRaWAN® zu monitoren und welche Vorteile das hat. Auch in meinem eigenen Garten habe ich unsere Pflanzen oder auch den Rasen bisher eher auf gut Glück bewässert. Da ich das ändern wollte und hier Dank eines ZENNER IoT GatewayPLUS bereits LoRaWAN®-Empfang besteht, habe ich das Ganze mal, wie kürzlich in einem Post angekündigt, mit dem Tektelic Agriculture Soil Moisture Sensor in die Praxis umgesetzt.
In einem ersten Schritt wollte ich folgende drei Dinge erreichen:
- Die Bodenfeuchte wird gemessen
- Die Messdaten werden auf einem Dashboard visualisiert
- Eine Benachrichtigung erfolgt, wenn es zu trocken ist
Bodenfeuchte mit Sensor messen
Bevor es an die Umsetzung geht, noch ein paar Worte und Fakten zum verwendeten Sensor.
Der Tektelic Agriculture Sensor im Kurzportrait
Der mit einer C Cell LTC Batterie betriebene LoRaWAN® Sensor der Klasse A ist in zwei verschiedenen Ausführungen erhältlich, wobei es sich in meinem Fall um das „Soil Surface Mount Model (CLOVER)“ mit zwei integrierten Metallsonden handelt, über die die Messung erfolgt.
In der Standardkonfiguration verhält sich der Sensor wie folgt, wobei das Standard-Messintervall genau dem Standard-Sendeintervall entspricht:
- Alle 15 Minuten Übertragung von:
- Input1_frequency = Bodenfeuchte in Kilohertz (KHz), dazu später mehr
- Input2_voltage = Bodentemperatur in Volt (V)
- Relative_humidity = Relative Luftfeuchtigkeit in Prozent (%)
- Light_intensity = Helligkeit bzw. Lichtmenge in Lux (lux)
- Ambient_temperature = Umgebungstemperatur in Grad Celsius (°C)
- Alle 24 Stunden Übertragung von:
- Batteriestatus → Das Besondere hier: Der Sensor schätzt mit Hilfe eines Strommessverstärkers (Current Sense Amplifier, kurz CSA) sowohl die noch verbleibende Batteriekapazität als auch die verbleibende Lebensdauer in Tagen
Diese Konfiguration wurde von mir vorerst nicht geändert, ist aber jederzeit durch Senden von Downlinks über den ZENNER Datahub möglich. Hier ein paar mögliche Anwendungsbeispiele:
- Verkürzung des Sendeintervalls, um schneller eine Rückmeldung zu erhalten ob genug bewässert wurde, bevor es vielleicht zu viel wird
- Deaktivierung nicht benötigter Parameter, um Batterie zu sparen. Wobei die Batterielebensdauer im Basisnutzungsfall, dem oben genannten Sendeintervall und bei Raumtemperatur laut Hersteller mindestens 10 Jahre beträgt
- Aktivierung des schwellenwertbasierten Sendens, um bei Über- oder Unterschreitung bestimmter Werte sofort Datenpakete zu erhalten
Sensor montieren und in Betrieb nehmen
Die Montage und Inbetriebnahme des Sensors ist wirklich kinderleicht:
- Sensorgehäuse mit einem Torx-Schraubendreher öffnen (das einzige, was etwas umständlich ist, da 8 Schrauben nicht gerade wenige sind), die mitgelieferte Batterie einlegen und das Gehäuse wieder schließen. Wichtig: Ich hatte damit noch keine Probleme, aber man sollte darauf achten, dass die Silikondichtung beim Schließen wieder sauber im Gehäuse sitzt, damit der Sensor auch wirklich dicht ist.
- Sensor mit den beiden Metallsonden einfach in den zu überwachenden Boden stecken.
- Den mitgelieferten Magneten kurz an den integrierten Reedschalter halten (siehe Magnetsymbol auf dem Gehäuse), um den Sensor zu aktivieren und den Join-Vorgang über OTAA auszulösen. Während des Bootens und des Verbindungsaufbaus blinkt die LED und leuchtet am Ende grün auf, wenn der Join-Vorgang erfolgreich war.
Hier ein paar Fotos vom installierten Sensor an verschiedenen Installationspunkten im Garten:
Messdaten auf Dashboard visualisieren
Was die Visualisierung der erfassten Messdaten in einem Dashboard angeht, war die erste die Idee, den Sensor einfach zu einer meiner B.One Gallery Gebäudegeruppen hinzufügen. Da es dort aber leider für dieses Gerät aktuell noch keinen Parser gibt, habe ich in diesem Fall auf das Open Source Tool Grafana zurückgegriffen.
Hier eine Ansicht meines bisher erstellten Garten-Dashboards:
Wie ihr seht, enthält mein Dashboard bis jetzt:
- Ein Panel mit dem aktuellen Status der Bodenfeuchte = Anzeige, ob diese gerade zu niedrig, zu hoch, noch okay oder gut ist. In Anlehnung an die Umrechnungstabelle in der Payload-Beschreibung und eine Tabelle zur Pflanzenentwicklung habe ich hierfür die folgenden Schwellenwerte hinterlegt:
- ab 1356000 kHz → Optimale Versorgung (grün)
- ab 1381000 kHz → Noch ausreichende Versorgung (gelb)
- ab 1391000 kHz → Unterversorgung (rot)
- Base, d. h. alles < 1356000 → Überversorgung (blau)
- Ein Panel mit dem aktuellen bzw. zuletzt gemessenen Bodenfeuchtewert
- Ein Panel mit dem zeitlichen Verlauf der Bodenfeuchte
- Ein Panel mit den zuletzt gemessenen Werten in Tabellenform
- Jeweils ein Panel mit den übrigen oben genannten Parametern im Zeitverlauf
Dieses Dashboard kann jederzeit nach Belieben erweitert werden. Der eigenen Fantasie sind hier kaum Grenzen gesetzt. Wie genau ihr ein eigenes Dashboard erstellt, könnt ihr der Grafana Dokumentation entnehmen. Weitere hilfreiche Artikel zum Tool findet ihr darüber hinaus auch in der Blogkategorie Grafana. So zum Beispiel ein Howto, Grafana lokal installieren könnt.
ZENNER Datahub und Postgres-Datenbank als Datenquelle
Da mein Sensor in das ZENNER Connect LoRaWAN® Netz eingebunden ist, dient der ZENNER Datahub als Datenbasis. Die von den Sensoren erfassten Daten werden per http-POST-Weiterleitung an eine im Hintergrund liegende postgres-Datenbank übertragen und dort von Grafana zur Anzeige im Dashboard abgegriffen. Wie ihr eine Datenbank an Grafana anbinden könnt, wird im Blogbeitrag “Grafana Howto: Eine Datenbank als Datenquelle anbinden” gezeigt.
Benachrichtigung bei Trockenheit einrichten
Um nicht immer proaktiv auf das erstellte Dashboard schauen zu müssen, wollte ich wie eingangs erwähnt eine Benachrichtigung erhalten, wenn es zu trocken wird. Wie ich diese einrichte, habe ich dem Artikel „Grafana Howto: Alerts einrichten am Beispiel von Telegram“ entnommen.
Hier ein Beispiel für eine Benachrichtigung bei Überschreiten von 1391000 kHz (= Unterversorgung):
Wie ihr seht, sieht die erhaltene Benachrichtigung noch nicht wirklich gut aus, aber sie wird versendet und erfüllt erstmal ihren Zweck. Was ich auch noch herausfinden möchte ist, wie ich einstellen kann, dass eine weitere Benachrichtigung gesendet wird, wenn sich die Bodenfeuchte wieder normalisiert hat.
Fazit und Ausblick
Wir haben nun exemplarisch gesehen, wie der Anwendungsfall der Bodenfeuchteüberwachung mit dem LoRaWAN®-basierten Tektelic Agriculture Soil Moisture Sensor (CLOVER), dem ZENNER Datahub und einem Tool wie Grafana umgesetzt werden kann. Das lässt sich natürlich auf viele andere Anwendungsbereiche übertragen. Mein zusammenfassendes Fazit:
- Der Tektelic Agriculture Sensor lässt sich schnell und einfach montieren und aktivieren.
- Die Werte werden vom Sensor zuverlässig übertragen.
- Der Sensor macht einen guten, sehr robusten Eindruck und der Formfaktor ist für viele Anwendungen und Montageorte geeignet, allerdings nicht für bspw. kleine Blumentöpfe.
- Der Sensor kann bereits in der Standard-Konfiguration verwendet werden, bietet aber auch viele Konfigurationsmöglichkeiten. Die Konfiguration ist allerdings etwas umständlich, da es leider keinen Downlink-/Payload-Generator gibt.
- Das Einrichten eines Grafana Dashboards und (Telegram)-Benachrichtigungen sind doch zum Teil etwas aufwendiger und für mein Empfinden etwas „tricky“, zumindest wenn man noch nicht so viel mit dem Tool gearbeitet hat. Dafür hat man auf der anderen Seite viele individuelle Gestaltungsmöglichkeiten. Eine Integration in die B.One Gallery wäre jedoch die deutlich einfachere Variante.
Last but not least ein kleiner Ausblick: Die Bodenfeuchte zu erfassen ist eine tolle Sache, aber im nächsten Schritt möchte ich das Ganze noch erweitern und nach einer Benachrichtigung über einen zu trockenen Boden per Knopfdruck meinen Wasserhahn im Garten fernsteuern, um zum Beispiel die Bewässerung des Rasens über die Sprinkleranlage zu vereinfachen oder den Kindern aus der Ferne das Wasser abzudrehen, wenn sie es damit mal wieder übertreiben. Dazu dann hoffentlich bald mehr in einem weiteren Beitrag 🙂
Kommentare