Ob Temperaturwerte vom Sensor, aktuelle Bitcoin-Kurse, News oder die Auslastung des eigenen PCs – als Maker steht man oft vor der gleichen Herausforderung: Wie kann ich beliebige Daten schnell und einfach sichtbar machen?
Zwar gibt es unzählige Displays für Arduino, ESP32 oder Raspberry Pi, doch meist sind sie fest in ein Projekt integriert oder erfordern eine direkte Verbindung über die serielle Schnittstelle – praktisch, aber eben nicht flexibel.
Die Lösung: Ein universelles Maker Display, das unabhängig vom Anschluss an einen Computer funktioniert. Über eine einfache HTTP-Schnittstelle können beliebige Inhalte aus dem lokalen Netzwerk an das Display gesendet werden – ganz ohne USB-Kabel oder serielle Kommunikation. Egal ob Text, Zahlen oder Statusmeldungen – alles, was im Netzwerk erreichbar ist, kann direkt auf dem Display erscheinen. Damit wird aus einem einfachen LCD1602 eine flexible Anzeige, die sich in nahezu jedes DIY-Projekt integrieren lässt.
Inhaltsverzeichnis
- Projektidee und Funktionsweise
- Benötigte Bauteile
- Schaltung im Detail
- Programmierung des ESP32 mit MicroPython
- Projektstruktur und Dateiaufteilung
- Daten an das Display senden
- Fazit und Ausblick
Projektidee und Funktionsweise
Die Grundidee hinter dem universellen Maker Display ist simpel:
Der ESP32-C3 Mini übernimmt die Rolle einer flexiblen Netzwerkschnittstelle zwischen beliebiger Datenquelle und einem LCD1602-Display. Dabei ist es egal, ob die Daten von einem PC, einem Raspberry Pi, einem Mikrocontroller oder direkt aus dem Internet stammen – solange sie per HTTP an das Display gesendet werden können, erscheinen sie in Sekundenschnelle auf dem Display.
Das Display selbst besteht aus zwei Zeilen mit je 16 Zeichen. Über die HTTP-Schnittstelle können in einem einzigen Request beide Zeilen gefüllt werden. Die Anzeige kann sowohl statisch (fester Text) als auch dynamisch (z. B. mit automatischem Scrollen) erfolgen.
Ablauf in der Praxis:
- Der ESP32-C3 Mini verbindet sich mit dem lokalen WLAN.
- Die lokale IP-Adresse des Geräts wird auf dem Display angezeigt.
- Ein anderes Gerät im Netzwerk sendet per HTTP-Request (z. B.
curl
, PowerShell, Python oder jede beliebige Programmiersprache) die gewünschten Inhalte. - Der ESP32 empfängt die Daten, bereitet sie auf und zeigt sie auf dem LCD an.
So entsteht ein universelles Anzeigesystem, das nicht an ein einzelnes Projekt gebunden ist, sondern für verschiedenste Anwendungen genutzt werden kann – von der Anzeige aktueller Sensordaten bis hin zur Darstellung kleiner Statusmeldungen aus komplexen Automatisierungssystemen.
Benötigte Bauteile
Für den Nachbau des universellen Maker Displays werden folgende Komponenten benötigt:
- ESP32-C3 Super Mini* – kompakter und stromsparender Mikrocontroller, ideal für IoT-Anwendungen (inkl. passendem USB-C Datenkabel* zum Programmieren und zur Stromversorgung)
- LCD1602 Display* mit I²C-Interface – 2 Zeilen à 16 Zeichen
- Gehäuse (z. B. dieses Modell auf MakerWorld), um das Display geschützt unterzubringen
- Lochrasterplatine* – für eine stabile Verbindung der Bauteile
- Zwei 8-fach Buchsenleisten* – zur Aufnahme des ESP32-C3 Super Mini
- Eine 4-fach Stiftleiste* – für den I²C-Anschluss des Displays
- Vier Jumperkabel / Breadboardkabel* (weiblich–weiblich, ca. 10 cm) – zum Verbinden von ESP und Display
- Vier Drähte 18 AWG* – für stabile Spannungsversorgung und Signalleitungen
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

