Du willst Statusmeldungen aus deinem Smart Home nicht nur sehen, sondern stilvoll und individuell animiert anzeigen? Willkommen beim Nerd-Display – unserer eigenen Interpretation einer MQTT LED Matrix, gebaut auf einem ESP8266 mit MD_Parola und einer 4-teiligen MAX7219-Matrix im FC16-Format.
Im Gegensatz zu vielen Bastelprojekten, die nur starr einen Text anzeigen, bietet das Nerd-Display:
- vollständige MQTT-Anbindung (
set/*,state/*,meta/*) - konfigurierbare Weboberfläche (LittleFS)
- Anzeige mehrerer Nachrichten mit eigenen Ein- und Ausblendeffekten
- individuelle Anzeigedauer (dwell) je Nachricht
Damit kannst du z. B. wichtige Statusmeldungen länger anzeigen und kurze Infos schneller durchlaufen lassen.
tl;dr
Willst du dein eigenes Nerd-Display bauen?
Du brauchst einen D1 Mini* (oder kompatiblen ESP8266-Clone), ein 4-teiliges MAX7219-LED-Matrix (bezahlter Link) (Hardware-SPI) und ein paar Kabel.
Verdrahtung:
| Matrix-Pin | ESP8266-Pin | Funktion |
|---|---|---|
| VCC | 5V | Stromversorgung |
| GND | GND | Masse |
| DIN | D7 (MOSI) | Datenleitung SPI |
| CS | D8 | Chip Select |
| CLK | D5 (SCK) | SPI-Taktleitung |
Quellcode & Anleitung: GitHub – Nerd-Display
Hardware und Anschlussbelegung
Das Nerd-Display basiert auf dem ESP8266 D1 mini (z. B. AZDelivery D1 Mini (bezahlter Link)), der direkt an eine MAX7219-LED-Matrix angeschlossen ist. Wir nutzen bewusst die Hardware-SPI-Pins des ESP8266, weil diese deutlich schneller sind als eine Software-Implementierung – wichtig für flüssige Animationen bei mehreren Modulen.
Anschlussplan:
| Matrix-Pin | ESP8266-Pin | Funktion |
|---|---|---|
| VCC | 5V | Stromversorgung |
| GND | G | Masse |
| DIN | D7 (MOSI) | Datenleitung SPI |
| CS | D2 | Chip Select |
| CLK | D5 (SCK) | SPI-Taktleitung |
Software-Architektur
Der komplette Quelltext liegt auf GitHub – Nerd-Display. Damit der Beitrag lesbar bleibt, beschränken wir uns hier auf Auszüge und eine Funktionsbeschreibung:
1) app.* – Globale Struktur
Zentrale Objekte (Display, MQTT‑Client, Webserver) und Konfigurationen. Änderungen (z. B. Helligkeit) wirken sofort systemweit.
2) config_store.* – Konfiguration speichern & laden
MQTT‑Daten und mDNS‑Namen im LittleFS speichern. Änderungen per WebUI oder MQTT (/set/...).
3) display_service.* – LED‑Matrix‑Steuerung
Steuert alle Parola‑Animationen, Anzeigewechsel und Effekte – jetzt auch pro Nachricht individuell (Effekte + dwell).
4) mqtt_service.* – MQTT‑Handling
Abonniert Befehle, verarbeitet Payloads (String, JSON, Array) und veröffentlicht Status‑Snapshots.
5) web_handlers.* – Weboberfläche
Konfigurationsseite direkt auf dem Gerät.

MQTT-Steuerung – Beispiele
Unterschiede zu anderen Projekten
Viele DIY-MQTT LED Matrix-Projekte:
- nutzen nur hartcodierte Nachrichten
- benötigen Neustarts für Änderungen
- verzichten auf Webinterface
Das Nerd-Display:
- vollständige MQTT-API (set, state, meta)
- Konfiguration per WebUI
- Effekte, Geschwindigkeit, Anzeigedauer live einstellbar
- Mehrfach-Nachrichten mit automatischer Rotation
- Hardware-SPI für maximale Performance
- Benutzername/Passwort für MQTT
MQTT-Steuerung – Beispiele
Einzelner Text
<baseTopic>/set/text → "Tür offen"
Oder als Objekt mit Effekten und individueller Dauer:
{"text":"Hallo Welt","in":"SCROLL_UP","out":"CLOSING","dwell":5000}
Mehrere Texte im Wechsel
[
{"text":"Willkommen","in":"OPENING","out":"CLOSING","dwell":8000},
{"text":"Fenster zu?","in":"SCROLL_LEFT","out":"SCROLL_RIGHT","dwell":3000}
]
Oder kurz ohne Effekte (nutzt globale Defaults):
["Willkommen","Gute Fahrt","Fenster zu?"]
Helligkeit, Geschwindigkeit, globale Effekte
<baseTopic>/set/brightness → 10 (0..15)
<baseTopic>/set/speed → 80 (1..65535)
<baseTopic>/set/dwell → 2500 (ms, global)
<baseTopic>/set/effect_in → SCROLL_UP
<baseTopic>/set/effect_out → CLOSING
Tipp: Pro Nachricht gesetzte
in/out/dwellüberschreiben die globalen Werte nur für diese Nachricht.
Unterstützte MD_Parola-Effekte (Auswahl)
Eingang (in):
PRINTSCROLL_DOWN,SCROLL_UP,SCROLL_LEFT,SCROLL_RIGHTOPENING,OPENING_CURSOR- (weitere je nach Library-Version verfügbar)
Ausgang (out):
NO_EFFECTSCROLL_DOWN,SCROLL_UP,SCROLL_LEFT,SCROLL_RIGHTCLOSING,CLOSING_CURSOR- (weitere je nach Library-Version verfügbar)
Unterschiede zu anderen Projekten
Viele DIY‑LED‑Matrix‑Projekte:
- nutzen nur hartcodierte Nachrichten
- erfordern Neustarts für Änderungen
- verzichten auf ein Webinterface
Das Nerd-Display:
- vollständige MQTT‑API (set, state, meta)
- Konfiguration per WebUI
- individuelle Effekte & Dwell je Nachricht
- Mehrfach‑Nachrichten mit Rotation
- Hardware‑SPI für maximale Performance
- MQTT mit Benutzername/Passwort
Integration ins Smart Home
Universell einsetzbar:
- ioBroker: MQTT-Adapter → einfache Datenpunkte
- Home Assistant: MQTT-Light oder Sensor
- Node-RED: Texte aus Automationen einspeisen
Links & Ressourcen
- GitHub – Nerd-Display
- MAX7219-LED-Matrix (bezahlter Link)
- AZDelivery D1 Mini (bezahlter Link)
- MD_Parola Library (Arduino)
Fazit
Das Nerd-Display bringt deine MQTT LED Matrix-Anzeigen auf das nächste Level: einfache Konfiguration, volle MQTT-Steuerung, schnelle Hardware-SPI-Ansteuerung und jede Menge Animationen. Durch die offene Architektur kannst du es leicht in bestehende Smart-Home-Setups einbinden und jederzeit erweitern.





