
Intelligente Feldgeräte wie smarte Abfalleimer, Parkplatzsensoren oder Klimamessgeräte im Weinbau kommunizieren zunehmend über eine IoT-Cloud im Internet. Auch Pegelstände an Bächen können bei Starkregen digital überwacht werden.
Öffentliches WLAN eignet sich dafür kaum, da es zu viel Strom verbraucht. Mobilfunk ist zwar flexibel, aber ebenfalls sehr energieintensiv. Ziel ist daher der Einsatz stromsparender Funktechnologien wie LoRaWAN.
Weitere Ziele:
LoRaWAN steht für Long Range Wide Area Network - also ein Weitbereichsnetz mit großer Reichweite.
Damit kannst du Sensordaten über viele Kilometer versenden ohne WLAN oder Mobilfunkvertrag!
Beispiel:
Du baust smarte IoT-Geräte wie eine Wetterstation, eine CO₂-Ampel oder einen Hochwasserpegel, die draußen im Einsatz sind. Mit LoRaWAN schickt sie ihre Messwerte an einen Empfänger in der Umgebung, ganz stromsparend und kostenlos über das The Things Network (TTN).
Dein Mikrocontroller (z. B. Octopus oder Makey) misst Daten, z. B. Temperatur oder Luftqualität.
Diese Daten werden über ein kleines Funkmodul (LoRa) gesendet.
In der Nähe steht ein LoRaWAN-Gateway, das das Signal empfängt.
Das Gateway sendet die Daten an das Internet – genauer gesagt an TTN (The Things Network).
Dort kannst du sie auf einem Dashboard sehen oder an andere Plattformen (z. B. ThingSpeak oder Thingsboard) weiterleiten.
Energieeffizient: Batteriebetriebene Sensoren halten oft mehrere Jahre.
Große Reichweite: Je nach Umgebung bis zu 10 km.
Offen & kostenlos: Dank TTN keine SIM-Karte oder monatlichen Gebühren.
Perfekt für Umwelt- und Schulprojekte: Ideal für CO2-Messungen, Wetterstationen, Bodenfeuchtigkeit, Pegel- oder Lärmmessung.
In der IoT-Werkstatt kannst du LoRa-Funk auch grafisch programmieren – fast wie mit Scratch:
Öffne die IoT-Werkstatt-Software
Wähle dein Board: Octopus (ESP8266) oder Makey (ESP32).
Suche im Baukasten nach dem Bereich „IoT / LoRa“.
Verwende das Blöckchen TTN (OTAA).
Die Parameter (wie DevEUI, App EUI, App Key usw.) bekommst du aus deinem TTN-Konto, wenn du dort dein Gerät registrierst. An Port und SF (Spreading-Faktor) ändern wir erst einmal nichts.
Lege eine Application an (z. B. „Schulwetterstation“).
Füge ein Device hinzu – TTN zeigt dir die DevEUI, AppEUI und AppKey an.
Diese Werte trägst du in deinen Blöcken oder im C-Code-Block (bei Erweiterungen) ein.
Wenn alles klappt, erscheinen deine Sensordaten live in der TTN-Konsole.
Payload-Formatter nicht vergessen
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.

Da der Octopus nur über wenige I/O-Leitungen verfügt, müssen wir ein Diodennetzwerk auf dem Feather-Shield realisieren. Da auch GPIO 13 genutzt wird, sollten die Neopixel abgeschaltet werden (Jumper SJ9 durchtrennen). Jumperbelegung/Schaltplan unter Menüpunkt "Community".
Registrierung:
Erstelle einen kostenlosen Account auf TheThingsNetwork.org.
Console öffnen:
Gehe in deinen persönlichen Bereich im TTN (Region Europe 1) und wähle „Add application“, um eine neue Anwendung anzulegen.
Knoten registrieren:
Wähle „Add end device“, vergib einen Namen für deinen Sensor und lasse die Device EUI automatisch generieren.
Die EUI wird im Device Overview angezeigt – du brauchst sie später für den Octopus-Code.
Ardublock-Programm erstellen
Im Ardublock-Baukasten „LoRaWAN™-Protokoll“ wird das OTAA-Element eingefügt. Die EUIs kopierst du direkt von TTN („Cut & Paste“-Symbol). Achte auf Duty-Cycle-Pausen zwischen Übertragungen. Verschiedene Sensorensets werden über unterschiedliche Ports unterstützt (siehe Decoder).
Echtzeitbetrieb
Nach dem Hochladen meldet sich der Sensorknoten automatisch am TTN-Gateway an (Joining) und sendet regelmäßig Daten. Diese sind im SerialMonitor sichtbar.
Decoder einrichten
Da LoRaWAN™ sehr komprimiert überträgt (z. B. als 24-Bit Integer), brauchst du im TTN-Backend einen Decoder (JavaScript), der die Werte in Klartext umwandelt. Den Payloard-Formatter kannst du in TTN entweder beim End-Device angeben oder für die gesamte Application (falls du mehrere Geräte hast, die exakt die gleichen Daten verwenden und gleich weiterverarbeiten).
Dieser kann wie folgt aussehen (in unserem Fall übertragen wir 4 Datensätze (als Data1-Data4 gespeichert):
function Decoder(bytes, port) { // Decode an uplink message from a buffer (array) of bytes to an object of fields.
var decoded = {}; //
decoded.port = port;
if (port === 10) { // Port selection
decoded.data1 = (bytes[0] << 16 | bytes[1]<<8 | bytes[2] | (bytes[0] & 0x80 ? 0xFF<<24 : 0))/1000;
decoded.data2 = (bytes[3] << 16 | bytes[4]<<8 | bytes[5] | (bytes[3] & 0x80 ? 0xFF<<24 : 0))/1000;
decoded.data3 = (bytes[6] << 16 | bytes[7]<<8 | bytes[8] | (bytes[6] & 0x80 ? 0xFF<<24 : 0))/1000;
decoded.data4 = (bytes[9] << 16 | bytes[10]<<8 | bytes[11] | (bytes[9] & 0x80 ? 0xFF<<24 : 0))/1000;
return decoded;
}
Integration einrichten
Für automatische Weiterleitung z. B. an Thingspeak.com kannst du fertige Vorlagen und Decoder nutzen.
Für die Weiterleitung an Thingsboard (aus Thingsboard-Tutorial) benötigst du einen "Custom Webhook"
LoRaWAN™ is a trademark of Semtech Corporation
Sie verlassen die offizielle Website der Hochschule Trier