Ratgeber · 12 Min. Lesezeit

ESP32 Unterricht erste Stunde: Checkliste und 40-Minuten-Ablauf

ESP32 im Unterricht: In der ersten Stunde lädt jede Gruppe Code hoch und lässt eine LED leuchten. Checkliste, Material für 24, Ablauf, Code und 8 Lösungen.

Wenn du die erste ESP32-Stunde im Unterricht planst, reduziere sie auf ein einziges Ziel: Am Ende hat jede Gruppe Code auf ihren eigenen ESP32 geladen und eine LED zum Leuchten gebracht. WLAN, Sensoren und Steuerung per Handy kommen in späteren Stunden. Ob 40 Minuten reichen, entscheidet weniger das, was du in der Stunde tust, als das, was du vorher erledigst: Ist der USB-Seriell-Treiber installiert, ist das ESP32-Board-Paket in der Arduino IDE, und überträgt das Kabel auf dem Tisch wirklich Daten? Sind diese drei Punkte erledigt, ist der erste Upload in fünf Minuten geschafft; wenn nicht, vergeht die halbe Stunde mit "Ich sehe keinen Port".

Hier bekommst du ein Paket, das du morgen mit in die Klasse nehmen kannst: eine kopierbare Checkliste für eine Woche vorher, den Vortag und den Morgen der Stunde, eine Materialtabelle, einen Ablauf Minute für Minute, zwei kompilierbare Sketche, fünf Unterschiede zwischen ESP32 und Arduino Uno, Ein-Minuten-Lösungen für die acht häufigsten Probleme und Abschlussfragen. Angenommen, du hast eine Klasse mit 24 Schülerinnen und Schülern und teilst sie in 8 Dreiergruppen; alle Zahlen beziehen sich darauf. Bei einer 45-Minuten-Stunde bleiben dir 5 Minuten Puffer. Falls der ESP32 für dich noch neu ist, lies zuerst Was ist der ESP32.

ESP32 DevKit mit 30 Pins: Micro-USB-Buchse, BOOT- und EN-Taster, ESP32-WROOM-32-Modul und zwei Pinreihen
Das Board für die erste Stunde: ein ESP32 DevKit mit 30 Pins. Sucht vor dem Start gemeinsam die USB-Buchse, die Taster BOOT und EN sowie die Pins D5, GND und 3V3 auf dem Board.

Ziel der ersten Stunde: warum nur eine LED?

In der ersten ESP32-Stunde hast du zwei Möglichkeiten: ein beeindruckendes WLAN-Projekt vorführen oder alle mit eigenen Händen etwas Kleines zum Laufen bringen lassen. Das Zweite bringt viel mehr. Um eine LED einzuschalten, muss jede Schülerin und jeder Schüler die ganze Kette einmal komplett durchlaufen: Code öffnen, Board und Port wählen, kompilieren, hochladen, Schaltung aufbauen, Ergebnis sehen, dann einen Wert ändern und neu hochladen. Funktioniert diese Kette einmal, kommen in späteren Stunden nur neue Bauteile dazu. Springst du vorher zum WLAN, stapeln sich Netzwerkpasswort, Treiber und Kabel übereinander, und welcher Teil den Fehler verursacht, lässt sich kaum noch auseinanderhalten. Deshalb gibt es in diesem Plan in der ersten Stunde kein Netzwerk: erst die interne LED des Boards, dann eine einzelne externe LED auf dem Steckbrett, und für schnelle Gruppen beide abwechselnd.

Checkliste zur Vorbereitung

Teile die Vorbereitung in drei Zeitpunkte auf. Du kannst die Liste kopieren, ausdrucken oder an die IT-Betreuung der Schule weitergeben; Aufgaben mit Administratorrechten wie Treiber- und Programminstallationen laufen an den meisten Schulen über sie. Eine Woche vorher:

  • Boards zählen und Modell prüfen. Dieser Plan ist für das ESP32 DevKit mit 30 Pins (mit ESP32-WROOM-32-Modul) geschrieben; bei Boards mit 38 Pins ist der Code gleich, nur die Pinreihenfolge ist anders.
  • Den kleinen Chip neben der USB-Buchse lesen: CP2102, CH340 oder CH9102? Davon hängt ab, welcher Treiber nötig ist.
  • Arduino IDE 2 auf den Unterrichtsrechnern installieren lassen. Schulrechner brauchen dafür meist Administratorrechte, also einen Termin mit der IT vereinbaren.
  • In der Arduino IDE über den Boardverwalter das Paket esp32 by Espressif Systems installieren. Es lädt mehrere hundert Megabyte herunter; im Schulnetz reichen 40 Minuten dafür womöglich nicht.
  • Den USB-Seriell-Treiber installieren, ein Board anstecken und prüfen, ob unter Werkzeuge > Port ein neuer Port erscheint.
  • Kabel testen: mit jedem Kabel einmal auf ein Board hochladen, reine Ladekabel aussortieren, Datenkabel mit farbigem Klebeband markieren.
  • Einen ESP32 auf ein Steckbrett stecken und schauen, ob auf beiden Seiten noch Löcher frei bleiben. Wenn nicht, bekommt jede Gruppe zwei Steckbretter.
  • Die Einschränkungen des Schulnetzes klären: Der ESP32 verbindet sich nur mit 2,4-GHz-WLAN, und Unternehmensnetze mit Benutzername und Passwort sind schwierig. In der ersten Stunde nutzt du kein WLAN, für spätere Stunden brauchst du diese Information aber schon jetzt.
