Hochwasserpegel selbst bauen

Aufbau des Hochwasserpegels

TheThingsNetwork-Konfiguration

TTN-Anwendung und Gerät anlegen

Unsere Platine soll im nächsten Schritt per LoRaWAN unsere Messdaten an das nächstmögliche LoRa-Gateway senden, da wir kein WLAN am Bach zur Verfügung haben. Über diesen Weg können die Daten in "TheThingsNetwork" (TTN) empfangen, verarbeitet und an eine Vielzahl von Plattformen weitergeleitet werden, wo sie wiederrum weiterverarbeitet werden könnten.

Um das OTAA-Blöckchen im nächsten Schritt überhaupt nutzen zu können, müssen wir in TheThingsNetwork einen kostenfreien Account, eine neue Applikation und ein Gerät anlegen.

Die Applikation lässt sich ohne weitere Umwege mit einem beliebigen Namen anlegen. 

Deim Anlegen des Gerätes beachten wir folgende Einstellungen:

  • Frequency plan: Europe 863-870 MHz (recommended)
  • LoRaWAN Specification: 1.0.3 
  • JoinEUI: mit Nullen auffüllen

Die Device address und sonstige Keys können generiert und kopiert werden, wir brauchen diese Daten im Pegel-Programm

 

Payload-Formatter

In den Geräteeinstellungen können wir unter "Payload-Formatters" ein eigenes Java-Script einbinden. Die folgende Uplink-Vorlage kann auf eigene Bedürfnisse angepasst werden. Letztendlich definiert sie, was wir mit den gesendeten Rohdaten (Bytes) machen wollen - wie sie decodiert werden. In unserem Fall wollen wir die empfangene Rohdaten in Variablen speichern, ggf. Umrechnen und auch an weitere Plattformen weiterleiten können. 

function Decoder(bytes, port) {
  // 24-bit signed -> 32-bit signed
  function s24(b, i) {
    var v = (b[i] << 16) | (b[i+1] << 8) | b[i+2];
    if (v & 0x800000) v |= 0xFF000000; // sign extend
    return v;
  }

  // --- Rohwerte dekodieren (je 3 Byte, /1000) ---
  var distance_cm = s24(bytes, 0) / 1000.0;  // Abstand in cm
  var battery_v   = s24(bytes, 3) / 1000.0;  // Batterie in V
  var temp_c      = s24(bytes, 6) / 1000.0;  // Temperatur in °C
  var cycles      = s24(bytes, 9) / 1000.0;  // Zyklen

  // --- Pegelberechnung ---
  var TANK_HOEHE_CM = 133.0; // <- anpassen!
  var level_cm = Math.max(0, TANK_HOEHE_CM - distance_cm);

  // --- Ausgabe / ThingSpeak-Mapping ---
  var out = {
    port: port,
    distance: Number(distance_cm.toFixed(2)), // Abstand in cm
    level:    Number(level_cm.toFixed(2)),    // Pegel in cm
    battery:  Number(battery_v.toFixed(3)),   // V
    temp:     Number(temp_c.toFixed(2)),      // °C
    cycles:   Number(cycles.toFixed(3))
  };

  // ThingSpeak Felder
  out.field1 = Number(level_cm.toFixed(2));   // Pegel (cm)
  out.field2 = Number(battery_v.toFixed(2));  // Batterie (V)
  out.field3 = Number(temp_c.toFixed(2));     // Temperatur (°C)
  out.field4 = Number(cycles.toFixed(2));     // Zyklen
  out.field5 = Number(distance_cm.toFixed(2)); // Abstand (cm)
  out.field6 = Number(temp_c.toFixed(2));      // Temperatur (zweites Feld)

  return out;
}

 

Webhook

Thingsboard - Custom Webhook

Thingspeak - Vorlage Webhook

Visualisierung - IoT-Dashboards

Thingsboard

Voraussetzung: Du hast ein TTN-Gerät verbunden, hast den Payload-Formatter eingefügt und empfängst Daten von deiner Platine

Thingsboard: Lege einen kostenfreien Thingsboard-Cloud-Account an

Custom Webhook

 

Datenvisualisierung

Zur Visualisierung der Daten gibt es verschiedenste Optionen

  • Daten per WLAN direkt an Dashboard senden

Falls du deine Daten per WLAN übertragen kannst, kannst du deine Daten mit einem passenden Blöckchen direkt an IoT-Dashboards wie Thingspeak oder Thingsboard senden oder an einen eigenen Server - Nutze ein Blöckchen aus der HTTP-Kategorie, auch MQTT ist möglich

  • Daten von TTN weiterleiten

In unserem Fall (wahrscheinlich auch in deinem Fall) senden wir die Daten an TTN. Von dort aus leiten wir die Daten per Webhook weiter. In THingsboar

LoRa-Kommunikation

KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

TheThingsNetwork - todo

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

IoT-Dashboards - todo

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

LoRaWAN™ is a trademark of Semtech Corporation

back-to-top nach oben