Microsoft stellt auf Github einen Kurs zum Thema „Internet of Things” (IoT) zur Verfügung. Der Kurs ist seit ein paar Wochen online und bietet in 24 Lektionen einen Einstieg ins Internet der Dinge. Innerhalb von 12 Wochen kann man anhand von mehreren Projekten einen Einblick in IoT-Techniken bekommen, die in ähnlicher Form tatsächlich bei Anbau und Verarbeitung von Nahrungsmitteln auf dem Weg vom Feld bis zum Konsumenten zum Einsatz kommen könnten.
Kursinhalt
Nach der Einführung werden fünf kleinere Projekte bearbeitet, die jeweils aus mehreren Lektionen bestehen. Die Teilprojekte orientieren sich am Anbau von Pflanzen in einem landwirtschaftlichen Betrieb, weiter geht es mit Transport, Verarbeitung und Handel, bis die Lebensmittel auf dem Tisch des Verbrauchers landen und zubereitet werden. Gearbeitet wird u.a. mit Sensoren zur Messung der Lufttemperatur oder Bodenfeuchte beim Anbau der Pflanzen; die Sensorwerte werden dann ins Internet an einen MQTT-Broker übermittelt und zur Steuerung eines Relais für eine automatische Bewässerung genutzt. Per GPS wird anschließend der Transportweg der geernteten Pflanzen verfolgt. In der Fabrik erfolgt mittels Bildverarbeitung die Qualitätskontrolle der Früchte. Beim Handel geht es um die Erkennung von Objekten zur Analyse des Warenbestands. Zuletzt wird beim Verbraucher das fertige Produkt zubereitet: hierbei soll ein sprachgesteuerter Timer zum Einsatz kommen – Siri, Alexa und Co. lassen grüßen.
Die 24 Lektionen soll man in 12 Wochen durcharbeiten können, wobei man sich auch auf einzelne Projekte beschränken kann. Der Schwierigkeitsgrad steigt im Lauf des Kurses. Jede Lektion beginnt und endet mit einem Quiz. Der Kurs richtet sich recht allgemein an Student*innen ohne Angabe von Vorkenntnissen oder Fachrichtung, nennt aber auch Hobbyisten als Adressaten. Wenn insbes. die Teile zur Bild- und Sprachverarbeitung nicht zu tief in die Mathematik und KI einsteigen, sollte der Kurs vermutlich auch für ältere Schüler*innen und Auszubildende geeignet sein, sofern die entsprechenden Programmierkenntnisse vorhanden sind, ebenso für alle anderen, die erste praktische Erfahrungen bei der Programmierung im Internet der Dinge machen möchten. Zu den Projekten werden bereits fertige Lösungen bereitgestellt; zusätzlich findet man Tipps für Lehrende, wie die Inhalte im Unterricht genutzt werden können.
In einem 17-minütigen Youtube-Video stellen die Autoren den IoT-Kurs vor.
Der IoT-Kurs wird als Open Source unter der MIT-Lizenz veröffentlicht; er wurde in englischer Sprache entwickelt. Es gibt Übersetzungen ins Portugiesische, Spanische und verschiedene weit verbreitete nicht-europäische Sprachen – Deutsch ist nicht dabei.[1]Siehe die mit »Translation« markierten Punkte in der Themen- oder Problem-Liste des Projekts – bei Github Issues genannt.
Projekt auf Github
Die Kursmaterialien sind auf Github unter dem Link github.com/microsoft/IoT-For-Beginners/ zu finden. Empfohlen wird für die Bearbeitung, einen Fork des Projekts anzulegen und in diesem die eigene Lösung zu erarbeiten. Hierzu benötigt man ein (kostenloses) Konto bei Github und sollte auf dem eigenen Rechner einen Git-Client installieren.
Man kann aber auch das Projekt als ZIP-Datei herunterladen, wenn man will. Hierzu klickt man auf der Startseite des Projekts auf den grünen Button »Code«
– das Archiv findet man dann unter dem Link „Download ZIP”.
Hardware
Zum Absolvieren des Kurses werden zwei physische Hardware-Plattformen unterstützt:
- der Raspberry Pi – hier erfolgt die Programmierung in Python mit der (frei verfügbaren) Programmier-Umgebung Microsoft Visual Studio Code (VS Code)
- das Wio Terminal von Seeed wird in C++ programmiert; als Programmier-Umgebung wird VS Code mit dem PlatformIO-Plugin genutzt, stattdessen kann die (einfachere, weniger leistungsfähige) Arduino-IDE verwendet werden [2]Beide Umgebungen sind kostenlos und Open Source (VS Code nicht komplett, aber in den wesentlichen Teilen). Ein paar Hinweise zu Download und Installation sind in zwei Blog-Beiträgen zu finden: zur … Continue reading
- alternativ gibt es die Möglichkeit, eine virtuelle Hardware[3]Mit der virtuellen Hardware spart man sich die nicht unerheblichen Kosten für einen Raspi oder eine Arduino-kompatible Hardware – sinnvoll, wenn man erst einmal nur in das Thema … Continue reading zu nutzen – die wird dann wieder in Python programmiert
Die Projektmacher geben auch eine Hardware-Empfehlung mit Links zu Bezugsquellen. Microsoft hat als Hardware-Partner die chinesische Firma Seeed gewählt – die sind die Erfinder des Grove-Systems (Einführung als PDF), bei dem einzelne Module über vieradrige Kabel mit speziellen Steckern mit einem Mikrocontroller verbunden werden. Auch für den Kurs werden deshalb viele solcher Grove-Module vorgeschlagen – das ist für den Einstieg vermutlich etwas einfacher und weniger fehleranfällig als das Verbinden einzelner Komponenten auf dem Breadboard (Steckplatine) mit Jumperkabeln – das System ist verpolungssicher und die Stecker dürften weniger wackelig sein als Jumperkabel. Löten entfällt komplett – bei einigen der Sensoren für Arduino, ESP32 etc. muss man z.B. die Steckerleisten selbst anlöten.
We picked their hardware, because we want to teach you IoT, not electrical engineering.
(Jim Bennet) [4]Quelle: Video mit Fragen zu Lektion 2, etwa bei Minute 6:50
Seeed bietet ein Komplett-Set an, mit dem man den IoT-Kurs in der Arduino-IDE bearbeiten kann. Das gesamte Set kostet 80 US-$ und wird aus China geliefert – man muss also vermutlich neben den Versandkosten (knapp 10 $) noch 19 % Einfuhrumsatzsteuer dazu addieren.[5]Es gibt auch einige deutsche Versandhändler, die Seeed-Produkte führen (z.B. Conrad, Völkner oder Distrelec). Ob das Kit dort auch erhätlich ist, habe ich nicht geprüft. Beim aktuellen Umrechnungskurs ist man dann mit etwa 90 € dabei.
Umsetzung mit dem ESP32
Mein Fall ist das Grove-System nicht. 😉 Es gibt zwar eine ganze Menge an Sensoren und anderen Komponenten, aber längst nicht alles, was man vielleicht gerne hätte. Außerdem kosten die Module deutlich mehr als einzelne Bauteile, und ich finde auch den Aufbau auf dem Breadboard (oder einer gelöteten Platine) flexibler und platzsparender als die frei verkabelten Grove-Module. Letztlich ist es wohl auch Geschmackssache.
Deshalb möchte ich versuchen, zumindest einige Teilprojekte mit dem ESP32 zu realisieren. Von der Leistungsfähigkeit sollte er ausreichen und mit dem im Seeed Wio Terminal verwendeten Mikrocontroller mit ARM Cortex-M4F Core (Taktfrequenz 120 Mhz, 4 MB Flash-Speicher, 192 KB RAM, WiFi, Bluetooth; für Details siehe die Seite zum Wio Terminal) mindestens mithalten können. Optisch ist das Wio Terminal natürlich deutlich schöner als ein ESP32 auf einem Breadboard und bietet ein paar Dinge, die der ESP32 nicht kann (wie USB OTG), aber das lässt sich der Anbieter auch gut bezahlen.[6]Wer ein ähnlich „schickes” Gerät auf ESP32-Basis sucht, kann sich vielleicht einmal den TTGO T-Watcher des chinesischen Anbieters Lilygo ansehen, bei dem im Gehäuse ein … Continue reading
Bisher hatte ich noch auf einige bestellte Hardware gewartet und erst einmal nur die Einleitung durchgearbeitet. Nachdem die Bestellungen nun aber eingetroffen sind, werde ich mich in den nächsten Wochen auch mit den praktischen Projekten befassen und hier im Blog meine Erkenntnisse teilen. Ich gehe aber nicht davon aus, dass ich dabei den Zeitraum von 12 Wochen einhalte oder sogar die seit der Veröffentlichung verstrichene Zeit aufholen werde.
Folgende Hardware habe ich jetzt für den Kurs bereitgelegt:
- ESP32 DevKit C [1a] und/oder ESP32 CAM mit Kamera OV2640 [1b]
- [2a] DHT11 Luftfeuchtigkeits- und Temperatursensor – der Sensor ist nicht sehr präzise; wer hat, nutzt besser den DHT22 [2b]
- kapazitiver Bodenfeuchtesensor (der Typ [3a] neigt zur Korrosion; besser ist die ummantelte Version [3b])
- Relais-Modul
- GPS-Modul mit dem Chip ATGM336H[7]Die vorgeschlagene Hardware nutzt einen anderen GPS-Chip, den Air530. Ich habe das ATGM336H-Modul gewählt, weil es relativ preisgünstig und lieferbar war.Es gibt auch noch andere Chips wie den … Continue reading
- Time-of-Flight Entfernungssensor VL53L0X
- Modul für Sprach-Ein-/Ausgabe mit dem Chip WM8960[8]Ich habe das Modul auf der chinesischen Handelsplattform Aliexpress bestellt. Dort liefert eine Suche nach »wm8960« verschiedene Module; die gesuchten werden oft als „WM8960 Hi-Fi … Continue reading – ob das Modul mit einem ESP32 zusammenarbeitet, muss sich noch zeigen; sonst kommt dafür ein Raspberry Pi Zero zum Einsatz, der in der Schublade liegt; für die Ausgabe wird außerdem ein Kopfhörer oder ein kleiner Lautsprecher benötigt
- farbige LEDs [8a] und passende Vorwiderstände [8b] (220 oder 330 Ω) – vermutlich wird nur eine LED benötigt; falls man einen ESP32 mit eingebauter LED hat
, kann man für die Übung auf eine separate LED verzichten
- falls benötigt, ein Display (0,96 Zoll OLED mit Treiberchip SSD1306 oder ein 2,4 Zoll Farb-TFT mit Treiberchip ILI9341 und 320 * 240 Pixeln; vergleichbar dem im Wio Terminal verbauten Display) – ich hoffe, dass einfache Ausgaben im seriellen Monitor der Arduino-IDE ausreichen
- Breadboards, Jumperkabel, Steckbrücken
- evtl. ein SD-Kartenleser (nicht im Bild enthalten; auf dem ESP32-CAM-Modul ist einer eingebaut)
- ein Lichsensor (nicht auf dem Bild) – die erste Übung nutzt den im Wio Terminal eingebauten Sensor, um ein „Nachtlicht” zu steuern; mit dem ESP32 kann man einen analogen Sensor wie den TEMT6000 oder einen digitalen wie den BH1750 verwenden
Wenn man das alles neu bestellt, landet man zumindest im deutschen Versandhandel schnell jenseits der 50 € plus Versandkosten und wird sich die Komponenten vermutlich bei mehreren Händlern zusammensuchen müssen (bei Direktbestellung in China ist es auch nach Wegfall der Freigrenze bei der Einfuhrumsatzsteuer seit Juli 2021 immer noch einiges günstiger – aber auch dort wird man kaum alle Teile und Sensoren einem Anbieter finden). Ich hatte zum Glück das meiste schon zu Hause liegen, teilweise sogar noch unbenutzt – neu gekauft habe ich nur das GPS- und das Sprach-Modul.
Damit bin ich hoffentlich mehr als gut für den Kurs ausgestattet und werde berichten, wie es läuft. Es kommen ja einige Module zum Einsatz, mit denen ich mich hier im Blog noch nicht befasst habe – also Stoff für weitere Beiträge.
Weitere (Sommer-)Kurse auf openHPI und openSAP
Wer neben dem IoT-Kurs noch weiteren Input benötigt und Neues lernen möchtet, sei hier noch einmal auf die kostenlosen Online-Kurse (MOOCs) der Lernplattformen openHPI und openSAP hingewiesen. Da aktuell wegen der Sommerferien auf den beiden Plattformen keine (openHPI) oder nur wenige (openSAP) neue Kurse laufen, bieten sie in dieser Zeit jeweils eine sog. „Summer School” an.
Bei openHPI kann man bis zum 15. September einige frühere Kurse absolvieren und mit einem Zertifikat abschließen. Die Kurse stehen zwar auch sonst für angemeldete Benutzer im Selbststudium zur Verfügung – jetzt in Sommer wurden die Kurse aber reaktiviert, d.h. man kann wieder kostenlos eine Prüfung machen und bei Erfolg ein Zertifikat erhalten. U.a. werden folgende Kurse angeboten:
- Tatort Internet – Angriffsvektoren und Schutzmaßnahmen
- Digital Health für Einsteiger
- Künstliche Intelligenz und maschinelles Lernen für Einsteiger
- Blockchain – Revealing the Myth
- Data Engineering und Data Science
Die vollständige Liste mit insgesamt neun Kursen gibt es auf der Seite zur openHPI Summer School. Meist sind die openHPI-Kurse auch für interessierte Laien ohne besondere Vorkenntnisse geeignet – ein Interesse an IT, manchmal auch an Mathematik schadet aber grundsätzlich nicht. 😉 Kurssprache ist entweder Deutsch oder Englisch.
Auch die Schwesterplattform openSAP bietet eine Summer School an. Da die meisten Kurse sich um SAP-Produkte drehen (mit denen ich bisher nicht zu tun hatte), habe ich dort erst wenige Kurse besucht – es gibt dort ab und zu auch Kurse zu allgemeineren Themen oder Grundlagen. Kurssprache ist meist Englisch. Auf beiden Plattformen muss man sich registrieren, um das jeweilige Angebot nutzen zu können.
[Titelbild des Beitrags: eigene Montage von zwei Bildern des Kurses IoT for Beginners. Die Bilder stehen wie das gesamte Kursmaterial unter der MIT-Lizenz.]
Fußnoten
1↑ | Siehe die mit »Translation« markierten Punkte in der Themen- oder Problem-Liste des Projekts – bei Github Issues genannt. |
---|---|
2↑ | Beide Umgebungen sind kostenlos und Open Source (VS Code nicht komplett, aber in den wesentlichen Teilen). Ein paar Hinweise zu Download und Installation sind in zwei Blog-Beiträgen zu finden: zur Arduino-IDE und zu VS Code/PlatformIO. |
3↑ | Mit der virtuellen Hardware spart man sich die nicht unerheblichen Kosten für einen Raspi oder eine Arduino-kompatible Hardware – sinnvoll, wenn man erst einmal nur in das Thema hineinschnuppern oder nicht auf eine Bestellung warten, sondern sofort loslegen möchte. Hinweise dazu gibt es unten auf der Hardware-Seite. |
4↑ | Quelle: Video mit Fragen zu Lektion 2, etwa bei Minute 6:50 |
5↑ | Es gibt auch einige deutsche Versandhändler, die Seeed-Produkte führen (z.B. Conrad, Völkner oder Distrelec). Ob das Kit dort auch erhätlich ist, habe ich nicht geprüft. |
6↑ | Wer ein ähnlich „schickes” Gerät auf ESP32-Basis sucht, kann sich vielleicht einmal den TTGO T-Watcher des chinesischen Anbieters Lilygo ansehen, bei dem im Gehäuse ein 2,2-Zoll-Farbdisplay verbaut ist. Auch der Versandhändler AZ-Delivery hat mit den AZ-Touch-Modellen ein paar ansprechende Wandgehäuse mit Touch-Screens von 2,4 oder 2,8 Zoll Diagonale im Programm. Im Gehäusepreis ist allerdings noch kein ESP32 enthalten; außerdem muss man etwas basteln und selbst die passenden Steckerleisten einlöten. |
7↑ | Die vorgeschlagene Hardware nutzt einen anderen GPS-Chip, den Air530. Ich habe das ATGM336H-Modul gewählt, weil es relativ preisgünstig und lieferbar war. Es gibt auch noch andere Chips wie den u-blox NEO-M8N und dessen Vorgänger. Bei den günstigen Angeboten aus China lautet die Bezeichnung meist »NEO-8M« (bzw. »NEO-7M« und »NEO-6M« für die Vorgänger). Bei Preisen um die 10 € und darunter für fertig aufgebaute Module samt Antenne muss man davon ausgehen, dass darauf keine u-blox-Chips eingesetzt werden, sondern z.B. der weniger leistungsfähige AT6558 – es scheinen auch sonst nur wenige Module mit u-blox-Chips angeboten zu werden. Für einen Einsteiger wie mich ohne spezielle Anforderungen würden zum Ausprobieren vermutlich auch diese einfacheren Module ausreichen. |
8↑ | Ich habe das Modul auf der chinesischen Handelsplattform Aliexpress bestellt. Dort liefert eine Suche nach »wm8960« verschiedene Module; die gesuchten werden oft als „WM8960 Hi-Fi Sound Card” bezeichnet; die Preise liegen aktuell (August 2021) meist zwischen 12 und 15 € zzgl. unterschiedlich hoher Versandkosten und 19 % Einfuhrumsatzsteuer. Ein ähnliches Modul hat z.B. Reichelt für knapp 17 € im Sortiment. |
Themenverwandte Beiträge
Der SHT20 ist ein weiterer Sensor zur Messung der Umgebungstemperatur und der relativen Luftfeuchtig...
Viele kennen sicher die »Wetterstationen«, die bei Eltern oder Großeltern an der Wohnzimmerwand hing...
Das ESP32 Pico Kit ist ein ESP32 Development Board mit deutlich kompakteren Abmessungen als die Stan...
Mittlerweile haben sich einige Temperatursensoren für ESP32 und Arduino bei mir angesammelt. Zeit fü...