ESP32 IoT Unterricht: Unterrichtsreihe über 8 Wochen
ESP32 IoT im Unterricht: 8-Wochen-Tabelle, Schul-WLAN und Hotspot, Code für einen WLAN-Webserver, Sicherheit und Ethik, Materialliste für 8 Gruppen, Rubrik.
Wenn du ESP32 IoT im Unterricht als Unterrichtsreihe für die Oberstufe oder die Berufsschule planst, teile sie in vier Schichten: Zuerst nimmt das Board seine Umgebung wahr (GPIO und Sensoren), dann verbindet es sich mit einem Netz (WLAN), dann teilt es Daten (Webserver, HTTP-Client, Nachrichten), und zuletzt lernt es, mit Akku zu laufen und geschützt zu sein (Deep Sleep und Sicherheit). Mit zwei Unterrichtsstunden pro Woche passen diese vier Schichten bequem in acht Wochen: zwei Wochen Hardware, zwei Wochen Netz und Server, zwei Wochen Datenaustausch, eine Woche Energie und Sicherheit, die letzte Woche für das Abschlussprojekt. Am Ende geben die Lernenden ein Gerät ab, das einen Sensor liest, den Messwert auf einer vom Handy aufgerufenen Seite zeigt oder bei einem Ereignis eine Nachricht aufs Handy schickt, dessen Akkulaufzeit berechnet ist und dessen Passwort nicht offen im Code steht.
Dieser Beitrag setzt die erste ESP32-Unterrichtsstunde fort; Installation, Treiber, BOOT-Taste und die erste LED stehen dort und werden hier nicht wiederholt. Hier findest du eine Wochentabelle mit Ziel, echtem BlueGrays-Projekt, Begriff und Ergebnis, ein 80-minütiges Wochengerüst, warum das Schulnetz den ESP32 meist nicht hereinlässt und was hilft, fünf Fragen an die IT-Betreuung, kompilierbaren Code für einen WLAN-Webserver, einen Abschnitt zu Sicherheit und Ethik, eine Materialliste für 8 Gruppen und Kriterien für das Abschlussprojekt. Die Beispiele gehen davon aus: Du hast 24 Lernende in 8 Dreiergruppen und zwei Unterrichtsstunden pro Woche (2 × 45 Minuten, gerechnet mit 2 × 40 Minuten Arbeitszeit). Ist deine Klasse anders, passe die Zeiten anteilig an.