💡 Tipp: Falls mehr Anzeigefläche benötigt wird, kann alternativ ein LCD2004-Display (4 Zeilen × 20 Zeichen) verwendet werden. Dieses ist nur minimal teurer und erfordert im Code lediglich das Anpassen der Displaymaße.
Schaltung im Detail
Wir nutzen beim LCD1602 den üblichen I²C‑Backpack (PCF8574*). Dadurch braucht’s nur 4 Leitungen:
LCD1602 (I²C‑Backpack) | ESP32‑C3 Super Mini |
---|---|
VCC | 5V (vom USB‑C) |
GND | GND |
SDA | GPIO 8 |
SCL | GPIO 9 |
Diese Pinbelegung passt zu unserem Code (SDA=8, SCL=9). Wenn dein Board anders beschriftet ist, einfach im Code die Pins anpassen.

Wenn du das verlinkte Gehäuse verwendest, passt das LCD-Display exakt in die vorgesehene Ausbuchtung. Im Inneren ist zudem ausreichend Platz für eine kleine Lochrasterplatine. In meinem Fall habe ich die Platine jedoch etwas gekürzt, damit sie exakt zwischen die Montageschrauben passt. Da der USB-Stecker eine gewisse Länge hat, solltest du unbedingt prüfen, wie viel Platz du bei deinem Aufbau tatsächlich zur Verfügung hast. Damit die Platine sicher an ihrem Platz bleibt, habe ich sie mit doppelseitigem Klebeband fixiert.


Programmierung des ESP32 mit MicroPython
Für die Ansteuerung des Displays gibt es verschiedene Wege. Du kannst den ESP32 entweder in der Arduino IDE mit C/C++ programmieren oder auf MicroPython bzw. CircuitPython setzen.
Gerade für diesen Anwendungsfall ist MicroPython meine bevorzugte Wahl, da sich damit HTTP-Schnittstellen und flexible Anzeige-Logiken besonders einfach umsetzen lassen.
Wie du einen ESP32 für die Programmierung mit MicroPython vorbereitest und die Firmware darauf installierst, habe ich dir bereits in folgendem YouTube-Video Schritt für Schritt erklärt:
Für die Programmierung verwende ich Thonny.
Diese schlanke und benutzerfreundliche Entwicklungsumgebung bringt alles mit, was du für dieses und auch viele weitere Projekte benötigst – inklusive direkter Unterstützung für MicroPython-Geräte wie den ESP32. Damit kannst du Code schreiben, auf den Mikrocontroller übertragen und ihn sofort ausführen, ohne zusätzliche Tools installieren zu müssen.
Projektstruktur und Dateiaufteilung
Damit das „Universelle Maker Display“ wartbar bleibt, splitten wir den Code in kleine, klar zuständige Module. Du kannst alles in eine einzige Datei packen – übersichtlicher (und später erweiterbar) ist aber die folgende Struktur:
├─ main.py # Hauptprogramm: WLAN, HTTP-Loop, Standardanzeige (Uhr+IP)
├─ secrets.py # Zugangsdaten fürs WLAN (WLAN_SSID, WLAN_PW)
├─ utils.py # Hilfsfunktionen
├─ http_api.py # (vorher: anzeige.py) HTTP-Request parsing + JSON-Auswertung
├─ lcd1602util.py # Wrapper: I²C-Init des LCD & Text anzeigen
├─ machine_i2c_lcd.py # Fremdmodul (Random Nerd Tutorials)
└─ lcd1602.py # Fremdmodul (je nach Variante; falls benötigt)
Kurz erklärt – wofür ist welche Datei?
main.py
Startet WLAN, synchronisiert die Uhr (NTP), startet den Mini-Webserver, behandelt die Hauptschleife.
Zeigt im Leerlauf Uhrzeit (zentriert) + lokale IP und gibt temporär externen Anzeigen (per Request) Vorrang.secrets.py
Nur deine Zugangsdaten, z. B.:WLAN_SSID = "DeinWLAN"
WLAN_PW = "DeinPasswort"
utils.py
Gemeinsame Helfer:aktuelle_uhrzeit_lokal()
(CET/CEST korrekt),lokale_ip()
zentrieren()
,rechts_pad()
,umlaut_fix()
rtc_sync()
(NTP)fehler_anzeigen(code, msg, dauer_ms)
(kurz am Display + Konsole)
http_api.py
Minimaler HTTP-Parser und zwei Funktionen:zeige_aus_json(json_text)
→ extrahiertzeile1/zeile2/modus/anzeigedauer
und ruft die LCD-Ausgabeverarbeite_request(raw_bytes)
→ routedPOST /anzeige
+GET /status
, gibt(status, json)
zurück
lcd1602util.py
Initialisiert I²C (SDA=8, SCL=9, Adresse0x27
) und bietet eine saubere Funktion:lcd_anzeigen(zeile1, zeile2)
machine_i2c_lcd.py
undlcd1602.py
Das sind die Fremdmodule (Random Nerd Tutorials). Lege sie unverändert ab. Achtung Namenskollisionen vermeiden: Unser eigener Wrapper heißt deshalblcd1602util.py
.

