← Alle MakerNEWS

ESP32

ESP32 für Anfänger: Der einfache Einstieg in die Mikrocontroller-Welt

Herr Brinke 14 Minuten Lesezeit Aktualisiert: 29/08/2026
mathew schwartz 2mEx6GSAl0c unsplash scaled

Der ESP32 ist klein, günstig und trotzdem erstaunlich leistungsfähig. Mit ihm lassen sich LEDs steuern, Taster auslesen, Temperaturen messen, Motoren bewegen oder Geräte über WLAN miteinander verbinden.

Das Beste daran:

Für den Einstieg sind weder Programmierkenntnisse noch umfangreiche Elektronikkenntnisse notwendig.

In diesem Beitrag werden die wichtigsten Grundlagen Schritt für Schritt erklärt.

Nach diesem Einstieg ist klar:

  • was ein ESP32 ist
  • was ein Mikrocontroller macht
  • was GPIO-Pins sind
  • welche Hardware benötigt wird
  • wie der ESP32 mit dem Computer verbunden wird
  • wie ein erstes Programm funktioniert
  • was setup() und loop() bedeuten
  • wie Ein- und Ausgänge funktionieren
  • was beim Anschluss von Bauteilen beachtet werden muss
  • welche Projekte sich für den Einstieg eignen

Was ist ein ESP32?

Der ESP32 ist ein Mikrocontroller.

Das klingt komplizierter, als es ist.

Vereinfacht kann man sich einen Mikrocontroller wie einen winzigen Computer vorstellen.

Ein normaler Computer besitzt:

  • Bildschirm
  • Tastatur
  • Maus
  • Festplatte
  • viele Anschlüsse

Der ESP32 benötigt das alles nicht.

Stattdessen besitzt er kleine Anschlüsse, sogenannte Pins.

An diese Pins können elektronische Bauteile angeschlossen werden.

Zum Beispiel:

  • LEDs
  • Taster
  • Schalter
  • Temperatursensoren
  • Abstandssensoren
  • Displays
  • Bewegungsmelder
  • Relais
  • Servomotoren

Ein Programm bestimmt anschließend, was der ESP32 mit diesen Bauteilen machen soll.


Das wichtigste Prinzip: Eingabe → Verarbeitung → Ausgabe

Fast jedes Mikrocontroller-Projekt funktioniert nach demselben Prinzip:

Eingabe → Verarbeitung → Ausgabe

Ein einfaches Beispiel:

Ein Taster wird gedrückt.

Eingabe:
Der ESP32 erkennt den gedrückten Taster.

Verarbeitung:
Das Programm prüft:

Ist der Taster gedrückt?

Ausgabe:
Der ESP32 schaltet eine LED ein.

Das war es eigentlich schon.

Natürlich können Projekte später deutlich komplizierter werden. Das Grundprinzip bleibt aber fast immer gleich.


Was macht den ESP32 besonders?

Mikrocontroller gibt es schon sehr lange.

Bekannte Beispiele sind:

  • Arduino Uno
  • Arduino Nano
  • Arduino Mega

Der ESP32 bietet zusätzlich einige Funktionen, die ihn besonders interessant machen.

Dazu gehören vor allem:

WLAN

Der ESP32 kann sich mit einem WLAN verbinden.

Dadurch kann er beispielsweise:

  • Messwerte übertragen
  • Webseiten bereitstellen
  • Daten aus dem Internet abrufen
  • mit Smart-Home-Systemen kommunizieren

Bluetooth

Auch Bluetooth ist bereits integriert.

Damit kann der ESP32 beispielsweise mit anderen Geräten kommunizieren.

Für die ersten Projekte benötigen wir WLAN und Bluetooth allerdings noch gar nicht.

Wir beginnen deutlich einfacher.


Was benötigen wir für den Einstieg?

Für die ersten Versuche wird nicht viel benötigt.

Grundausstattung

  • ESP32 Development Board
  • passendes USB-Kabel
  • Computer
  • Arduino IDE
  • Breadboard
  • Jumper-Kabel
  • LEDs
  • Widerstände
  • Taster