Die Logik der Reihe: erfassen, verbinden, teilen, Energie sparen
Ein Unterricht zum Internet der Dinge (IoT) lehrt nicht das Internet selbst, sondern wie ein Gerät mit anderen Geräten im Netz spricht. Dafür braucht es zuerst etwas zu messen: Ein Board, das sich mit dem WLAN verbindet, aber nichts misst, hat im Netz nichts zu sagen. Deshalb laufen die ersten zwei Wochen bewusst ohne WLAN: Die Lernenden arbeiten mit Taster, LDR und Temperatur- und Feuchtesensor und klären Pinwahl und Messintervall. In Woche drei kommt das Board ins Netz, in Woche vier wird es zum Server, in Woche fünf zum Client, der Daten von einem anderen Server abfragt, in Woche sechs meldet es ein Ereignis per Nachricht. Woche sieben gehört zwei Themen, die in kurzen IoT-Workshops meist fehlen: Akkulaufzeit und Sicherheit. Jede Schicht baut auf der vorigen auf, also tausche die Reihenfolge nicht; läuft die WLAN-Woche schlecht, löse das Verbindungsproblem, bevor du weitergehst.
Die 8-wöchige ESP32-IoT-Unterrichtsreihe
Jedes Projekt in der Tabelle liegt in BlueGrays mit Schaltplan, Bauteilliste und Code bereit. Die Projekte der ersten vier Wochen, einschließlich WLAN-Verbindung und Webserver, sind komplett kostenlos; die ab Woche 5 genutzten Projekte zu HTTP-Client, Telegram, WebSocket und Deep Sleep sind Premium. Im ersten Monat braucht also niemand Premium; was du tust, wenn Premium nötig wird, steht am Ende des Beitrags.
| Woche | Ziel | BlueGrays-Projekt | Begriff | Ergebnis |
|---|---|---|---|---|
| 1 | Eingang lesen, Ausgang schalten | ESP32 LED-Steuerung mit Drucktaste (Push), ESP32 LED Steuerung mit Taster (Toggle) (Kostenlos) | GPIO, INPUT_PULLUP, digitaler Ein- und Ausgang, Zustandsvariable | Per Taster ein- und ausschaltbare LED und Pinplan der Gruppe |
| 2 | Die Umgebung messen | Messung der Lichtintensität mit dem ESP32-LDR-Modul, ESP32 DHT22 Temperatur und Luftfeuchtigkeit (mit LCD-Display) (Kostenlos) | Analoges Lesen (12 Bit, 0–4095), ADC1 und ADC2, I2C, Bibliotheken, Messintervall | Tabelle mit 10 Helligkeitswerten im seriellen Monitor, Temperatur und Feuchte auf dem LCD |
| 3 | Das Board ins Netz bringen | ESP32-WLAN-STA-Verbindung (mit LCD-Display) (Kostenlos) | WLAN-Station-Modus (STA), SSID, IP-Adresse, RSSI (dBm), WiFi.status(), Wiederverbinden | IP, MAC-Adresse und Signalstärke im Netzprotokoll |
| 4 | Das Board zum Server machen | ESP32 Async-Webserver (mit IP-Anzeige auf dem LCD) (Kostenlos) und der Code in diesem Beitrag | Webserver, HTTP-Anfrage und -Antwort, Port 80, Pfade (/, /on, /off) | Seite, die vom Handy eine LED schaltet und den Helligkeitswert zeigt |
| 5 | Das Board zum Client machen | ESP32 HTTPClient + Wetter-API (mit LCD-Display), ESP32: Echtzeit aus dem Internet per NTP (Premium) | HTTP-Client, GET-Anfrage, Statuscodes (200, 404), JSON, Uhrzeit per NTP | Wetter oder Uhrzeit aus dem Internet; Messwert der Nachbargruppe abrufen |
| 6 | Ein Ereignis per Nachricht melden | ESP32 Bewegungsalarmsystem (PIR + Buzzer + LED + Telegram), ESP32-WebSocket-Zähler (2 Tasten + LCD + Web-Echtzeit) (Premium) | Benachrichtigung, Bot-Token, HTTPS, WebSocket, Idee von Publish-Subscribe (MQTT) | Nachricht aufs Handy bei erkannter Bewegung oder eine Seite, die sich selbst aktualisiert |
| 7 | Mit Akku laufen und das Gerät schützen | ESP32 Deep Sleep – Batteriesparmodus (OLED + RTC-RAM-Zähler) (Premium) | Deep Sleep, Weckquellen, RTC-Speicher, mittlerer Strom, Passwörter in eigener Datei | Akkulaufzeit-Berechnung und Projekt mit Passwort in secrets.h |
| 8 | Abschlussprojekt | Wahl der Gruppe, etwa ESP32 DHT22 Temperatur und Luftfeuchtigkeit (mit LCD-Display) plus die Webseite aus Woche 4 | Begriffe verbinden, dokumentieren, präsentieren | Funktionierendes Gerät, 3-Minuten-Präsentation, Netzprotokoll |
Drei Hinweise zur Tabelle. Erstens gibt es in der App kein fertiges MQTT-Projekt; erkläre MQTT in Woche 6 als Konzept an der Tafel (Geräte sprechen nicht direkt miteinander, sondern veröffentlichen Nachrichten unter einem Topic an einen Vermittlungsserver, den Broker, und wer sich interessiert, abonniert dieses Topic) und mache den praktischen Teil mit der Telegram-Benachrichtigung und der WebSocket-Seite. Die Details zu Telegram stehen im Beitrag ESP32 Telegram-Bot. Zweitens braucht das Async-Webserver-Projekt in Woche 4 die Bibliotheken AsyncTCP und ESPAsyncWebServer; installiere sie vor dem Unterricht auf jedem Rechner, sonst bricht das Kompilieren in der ersten Zeile ab. Drittens braucht die Nachbargruppen-Übung in Woche 5 kein Internet: Der ESP32 von Gruppe A liest die Adresse /deger auf dem Server, den Gruppe B in Woche 4 gebaut hat. Hat die Schule keinen Internetzugang, funktioniert diese Woche trotzdem.
Das Wochengerüst: 80 Minuten
Wenn jede Woche nach demselben Gerüst läuft, stecken die Lernenden ihre Energie in den neuen Begriff statt in einen neuen Ablauf. Kannst du die zwei Stunden als Doppelstunde legen, läuft der Ablauf unten am Stück; sonst in zwei Hälften zu 40 Minuten, und dann baust du die Schaltung am Ende der ersten Stunde nicht ab, sondern legst sie aufgebaut in die Kiste. Das Netzprotokoll ist eine Seite, die jede Gruppe führt: Datum, IP-Adresse des Boards, MAC-Adresse, Signalstärke, aufgetretener Fehler und wie er gelöst wurde. Ab Woche 3 läuft die Hälfte der Fehlersuche über dieses Protokoll.
| Minuten | Phase | Was passiert? |
|---|---|---|
| 0–10 | Einstieg | Die Exit-Frage der Vorwoche wird besprochen, Gruppen öffnen ihr Netzprotokoll, Kisten werden verteilt. |
| 10–20 | Begriff | Der eine Begriff der Woche wird an die Tafel gezeichnet: in Woche 4 Handy, ESP32 und die Pfeile für Anfrage und Antwort dazwischen. |
| 20–30 | Code lesen | Das Projekt der Woche wird projiziert, Zusammenfassung und Schritt-für-Schritt-Erklärung im Tab Code verstehen werden gemeinsam gelesen, die Lernenden sagen die Ausgabe voraus. |
| 30–55 | Aufbauen und hochladen | Die Gruppen bauen die Schaltung, laden den Code hoch und sehen die erste Ausgabe im seriellen Monitor. Wer länger als 3 Minuten feststeckt, bekommt von dir ein Ersatzset. |
| 55–70 | Etwas ändern | Jede Gruppe ändert genau eine Sache: Aktualisierungsintervall, Seitentext, Schwellenwert oder Schlafdauer. Die Änderung kommt ins Netzprotokoll. |
| 70–80 | Abschluss | Die Exit-Frage wird schriftlich beantwortet, die Schaltung abgebaut oder aufgebaut in die Kiste gelegt, Bauteile werden gezählt. |
Schulnetz-Realität: Warum der ESP32 nicht ins Schul-WLAN kommt
Die meisten IoT-Reihen hängen am Netz, nicht am Code. Der klassische ESP32 arbeitet nur im 2,4-GHz-Band; einen Zugangspunkt, der nur auf 5 GHz sendet, sieht er gar nicht. Schulnetze arbeiten oft nicht wie ein Heimnetz mit einem gemeinsamen Passwort, sondern mit Unternehmens-Authentifizierung über Benutzername und Passwort (WPA2-Enterprise); der ESP32 kann das mit zusätzlichem Code, aber dafür müsste das persönliche Kontopasswort einer Lehrkraft oder eines Lernenden in den Code, und das geht im Unterricht nicht. Gastnetze öffnen nach dem Verbinden eine Bestätigungsseite im Browser (Captive Portal); der ESP32 hat weder Bildschirm noch Browser, kommt an dieser Seite nicht vorbei und wirkt verbunden, erreicht aber nie das Internet. Manche Schulen lassen nur Geräte mit vorher registrierter MAC-Adresse zu. Die letzte Falle ist die unbekannteste: Gastnetze trennen Geräte meist voneinander (Client-Isolation). Dann verbindet sich der ESP32 und zeigt sogar seine IP-Adresse, aber das Handy im selben Netz erreicht diese Adresse nicht, und der Webserver aus Woche 4 öffnet sich nie.
| Netztyp | Verbindet sich der ESP32? | Für die Webserver-Woche | Hinweis |
|---|---|---|---|
| 2,4-GHz-Netz mit einem Passwort (WPA2-PSK) | Ja | Geeignet | Wie ein Heimnetz; in Schulen selten für Lernende offen |
| Netz, das nur auf 5 GHz sendet | Nein, er sieht es nicht | Nicht geeignet | Fehlt es in der Netzliste, zuerst das Band prüfen |
| Unternehmensnetz mit Benutzername und Passwort (WPA2-Enterprise) | Technisch mit zusätzlichem Code möglich | Nicht empfohlen | Ein persönliches Kontopasswort landet im Code |
| Gastnetz mit Bestätigungsseite (Captive Portal) | Verbindet sich, kommt aber nicht ins Internet | Meist nicht geeignet | Meist ist auch Client-Isolation aktiv |
| Persönlicher Hotspot eines Handys | Ja, wenn 2,4 GHz aktiv ist | Geeignet | Begrenzte Zahl gleichzeitiger Geräte |
| Eigener 2,4-GHz-Router ohne Verbindung zum Schulnetz | Ja | Am besten geeignet | Braucht er Internet, mit der IT-Betreuung absprechen |
Die Lösung: Handy-Hotspot oder eigener Router
Am schnellsten hilft der persönliche Hotspot auf deinem Handy. Auf dem iPhone schaltet die Option Kompatibilität maximieren in den Einstellungen des Persönlichen Hotspots auf 2,4 GHz um; unter Android wählst du in den Hotspot-Einstellungen das 2,4-GHz-Band. Das liefert auch Internet, aber Handys nehmen nur eine begrenzte Zahl von Geräten gleichzeitig an, und mit 8 Gruppen plus Handys der Lernenden ist die Grenze schnell erreicht. Faustregel: Wenn die 8 ESP32 am Handy der Lehrkraft hängen, dürfen die 8 Handys, mit denen der Browser geöffnet wird, nicht an einem zweiten Handy hängen, denn Handy und ESP32 müssen im selben Netz sein. Verbinde in Woche 3 und 4 deshalb 4 Gruppen mit einem Hotspot und die anderen 4 mit einem zweiten, und jede Gruppe testet mit nur einem Handy.
Wiederholst du die Reihe jedes Jahr, ist die dauerhafte Lösung ein eigener 2,4-GHz-Router nur für diesen Unterricht. Der Router funktioniert auch ohne Verbindung zum Schulnetz; Woche 3 und 4 sowie die Nachbargruppen-Übung gehen ohne Internet, weil ESP32 und Handy im selben lokalen Netz sind. Internet brauchst du nur in Woche 5 und 6 (Wetter, NTP, Telegram); nutze dafür einen Hotspot oder plane den Anschluss des Routers ans Schulnetz zusammen mit der IT-Betreuung. Ändere Netzname und Passwort jedes Halbjahr und das Admin-Passwort des Routers gleich am ersten Tag. Gibt es überhaupt kein physisches Netz: In den WLAN-Projekten der App ist der voreingestellte Netzname Wokwi-GUEST; derselbe Code lässt sich mit diesem Netz im Wokwi-Simulator im Browser ausprobieren. Stelle der IT-Betreuung mindestens zwei Wochen vor Beginn diese fünf Fragen:
- Gibt es an der Schule ein Netz, das auf 2,4 GHz mit einem gemeinsamen Passwort (WPA2-PSK) sendet, und dürfen Unterrichtsgeräte es nutzen?
- Hat das Gastnetz ein Captive Portal und Client-Isolation? Können sich zwei Geräte im selben Netz erreichen?
- Müssen Geräte vorab mit ihrer MAC-Adresse registriert werden? Wenn ja, bis wann brauchst du die Liste der 9 Boards?
- Ist es nach den Schulregeln erlaubt, im Fachraum einen eigenen Router ohne Verbindung zum Schulnetz oder einen Hotspot vom Handy der Lehrkraft zu nutzen?
- Wenn die ESP32 in Woche 5 und 6 ins Internet müssen: Welche Verbindungen lässt die Firewall zu (Webseiten, Zeitserver, Messenger-Dienste)?
Der Code: ESP32 ins WLAN bringen und einen Sensorwert auf einer Seite zeigen
Der Code unten ist der Kern von Woche 4 und nutzt nur die Bibliotheken WiFi.h und WebServer.h, die mit dem ESP32-Boardpaket kommen; zusätzliche Bibliotheken sind nicht nötig. Die Schaltung bleibt aus Woche 2: VCC des LDR-Moduls an 3V3, GND an GND, AO an GPIO34. GPIO34 liegt am ADC1 und lässt sich deshalb auch bei aktivem WLAN lesen. Ersetze vor dem Hochladen die beiden Platzhalter AG_ADI (Netzname) und AG_SIFRESI (Passwort) durch die Daten deines 2,4-GHz-Netzes oder verschiebe diese zwei Zeilen, wie in Woche 7, in eine eigene Datei namens secrets.h; findet der Code diese Datei, nutzt er sie.
1// ESP32 Wi-Fi + web sunucu: LDR değerini tarayıcıda göster / ESP32 Wi-Fi + web server: show the LDR value in a browser
2#include <WiFi.h>
3#include <WebServer.h>
4
5// Ağ bilgileri: secrets.h varsa oradan gelir / Network credentials: taken from secrets.h if it exists
6#if __has_include("secrets.h")
7#include "secrets.h"
8#else
9const char* WIFI_SSID = "AG_ADI"; // 2,4 GHz ağın adı / Name of the 2.4 GHz network
10const char* WIFI_PASS = "AG_SIFRESI"; // Ağ şifresi / Network password
11#endif
12
13const int LDR_PIN = 34; // ADC1 pini, Wi-Fi açıkken de okunur / ADC1 pin, still readable while Wi-Fi is on
14
15WebServer server(80); // 80 numaralı portta web sunucu / Web server on port 80
16
17// Ana sayfa: ölçümü HTML olarak gönder / Home page: send the reading as HTML
18void handleRoot() {
19 int raw = analogRead(LDR_PIN); // 0-4095 ham değer / Raw value 0-4095
20 int percent = map(raw, 4095, 0, 0, 100); // Modülde ışık arttıkça değer düşer / On the module the value drops as light rises
21 String html = "<!DOCTYPE html><html><head><meta charset='utf-8'>";
22 html += "<meta name='viewport' content='width=device-width'>";
23 html += "<script>setTimeout(() => location.reload(), 5000);</script>"; // 5 saniyede bir yenile / Reload every 5 s
24 html += "<title>ESP32 Grup 1</title></head><body>";
25 html += "<h1>Isik: %" + String(percent) + "</h1>";
26 html += "<p>Ham deger: " + String(raw) + "</p>";
27 html += "<p>Sinyal: " + String(WiFi.RSSI()) + " dBm</p>";
28 html += "</body></html>";
29 server.send(200, "text/html", html); // 200 = istek başarılı / 200 = request OK
30}
31
32// Yalnız sayıyı döndüren adres / Address that returns only the number
33void handleValue() {
34 server.send(200, "text/plain", String(analogRead(LDR_PIN)));
35}
36
37void setup() {
38 Serial.begin(115200);
39 analogReadResolution(12); // 12 bit: 0-4095
40 WiFi.mode(WIFI_STA); // İstasyon modu: var olan ağa katıl / Station mode: join an existing network
41 WiFi.begin(WIFI_SSID, WIFI_PASS);
42 Serial.print("Baglaniliyor / Connecting");
43 unsigned long start = millis();
44 while (WiFi.status() != WL_CONNECTED && millis() - start < 20000) { // En fazla 20 sn bekle / Wait up to 20 s
45 delay(500);
46 Serial.print(".");
47 }
48 if (WiFi.status() != WL_CONNECTED) {
49 Serial.println("\nBaglanamadi, yeniden basliyor / No connection, restarting");
50 delay(2000);
51 ESP.restart();
52 }
53 Serial.print("\nIP: ");
54 Serial.println(WiFi.localIP()); // Telefonda bu adresi aç / Open this address on the phone
55 server.on("/", handleRoot); // Ana sayfa: IP/ / Home page: IP/
56 server.on("/deger", handleValue); // Yalnız sayı: IP/deger / Number only: IP/deger
57 server.begin();
58}
59
60void loop() {
61 server.handleClient(); // Gelen istekleri karşıla / Serve incoming requests
62}Öffne nach dem Hochladen den seriellen Monitor mit 115200 Baud. Wenn die Punkte aufhören, erscheint die IP-Zeile, zum Beispiel 192.168.43.57. Öffne auf einem Handy im selben Netz wie der ESP32 den Browser und gib diese Adresse ein: Die Seite zeigt Helligkeit in Prozent, Rohwert und Signalstärke und lädt sich alle 5 Sekunden neu. Deckst du den LDR mit der Hand ab, sinkt der Prozentwert. Hängst du /deger an die Adresse, kommt nur die Rohzahl zurück; genau diese Adresse liest in Woche 5 der ESP32 der Nachbargruppe mit einem HTTP-Client. Verbindet sich das Board nicht innerhalb von 20 Sekunden, startet es neu, damit niemand denkt, es sei eingefroren. Kommt die Verbindung gar nicht zustande, erklärt der Beitrag ESP32 verbindet sich nicht mit dem WLAN die Statuscodes.
Sicherheit und Ethik: die Woche, die du nicht streichen solltest
Im IoT-Unterricht wird Sicherheit nicht als eigener Foliensatz gelehrt, sondern als Änderung, die die Lernenden in ihrem eigenen Code machen. In dieser Reihe tragen sie ohnehin an drei Stellen echte Geheimnisse: das WLAN-Passwort, den Bot-Token aus Woche 6 und die selbst gemessenen Daten. Nutze die zweite Hälfte von Woche 7 für diese fünf Punkte und verlange zu jedem eine konkrete Änderung im Projekt der Gruppe:
- Passwörter nicht in den Code schreiben: Verschiebe WLAN-Passwort und Bot-Token in eine eigene Datei namens secrets.h und lass diese Datei weg, wenn Code geteilt oder ein Screenshot gemacht wird. Eine projizierte Codezeile heißt: Alle im Raum kennen das Passwort.
- Standardpasswörter ändern: Router-Verwaltungsseiten, der eigene Access-Point-Modus (AP) des ESP32 und die Passwörter in fertigen Beispielcodes sind Werte, die alle kennen. Ändere das Passwort des Unterrichtsrouters am ersten Tag und bitte die Lernenden, keine Beispielpasswörter im Projekt zu lassen.
- Deine Seite ist für alle im Netz offen: Der Webserver in diesem Beitrag hat keine Anmeldung; wer im selben Netz die Adresse kennt, öffnet die Seite und schaltet in einem Projekt mit /on-Adresse auch die LED. Deshalb werden im Unterricht über das Web nur harmlose Ausgaben wie LEDs, Summer und Displays gesteuert; Relais an Netzspannung (230 V) kommen in dieser Reihe nicht vor.
- Personenbezogene Daten: Temperatur und Helligkeit sind keine personenbezogenen Daten, aber ein Bewegungsmelder, der protokolliert, wann Menschen durch den Flur gehen, eine Kamera oder ein Mikrofon können es werden. Zeichnet eine Projektidee Bewegung, Stimme oder Bild von Menschen auf, lass die Klasse zuerst klären: "Wer sieht es, wie lange wird es gespeichert, wurde zugestimmt?"
- Updates und Verantwortung: Ein Gerät mit Internetzugang wird nicht einmal eingerichtet und dann vergessen. Zeig den Lernenden, dass am Ende der Reihe der Unterrichtsrouter abgeschaltet, Bot-Tokens widerrufen und Boards zurückgesetzt werden, und besprecht, wer während der ganzen Lebensdauer eines Geräts verantwortlich ist.
Materialliste: pro Gruppe und für 8 Gruppen
Die Liste gilt für 24 Lernende in 8 Dreiergruppen; 9 Sets mit einem Ersatzset reichen. Die meisten Teile werden für die ersten Wochen gekauft und später wiederverwendet; das LCD etwa kommt von Woche 2 bis Woche 5 in vier Projekten vor. Löten ist nicht nötig; Module wie I2C-LCD und OLED werden mit Male-Female-Jumperkabeln angeschlossen. Nimmst du statt des LDR-Moduls einen einzelnen LDR, gib jeder Gruppe einen 10-kΩ-Widerstand dazu und baut den Spannungsteiler in Woche 2 gemeinsam auf.
| Material | Pro Gruppe | Für die Klasse (8 Gruppen + 1 Ersatz) | Genutzt in Woche |
|---|---|---|---|
| ESP32 DevKit (30 Pins, ESP32-WROOM-32) | 1 | 9 | 1–8 |
| USB-Datenkabel (getestet) | 1 | 11 | 1–8 |
| Steckbrett (830 Kontakte) | 2 | 18 | 1–8 |
| Taster | 2 | 18 | 1, 6 |
| 5-mm-LED und 220-Ω-Widerstand | 3 + 3 | 30 + 30 | 1, 3, 4 |
| LDR-Modul (mit AO-Ausgang) | 1 | 9 | 2, 4, 5 |
| DHT22 Temperatur- und Feuchtesensor | 1 | 9 | 2, 8 |
| 16x2 I2C-LCD | 1 | 9 | 2–5 |
| 0,96-Zoll-OLED SSD1306 (I2C) | 1 | 9 | 7 |
| PIR-Bewegungsmelder (HC-SR501) und Summer | 1 + 1 | 9 + 9 | 6 |
| Jumperkabel (Male-Male und Male-Female) | 20 + 10 | etwa 180 + 90 | 1–8 |
| 2,4-GHz-Zugangspunkt (Handy-Hotspot oder eigener Router) | - | 2 Hotspots oder 1 Router | 3–8 |
| Handy oder Tablet mit BlueGrays | 1 | 8 | 1–8 |
Bewertung: Kriterien für das Abschlussprojekt
Halte die Regel für das Abschlussprojekt einfach: ein Sensor, eine WLAN-Verbindung und ein Weg zum Teilen (Webseite oder Nachricht). Die Gruppen schreiben ihre Idee am Ende von Woche 6 in einem Satz auf, erstellen in Woche 7 die Materialliste, bauen in der ersten Stunde von Woche 8 und präsentieren in der zweiten je drei Minuten. Bewerte mit den sechs Kriterien unten; jedes bringt 1–3 Punkte, insgesamt 18. Für die allgemeine Logik der Rubrik, das Abgabeformular und das Portfolio kannst du die Vorlage aus dem Beitrag Bewertungsraster für den Arduino-Unterricht unverändert übernehmen.
| Kriterium | 1: Beginnend | 2: Entwickelnd | 3: Sicher |
|---|---|---|---|
| Sensor und Schaltung | Schaltung aufgebaut, aber kein oder ein sinnloser Wert | Wert wird gelesen, Pinwahl kann nicht begründet werden | Wert korrekt gelesen, Wahl von ADC1- oder Digitalpin erklärt |
| WLAN-Verbindung | Verbindet sich nur mit Hilfe der Lehrkraft | Verbindet sich, aber das Gerät stoppt bei Verbindungsabbruch | Verbindet sich, verbindet sich nach Abbruch neu, IP und Signalstärke notiert |
| Daten teilen | Daten nur im seriellen Monitor | Seite oder Nachricht vorhanden, muss aber von Hand aktualisiert oder ausgelöst werden | Seite aktualisiert sich selbst oder die Nachricht geht beim Ereignis automatisch raus |
| Energiebewusstsein | Niemand weiß, wie viel Strom das Gerät zieht | Akkulaufzeit berechnet, Schlafmodus nicht bedacht | Mit Schlaf und Weckintervall berechnet, Ergebnis gedeutet |
| Sicherheit und Ethik | Passwort offen im Code | Passwort in secrets.h, Daten nicht besprochen | Passwort in eigener Datei, erfasste Daten und wer sie sieht schriftlich festgehalten |
| Dokumentation und Präsentation | Netzprotokoll lückenhaft, Präsentation nur Vorführung | Netzprotokoll vorhanden, aufgetretene Fehler nicht erklärt | Netzprotokoll vollständig, ein Fehler und seine Lösung in der Präsentation erklärt |
Exit-Fragen pro Woche und Checkliste vor der Reihe
- Woche 1: Welchen Wert liefert digitalRead() an einem Pin mit INPUT_PULLUP, solange der Taster gedrückt ist, und warum?
- Woche 2: Warum lässt sich ein Potentiometer an GPIO4 bei aktivem WLAN nicht lesen? Welche Pins sollten wir wählen?
- Woche 3: Wenn WiFi.status() nicht verbunden meldet, was prüfst du als Erstes (zwei Dinge)?
- Woche 4: Warum kann die IP-Adresse, die du in den Browser getippt hast, nächste Woche anders sein?
- Woche 5: War dein ESP32 diese Woche Server oder Client? Was sagen die Statuscodes 200 und 404?
- Woche 6: Was passiert, wenn der Bot-Token auf einem Screenshot zu sehen ist? Welche Aufgabe hat der Broker bei MQTT?
- Woche 7: Mit demselben Akku läuft ein ESP32 dauerhaft eingeschaltet tagelang, im Deep Sleep monatelang. Woran liegt der Unterschied?
- Woche 8: Welche Daten erfasst dein Gerät, wer kann sie sehen und wie lange werden sie gespeichert?
- Zwei Wochen vor Beginn: Der IT-Betreuung die fünf Fragen stellen und je nach Antwort zwischen Hotspot und Router entscheiden.
- Zwei Wochen vor Beginn: Boards zählen und die MAC-Adresse jedes Boards auf sein Etikett schreiben (bei Registrierungspflicht Liste an die IT geben).
- Eine Woche vor Beginn: Auf jedem Rechner das ESP32-Boardpaket und die Bibliotheken DHT, LiquidCrystal I2C, AsyncTCP und ESPAsyncWebServer installieren; mit einem Board testen.
- Eine Woche vor Beginn: Hotspot auf 2,4 GHz stellen, Name und Passwort ändern, einen ESP32 verbinden und seine Seite vom Handy öffnen.
- Eine Woche vor Beginn: Für jede Gruppe eine Seite Netzprotokoll kopieren, Sensoren und LCDs testen und in die Kisten legen.
- Vor Woche 5: Die Codes für die Premium-Projekte vorbereiten und den Lernenden erklären, welche ihrer Daten geteilt werden.
Wo BlueGrays in die Reihe passt
- ESP32-Projekte: Unter Entdecken › Projekte wählst du mit Filtern die Plattform ESP32; es gibt rund 50 ESP32-Projekte, von der WLAN-Verbindung bis zum Deep Sleep. Jedes hat Schaltplan, Bauteilliste mit Stückzahlen und kopierbaren Quellcode. Mit Link kopieren öffnest du den Code bequem am Rechner.
- Code verstehen: Die Minuten 20–30 jeder Woche laufen über diesen Tab: Zusammenfassung Was macht dieser Code?, Erklärung Schritt für Schritt, Wenn du nicht weiterkommst und die Aufgabe Probier es selbst. Bei den Projekten der ersten vier Wochen kostenlos, bei Premium-Projekten mit Premium.
- Pinout-Werkzeug: Im Werkzeug Pinout zeigt jeder ausgewählte ESP32-Pin seine Art und Warnhinweise; bei einem ADC2-Pin heißt es, dass bei aktivem WLAN kein Analoglesen möglich ist, bei einem ADC1-Pin, dass er auch mit WLAN lesbar bleibt. Ideal für den Beamer bei der Pinwahl in Woche 2. Pinout ist ein Premium-Werkzeug.
- Akkulaufzeit-Werkzeug: Im Werkzeug Akkulaufzeit wählst du das fertige Profil ESP32 · Deep Sleep; nach Eingabe von Akkukapazität, Wachstrom und -dauer, Schlafstrom und Zyklus berechnet es die geschätzte Laufzeit und den mittleren Strom. Der Vergleich "immer an gegen schlafend" in Woche 7 läuft über diesen Bildschirm. Das Werkzeug ist Premium; ohne Premium siehst du eine Beispielrechnung.
- Lehrer-Pakete: Ab Woche 5 werden Premium-Projekte gebraucht, also sollte pro Gruppe ein Konto Premium haben. Ein jährliches Paket mit 10 Codes reicht für 8 Gruppen und die Lehrkraft; es ist eine Einmalzahlung, verlängert sich nicht, die Lernenden hinterlegen keine Karte, in Meine Codes siehst du, wer welchen Code eingelöst hat, und du kannst Codes an die Gruppe des nächsten Halbjahrs übertragen. Ein 30-tägiger Monatscode, in der ersten Stunde von Woche 5 verteilt, deckt die letzten vier Wochen gerade so ab; liegen Ferien dazwischen, reicht er nicht. Details im Beitrag Premium-Codes für die ganze Klasse.
Nach acht Wochen haben die Lernenden nicht nur ein funktionierendes Gerät, sondern die Gewohnheit, darüber nachzudenken, wie ein Gerät im Netz spricht, warum es sich nicht verbindet, wie viel Energie es braucht und wessen Daten es sammelt; genau das sucht die Berufsausbildung. Wenn du die Projekte, Schaltpläne und Code-verstehen-Erklärungen jeder Woche vor dem Unterricht durchgehen willst, öffne in der BlueGrays-App einfach den ESP32-Filter.
Häufige Fragen
Wie viele Wochen sollte eine ESP32-IoT-Unterrichtsreihe dauern?
Mit zwei Unterrichtsstunden pro Woche reichen 8 Wochen für die IoT-Grundbegriffe, vom Sensor über WLAN und Webserver bis zu Benachrichtigung und Deep Sleep. Hast du nur eine Stunde pro Woche, strecke denselben Plan auf 12–14 Wochen oder fasse Woche 5 und 6 zusammen. Gib dem Abschlussprojekt mindestens eine volle Stunde.
Geht ESP32-IoT-Unterricht ohne Schul-WLAN?
Ja. Solange ESP32 und Handy im selben lokalen Netz sind, brauchen Webserver und Anfragen zwischen Geräten kein Internet; ein 2,4-GHz-Hotspot auf dem Handy der Lehrkraft oder ein eigener Router ohne Verbindung zum Schulnetz genügt. Internet brauchst du nur für externe Dienste wie Wetter, Uhrzeit und Telegram.
Warum verbindet sich der ESP32 nicht mit dem Schul-WLAN?
Der klassische ESP32 arbeitet nur mit 2,4 GHz; ein Netz, das nur auf 5 GHz sendet, taucht gar nicht auf. Schulnetze nutzen oft Unternehmens-Authentifizierung mit Benutzername und Passwort oder ein Captive Portal im Browser, manche lassen nur registrierte MAC-Adressen zu. Dann ist ein Hotspot oder eigener Router die praktischste Lösung.
Warum lässt sich der ESP32-Webserver vom Handy nicht öffnen?
Meist ist das Handy nicht im selben Netz wie der ESP32: Es hängt im Mobilfunknetz oder in einem anderen WLAN. Der zweite Grund ist Client-Isolation in Gastnetzen, bei der sich Geräte im selben Netz nicht erreichen. Probiere die IP-Adresse aus dem seriellen Monitor erneut, wenn Handy und ESP32 am selben Hotspot hängen.
Muss man MQTT im IoT-Unterricht behandeln?
Zwingend ist es nicht, aber als Konzept sollte es vorkommen, weil die meisten echten IoT-Systeme dieses Modell nutzen, bei dem Geräte über einen Broker nach Topics Nachrichten austauschen. In einer 8-wöchigen Reihe genügt es, zuerst mit HTTP das Client-Server-Prinzip zu festigen und MQTT in Woche sechs als Publish-Subscribe-Idee einzuführen.
Sind die ESP32-Projekte in BlueGrays kostenlos?
Ein Teil davon. Die Projekte der ersten vier Wochen dieses Plans, etwa Taster, LDR, DHT22, WLAN-Verbindung und Async-Webserver, sind komplett kostenlos. HTTP-Client, Telegram, WebSocket und Deep Sleep sind Premium; für eine Klasse gibt es Sammelcodes über die Lehrer-Pakete im Profil.
Projekte, die du danach bauen kannst
Alle Projekte ansehen
ESP32-WLAN-STA-Verbindung (mit LCD-Display)
In diesem Projekt verbinden wir den ESP32 im Station-Modus (STA) sicher und fehlertolerant mit dem heimischen WLAN. Wir lagern SSID und Passwort in eine separate secrets.h-Datei aus, um Leaks zu Git zu verhindern, richten einen Auto-Reconnect-Mechanismus ein und zeigen RSSI-Signalpegel und IP-Adresse auf einem I2C-LCD-Display an. Die interne LED dient als Statusanzeige. Ein Verbindungsmanager auf Produktionsniveau.