Daten an das Display senden
Die einfachste Möglichkeit, Text auf das Display zu bringen, ist das kostenfreie Tool Postman. Damit kannst du in wenigen Klicks einen HTTP-POST-Request an den ESP32 senden und den gewünschten Text in einem definierten JSON-Format übertragen. So kannst du schnell testen, ob dein Display richtig arbeitet, ohne selbst Code zu schreiben.



Ein weiterer Vorteil von Postman: Aus jedem Request lässt sich mit wenigen Klicks Code für andere Skript‑ und Programmiersprachen generieren. So kannst du die Anfrage schnell übernehmen und in eigenen Skripten weiterverwenden.
POST /anzeige HTTP/1.1
Host: 192.168.178.96
Content-Type: application/json
Content-Length: 96
{
"zeile1": "Zeile 1",
"zeile2": "Zeile 2",
"anzeigedauer": 15,
"modus": "scroll"
}
Für einen automatisierten Einsatz – beispielsweise um Bitcoinpreise, News oder Fußballergebnisse anzuzeigen – bietet sich ein PowerShell-Skript (Windows) oder ein Bash-Skript (Linux/macOS) an. Damit kannst du die Daten aus einer beliebigen Quelle abrufen, aufbereiten und direkt an das Display senden. So lassen sich regelmäßig aktuelle Informationen ausgeben, ohne dass du jedes Mal manuell eingreifen musst.
Durch diese flexible Schnittstelle kannst du nahezu jede Datenquelle einbinden – von öffentlichen APIs bis hin zu eigenen Messwerten – und so dein Display perfekt auf deine Bedürfnisse anpassen.
Daten mit PowerShell senden
Am einfachsten lassen sich Testdaten per PowerShell an das Display senden.
Das folgende Beispiel schickt die Texte „Zeile1“ und „Zeile2“ direkt an den ESP32:
# URL deines ESP32 $espUrl = "http://192.168.178.96/anzeige" # JSON-Daten definieren $data = @{ zeile1 = "Zeile1" zeile2 = "Zeile2" } | ConvertTo-Json # POST-Request senden try { Invoke-RestMethod -Uri $espUrl -Method Post -Body $data -ContentType "application/json" Write-Host "Daten erfolgreich gesendet." } catch { Write-Host "Fehler beim Senden: $($_.Exception.Message)" }
💡 Tipp: Die IP-Adresse in $espUrl
muss an die des eigenen ESP32 angepasst werden.
Optional kann ein zusätzliches Feld dauer_ms
übergeben werden, um die Anzeigedauer in Millisekunden zu steuern.
Fazit und Ausblick
Mit dem universellen Maker Display hast du jetzt eine flexible Anzeige, die sich kinderleicht über HTTP mit beliebigen Daten füttern lässt – egal ob per Postman, Skript oder aus einer eigenen Anwendung.
Die modulare Code-Struktur sorgt dafür, dass du das Projekt problemlos erweitern kannst, etwa für größere Displays, mehr Zeilen oder zusätzliche Formatierungen.
In kommenden Beiträgen zeige ich dir unter anderem:
- Wie du das Display als Ticker für Nachrichten oder Börsenkurse verwendest
- Wie du Sensorwerte aus dem Smarthome in Echtzeit darstellst
- Wie du die Anzeige komplett kabellos über die Cloud steuerst
Damit hast du eine solide Basis, die sich vom kleinen Bastelprojekt bis hin zur vollwertigen Statusanzeige im Maker- oder Smarthome-Bereich ausbauen lässt.