Den Versuchsaufbauten der Autonomen Zellen #1-2 (Diskussion) folgend ist nun eine dritte passiert! (:
Idee: solarbetriebener LoRa-Node mit sechs Thermometern
- Messung der Bodentemperaturen in 5, 10, 20, 50 und 100cm Tiefe sowie der 5cm-Lufttemperatur.
- Stromversorgung per Solarzelle.
- Datenübermittlung per LoRaWAN.
Umsetzung
- 1x MCU HTCC-AB01: Heltec CubeCell Dev-Board (20€)
- 1x LiPo-Akku, 3.7V, 2Ah (8€) (ggf. zzgl. JST1.25-Stecker)
- 1x Solarzelle 6V/5W (12€)
- 1x IP66-Gehäuse Spelsberg TK PC 97-6-TM (6.5€)
- 1x Druckausgleichselement M12 (2.6€)
- 2x Kabelverschraubung M12 (0.6€)
- 3x Gegenmutter M12 (1€)
- 1x IP54-Abzweigdose (0.5€)
- 4x Verbindungsklemmen (3€)
- 6x DS18B20-Thermometer & 1x 4.7kΩ Widerstand (19€)
- 30cm Installationsrohr M16 (0.3€)
- 5x Klemmschelle M16 (1€)
- 1x Wäscheklammer
- Lochrasterplatine, Pfostenstecker/-buchsen (3€)
- Holz- und Kabelreste
- kleine Kabelbinder
Eine “in-Gehäuse”-Antenne samt U.FL-Anschlusskabel liegt der MCU mit bei. Alternativ kann mensch natürlich eine Außenantenne für besseren Empfang anbauen.
Messaufbau
Um die Abstände zu halten sind die Temperatursonden an einem Holzstab angebracht. Obgleich der DS18B20 selbst am (hier: unteren) Ende ein jeder Sonde sitzt, sitzt die Sonde mittig zur Messhöhe, da sie ja aus diesem gut leitendem Stoff, Metall, ist. Der Holzstab ist “so dick wie nötig, so dünn wie möglich” gewählt, um eine thermische Beeinflussung durch ihn zu minimieren.
Der Stab wurde mehrere Stunden nachts, waagerecht der Außenluft ausgesetzt um eine “Angleichung” der Messwerte der Thermometer untereinander vorzunehmen.
Die Sonde für die Lufttemperatur wird von einer Wäscheklammer auf der gewünschen Höhe gehalten, die mit einem kleinem Holzspieß verklebt wurde. In die Wäscheklammer wurden noch zwei kleine Kerben gefeilt damit das Kabel gut gegriffen wird.
Gehäuse & Verdrahtung
Die Schaltung ist über zwei Gehäuse verteilt: Zum Einen in einem kleinen IP66-Gehäuse (MCU und Akku), zum Anderen in einer IP54-Abzweigdose (Klemmen für OneWire-Bus). So ist der OneWire-Bus eher in einer “Opfer”-Umgebung, aber die Verkabelung kann so deutlich einfacher/günstiger ausfallen, und der teuere und empfindlichere Teil bleibt im IP66-Gehäuse gut geschützt.
Akku
Auf dem Board ist eine ungewöhnlich kleine JST1.25-Buchse für den Akku verbaut. Die Belegung von Plus und Minus ist atypisch, aber beschriftet. Da ist noch eine kleine Verbindungsklemme drin, um ggf. wieder den Strom messen zu können.
“Klemmschellen-Scharnier” für Solarzelle.
Damit sich die Neigung nicht verändert wurde einerseits (am Solarpanel) durch die beiden Klemmschellen und dem Installationsrohr je ein heißer Nagel eingebracht. Andererseits (zum Holzbrett mit den Gehäusen) sind die Klemmpunkte am Rohr mit Gewebeklebeband verstärkt, sodass hier mehr Klemmkraft ensteht, aber das Panel weiterhin einstell- und abnehmbar bleibt. (Das Klebeband wird wohl bei häufiger Nutzung gelegentlich erneuert werden wollen.)
Das Solarpanel ist mit 5W vmtl. arg überdimensioniert. Mal schauen.
Code
Zum Git-repository.
Praktisch ausschließlich aus den von Heltec bereitgestellten Examples (es gibt da nen guten Haufen) konnte ich recht zügig was zusammenzimmern, das erstmal recht zufriedenstellend zu tun scheint. Bin mal über die nächste Zeit gespannt.
Als Empfehlung zum Stromsparen schnappte ich in dem Kontext des Boards noch auf: RGB-LED disablen und auf die serielle Ausgabe verzichten.
Abgefackelt wird der Traffic über The Things Network (TTN), von dort via MQTT von nem Telegraf abgeholt und in eine InfluxDB gestopft. Die Daten werden mittels CayenneLPP verpackt. Die sieben Werte nutzen mit einer Airtime von 87ms und einem Sendeintervall von 5 Minuten wohl auch ziemlich genau die “Konsens-Airtime” pro Node (bei höchster Datenrate).
Tests
Bei nem Mess- & Sende-Intervall von 5 Minuten:
- LoRa-WAN-Gateway ist zwischenzeitig aus (ca. 11 Minuten): Node läuft weiter, glaubt sich weiterhin im Netz “gejoined” und verhält sich wie sonst auch. Wenn Gateway wieder up, kommen auch wieder Daten. Ok.
- LoRaWAN-Gateway ist aus während Node startet: nach Timeout: “join again at 30s later”. Gateway an, ca. 11 Minuten nach Node-Start: Klappte nicht. Gateway nochmal neu gestartet: Klappt. Hrm?!?.
- Zwei DS18B20 fallen während der Laufzeit aus (Vdd abgeklemmt): Es wird nur noch ein Sensor ausgelesen. Nicht ok. Die beiden DS18B20 werden zur selben Laufzeit wieder angeklemmt: Wieder alle da. Okayisch.
Dashboard or it didn’t happen
Zum Dashboard.
Ausblick: Nächstes Design?
Vielleicht wird die 6V/5W-Solarzelle noch gegen ein kleinere (6V/150mA) getauscht. Eine Idee wäre es noch einem ähnlichen Setup, aber mit so nem “ultra low-power energy harvester”-Stein (ST SPV1050) und ner 2V/160mA-Solarzelle, ne Chance zu geben (Solar Power Manager Micro – DFRobot). Würde an nem CubeCell natürlich dessen Solarladeregler-Fähigkeit ignorieren. Ich hätte aber auch noch so nen TTGO mit LoRa da. Hmhmmhm.