ESP32 Async-Webserver (mit IP-Anzeige auf dem LCD)
In diesem Projekt verwandeln wir den ESP32 in einen asynchronen Webserver, den Sie über Ihr Smartphone oder Ihren Computer im selben WLAN-Netzwerk steuern können. Dank der ESPAsyncWebServer-Bibliothek kann der Server mehrere Anfragen gleichzeitig bearbeiten (im Gegensatz zum klassischen WebServer.h, der bei einer einzigen Anfrage blockiert). Sie können über den Browser die IP-Adresse des ESP32 öffnen und durch Drücken der ON/OFF-Schaltflächen (Routen /on und /off) die an GPIO 5 anges

ESP32 LED-Steuerung mit Drucktaste (Push)
Die LED leuchtet auf, wenn die Taste gedrückt wird und geht aus, wenn sie losgelassen wird. Zeigt, wie der digitale Eingangspin des ESP32 und der interne Pull-up-Widerstand verwendet werden. Dank des INPUT_PULLUP-Modus ist kein externer Widerstand erforderlich.

Messung der Lichtintensität mit dem ESP32-LDR-Modul
Echtzeit-Anzeige des ADC-Rohwerts des LDR-Moduls und des anhand von Dunkel- und Hellreferenzwerten berechneten relativen Lichtwerts in Prozent im Serial Monitor. Dieser Prozentwert ist keine Lux-Messung. Vermittelt die Kalibrierungslogik des Moduls. Sollte idealerweise vor Projekt 10 durchgeführt werden, da es zur Festlegung des Schwellenwerts dient.