Für die ersten Programmierübungen reichen sogar:

ESP32 + USB-Kabel + Computer


Was ist ein Breadboard?

Ein Breadboard wird auch Steckbrett genannt.

Damit können elektronische Schaltungen aufgebaut werden, ohne die Bauteile miteinander zu verlöten.

Bauteil hineinstecken.

Kabel hineinstecken.

Programm ausprobieren.

Funktioniert etwas nicht?

Kabel wieder herausziehen und die Schaltung verändern.

Das macht Breadboards ideal zum Lernen und Experimentieren.


Die Arduino IDE

Der ESP32 muss wissen, was er machen soll.

Dafür schreiben wir ein Programm.

Eine sehr einfache Möglichkeit dafür ist die Arduino IDE.

IDE bedeutet:

Integrated Development Environment

Das müssen wir uns aber nicht merken.

Vereinfacht gesagt ist die Arduino IDE einfach:

Das Programm auf dem Computer, mit dem wir unseren ESP32 programmieren.

In der Arduino IDE schreiben wir unseren Programmcode.

Anschließend wird das Programm über USB auf den ESP32 übertragen.


ESP32 für die Arduino IDE vorbereiten

Bevor das erste Programm übertragen werden kann, muss die Arduino IDE für den ESP32 eingerichtet werden.

Danach wird das verwendete ESP32-Board ausgewählt.

Bei vielen klassischen ESP32-Entwicklungsboards ist das beispielsweise:

ESP32 Dev Module

Zusätzlich muss der richtige USB-Anschluss ausgewählt werden.

Danach können Programme auf den ESP32 übertragen werden.


Unser erstes ESP32-Programm

Programme für Arduino und ESP32 werden häufig Sketch genannt.

Fast jeder Sketch besitzt zwei wichtige Bereiche:

void setup() {

}

void loop() {

}

Diese beiden Bereiche sind so wichtig, dass man sie direkt kennenlernen sollte.


setup() einfach erklärt

setup() bedeutet sinngemäß:

Vorbereitung

Alles innerhalb von setup() wird beim Start einmal ausgeführt.

Zum Beispiel:

void setup() {
  Serial.begin(9600);
}

Damit starten wir die Kommunikation zwischen ESP32 und Computer.

Wichtig ist:

setup() wird nur einmal ausgeführt.


loop() einfach erklärt

Danach kommt:

void loop() {

}

loop bedeutet:

Schleife

Alles innerhalb von loop() wird immer wieder ausgeführt.

Der ESP32 arbeitet beispielsweise:

Aufgabe 1
↓
Aufgabe 2
↓
Aufgabe 3
↓
wieder Aufgabe 1
↓
Aufgabe 2
↓
Aufgabe 3
↓
...

Und das passiert sehr schnell.

Solange der ESP32 eingeschaltet ist.


Hello World mit dem ESP32

Beim Programmieren ist das erste Programm traditionell häufig:

Hello World!

Damit testen wir, ob unsere Programmierumgebung funktioniert.

Beim ESP32 können wir den Text über die serielle Schnittstelle an den Computer schicken.

void setup() {

  Serial.begin(9600);

  Serial.println("Hello World!");

}

void loop() {

}

Nach dem Hochladen öffnen wir den Serial Monitor.

Dort sollte erscheinen:

Hello World!

Herzlichen Glückwunsch.

Der ESP32 führt das erste eigene Programm aus.


Was ist der Serial Monitor?

Der Serial Monitor ist eines der wichtigsten Werkzeuge beim Programmieren eines ESP32.

Der ESP32 besitzt schließlich keinen eigenen Bildschirm.

Trotzdem möchten wir wissen, was innerhalb unseres Programms passiert.

Dafür kann der ESP32 Informationen an den Computer senden.

Zum Beispiel:

Serial.println("Taster gedrückt");

Oder:

Serial.println(temperatur);

Der Serial Monitor kann dann beispielsweise anzeigen:

21
22
22
23
23
24

Damit können wir später Messwerte beobachten und Fehler in unseren Programmen finden.


