
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.
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:
Die Device address und sonstige Keys können generiert und kopiert werden, wir brauchen diese Daten im Pegel-Programm
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. Du kannst den Payload-Formatter auch in deiner Application festlegen - dann gilt die Formatierung für alle Geräte, die du innerhalb der Application anlegst.
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 = 158.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;
}
TheThingsNetwork bietet unter “Webhooks” eine Vielzahl an Vorlagen zur Übertragung unserer Pegeldaten auf unterschiedliche Plattformen. Da wir auf TheThingsnetwork zwar unsere Daten sehen, aber nicht visualisieren können, nutzen wir diese Webhooks, um Plattformen zur Visualisierung zu verwenden.
Eine mögliche Plattform ist ThingSpeak. Dort können wir neben der Visualisierung auch noch MATLAB zur Analyse und Verarbeitung unserer Daten verwenden, falls wir bspw. Durchschnittswerte, historische Daten analysierenu nd darstellen wollen.
In ThingSpeak:
In TheThingsNetwork:
In ThingSpeak kannst du nun deine Daten einsehen und analysieren. Ein Beispiel, wie die Visualisierung später aussehen kann findest du unter messpegel.de
eine weitere Plattform zur Datenvisualisierung bietet Thingsboard. Die Plattform bietet eine kostenlose Testversion als “Thingsboard Cloud”, eine CommunityEdition zur eigenen, lokalen Installation auf einem eigenen Server steht jedoch auch bereit. Wir nutzen eine eigene Instanz, welche unter thingsboard.umwelt-campus.de verfügbar ist. Zur Nutzung benötigst du jedoch einen Account, einen Account zur Einbindung eigener Hochwasserpegel oder DIY-Projekte kannst du auf Anfrage von uns erhalten.
In der Plattform Thingsboard:
In TheThingsNetwork:
In Thingsboard kannst du die Daten, die bei dem Gerät ankommen, einsehen, indem du:
Ein Beispiel, wie ein Dashboard bei Thingsboard aussehen kann, findest du hier!
LoRaWAN™ is a trademark of Semtech Corporation
Sie verlassen die offizielle Website der Hochschule Trier