ESP32 DHT22 Temperatur und Luftfeuchtigkeit (mit LCD-Display)
Bei diesem Projekt werden die Umgebungstemperatur und die Luftfeuchtigkeit mit einem DHT22-Sensor gemessen und in Echtzeit auf einem 16x2 I2C-LCD angezeigt. Mithilfe der Adafruit-DHT-Bibliothek werden die Daten über das One-Wire-Protokoll vom Sensor ausgelesen. Dieses Projekt bildet die Grundlage für IoT-Wetterstationen, Smart-Home-Automatisierung oder Umgebungsüberwachungssysteme in Gewächshäusern. Die Kommunikation mit dem DHT22 erfolgt über den GPIO-4-Pin des ESP32.

ESP32 HTTPClient + Wetter-API (mit LCD-Display)
In diesem Projekt führen wir mit dem ESP32 über das Internet mithilfe von HTTPClient.h einen REST-API-Aufruf an die Wetter-API (wttr.in) durch. Mit ArduinoJson v7 analysieren wir die zurückgegebenen JSON-Daten und zeigen Informationen zu Stadt, Temperatur, Luftfeuchtigkeit, Wetter und Wind sowohl auf Türkisch als auch auf Englisch auf einem I2C-LCD-Display an. wttr.in ist kostenlos und erfordert keinen API-Schlüssel – Sie können den aktuellen Wetterbericht einer beliebigen Stadt abrufen, indem

