Für unseren sprechenden Baum TreeAware, im Rahmen von ClimArt, wollen wir auch live-Umweltdaten aus der unmittelbaren Umgebung des Baums einbeziehen. Speziell Lufttemperatur und -feuchte im Kronenbereich des Baums und Bodenfeuchte, -temperatur und Elektrische Leitfähigkeit der Erde.
Dafür verwenden wir zwei getrennte Sensoren von SenseCAP und zwar:
- SenseCAP S2101
Temperatur / Luftfeuchte - SenseCAP S2105
Bodenfeuchte / -temperatur / Elektrische Leitfähigkeit
Weitere Sensoren aus der Familie:
Die Sensoren sind “professionelle” Geräte für den Einsatz im Umweltbereich oder Landwirtschaft / Gartenbau, kommen mit einem stabilen Gehäuse daher und einer Batterie, die ca. 10 Jahre hält. Die Datenübertragung erfolgt per LoRa.
Datenportal (nutzen wir nicht!)
Seeed / SenseCAP bietet für seine Sensoren natürlich auch ein eigenes Universum, an das man die Daten schicken kann, mit Visualisierung auf einem eigenen Portal, und auch eine API gibt es, über die man an die Daten jenseits des Portals ran kommt. Die Preise sind (momentan) recht moderat. Aber man muss das nicht nutzen, sondern kann auch direkt via TTN an die eigene TTN application schicken!
Konfiguration
Sensor / Hardware
Die Konfiguration (LoRa-Frequenz, upload-Intervall usw.) ist recht einfach, kleiner Wermutstropfen ist: Dafür muss man die “SenseCraft”-App (vor 2024-07 “SenseCAP Mate”), hier für Android, iOS gibt es auch, nutzen; und der vertraut man dann auch seine Daten an. Über die App verbindet man sich per bluetooth mit der Hardware.
Die Einrichtung ist auch deshalb komfortabel, da man einfach per Kamera den QR-Code auf den Sensoren scannt und dann schon die Hardware-IDs in der App hat. Dann kann man auch schon einen sprechenden Namen eingeben, der in der App später für das device auftaucht:
Als nächstes connected man sich per bluetooth mit dem Sensor, dazu Taste des Sensors 3 Sekunden drücken. Bei den settings habe ich diese Einstellungen angepasst:
- TTN auswählen
- das Intervall für den upload der Daten ggf. ändern (default ist 60 Minuten)
- und ich habe noch Packet Policy auf
1N
umgestellt, das verbraucht am wenigsten Batterie:
In der App gibt es auch eine abgespeckte aber schicke Datenvisualisierung ähnlich wie im SenseCAP-Web-Portal, 30 Tage sind kostenlos, dann muss man fürs data hosting etwas bezahlen. Da wir Daten zu TTN schicken sind die angezeigten locations und last data points ggf. auch falsch / nicht aktuell, da nicht verwirren lassen, sondern einfach ignorieren.
TTN
Wir wollen zu TTN schicken, und zwar zu unserer application, und nicht der von SenseCAP, dazu gibt es eine gute Doku, der wir folgen
Das läuft alles sehr smooth, in der TTN-Konsole gibt es schon vorbereitete Einstellungen für unser device:
Obwohl hier nur 1.0
für Hardware- und Firmware-Version ausgewählt werden kann und ich bei beidem auf dem Gerät was frischeres habe (Hardware V1.2, Firmware V2.3) scheint das auf die Daten keinen Einfluss zu haben, die kommen an:
"decoded_payload": {
"err": 0,
"messages": [
{
"measurementId": 4097,
"measurementValue": 22.09,
"type": "report_telemetry"
},
{
"measurementId": 4098,
"measurementValue": 43.17,
"type": "report_telemetry"
}
],
"payload": "0101104A560000010210A2A8000074AE",
"valid": true
},
Und sind mit 22.1 °C und 43 % Luftfeuchte auch plausibel,
Das einzige was mich gerade stört, ist, dass ich die Batteriekapazität nicht in den Daten finde. Wenn die Daten über SenseCape geschickt werden, ist sie da, hier finde ich sie nicht. … noch etwas im user guide geschaut:
Please note the counter number. After 20 packets, it will follow one special packet with battery info.
Yeah, also auch da, prima!
payload formatter
Hier der payload formatter, der aktuell defailt als “Device Repository”-Code ausgeliefert wird und so in der TTN-Konsole steht wenn man als device SenseCap S210x installiert. Damit schaut die decodete payload wie oben aus.
Und mein modiefizierter code custom-v0.2_...
der das messages
-Array auflöst und die Messdaten direkt in decoded_payload
schreibt:
device-repo_sensecap-s210x-payload-decoder.txt (10.3 KB)
custom-v0.2_sensecap-s210x-payload-decoder.txt (8.9 KB)
Damit werden auch keine measurementID
s wie "measurementId": 4097,
ausgegeben, sondern statt dessen sprechende Variablennamen wie eine air-temperature
. Die IDs sind bei SenseCAP dokumentiert oder auch bei ubidots.
Wenn man in TTN den oben verlinkten “custom” decoder hinterlegt, dann schaut die payload damit so aus:
"decoded_payload": {
"air-humidity": 61.16,
"air-temperature": 26.51,
"err": 0,
"valid": true
}
Oder mit Batterie, wird mit jeder 20. payload verschickt:
"decoded_payload": {
"air-humidity": 61.19,
"air-temperature": 26.54,
"battery": 100,
"err": 0,
"interval": 300,
"valid": true
}
Payload des Bodenfeuchte-Sensors:
"decoded_payload": {
"err": 0,
"soil-electrical-conductivity": 0,
"soil-humidity": 0,
"soil-temperature": 21,
"valid": true
}
Für die unterschiedliche Sensoren der S210x-er Reihe z.B. SenseCAP S2101 (Temperatur / Luftfeuchte), S2105 (Bodenfeuchte / -temperatur / Elektrische Leitfähigkeit), S2103 (Temperatur / Luftfeuchte / CO2), S2102 (Lichtintensität) usw. kann der gleiche payload-decoder verwenden werden und damit auch die gleiche TTN-Application, was recht praktisch für die schnelle Einrichtung ist! Es braucht dann nur gute Doku bei der Device-Verwaltung!
Notizen
- Den CO2-Sensor und den Bodenfeuchte-Sensor kann man kalibrieren.
- In der Doku gibt es Einstellungen, die es erlauben den Soil Type einzustellen, in der aktuellen App-Version habe ich davon nichts (mehr) gefunden.
- Der CO2-Sensor braucht für die Anzeige der Messwerte in der App (macht man nur zum Testen, braucht man sonst nicht) ca. 60 Sekunden, da nicht verwirren lassen. Leider gibt es kein Hinweis, dass da nichts hängt, sondern es einfach braucht …
- Bei einigen devices funktioniert das firmware upgrade nicht, der support schreibt dazu:
The current version V2.2w has been thoroughly tested and is functioning properly. The inability to update is due to a hardware incompatibility in some of our earlier devices, which prevents the new firmware from being installed. However, this does not affect the normal operation of the device, so there is no need to worry.
Dokumentation
- SenseCAP Document Center
- [PDF] S210X Sensors User Guide
- [PDF] How to connect S210X Sensors to The Things Network
- [PDF] SenseCAP LoRaWAN Sensor, Product Catalogue
- Sensor Types and Measurement IDs SenseCAP API Document
- für den payload decoder gibt es komischerweise mehrere repos:
– https://github.com/Seeed-Solution/TTN-Payload-Decoder
– SenseCAP-Decoder/S210X/TTN/SenseCAP_S210X_TTN_Decoder.js at main · Seeed-Solution/SenseCAP-Decoder · GitHub