Was sind die Pins am ESP32?

An den Seiten des ESP32 befinden sich viele kleine Anschlüsse.

Diese werden Pins genannt.

Einige davon sind sogenannte:

GPIO-Pins

GPIO steht für:

General Purpose Input/Output

Das bedeutet vereinfacht:

Anschlüsse, die wir für verschiedene Aufgaben verwenden können.

Ein GPIO kann beispielsweise einen Taster auslesen oder eine LED steuern.


Eingang und Ausgang

Dabei müssen wir zwei grundlegende Begriffe unterscheiden.

INPUT

INPUT bedeutet:

Eingang

Der ESP32 bekommt eine Information.

Beispiele:

  • Taster gedrückt?
  • Tür geöffnet?
  • Bewegung erkannt?
  • Sensor aktiv?

OUTPUT

OUTPUT bedeutet:

Ausgang

Der ESP32 steuert etwas.

Beispiele:

  • LED einschalten
  • Summer aktivieren
  • Relais schalten
  • Signal ausgeben

Damit sind wir wieder bei unserem Grundprinzip:

INPUT → Verarbeitung → OUTPUT


Die erste LED

Eine der klassischen Übungen besteht darin, eine LED blinken zu lassen.

Dafür benötigen wir beispielsweise:

  • ESP32
  • LED
  • passenden Vorwiderstand
  • Breadboard
  • Jumper-Kabel

Eine externe LED benötigt einen passenden Vorwiderstand. Ein häufig verwendeter Wert für einfache Versuche ist beispielsweise 220 Ω. Auch Newbiely verwendet für sein ESP32-Blink-Beispiel eine LED mit 220-Ω-Widerstand.

Der genaue GPIO hängt davon ab, wie die Schaltung aufgebaut wird.

Angenommen, unsere LED ist mit GPIO 21 verbunden:

#define LED_PIN 21

void setup() {

  pinMode(LED_PIN, OUTPUT);

}

void loop() {

  digitalWrite(LED_PIN, HIGH);
  delay(1000);

  digitalWrite(LED_PIN, LOW);
  delay(1000);

}

Was passiert hier?


pinMode()

Diese Zeile:

pinMode(LED_PIN, OUTPUT);

bedeutet:

Verwende diesen Anschluss als Ausgang.

Damit weiß der ESP32:

Über diesen Pin soll etwas gesteuert werden.


digitalWrite()

Mit:

digitalWrite(LED_PIN, HIGH);

schalten wir den Ausgang ein.

Vereinfacht:

HIGH = EIN

Anschließend:

digitalWrite(LED_PIN, LOW);

Vereinfacht:

LOW = AUS

Damit können wir die LED ein- und ausschalten.


delay()

Jetzt fehlt noch:

delay(1000);

delay() bedeutet:

Warte.

Die Zahl wird in Millisekunden angegeben.

Deshalb gilt:

1000 ms = 1 Sekunde

Unser Programm macht also:

LED EIN
↓
1 Sekunde warten
↓
LED AUS
↓
1 Sekunde warten
↓
LED EIN
↓
...

Die LED blinkt.

Damit wurde bereits ein echter Ausgang des Mikrocontrollers programmiert.


Jetzt kommt ein Eingang: der Taster

Eine LED ist ein Ausgang.

Ein Taster ist dagegen ein typischer Eingang.

Der ESP32 soll erkennen:

gedrückt oder nicht gedrückt?

Dafür gibt es:

digitalRead()

Ein Taster kann beispielsweise an einen GPIO und GND angeschlossen werden.

Der ESP32 besitzt interne Pull-up-Widerstände. Dadurch können wir bei vielen einfachen Taster-Schaltungen auf einen zusätzlichen Widerstand verzichten.

Im Programm verwenden wir:

pinMode(BUTTON_PIN, INPUT_PULLUP);

Wichtig:

Bei dieser Schaltung ist die Logik zunächst etwas ungewohnt.

Taster nicht gedrückt → HIGH

Taster gedrückt → LOW