ESP32 Bewegungsalarmsystem (PIR + Buzzer + LED + Telegram)
Ein intelligentes Sicherheitsalarmsystem, das Buzzer und LED aktiviert, sobald der PIR-Sensor Bewegung erkennt, und gleichzeitig eine sofortige Benachrichtigung per Telegram an den Besitzer sendet. Ein 30-sekündiger Cooldown begrenzt die Häufigkeit wiederholter Alarme; dieser Mechanismus überprüft weder die Gültigkeit der PIR-Erkennungen noch verhindert er Fehlauslösungen. Geeignet für Heimsicherheit, Garagenüberwachung, Lagerräume oder Arbeitszimmer. Mit ESP32-CAM sind Foto-Benachrichtigungen m

ESP32 Deep Sleep – Batteriesparmodus (OLED + RTC-RAM-Zähler)
Der Deep-Sleep-Modus des ESP32 senkt den Stromverbrauch auf etwa 10 µA, indem er die CPU und die meisten Peripheriegeräte abschaltet, und ist für batteriebetriebene IoT-Geräte von entscheidender Bedeutung. In diesem Projekt verwenden wir drei verschiedene Weckquellen: den Timer (15 s), einen externen Pin (EXT0 – Taste GPIO 33) und die Berührungserkennung (T0/GPIO 4). Mit RTC_DATA_ATTR markierte Variablen bleiben während des Deep-Sleep-Modus erhalten – der Boot-Zähler, der Timer-Wake-Zähler und
Weitere Artikel
BlueGrays-App
Diese Schaltung Schritt für Schritt auf dem Handy nachbauen
Schaltplan, Code und Teileliste auf einem Bildschirm. Über 200 Arduino-, ESP32- und Pico-Projekte zum Nachbauen.
Mit dem Handy scannen
Richte die Kamera auf den Code, dann öffnet sich der App-Store deines Handys.
oder im Store öffnen