Die Ladekabel-Falle: Ein Teil der Micro-USB- und USB-C-Kabel in der Schublade ist nur zum Laden gedacht und hat keine Datenleitungen. Mit so einem Kabel leuchtet die Power-LED des Boards, die Gruppe glaubt, alles funktioniert, aber in der Arduino IDE taucht nie ein Port auf. Das Erste, was eine Gruppe mit "kein Port" tun sollte, ist das Kabel tauschen. Markiere getestete Datenkabel und verwende in der ersten Stunde keine Kabel, die von zu Hause mitgebracht wurden.

Am Vortag sollte jeder Rechner unterrichtsbereit sein; Ziel ist, dass in der Stunde kein Installationsschritt zum ersten Mal passiert. Plane auch am Morgen der Stunde zehn Minuten ein. Beide Listen stehen hier zusammen:

  • Vortag: Auf jedem Rechner einen Test-Upload machen. Board anstecken, ESP32 Dev Module und den Port wählen, den Sketch für die interne LED hochladen und das Blinken prüfen. Das erste Kompilieren kann über eine Minute dauern; der Test beschleunigt auch spätere Durchläufe.
  • Vortag: Unter Windows die Portnummer (COM3, COM5 usw.) auf ein Etikett schreiben und seitlich an den Rechner kleben. Dasselbe Board an derselben USB-Buchse bekommt meist dieselbe Nummer.
  • Vortag: Gruppenkisten packen: Board, Kabel, Steckbrett, zwei LEDs, zwei 220-Ω-Widerstände, vier Jumperkabel. Den Ersatzsatz auf dem Lehrertisch lassen.
  • Vortag: Beide Sketche auf dem Desktop jedes Rechners speichern; wird das Internet langsam, öffnet die Klasse den Code von dort.
  • Vortag: Prüfen, ob sich das Projekt ESP32 Interne LED Blinken in BlueGrays über den Beamer öffnen lässt.
  • Morgen der Stunde: Rechner und Arduino IDE starten und prüfen, ob als Board noch ESP32 Dev Module eingestellt ist.
  • Morgen der Stunde: Eine einfache Skizze des Boards an die Tafel zeichnen: USB-Buchse, BOOT, EN, GND, 3V3 und GPIO5 (auf dem Board steht D5).
  • Morgen der Stunde: In eine Ecke der Tafel einen Satz schreiben: "Hängt es bei Connecting...? BOOT gedrückt halten."
  • Morgen der Stunde: LEDs und Widerstände in den Kisten ein letztes Mal zählen und die Kabel obendrauf legen.

Treiber, Board-Paket und BOOT: Details, die du kennen solltest

Im Boardverwalter der Arduino IDE siehst du eventuell zwei ESP32-Pakete. Für Schulboards ist das Paket esp32 von Espressif das richtige; "Arduino ESP32 Boards" ist für Arduinos eigenes Nano ESP32 gedacht. Nach der Installation wählst du unter Werkzeuge > Board > esp32 das ESP32 Dev Module. Erscheint das Paket nicht in der Liste, musst du in den Voreinstellungen bei den zusätzlichen Boardverwalter-URLs die Paketadresse von Espressif eintragen; die Schritte findest du in Was ist der ESP32. ESP32-Sketche kompilieren länger als Uno-Sketche; selbst bei einer Blink-LED kann das erste Kompilieren über eine Minute dauern. Sag das der Klasse vorher, sonst wird bei scheinbar stehendem Fortschrittsbalken immer wieder auf Hochladen geklickt. Welcher Treiber nötig ist, hängt vom USB-Seriell-Chip ab:

USB-Seriell-ChipSo erkennst du ihn auf dem BoardPortname unter WindowsHinweis
CP2102 / CP2104Kleiner quadratischer Chip neben der USB-Buchse, beschriftet mit CP2102 oder SiLabsSilicon Labs CP210x USB to UART Bridge (COMx)Windows installiert den Treiber oft selbst; sonst brauchst du den CP210x-Treiber von Silicon Labs
CH340 (CH340C, CH340G)Rechteckiger Chip mit der Aufschrift CH340USB-SERIAL CH340 (COMx)Braucht den CH340-Treiber von WCH; Windows Update installiert ihn manchmal automatisch
CH9102Kleiner quadratischer Chip auf neueren Boards, beschriftet mit CH9102USB-Enhanced-SERIAL CH9102 (COMx)Braucht den CH9102/CH343-Treiber von WCH; der CH340-Treiber erkennt diesen Chip nicht

Der BOOT-Taster ist mit GPIO0 des ESP32 verbunden. Beim Start eines Uploads muss das Board in den Programmiermodus wechseln; die meisten DevKits erledigen das selbst über zwei Signale des USB-Seriell-Chips. Bei manchen Kombinationen aus Board und Kabel klappt dieser automatische Wechsel nicht: Die Punkte hinter "Connecting..." werden immer mehr, und am Ende steht "Failed to connect to ESP32". Die Lösung: BOOT gedrückt halten, sobald "Connecting..." erscheint, und loslassen, wenn die Fortschrittszeilen mit "Writing at" durchlaufen. Der EN-Taster startet das Board neu; ist der Upload fertig, der Code scheint aber nicht zu laufen, genügt ein Druck auf EN. Tritt das Problem am selben Board immer wieder auf, hilft es meist, im Menü Werkzeuge die Upload Speed von 921600 auf 115200 zu senken. Unter macOS beginnt der Portname meist mit cu.usbserial oder cu.SLAB_USBtoUART.

Nutze in der ersten Stunde kein WLAN. Der ESP32 verbindet sich nur mit 2,4-GHz-Netzen; Schulnetze verlangen oft Benutzername und Passwort oder öffnen eine Anmeldeseite im Browser, und an solchen Seiten kommt der ESP32 nicht vorbei. Wenn die WLAN-Stunde ansteht, ist ein persönlicher Hotspot auf dem Handy der Lehrkraft im 2,4-GHz-Band der praktischste Weg. Probiere auch das am Vortag mit deinem eigenen Board aus.

Materialliste: pro Gruppe und für eine Klasse mit 24

Teilst du 24 Schülerinnen und Schüler in Dreiergruppen, ergeben sich 8 Gruppen; mit einem Ersatzsatz bereitest du 9 Sätze vor. Bei Zweiergruppen brauchst du 12 Gruppen plus Ersatz, also 13 Sätze, und entsprechend mehr Rechner. Kein Bauteil muss gelötet werden. Zwei LEDs und zwei Widerstände pro Gruppe haben einen einfachen Grund: Eine verkehrt herum gesteckte LED oder ein abgebrochenes Beinchen kommt in der ersten Stunde sehr oft vor, und keine Gruppe soll warten müssen.

MaterialPro GruppeFür die Klasse (8 Gruppen + 1 Ersatz)Hinweis
ESP32 DevKit (30 Pins, ESP32-WROOM-32)19Nur ein Modell verwenden; gemischte Modelle bringen die Pinreihenfolge durcheinander
USB-Datenkabel (je nach Board Micro-USB oder USB-C)1112 Ersatzkabel; alle getestet und markiert
Steckbrett (830 Löcher)192 pro Gruppe, falls das Board nicht passt (18 für die Klasse)
Rote 5-mm-LED220Eine rote LED leuchtet mit 3,3 V gut
Widerstand 220 Ω220Farbringe: rot-rot-braun
Jumperkabel Stecker-Stecker4etwa 40Für GND immer Schwarz verwenden
Rechner mit Arduino IDE und ESP32-Paket18 + Rechner der LehrkraftMit Portnummer beschriftet
Handy oder Tablet mit geöffnetem BlueGrays1 (optional)8Zum Lesen von Schaltplan und Code; ein Beamer reicht auch
Bauteilkiste oder Beutel19Am Ende alles gezählt zurücknehmen
Ein ESP32 DevKit mit 30 Pins bedeckt fast ein ganzes Standard-Steckbrett und lässt auf einer Seite nur eine Lochreihe frei. Stecke das Board so, dass die Seite mit D5 und GND freie Löcher hat, und baue LED und Widerstand auf dieser Seite auf. Auf diesem Board liegen D5, GND und 3V3 in derselben Reihe, sodass die Schaltung der ersten Stunde auf eine Seite passt. Reicht der Platz trotzdem nicht, stelle zwei Steckbretter nebeneinander und setze je eine Pinreihe des Boards in eines davon. Beim Herausziehen beide Enden gleichmäßig anheben, damit sich die Pins nicht verbiegen.