Das wirkt zunächst falsch herum, ist aber völlig normal.


Taster auslesen

Ein einfaches Programm könnte so aussehen:

#define BUTTON_PIN 21

void setup() {

  Serial.begin(9600);

  pinMode(BUTTON_PIN, INPUT_PULLUP);

}

void loop() {

  int buttonState = digitalRead(BUTTON_PIN);

  Serial.println(buttonState);

}

Im Serial Monitor können wir jetzt beobachten:

1
1
1
1
0
0
0
1
1

Dabei gilt:

1 = Taster nicht gedrückt

0 = Taster gedrückt

Damit können wir bereits Informationen aus der echten Welt in unser Programm einlesen.


Variablen einfach erklärt

Im letzten Programm gab es diese Zeile:

int buttonState;

Was bedeutet das?

Eine Variable kann man sich wie eine kleine beschriftete Kiste vorstellen.

Die Kiste heißt:

buttonState

Darin können wir einen Wert speichern.

Zum Beispiel:

int alter = 16;

Wir haben eine Kiste mit der Beschriftung:

alter

und legen dort hinein:

16

Später können wir den Inhalt wieder verwenden.


Entscheidungen treffen mit if

Jetzt wird es interessant.

Der ESP32 kann Entscheidungen treffen.

Zum Beispiel:

Wenn der Taster gedrückt wird, schalte die LED ein.

Dafür verwenden wir:

if

if bedeutet:

wenn

Zum Beispiel:

if (buttonState == LOW) {

  digitalWrite(LED_PIN, HIGH);

}

Das können wir fast wie einen deutschen Satz lesen:

WENN der Taster gedrückt ist, DANN schalte die LED ein.

Zusätzlich gibt es:

else

Das bedeutet:

ansonsten

Damit können wir schreiben:

if (buttonState == LOW) {

  digitalWrite(LED_PIN, HIGH);

}
else {

  digitalWrite(LED_PIN, LOW);

}

Jetzt gilt:

Taster gedrückt → LED an

Taster losgelassen → LED aus

Damit haben wir bereits eine kleine Steuerung programmiert.


Digitale und analoge Signale

Bisher haben wir digitale Signale verwendet.

Digital

Digital bedeutet vereinfacht:

Es gibt zwei Zustände.

Zum Beispiel:

EIN / AUS

HIGH / LOW

1 / 0

Ein Taster ist dafür ein gutes Beispiel.


Analog

Manche Sensoren liefern aber nicht nur EIN oder AUS.

Ein Helligkeitssensor könnte beispielsweise liefern:

100
250
500
750
1000

Dadurch können wir erkennen, wie hell es ist.

Solche Messwerte können mit geeigneten ESP32-Pins über einen Analog-Digital-Wandler eingelesen werden.

Im Programm begegnet uns dafür beispielsweise:

analogRead()

Damit können wir später Sensorwerte verarbeiten.


Sensoren: Die Augen und Ohren des ESP32

Sensoren kann man sich als die Sinnesorgane des ESP32 vorstellen.

Mit Sensoren kann der ESP32 beispielsweise erkennen:

  • Temperatur
  • Luftfeuchtigkeit
  • Helligkeit
  • Bewegung
  • Entfernung
  • Regen
  • Berührung
  • Bodenfeuchtigkeit

Der Sensor liefert Informationen.

Der ESP32 verarbeitet diese Informationen.

Anschließend kann etwas passieren.


Aktoren: Der ESP32 macht etwas

Ein Aktor macht genau das Gegenteil.

Er führt eine Aktion aus.

Beispiele:

  • LED
  • Summer
  • Relais
  • Servomotor
  • Motor
  • Display

Damit entsteht wieder unser wichtigstes Schema:

SENSOR
  ↓
ESP32
  ↓
PROGRAMM
  ↓
AKTOR

Beispiel:

Temperatursensor
       ↓
     ESP32
       ↓
Temperatur > 30 °C?
       ↓
      JA
       ↓
Lüfter einschalten

Damit haben wir eine kleine automatische Steuerung.


Die richtige Stromversorgung

