IoT Workshop 2025
1 Einführung
Stand: 2025-07-10 23:58
Git Rev: 018b419
E-mail: Hubert.Hoegl@tha.de
[Werbung: Den Text habe ich mit Quarto geschrieben.]
Dieser Text steht unter der Creative Commons Lizenz CC-BY-SA
Über den Autor
- Lehre als Radio- und Fernsehtechniker Ende der 70er Jahre
- Studium der Physik in Regensburg
- Promotion in Technischer Informatik an der Uni Mannheim in den 90ern
- Seit 2002 Professor für Technische Informatik an der Hochschule Augsburg (Link)
- Linuxler seit 1992, Pythonist seit 1993
- Am liebsten Kommandozeile, grafische Tools nur wenn nichts anderes geht
- Mikrocomputertechnik (“Embedded Systems”), Embedded Linux
- Mag immer noch Elektronikbasteln
- Überzeugter Anwender von freier und offener Software
1.1 Behandelte Themen
Was ist das “Internet of Things” (IoT)?
Drei wichtige Bereiche
- Geräte (die “Things”)
- Gateway
- Cloud Plattform
Bild entnommen aus Eclipse IoT White Paper: The Three Software Stacks Required for IoT Architectures
Dinge, Nodes, Knoten, Devices, …
- Microcontroller, oft ohne Betriebsystem oder mit kleinem RTOS
- Fast immer drahtlos, also ohne Kabel (WiFi, Bluetooth, LoRa, LoRaWAN, NB-IoT)
- Uplink 🡒 vom Ding zur übergeordneten Einheit
- Downlink 🡒 von der übergeordneten Einheit zum Ding
- Eingabegeräte, z.B. Schalter, Sensoren für physikalische Grössen
- Ausgabegeräte, z.B. Anzeigegeräte oder Ausgänge ein/ausschalten
Kommunikation über definierte Protokolle (siehe weiter unten)
Geringe Stromaufnahme, oft jahrelange Laufzeit mit Batterie, oder autonom z.B. mit Solarzelle
“Gateway” - leitet Pakete vom verwendeten Funksystem, z.B. LoRa auf das Internet weiter. Ähnlich zum “Edge Gateway”.
“Edge Gateway” - kümmert sich um mehrere “Things” / Vermittler zur Cloud / macht schon eine Vorverarbeitung/Filterung der Daten. Oft Rechner in der Leistungsklasse eines Raspberry Pi mit Linux.
“Cloud” - Meist Rechner in einem grossen (kommerziellen) Rechenzentrum, irgendwo im Internet
Alle grossen Cloud-Anbieter buhlen um IoT Daten (Google, Amazon, …), leider wenig Kontrolle über die Daten, und auch teuer!
Man kann auch freie Software selber hosten und damit eine souveräne IoT Cloud aufbauen
Thingsboard https://thingsboard.io
Mainflux https://mainflux.com
Snapemu https://snapemu.com
Alle drei sind Open Source Software.
Speicherung von Sensordaten, oft Zeitserien die in spezialisierten Zeitserien-Datenbanken gespeichert werden
Auswertung und Visualisierung der in der Cloud gesammelten Daten. Automatisierte Benachrichtigung von verantwortlichen Menschen.
Plot-Frameworks in Python wie Matplotlib, Bokeh oder Plotly/Dash.
Grafana https://grafana.com
Node-RED https://nodered.org
Ntfy https://ntfy.sh
Moderne Hausautomatisierung ist auch IoT!
Beliebte Microcontroller bzw. Boards
Heltec LoRa V3 (ESP32-S3)
Preis ca. 25 €.
Seeed Xiao ESP32-C3 Board
Preis ca. 8 €.
Raspberry Pi Pico (mit RP2040 Mikroprozessor)
Preis ca. 5 €.
Raspberry Pi
Die bekannten Pi der Versionen 3, 4 und 5 sind “richtige” Computer mit einem “grossen” Betriebssystem (Linux). Das ist ein deutlicher Unterschied zu den drei vorher genannten, die meist ohne Betriebssystem verwendet werden. Der “Pico” ist eine Ausnahme, auf ihm kann man nicht Linux verwenden!
Der Preis für den gezeigten Raspberry Pi B+ liegt bei 40 €.
Programmierung
C/C++
Arduino (C++ mit Erleichterungen)
Micropython
Abbildung 1.1: Komplexität der Sprachen LoRaWAN
Wie funktioniert es?
Wir werden ein LoRaWAN Gerät selber bauen.
Standards
- IEEE 802.3 (Ethernet)
- IEEE 802.11 (WiFi)
- Bluetooth SIG (IEEE 802.15.1)
- IEEE 802.15.4 (Zigbee, Thread)
- ITU-T Y.4480 (LoRaWAN)
Kommunikation über Internet Protokolle
- Standardisierung über RFCs (Request for Comments)
- UDP (RFC 768)
- TCP (RFC 9293)
- HTTP (RFC 2616)
- MQTT (RFC 9431)
- Websocket (RFC 6455)
Freie und offene Software
1.2 Zum Kursablauf
Mein Teil des Kurses dauert zwei Tage (Montag, Dienstag). Ich habe ein grösseres Projekt vorbereitet, bei dem ein LoRaWAN Endgerät gebaut wird das Teil des freien The Things Network (https://www.thethingsnetwork.org, TTN) wird.
Ausserdem noch ein paar Ideen für kleinere Experimente
Das erste Projekt wird die meiste Zeit einnehmen. Es kann gut sein dass wir in den ersten beiden Tagen zu keinen weiteren Projekten kommen. Sie können diese Ideen dann gerne als Anregung verstehen, um an den weiteren Kurstagen oder zu Hause an den IoT-Projekten zu arbeiten.
Im Kurs werden wir abwechseln zwischen Zuhör-Phasen und Selbstmach-Phasen. In den Zuhör-Phasen stelle ich entweder Abschnitte aus den Zuhörthemen vor oder improvisiere einfach.
Ich zeige alle Beispiele unter Linux. Zum Nachmachen haben Sie ein Notebook mit “Mint” Linux auf ihrem Arbeitstisch.
Zusammenfassung der Selbstmach-Phasen beim LoRaWAN Projekt
Account auf https://www.thethingsnetwork.org besorgen.
Herausfinden wo das nächste Gateway ist. Siehe die Karte. Suchen Sie gerne mal ihre Heimatgegend und prüfen Sie ob es dort im Umkreis von ein paar Kilometer Gateways gibt!
Das folgende Bild zeigt das RAK7258 Gateway, das ich an der Hochschule Augsburg in meinem Arbeitszimmer stehen habe.
.
Falls man kein Gateway in der Nähe hat, vielleicht an ihrer Schule oder zu Hause, muss man selber eines aufstellen. Es gibt z.B. das TheThingsNetwork Indoor Gateway (TTIG).
https://www.thethingsindustries.com/docs/gateways/models/thethingsindoorgateway
Siehe
$WORKSHOP_REPO/ttig/
.
Hier sind z.B. die Gateways in Augsburg (Stand 2024)
In Dillingen sieht es wie folgt aus. Das “bndlg-gw” ist in der Akademie untergebracht (Stand 7-2025):
LoRaWAN Gerät selber bauen mit “Heltec WiFi LoRa V3”.
- Einfache Anwendung mit Taste, Poti und LED. Das Gerät wird jede Minute einen “Funkschuss” (Uplink) abgeben in dem der Zustand der Taste und des Poti kodiert ist. In Gegenrichtung (Downlink) kann man die LED ein- und ausschalten.
- Gerät in der TTN Konsole konfigurieren
- Payload kodieren und dekodieren
“Integration”
Dabei geht es um die Frage wie ich mit dem bisher isolierten Gebilde Gerät - Netzwerk-Server kommunizieren kann. Wie kann ich Daten an den Netzwerk-Server schicken, die an das Gerät weitergeleitet werden? Wie kann ich Daten vom Netzwerk-Server empfangen um sie mit eigenen Werkzeugen weiterzuverarbeiten (speichern, auswerten, visualisieren, signalisieren, …).
- Storage
- Webhook
- MQTT
- Node-Red Dashboard
- Zeitseriendatenbank
- Visualisierung mit Grafana
- Benachrichtigung mit Ntfy
- TTN Mapper
Das Kursmaterial für das LoRaWAN Projekt ist im Gitlab Repository https://gitlab.com/huberthoegl/iot_workshop. Man holt es auf den eigenen Rechner mit
git clone https://gitlab.com/huberthoegl/iot_workshop
Im Text nenne ich dieses Verzeichnis $WORKSHOP_REPO
. Die Schreibweise bezeichnet eine Shell Variable, siehe folgendes Beispiel:
$ WORKSHOP_REPO=/home/hhoegl/iot_workshop
$ cd $WORKSHOP_REPO
$ pwd
/home/hhoegl/iot_workshop