Der 40-Minuten-Ablauf

Der Ablauf baut auf zwei kostenlosen BlueGrays-Projekten auf: zuerst ESP32 Interne LED Blinken (keine Schaltung, nur Board und Kabel), dann LED Blinken mit ESP32 (GPIO5, ein 220-Ω-Widerstand und eine LED). Bei beiden Projekten sind Bauteilliste, Schaltplan, Code, Blöcke und Code verstehen kostenlos freigeschaltet. Verteile in jeder Gruppe drei Rollen und wechsle sie in jeder Phase: eine Person an der Tastatur, eine baut die Schaltung, eine liest Schaltplan und Code vom Handy oder Beamer vor. So schaut niemand 40 Minuten lang nur zu.

MinutePhaseLehrkraftSchülerinnen und Schüler
0–4Einstieg und ZielHält das Board hoch und nennt das eine Ziel: "Bis zum Klingeln lädt jede Gruppe ihren eigenen Code hoch und bringt eine LED zum Leuchten." Erwähnt, dass das Board wie ein Handy WLAN hat, das heute aber nicht genutzt wird.Verteilen die Rollen, öffnen die Kiste, zählen die Bauteile.
4–9Das Board kennenlernenZeigt an der Tafelskizze USB-Buchse, BOOT- und EN-Taster sowie die Pins GND, 3V3 und GPIO5; gibt den 3,3-V-Hinweis.Finden diese Stellen auf dem eigenen Board und suchen die interne LED.
9–17Erster Upload: interne LEDÖffnet das Projekt ESP32 Interne LED Blinken am Beamer, zeigt einmal die Board- und Portwahl, erinnert an den BOOT-Hinweis.Öffnen oder kopieren den Code, wählen ESP32 Dev Module und den Port, laden hoch; die LED blinkt im Sekundentakt.
17–21Einen Wert ändernFragt: "Was passiert, wenn ihr statt 1000 eine 200 schreibt?" und lässt zuerst vermuten.Nennen ihre Vermutung, ändern beide delay()-Werte, laden neu hoch und vergleichen mit der Vermutung.
21–31Externe LEDProjiziert den Schaltplan von LED Blinken mit ESP32, zeigt das lange Beinchen der LED und die Position des Widerstands, geht herum und prüft jede Schaltung bei abgezogenem USB-Kabel.Ziehen USB ab, bauen GPIO5 → 220 Ω → langes LED-Beinchen, kurzes Beinchen → GND auf und laden nach dem OK der Lehrkraft hoch.
31–35Mini-AufgabeGibt schnellen Gruppen eine Zusatzaufgabe: interne und externe LED blinken abwechselnd. Bei Gruppen, die feststecken, zuerst Kabel und LED-Richtung prüfen.Setzen beide Pins als Ausgang, schalten eine LED aus, während die andere leuchtet; fertige Gruppen gehen zur Aufgabe Probier es selbst in Code verstehen.
35–38AufräumenLässt alle USB-Kabel abziehen und die Bauteile zählen.Bauen die Schaltung ab und zählen die Teile zurück in die Kiste.
38–40AbschlussfragenSchreibt die vier Fragen an die Tafel oder stellt sie mündlich.Schreiben kurze Antworten auf einen Zettel und geben ihn beim Hinausgehen ab.
Deutsche Blöcke des Projekts ESP32 Interne LED Blinken: Definition BUILTIN_LED_PIN = 2, Pin im Setup als Ausgang, in der Schleife HIGH und LOW schreiben und 1000 ms warten
Die Blöcke des ersten Uploads. Zeigst du dieses Bild am Beamer neben dem Code, sieht die Klasse sofort, dass der Definitionsblock der int-Zeile, der Setup-Block setup() und der Wiederholungsblock loop() entspricht.

Der Code: interne LED und externe LED

Die beiden Sketche unten verwenden dieselben Pins und Zeiten wie die Projekte in der App und lassen sich mit ausgewähltem ESP32 Dev Module direkt in der Arduino IDE kompilieren. Der erste lässt die LED auf dem Board im Sekundentakt blinken. Bei den meisten ESP32 DevKits ist diese blaue LED mit GPIO2 verbunden. Beim Arduino Uno lag die interne LED an Pin 13; wer schon mit dem Uno gearbeitet hat, tippt aus Gewohnheit vielleicht 13, also weise früh auf den Unterschied hin.