Bei einfachen Versuchen wird der ESP32 normalerweise über seinen USB-Anschluss mit Strom versorgt.

Das reicht für:

  • ESP32
  • LEDs
  • Taster
  • einige kleine Sensoren

Bei größeren Verbrauchern sieht das anders aus.

Motoren, Displays oder andere leistungsstärkere Komponenten sollten nicht einfach über einen GPIO-Pin versorgt werden.

Für solche Verbraucher wird eine geeignete externe Stromversorgung benötigt.

Newbiely empfiehlt bei größeren Aufbauten ebenfalls, externe Komponenten separat zu versorgen.

Wichtig ist dabei häufig eine gemeinsame Masse:

GND des ESP32 und GND der externen Schaltung werden miteinander verbunden.


Achtung: Der ESP32 arbeitet mit 3,3 Volt

Ein besonders wichtiger Unterschied zu manchen klassischen Arduino-Boards:

Die GPIOs des ESP32 arbeiten mit 3,3-V-Logik.

Deshalb darf nicht einfach jedes 5-V-Signal an einen GPIO angeschlossen werden.

Vor dem Anschluss eines unbekannten Moduls sollte immer geprüft werden:

  • Welche Versorgungsspannung benötigt das Modul?
  • Welche Signalspannung liefert es?
  • Verträgt der ESP32 diese Spannung?
  • Wie viel Strom benötigt das Bauteil?

Das schützt sowohl den ESP32 als auch die angeschlossenen Bauteile.


Was kann man mit dem ESP32 bauen?

Jetzt wird es spannend.

Newbiely führt eine sehr große Zahl unterschiedlicher ESP32-Projekte auf. Dazu gehören unter anderem Taster, LEDs, Potentiometer, Drehencoder, Motoren, Servos, Bodenfeuchtesensoren, Ultraschallsensoren, Bewegungsmelder, Relais, GPS, LED-Streifen, SD-Karten und Joysticks.

Damit sind beispielsweise Projekte möglich wie:

Ampel

Mehrere LEDs werden nacheinander geschaltet.

Abstandsmesser

Ein Ultraschallsensor misst die Entfernung.

Bewegungsmelder

Ein Sensor erkennt Bewegung und schaltet eine LED oder einen Summer.

Wetterstation

Temperatur und Luftfeuchtigkeit werden gemessen und auf einem Display angezeigt.

Pflanzenbewässerung

Ein Bodenfeuchtesensor erkennt trockene Erde und eine Pumpe bewässert die Pflanze.

Roboter

Motoren und Sensoren ermöglichen den Bau eines kleinen Roboters.

Smart Home

Über WLAN können Sensorwerte übertragen oder Geräte gesteuert werden.


WLAN: Die Superkraft des ESP32

Eine der interessantesten Eigenschaften des ESP32 ist das eingebaute WLAN.

Dadurch kann aus einer einfachen elektronischen Schaltung ein vernetztes Gerät werden.

Der ESP32 kann beispielsweise:

  • eine Webseite bereitstellen
  • Messwerte über WLAN übertragen
  • Geräte über einen Browser steuern
  • mit anderen ESP32 kommunizieren
  • MQTT verwenden
  • Daten an einen Server senden

Damit eignet sich der ESP32 hervorragend für IoT-Projekte.

IoT bedeutet:

Internet of Things

also:

Internet der Dinge


Die häufigsten Anfängerfehler

Wenn etwas nicht funktioniert:

Keine Panik.

Sehr häufig liegt es an einer Kleinigkeit.

Falsches Board

In der Arduino IDE wurde das falsche ESP32-Board ausgewählt.

Falscher Port

Der falsche USB-Anschluss wurde ausgewählt.

Falsches USB-Kabel

Manche USB-Kabel können nur Strom übertragen.

Zum Programmieren wird ein Datenkabel benötigt.

Kabel falsch gesteckt

Die Schaltung noch einmal Pin für Pin überprüfen.

GND vergessen

Viele Schaltungen benötigen eine gemeinsame Masseverbindung.

Falscher GPIO

