SenseCAP S210x Umwelt-Sensoren

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:

  • SenseCAP S2103
    Temperatur / Luftfeuchte / CO2
  • SenseCAP S2102
    Lichtintensität

2023-11-27 18_05_07-SenseCAP S2101- LoRaWAN® Air Temperature and Humidity Sensor - Seeed Studio – Mo

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 measurementIDs 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

2 Likes

A post was merged into an existing topic: Sensoren für Bodenfeuchte

Hi Clemens,

dies hier sieht ja nach einem Nachrichtenformat aus, das geeignet sein könnte, von Kotori zukünftig dekodiert zu werden?

Viele Grüße,
Andreas.

Ich habe oben das posting zwischenzeitlich editiert und aktuelles nachgetragen. Wie dort geschrieben funktioniert das nun mit diesem payload decoder:

und dem aktuellen Kotori bzw. dem bei uns auf weather gepatched wie hier beschrieben: Latitude- / longitude-Daten in TTN payload aber nicht in Grafana - #12 by Andreas Danke @Andreas!

1 Like