C++ (Arduino IDE)
1// ESP32 Dahili LED Yakma / ESP32 built-in LED blink
2// Çoğu ESP32 DevKit kartında dahili LED GPIO2'dedir / On most ESP32 DevKit boards the built-in LED is on GPIO2
3int BUILTIN_LED_PIN = 2;   // Kartına göre değişebilir / May differ on your board
4
5void setup() {
6  pinMode(BUILTIN_LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
7}
8
9void loop() {
10  digitalWrite(BUILTIN_LED_PIN, HIGH);   // LED'i yak / Turn the LED on
11  delay(1000);                           // 1 saniye bekle / Wait 1 second
12  digitalWrite(BUILTIN_LED_PIN, LOW);    // LED'i söndür / Turn the LED off
13  delay(1000);                           // 1 saniye bekle / Wait 1 second
14}
15

Die Schaltung für den zweiten Sketch: von GPIO5 zu einem Ende des 220-Ω-Widerstands, vom anderen Ende des Widerstands zum langen Beinchen der LED (Anode), vom kurzen Beinchen (Kathode) zu GND. Der ESP32-Pin liefert 3,3 V; an einer roten LED fallen etwa 2 V ab, die restlichen 1,3 V treiben über 220 Ω rund 6 mA. Das reicht für eine gut sichtbare LED und belastet den Pin nicht. Nimmst du eine andere Farbe, prüfe den Widerstand mit dem LED-Vorwiderstandsrechner. In der Mini-Aufgabe kombinieren schnelle Gruppen beide Sketche: In setup() werden beide Pins Ausgänge, in loop() wird einer auf HIGH gesetzt, während der andere LOW ist.

C++ (Arduino IDE)
1// ESP32 ile LED Yakma: harici LED / ESP32 external LED blink
2// Bağlantı: GPIO5 -> 220 Ω direnç -> LED uzun bacak (+), kısa bacak (-) -> GND
3// Wiring: GPIO5 -> 220 ohm resistor -> LED long leg (+), short leg (-) -> GND
4const int LED_PIN = 5;   // Harici LED pini (kartta D5) / External LED pin (D5 on the board)
5
6void setup() {
7  pinMode(LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
8}
9
10void loop() {
11  digitalWrite(LED_PIN, HIGH);   // Pin 3,3 V verir, LED yanar / Pin outputs 3.3 V, LED on
12  delay(500);                    // Yarım saniye bekle / Wait half a second
13  digitalWrite(LED_PIN, LOW);    // Pin 0 V verir, LED söner / Pin outputs 0 V, LED off
14  delay(500);                    // Yarım saniye bekle / Wait half a second
15}
16
Die interne LED liegt nicht auf jedem Board an GPIO2. Manche Boards, etwa das DevKitC von Espressif selbst, haben nur eine rote Power-LED und gar keine programmierbare LED; bei anderen hängt die LED an einem anderen Pin. Blinkt beim Test-Upload nichts, sieh im Pinout deines Boards nach; gibt es keine interne LED, geht diese Gruppe direkt zur externen LED über. Ein einziges Modell im Klassensatz verhindert solche Überraschungen von Anfang an.

5 Unterschiede zwischen ESP32 und Arduino Uno

Einige in deiner Klasse kennen vielleicht schon den Arduino Uno. Der Code wird in derselben Arduino-Sprache geschrieben, setup() und loop() sind an ihrem Platz, aber die Hardware ist anders, und die meisten Fehler der ersten Stunde kommen genau daher. Die fünf Punkte unten erklärst du in wenigen Minuten, während ihr das Board kennenlernt. Einen ausführlicheren Vergleich findest du in Arduino oder ESP32.

ThemaArduino UnoESP32 DevKitWas das im Unterricht bedeutet
Logikpegel5 V3,3 V; die Pins sind nicht 5-V-tolerantNie 5 V an einen GPIO legen; bei einem 5-V-Modul vorher die Ausgangsspannung prüfen
PinnummernD0–D13 und A0–A5Es zählen die GPIO-Nummern; der Pin mit der Aufschrift D5 ist im Code 5Die Zahl im Code ist die GPIO-Nummer auf dem Board, nicht die vom Rand abgezählte Position
Reine EingangspinsKeine; alle Digitalpins können Ausgänge seinGPIO34, 35, 36 (VP) und 39 (VN) sind nur Eingänge und haben keine internen Pull-up-Widerstände; GPIO6–11 hängen am Flash-SpeicherEine LED an 34 leuchtet nie; in der ersten Stunde nur GPIO2 und GPIO5 verwenden
Taster BOOT und ENEin einzelner Reset-Taster; der Upload startet von selbstBOOT (GPIO0) für den Programmiermodus, EN für den NeustartHängt "Connecting...", BOOT gedrückt halten; läuft der Code scheinbar nicht, EN drücken
FunkKeinerEingebautes 2,4-GHz-WLAN und Bluetooth (Classic und BLE)In der ersten Stunde nicht genutzt; später je nach Schulnetz mit einem Handy-Hotspot ausprobieren

Die 8 häufigsten Probleme im Unterricht und Ein-Minuten-Lösungen

SymptomWahrscheinliche UrsacheLösung in einer Minute
Menü Werkzeuge > Port ist leer oder grauReines Ladekabel oder fehlender TreiberEin markiertes Datenkabel probieren; fehlt der Port weiter, im Geräte-Manager nach dem Chipnamen suchen und das Board am Rechner der Lehrkraft testen
"Connecting..." zieht sich, dann "Failed to connect to ESP32"Das Board ist nicht selbst in den Programmiermodus gewechseltErneut hochladen, bei "Connecting..." BOOT gedrückt halten, loslassen, wenn die Zeilen "Writing at" beginnen
avrdude-Fehler in der AusgabeAls Board ist noch Arduino Uno gewähltWerkzeuge > Board > esp32 > ESP32 Dev Module wählen und erneut hochladen
Upload erfolgreich, aber an der LED ändert sich nichtsFalscher Port gewählt (mehrere Boards angesteckt)Board abziehen, schauen, welcher Port im Menü verschwindet, wieder anstecken und diesen Port wählen; mit dem Etikett am Rechner vergleichen
Die externe LED leuchtet nieLED verkehrt herum oder Widerstand und LED nicht in derselben SteckbrettreiheLED umdrehen: langes Beinchen zum Widerstand, kurzes zu GND; prüfen, ob die Verbindungen in derselben Reihe liegen
Schaltung sieht richtig aus, LED bleibt trotzdem ausDas Kabel steckt in einem anderen Pin (etwa D4 oder D34)Beschriftung des Pins lesen, in dem das Kabel steckt, und mit der Zahl im Code vergleichen; Pins 34–39 meiden
Code hochgeladen, aber die interne LED blinkt nichtDas Board hat keine programmierbare LED oder sie hängt an einem anderen PinIm Pinout des Boards nachsehen; ohne Zeitverlust zur externen LED übergehen
LED leuchtet dauerhaft oder das Board wird warmLED an 5V/VIN oder 3V3, oder Kurzschluss zwischen 3V3 und GNDSofort USB abziehen; LED an GPIO5 umstecken, das kurzschließende Kabel suchen, dann wieder anstecken
Die Drei-Minuten-Regel: Hängt eine Gruppe länger als drei Minuten am selben Problem, tausche Board und Kabel gegen den Ersatzsatz und sieh dir das defekte Teil nach der Stunde selbst an. Wenn eine Gruppe wegen eines schlechten Kabels die ganze Stunde verpasst, kostet das mehr, als die Ursache sofort zu finden. Auch wenn der Fortschrittsbalken zu stehen scheint: nicht ein zweites Mal auf Hochladen klicken lassen, das erste Kompilieren dauert. Für tiefere Prüfungen bei Port- und Treiberproblemen gelten die Schritte aus Arduino Sketch lässt sich nicht hochladen auch für den ESP32.

Abschlussfragen und Ausblick auf die zweite Stunde

  1. Welchen Pin auf dem Board meint die Zahl 5 im Code? Warum steht neben diesem Pin vielleicht "D5"?
  2. Was hat sich an der LED geändert, als ihr delay(200) statt delay(1000) geschrieben habt? Wie oft pro Sekunde blinkt die LED jetzt?
  3. Warum hat die LED nicht geleuchtet, als sie verkehrt herum steckte? Welches Beinchen der LED kommt auf die Seite des Widerstands?
  4. Welche Spannung liefern die Pins des ESP32? Warum sollten wir eine LED oder ein Modul nicht direkt an den 5V-Pin anschließen?

Die Antworten zeigen dir, welcher Begriff in der zweiten Stunde wiederholt werden muss; wer bei der zweiten Frage 2,5 sagt, hat das Timing verstanden. In der zweiten Stunde kommt ein Taster zur selben Schaltung: Beim Projekt ESP32 LED-Steuerung mit Drucktaste (Push) leuchtet die LED, solange der Taster gedrückt ist, bei ESP32 LED Steuerung mit Taster (Toggle) wechselt sie bei jedem Druck ihren Zustand. Beide sind kostenlos und haben Blöcke; die Klasse liest zum ersten Mal einen Eingang und entscheidet mit if. In der dritten oder vierten Stunde kannst du zum WLAN übergehen; halte dafür die Statuscode-Tabelle aus ESP32 verbindet sich nicht mit WLAN bereit. Die WLAN-Projekte für den ESP32 sind in BlueGrays Premium; wenn deine Klasse damit weitermachen soll, erklären wir in Premium-Codes für die Klasse, wie du statt einzelner Abos jedem einen Code aus einem Lehrer-Paket gibst.

Wie nutzt du BlueGrays im Unterricht?

  • Projekt finden: In Entdecken › Projekte mit Filtern die Plattform ESP32 und beim Preisstatus kostenlos wählen. ESP32-Projekte für die ersten Stunden wie LED, Taster, Ampel, Lichtsensor und Abstandssensor sind komplett freigeschaltet.
  • Benötigte Bauteile und Schaltplan: Die Bauteilliste ist mit Stückzahlen fertig. Den Schaltplan kannst du vergrößern und an den Beamer bringen oder mit In Galerie speichern sichern und ausdrucken.
  • Quellcode: Mit Kopieren landet der Code in der Zwischenablage. Hat jemand das Projekt auf dem Handy geöffnet, liefert Link kopieren einen Link, um den Code am Rechner zu öffnen, sodass niemand abtippen muss.
  • Code verstehen: Zuerst die Zusammenfassung Was macht dieser Code?, dann die Erklärung Schritt für Schritt, der Abschnitt Wenn du nicht weiterkommst und die Aufgabe Probier es selbst. Ein fertiger nächster Schritt für Gruppen, die früh mit der Mini-Aufgabe fertig sind.
  • Als Blöcke zeigen: Alle kostenlosen ESP32-Projekte haben eine Blockansicht. Schaltest du sie ein, erscheinen statt des Codes die Blöcke desselben Programms, und der Tab heißt Blöcke verstehen. Die Blöcke sind zum Lesen da; sie werden in der App nicht bearbeitet und nicht auf das Board geladen, aufs Board kommt immer der echte Code.
  • Lass es uns zusammen bauen: Ein geführter Modus mit den Schritten Bauteile bereitlegen, Schaltung aufbauen, Code hochladen sowie Starten und testen. Der Bildschirm bleibt an, sodass die Gruppe den Schritten folgen kann, während das Handy auf dem Tisch liegt; am Ende markiert Gebaut das Projekt als erledigt.

Die erste Stunde sieht vielleicht nur nach einer LED aus, aber in diesen 40 Minuten erleben alle einmal Kompilieren, Hochladen, Pinnummern, die 3,3-V-Grenze und Fehlersuche, und jede weitere ESP32-Stunde baut darauf auf. Alle Bereiche der Projektseite erklären wir ausführlich im Leitfaden zur Projektseite. Wenn du beide Projekte vor der Stunde einmal selbst bauen willst, öffne in der BlueGrays-App das Projekt ESP32 Interne LED Blinken; Schaltplan, Code, Blöcke und Code verstehen sind fertig, und deine Generalprobe dauert keine zehn Minuten.

Häufige Fragen

Was macht man in der ersten ESP32-Stunde?

Ziel der ersten Stunde ist, dass jede Gruppe Code auf ihren ESP32 lädt und eine LED leuchten lässt: zuerst die interne LED des Boards, dann eine externe LED mit 220-Ω-Widerstand auf dem Steckbrett. WLAN und Sensoren kommen später. So erleben alle einmal ohne Probleme die Kette aus Kompilieren, Hochladen und Pinnummern.

Welches Board wähle ich für den ESP32 in der Arduino IDE?

Für allgemeine Boards wie das ESP32 DevKit installierst du das esp32-Paket von Espressif und wählst unter Werkzeuge > Board > esp32 das ESP32 Dev Module. Das Paket Arduino ESP32 Boards ist für den Arduino Nano ESP32. Bleibt als Board Arduino Uno eingestellt, bricht der Upload mit einem avrdude-Fehler ab.

ESP32 wird am PC nicht erkannt, was tun?

Tausche zuerst das Kabel; viele USB-Kabel sind reine Ladekabel ohne Datenleitungen. Lies dann den USB-Seriell-Chip auf dem Board (CP2102, CH340 oder CH9102) und installiere den passenden Treiber. Unter Windows sollte im Geräte-Manager unter Anschlüsse (COM & LPT) ein neuer COM-Port erscheinen.

Muss man beim ESP32 zum Hochladen BOOT drücken?

Die meisten DevKits wechseln selbst in den Programmiermodus, BOOT ist dann nicht nötig. Zieht sich "Connecting..." und kommt "Failed to connect to ESP32", starte den Upload neu, halte BOOT bei "Connecting..." gedrückt und lass los, sobald geschrieben wird. Hilft das nicht dauerhaft, senke die Upload-Geschwindigkeit auf 115200.

An welchem Pin ist die interne LED des ESP32?

Bei verbreiteten ESP32 DevKits mit 30 Pins hängt die blaue interne LED an GPIO2. Das hängt aber vom Board ab: Das DevKitC von Espressif hat nur eine Power-LED, bei manchen Boards liegt die LED an einem anderen Pin. Im Zweifel ins Pinout schauen oder eine externe LED auf dem Steckbrett nutzen.

Kann man in der Schule mit dem ESP32 statt dem Arduino Uno anfangen?

Ja; der Code wird in derselben Arduino-Sprache geschrieben, und die erste LED-Stunde ist fast identisch. Unterschiede sind der 3,3-V-Logikpegel, die GPIO-Nummerierung, reine Eingangspins und der BOOT-Taster; dafür reichen in der ersten Stunde wenige Minuten. Die Vorbereitung dauert etwas länger als beim Uno, dafür sind WLAN und Bluetooth für spätere Stunden schon an Bord.

Alle Projekte ansehen
ESP32 Interne LED Blinken
#106Anfänger

ESP32 Interne LED Blinken

Die eingebaute blaue LED auf dem ESP32 DevKit V1 zum Blinken bringen. Keine externen Komponenten erforderlich! Das erste Projekt, das Sie ausprobieren sollten, wenn Sie einen ESP32 kaufen. GPIO 2 ist mit der internen LED verbunden.

4.8(29)
53
LED Blinken mit ESP32
#103Anfänger

LED Blinken mit ESP32

Lehrt die grundlegende Verwendung von GPIO-Ausgängen mit ESP32. Wir erreichen einen Blinkeffekt, indem wir eine LED über einen digitalen Pin ein- und ausschalten. ESP32-Version des klassischen Blink-Projekts auf Arduino UNO; die grundlegenden Blink-Befehle in der Arduino-Umgebung bleiben gleich, aber die Pinbelegung und die GPIO-Pegel von 3,3 V des ESP32 unterscheiden sich von denen des Arduino UNO.

4.7(37)
99
ESP32 LED-Steuerung mit Drucktaste (Push)
#104Anfänger

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.

4.6(36)
55
ESP32 LED Steuerung mit Taster (Toggle)
#105Anfänger

ESP32 LED Steuerung mit Taster (Toggle)

Jedes Mal, wenn die Taste gedrückt wird, ändert sich der Zustand der LED: ist sie an, schaltet sie aus, ist sie aus, schaltet sie ein. Klassisches Toggle-Muster. Mit der Entprellung wird das mechanische Geräusch des Tasters beseitigt, um ein einmaliges Umschalten mit einem einzigen Druck zu gewährleisten.

4.6(39)
57
ESP32 Ampel
#107Anfänger

ESP32 Ampel

Simulation einer echten Ampel mit 3 rot-gelb-grünen LEDs. Die Zeiten sind nahe an der realen Verkehrslogik: rot lang, gelb kurz, grün lang. Klassisches Beispiel für sequenzielle GPIO-Steuerung.

4.4(21)
44
Messung der Lichtintensität mit dem ESP32-LDR-Modul
#113Anfänger

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.

4.6(36)
55
ESP32 HC-SR04 Ultraschall-Entfernungsmesser
#116Mittel

ESP32 HC-SR04 Ultraschall-Entfernungsmesser

Der Ultraschallsensor HC-SR04 berechnet die Entfernung, indem er die Zeit misst, die die von ihm ausgesendete Schallwelle benötigt, um auf ein Objekt zu treffen und zurückzukehren (Time of Flight). In diesem Projekt senden wir mit dem ESP32 einen 10-Mikrosekunden-Impuls an den TRIG-Pin und lesen die vom ECHO-Pin kommende Echozeit mit pulseIn(). Die berechnete Entfernung geben wir in cm auf einem 16x2-I2C-LCD aus. Da der HC-SR04 mit 5 V betrieben wird, ist ein Spannungsteiler am ECHO-Pin zw

4.9(28)
45
ESP32 DHT22 Temperatur und Luftfeuchtigkeit (mit LCD-Display)
#117Mittel

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.

4.8(38)
56