Im Programm steht beispielsweise:

#define LED_PIN 21

Die LED steckt aber an einem anderen GPIO.

Dann kann das Programm nicht funktionieren.

HIGH und LOW verwechselt

Besonders bei Tastern mit INPUT_PULLUP gilt häufig:

nicht gedrückt = HIGH

gedrückt = LOW

Stromversorgung ungeeignet

Motoren oder andere größere Verbraucher sollten nicht direkt über einen GPIO versorgt werden.


Eine sinnvolle Reihenfolge zum Lernen

Der ESP32 kann unglaublich viel.

Genau das kann am Anfang aber auch überfordern.

Deshalb gilt:

Nicht alles gleichzeitig lernen.

Eine sinnvolle Reihenfolge ist:

1. ESP32 vorbereiten

Arduino IDE installieren und ESP32 einrichten.

2. Hello World

Erstes Programm übertragen und Serial Monitor kennenlernen.

3. Code-Struktur

setup() und loop() verstehen.

4. LED

Ersten digitalen Ausgang programmieren.

5. Taster

Ersten digitalen Eingang auslesen.

6. Taster + LED

Eingabe und Ausgabe miteinander verbinden.

7. Potentiometer

Analoge Werte kennenlernen.

8. Sensor

Echte Messwerte erfassen.

9. Display

Messwerte anzeigen.

10. WLAN

ESP32 mit dem Netzwerk verbinden.

11. Webserver

ESP32 über einen Browser steuern.

12. Eigenes Projekt

Jetzt werden mehrere Funktionen miteinander kombiniert.


Die wichtigsten Befehle für den Einstieg

Für die ersten Projekte reichen überraschend wenige Befehle.

pinMode()

Legt fest, ob ein Pin beispielsweise als Eingang oder Ausgang verwendet wird.

digitalWrite()

Schaltet einen digitalen Ausgang.

digitalRead()

Liest einen digitalen Eingang.

analogRead()

Liest einen analogen Wert.

delay()

Wartet eine bestimmte Zeit.

Serial.begin()

Startet die serielle Kommunikation.

Serial.print()

Gibt Informationen aus.

Serial.println()

Gibt Informationen aus und beginnt danach eine neue Zeile.

if

Prüft eine Bedingung.

else

Bestimmt, was ansonsten passieren soll.

Mit diesen wenigen Grundlagen lassen sich bereits viele kleine ESP32-Projekte programmieren.


Das Wichtigste in 60 Sekunden

Der ESP32 ist ein programmierbarer Mikrocontroller.

Er besitzt Anschlüsse, sogenannte GPIOs.

Daran können beispielsweise angeschlossen werden:

Taster und Sensoren

als Eingänge

und

LEDs, Displays oder Steuerungen

als Ausgänge.

Das wichtigste Prinzip lautet:

Eingabe → Verarbeitung → Ausgabe

Ein ESP32-Programm besteht normalerweise mindestens aus:

void setup() {

}

void loop() {

}

setup() läuft einmal beim Start.

loop() läuft anschließend immer wieder.

Programme werden beispielsweise mit der Arduino IDE geschrieben und über USB auf den ESP32 übertragen.

Und später kommt die besondere Stärke des ESP32 hinzu:

WLAN und Bluetooth.

Damit können aus einfachen Elektronikprojekten vernetzte IoT-Geräte entstehen.


Wie geht es weiter?

Für Einsteiger bietet sich eine kleine Lernserie an:

Teil 1: ESP32 kennenlernen und einrichten
Arduino IDE, Hardware, USB und erstes Programm

Teil 2: ESP32 programmieren lernen
setup(), loop(), Variablen, Bedingungen und Serial Monitor

Teil 3: Elektronik mit dem ESP32
GPIO, LED, Taster, Potentiometer und Sensoren

Teil 4: ESP32 und WLAN
WLAN-Verbindung, Webserver und erste IoT-Projekte

Danach ist die Grundlage geschaffen, um eigene Projekte umzusetzen.


Alle Beiträge dieser Serie

Add your first comment to this post