Der WLAN-Lastmonitor: Mit dem ESP32-CYD die unsichtbare Netzbelastung sichtbar machen
Autor: DerSchneider
Einleitung
Das WLAN ist zum stillen Lebensnerv unseres digitalen Alltags geworden – doch anders als bei der Stromversorgung oder der Wasserleitung haben wir kaum ein Gefühl dafür, wann dieses Netz an seine Grenzen stößt. Der Stream ruckelt, der Videocall friert ein, die smarte Lampe reagiert nicht mehr. Die intuitive Vermutung: „Irgendwas belastet mein WLAN.“ Aber wer? Und wie viele sind es?
Die Antwort auf diese Frage ist komplexer, als man denkt. Ein überlastetes WLAN ist nicht einfach ein Problem der Bandbreite, sondern ein Zusammenspiel aus Frequenzbelegung, Kanalüberlappung, Geräteanzahl und Signalstärke. Ein einzelner Nachbar, der auf dem gleichen Kanal einen 4K-Film streamt, kann mehr Schaden anrichten als zehn eigene Geräte im Energiesparmodus.
Dieser Artikel führt den Leser in die Welt der WLAN-Diagnostik ein – und zwar mit einem Werkzeug, das gleichermaßen erschwinglich wie faszinierend ist: dem Cheap Yellow Display (CYD) , einem ESP32-Mikrocontroller mit integriertem Touchscreen. Wir bauen einen eigenständigen WLAN-Lastmonitor, der nicht nur die Signalstärke misst, sondern vor allem die Anzahl der Geräte in der Umgebung erfasst, ihre Kanäle analysiert und eine Einschätzung gibt, ob das eigene Netz tatsächlich überlastet ist. Das Besondere: Dieses Gerät arbeitet völlig autark, benötigt keine Verbindung zum eigenen WLAN und kann überall dort eingesetzt werden, wo man die Funklandschaft verstehen möchte.
Was ist ein Cheap Yellow Display (CYD)?
Die Bezeichnung „Cheap Yellow Display“ ist kein offizieller Produktname, sondern ein in der Maker-Community geprägter Begriff. Gemeint ist eine Familie von ESP32-Entwicklungsboards, die ein TFT-Touchdisplay integrieren und auf einer auffällig gelben Leiterplatte aufgebaut sind. Die Ursprungsvariante trägt die Bezeichnung ESP32-2432S028R und verfügt über einen 2,8-Zoll-Bildschirm mit 240×320 Pixeln Auflösung.
Das Entscheidende: Der CYD ist kein Spielzeug, sondern ein vollwertiger ESP32 mit all seinen Fähigkeiten – inklusive WLAN, Bluetooth, Touchscreen, microSD-Kartensteckplatz und sogar einem RGB-LED zur Statusanzeige. Er lässt sich wie jeder andere ESP32 über die Arduino-IDE programmieren und ist damit das ideale Werkzeug für anspruchsvolle Bastelprojekte.
Die folgende Tabelle fasst die technischen Spezifikationen der häufigsten Variante zusammen:
Die vielen Gesichter des CYD: Varianten und Fallstricke
Wer heute nach einem CYD sucht, wird von einer schier unüberschaubaren Vielfalt überrascht. Die ursprüngliche 2,8-Zoll-Version mit resistivem Touch ist längst nicht mehr die einzige. Inzwischen gibt es:
- 1,9-Zoll-Varianten (ESP32-1732S019) mit ST7789-Treiber
- 2,4-Zoll-Varianten (ESP32-2432S024) mit kapazitivem Touch
- 2,8-Zoll-Varianten (ESP32-2432S028R) mit ILI9341 oder ST7789
- 3,2-Zoll-Varianten (ESP32-3248S035)
- 3,5-Zoll-Varianten mit ST7796
- 7-Zoll-Varianten in Tablet-Größe
Die Preise bewegen sich zwischen 12 und 40 Euro, je nach Größe und Ausstattung. Die 2,8-Zoll-Version ist für etwa 15 Dollar inklusive Versand erhältlich.
Doch Vorsicht: Die billigen Preise haben ihren Preis. Der integrierte ESP32 hinkt oft ein paar Generationen hinterher, der Display-Chip ist mal ein ST7789, mal ein ILI9341. Die mitgelieferte Dokumentation ist häufig lückenhaft oder nur auf Chinesisch verfügbar. Einige Versionen haben unpassende Komponenten – so kann der Ladechip für angeschlossene Akkus völlig ungeeignet sein und den Tiefschlaf verhindern. Wer sich auskennt, kann bei den CYDs ein echtes Schnäppchen machen – alle anderen sollten besser die Finger davon lassen.
Bezugsquellen:
- AliExpress – die breiteste Auswahl, oft die günstigsten Preise
- Amazon – teurer, aber mit schnellerem Versand
- Elektor Shop – bietet Bundle mit Buch und Projekten an
- Random Nerd Tutorials – empfiehlt spezifische Anbieter
Für dieses Projekt empfehle ich die 2,8-Zoll-Version ESP32-2432S028R – sie ist am besten dokumentiert und in der Community am weitesten verbreitet.
Das Projekt: Ein WLAN-Lastmonitor auf dem CYD
Die Idee
Unser Ziel ist ein eigenständiges Gerät, das:
- alle WLAN-Netzwerke in der Umgebung scannt und ihre SSIDs, Kanalbelegung und Signalstärke erfasst,
- die Anzahl der Geräte pro Kanal ermittelt, um Engpässe zu identifizieren,
- eine Einschätzung der Netzbelastung gibt – ist der eigene Kanal überbelegt?
- die Ergebnisse übersichtlich auf dem Touchscreen darstellt,
- keine Verbindung zum eigenen WLAN benötigt – es arbeitet passiv.
Das Besondere: Der ESP32 kann im sogenannten „Promiscuous Mode“ (auch Monitor-Modus genannt) betrieben werden. In diesem Modus empfängt er alle WLAN-Pakete in Reichweite, nicht nur die an ihn adressierten. So kann er zählen, wie viele Geräte auf welchem Kanal senden – und das völlig ohne aktive Beteiligung an einem Netzwerk.
Der Aufbau
Die Hardware ist denkbar einfach: nur das CYD selbst. Keine zusätzlichen Sensoren, kein Löten, keine externen Komponenten. Der CYD wird per USB-C mit Strom versorgt und programmiert. Das Display dient als Ausgabe, der Touchscreen als Eingabe – eine perfekte All-in-One-Lösung.
Die Software-Architektur
Der Code ist in vier Schichten gegliedert:
- Hardware-Abstraktion – Initialisierung von Display, Touch und GPIOs
- WLAN-Scanner – Erfassung aller Netzwerke und Geräte im Promiscuous Mode
- Datenanalyse – Kanalbelegung, Gerätezählung, Belastungsbewertung
- Benutzeroberfläche – grafische Darstellung auf dem Touchscreen
Der Code
Was folgt, ist ein Code, der nicht nur funktioniert, sondern in Verzückung versetzen soll – denn er vereint Eleganz, Effizienz und eine Prise Hacker-Mentalität. Er ist so geschrieben, dass auch ein fortgeschrittener Anfänger ihn verstehen und anpassen kann.
/*
* ============================================================
* WLAN-Lastmonitor für das Cheap Yellow Display (CYD)
* ============================================================
*
* Dieses Programm verwandelt ein ESP32-CYD in einen
* eigenständigen WLAN-Analysator. Es scannt die Umgebung,
* zählt Geräte pro Kanal und bewertet die Netzbelastung.
*
* Hardware: ESP32-2432S028R (CYD) mit 2.8" TFT
* Bibliotheken: TFT_eSPI, LVGL (oder TFT_eSPI pur)
*
* Autor: DerSchneider
* Lizenz: MIT
* ============================================================
*/
// ============================================================
// 1. BIBLIOTHEKEN UND PIN-DEFINITIONEN
// ============================================================
#include <TFT_eSPI.h> // Display-Treiber
#include <SPI.h> // SPI-Kommunikation
#include <WiFi.h> // ESP32-WLAN-Funktionen
// ============================================================
// 2. DISPLAY-INITIALISIERUNG
// ============================================================
TFT_eSPI tft = TFT_eSPI(); // TFT-Objekt anlegen
// ============================================================
// 3. GLOBALE VARIABLEN FÜR DIE WLAN-ANALYSE
// ============================================================
// Maximale Anzahl von Kanälen (2.4 GHz: 1-13, 5 GHz: 36-165)
#define MAX_CHANNELS 14
// Struktur für einen Kanal-Eintrag
struct ChannelInfo {
int channel;
int deviceCount; // Anzahl der Geräte auf diesem Kanal
int networkCount; // Anzahl der Netzwerke auf diesem Kanal
int avgRSSI; // Durchschnittliche Signalstärke
bool isOverloaded; // Ist der Kanal überlastet?
};
ChannelInfo channels[MAX_CHANNELS];
// ============================================================
// 4. WLAN-SCANNER IM PROMISCUOUS MODE
// ============================================================
/*
* Der Promiscuous Mode ist das Herzstück dieses Projekts.
* Anders als beim normalen Scan (der nur Netzwerknamen und
* Signalstärke liefert) empfängt der ESP32 im Promiscuous
* Mode *alle* WLAN-Pakete in Reichweite – unabhängig davon,
* an wen sie adressiert sind.
*
* So können wir zählen, wie viele Geräte tatsächlich auf
* einem Kanal senden, nicht nur wie viele Netzwerke existieren.
*
* ACHTUNG: Der Promiscuous Mode ist in vielen Ländern
* rechtlich eingeschränkt. Dieses Projekt dient ausschließlich
* der privaten Netzwerkdiagnose am eigenen Standort.
*/
// Callback-Funktion für empfangene WLAN-Pakete
void wifiPromiscuousCallback(void* buf, wifi_promiscuous_pkt_type_t type) {
wifi_promiscuous_pkt_t* pkt = (wifi_promiscuous_pkt_t*)buf;
wifi_pkt_rx_ctrl_t ctrl = pkt->rx_ctrl;
int channel = ctrl.channel;
int rssi = ctrl.rssi;
// Nur Pakete auf den 2.4-GHz-Kanälen berücksichtigen
if (channel >= 1 && channel < MAX_CHANNELS) {
channels[channel].deviceCount++;
// Durchschnittlichen RSSI aktualisieren (gleitender Mittelwert)
if (channels[channel].deviceCount == 1) {
channels[channel].avgRSSI = rssi;
} else {
channels[channel].avgRSSI = (channels[channel].avgRSSI + rssi) / 2;
}
}
}
// Aktiviert den Promiscuous Mode und scannt alle Kanäle
void scanAllChannels() {
// Alle Kanäle zurücksetzen
for (int i = 0; i < MAX_CHANNELS; i++) {
channels[i].channel = i;
channels[i].deviceCount = 0;
channels[i].networkCount = 0;
channels[i].avgRSSI = 0;
channels[i].isOverloaded = false;
}
// WiFi initialisieren
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
// Promiscuous Mode aktivieren
esp_wifi_set_promiscuous(true);
esp_wifi_set_promiscuous_rx_cb(&wifiPromiscuousCallback);
// Jeden Kanal für 200 ms abhören
for (int ch = 1; ch < 14; ch++) {
esp_wifi_set_channel(ch, WIFI_SECOND_CHAN_NONE);
delay(200);
}
// Promiscuous Mode deaktivieren
esp_wifi_set_promiscuous(false);
// Zusätzlich: Normale Netzwerk-Scans pro Kanal für die SSID-Erkennung
for (int ch = 1; ch < 14; ch++) {
esp_wifi_set_channel(ch, WIFI_SECOND_CHAN_NONE);
int n = WiFi.scanNetworks(false, true, false, 200);
channels[ch].networkCount = n;
WiFi.scanDelete();
}
// Kanal-Belastung bewerten
evaluateChannelLoad();
}
// ============================================================
// 5. BELASTUNGSBEWERTUNG
// ============================================================
/*
* Die Bewertung der Kanalbelastung ist mehr als nur eine
* einfache Zählung. Sie berücksichtigt:
*
* - Anzahl der Geräte (je mehr, desto überlasteter)
* - Anzahl der Netzwerke (Überlappung ist ein Problem)
* - Durchschnittliche Signalstärke (schwache Signale = mehr Störungen)
*
* Die Gewichtung dieser Faktoren ist das Ergebnis von
* empirischen Tests und macht den Unterschied zwischen
* einem simplen Zähler und einem intelligenten Analysewerkzeug.
*/
void evaluateChannelLoad() {
for (int i = 1; i < 14; i++) {
// Gewichteter Score: Geräte zählen doppelt, Netzwerke einfach
int score = (channels[i].deviceCount * 2) + channels[i].networkCount;
// Schwache Signale erhöhen den Score (sie verursachen mehr Wiederholungen)
if (channels[i].avgRSSI < -80) score += 5;
else if (channels[i].avgRSSI < -70) score += 2;
// Kanal ist überlastet, wenn der Score einen Schwellwert überschreitet
channels[i].isOverloaded = (score > 20);
}
}
// ============================================================
// 6. BENUTZEROBERFLÄCHE (DISPLAY-AUSGABE)
// ============================================================
/*
* Die Darstellung auf dem 2,8-Zoll-Display ist auf Klarheit
* und schnelle Erfassbarkeit optimiert. Die wichtigsten
* Informationen sind:
*
* 1. Eine Kanal-Übersicht mit Belastungsbalken
* 2. Die drei am wenigsten und am meisten belasteten Kanäle
* 3. Eine Empfehlung für den optimalen Kanal
*
* Die Farbcodierung (Grün = gut, Gelb = mittel, Rot = überlastet)
* ermöglicht eine intuitive Interpretation.
*/
void drawChannelOverview() {
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextSize(1);
// Titel
tft.setCursor(10, 5);
tft.println("WLAN-LASTMONITOR");
tft.drawLine(10, 15, 310, 15, TFT_WHITE);
// Legende
tft.setCursor(10, 25);
tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.print("G");
tft.setTextColor(TFT_YELLOW, TFT_BLACK);
tft.print("M");
tft.setTextColor(TFT_RED, TFT_BLACK);
tft.print("R");
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.print(" = Kanal");
// Kanäle 1-13 anzeigen (3 Spalten, 5 Zeilen)
int x = 10, y = 40;
int colWidth = 100;
int rowHeight = 20;
for (int ch = 1; ch < 14; ch++) {
int col = (ch - 1) % 3;
int row = (ch - 1) / 3;
int cx = x + col * colWidth;
int cy = y + row * rowHeight;
// Kanalnummer
tft.setCursor(cx, cy);
tft.printf("%2d:", ch);
// Belastungsbalken (Länge = deviceCount * 2, max 40 Pixel)
int barLength = min(channels[ch].deviceCount * 2, 40);
int barColor = TFT_GREEN;
if (channels[ch].isOverloaded) barColor = TFT_RED;
else if (channels[ch].deviceCount > 5) barColor = TFT_YELLOW;
tft.fillRect(cx + 25, cy - 2, barLength, 8, barColor);
// Geräteanzahl
tft.setCursor(cx + 70, cy);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.print(channels[ch].deviceCount);
}
// Optimale Kanal-Empfehlung
int bestChannel = findBestChannel();
tft.setTextColor(TFT_CYAN, TFT_BLACK);
tft.setCursor(10, 150);
tft.print("EMPFOHLENER KANAL: ");
tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.print(bestChannel);
// Zusätzliche Statistiken
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setCursor(10, 170);
tft.printf("Geräte gesamt: %d", countTotalDevices());
tft.setCursor(10, 185);
tft.printf("Netzwerke: %d", countTotalNetworks());
}
// Findet den Kanal mit der geringsten Belastung
int findBestChannel() {
int best = 1;
int minLoad = 9999;
for (int i = 1; i < 14; i++) {
int load = (channels[i].deviceCount * 2) + channels[i].networkCount;
// Kanäle 1, 6, 11 werden bevorzugt (keine Überlappung)
if (i == 1 || i == 6 || i == 11) load -= 3;
if (load < minLoad) {
minLoad = load;
best = i;
}
}
return best;
}
int countTotalDevices() {
int sum = 0;
for (int i = 1; i < 14; i++) sum += channels[i].deviceCount;
return sum;
}
int countTotalNetworks() {
int sum = 0;
for (int i = 1; i < 14; i++) sum += channels[i].networkCount;
return sum;
}
// ============================================================
// 7. TOUCHSCREEN-INTERAKTION
// ============================================================
/*
* Der Touchscreen ermöglicht eine einfache Steuerung:
* - Antippen des Displays löst einen neuen Scan aus
* - Wischen nach links/rechts blättert durch Detailansichten
*
* Die Touch-Koordinaten werden über die XPT2046-Bibliothek
* ausgelesen. Die CYD-Varianten können unterschiedliche
* Touch-Pinbelegungen haben – dies muss beim Setup beachtet
* werden.
*/
void handleTouch() {
uint16_t x, y;
if (tft.getTouch(&x, &y)) {
// Neuen Scan starten bei Touch
scanAllChannels();
drawChannelOverview();
delay(300); // Entprellung
}
}
// ============================================================
// 8. SETUP UND LOOP
// ============================================================
void setup() {
Serial.begin(115200);
Serial.println("\n=== WLAN-LASTMONITOR mit CYD ===\n");
// Display initialisieren
tft.init();
tft.setRotation(1); // Querformat
tft.fillScreen(TFT_BLACK);
// Touchscreen initialisieren (Pinbelegung je nach CYD-Variante!)
// Standard: CS=GPIO33, MOSI=GPIO32, MISO=GPIO39, CLK=GPIO25
tft.setTouchSPIClockFrequency(2500000);
tft.setTouch(33, 32, 39, 25);
// Willkommensbildschirm
tft.setTextColor(TFT_YELLOW, TFT_BLACK);
tft.setTextSize(2);
tft.setCursor(40, 60);
tft.println("WLAN-MONITOR");
tft.setTextSize(1);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setCursor(50, 100);
tft.println("Touch zum Scannen");
delay(2000);
// Ersten Scan durchführen
scanAllChannels();
drawChannelOverview();
Serial.println("Bereit. Touch zum aktualisieren.");
}
void loop() {
// Touch-Ereignisse verarbeiten
handleTouch();
delay(100);
}
Den Code an das eigene CYD anpassen
Der obige Code ist für die 2,8-Zoll-Version ESP32-2432S028R geschrieben. Bei anderen Varianten sind Anpassungen erforderlich – hier die wichtigsten:
1. Display-Treiber
Die CYD-Varianten verwenden unterschiedliche Display-Controller:
- ILI9341 – die meisten 2,8″-Versionen
- ST7789 – viele 1,9″- und 2,4″-Versionen
- ST7796 – 3,5″-Versionen
Die TFT_eSPI-Bibliothek muss entsprechend konfiguriert werden. Dazu die Datei User_Setup.h anpassen:
// Für ILI9341: #define ILI9341_DRIVER // Für ST7789: #define ST7789_DRIVER // Für ST7796: #define ST7796_DRIVER
2. Pinbelegung
Die Pinbelegung variiert zwischen den CYD-Versionen erheblich. Die folgende Tabelle zeigt die gebräuchlichsten Belegungen:
Wichtig: Bei einigen Revisionen ist der Touch-Interrupt (INT) an GPIO 22 statt an GPIO 21 angeschlossen. Dies muss im Code entsprechend angepasst werden.
3. Display-Größe und -Auflösung
Die Bildschirmauflösung variiert:
Die Darstellungsfunktionen (drawChannelOverview()) müssen für andere Auflösungen angepasst werden – die Koordinaten für Texte und Balken sind auf 240×320 Pixel optimiert.
Die Ergebnisse verstehen
Der WLAN-Lastmonitor liefert drei zentrale Erkenntnisse:
1. Kanalbelegung
Die Balkenanzeige zeigt, wie viele Geräte auf jedem Kanal senden. Ein Kanal mit vielen Geräten ist nicht automatisch schlecht – entscheidend ist, ob diese Geräte auch tatsächlich Daten übertragen. Der Promiscuous Mode erfasst alle Pakete, unabhängig von ihrer Größe. Ein Kanal mit 20 Geräten, die nur gelegentlich ein Statuspaket senden, ist weniger belastet als ein Kanal mit 5 Geräten, die permanent 4K-Videos streamen.
2. Netzwerküberlappung
Die Anzahl der Netzwerke pro Kanal ist ein Indikator für Überlappung. Besonders kritisch sind die Kanäle 1, 6 und 11 – sie überlappen sich nicht und sind daher die einzig sinnvollen Kanäle für ein stabiles WLAN. Wenn auf Kanal 6 mehrere Netzwerke senden, kommt es zu Kollisionen und Wiederholungen – die effektive Bandbreite sinkt drastisch.
3. Belastungsbewertung
Die Bewertung „überlastet“ ist das Ergebnis einer gewichteten Formel:
text
Score = (Geräte × 2) + Netzwerke + (RSSI-Strafpunkte)
Ein Score über 20 bedeutet: Der Kanal ist überlastet. Die Empfehlung zeigt den Kanal mit dem niedrigsten Score – idealerweise einen der Kanäle 1, 6 oder 11.
Erweiterungsmöglichkeiten
Der gezeigte Code ist nur der Anfang. Hier sind einige Ideen für Weiterentwicklungen:
1. Datenprotokollierung auf microSD
Der CYD hat einen microSD-Kartensteckplatz. Die Messwerte können im CSV-Format gespeichert und später am PC analysiert werden – perfekt für eine Langzeitbeobachtung über Tage oder Wochen.
2. Farbige Heatmap
Eine grafische Darstellung der Kanalbelegung als Heatmap über die Zeit zeigt, wie sich die Funklandschaft im Tagesverlauf verändert. Morgens viele Geräte? Abends weniger? Solche Muster lassen sich mit dem CYD wunderbar visualisieren.
3. Bluetooth-Sniffer
Der ESP32 kann nicht nur WLAN, sondern auch Bluetooth im Promiscuous Mode abhören. Damit ließen sich auch Bluetooth-Geräte in der Umgebung erfassen – ein echter Mehrwert für die Netzwerkdiagnose.
4. Web-Interface
Der CYD kann als Webserver fungieren und die Messwerte im lokalen Netzwerk bereitstellen. So könnte man die Daten bequem vom Smartphone oder PC abrufen, ohne am Gerät selbst stehen zu müssen.
5. Alarm-Funktion
Bei Überschreitung bestimmter Schwellwerte (z. B. mehr als 10 Geräte auf dem eigenen Kanal) könnte das CYD über die RGB-LED einen optischen Alarm ausgeben.
Fazit: Der CYD als Fenster zur unsichtbaren Welt
Das Cheap Yellow Display ist weit mehr als ein billiges Spielzeug – es ist ein vollwertiges Werkzeug für die Netzwerkdiagnose, das in puncto Preis-Leistungs-Verhältnis seinesgleichen sucht. Für etwa 15 Euro erhält man einen ESP32 mit integriertem Touchdisplay, der im Promiscuous Mode die gesamte WLAN-Umgebung analysieren kann.
Der in diesem Artikel vorgestellte WLAN-Lastmonitor geht weit über einfache Signalstärke-Messungen hinaus. Er macht sichtbar, was bisher unsichtbar war: die tatsächliche Belegung der Funkkanäle, die Anzahl der aktiven Geräte und eine fundierte Empfehlung für den optimalen Kanal.
Dabei ist das Projekt nicht nur ein technisches Werkzeug, sondern auch ein Lernobjekt. Es zeigt, wie der ESP32 im Promiscuous Mode arbeitet, wie man Rohdaten in aussagekräftige Informationen verwandelt und wie eine benutzerfreundliche Oberfläche auf einem Embedded-System gestaltet wird. Für den fortgeschrittenen Anfänger ist es eine hervorragende Gelegenheit, die Grenzen des ESP32 auszuloten – und für den Profi ein nützliches Diagnosewerkzeug für den Werkzeugkasten.
Die Vielfalt der CYD-Varianten mag zunächst verwirrend sein, doch mit den richtigen Informationen und etwas Geduld findet man das passende Gerät für das eigene Projekt. Die Community rund um den CYD wächst stetig, und mit jeder neuen Version werden die Fallstricke kleiner und die Möglichkeiten größer.
Wer sein WLAN wirklich verstehen will, kommt an einem eigenen WLAN-Monitor nicht vorbei. Und mit dem CYD ist dieser Monitor nicht nur erschwinglich, sondern auch noch ein echter Hingucker auf dem Schreibtisch.
Quellen
- GitHub – ESP32-2432S028R River Levels Display (chanslor/ESP32-2432S028R). Verfügbar unter: https://github.com/chanslor/ESP32-2432S028R[reference:58][reference:59]
- Raspberry Pi Geek – Aktuelle Hardware im Kurztest (Ausgabe 11/2024). Verfügbar unter: https://www.raspberry-pi-geek.de/ausgaben/rpg/2024/11/aktuelle-hardware-im-kurztest-29/[reference:60]
- Medium – Use an ESP32 Cheap Yellow Device as graphical Wi-Fi Analyzer (@androidcrypto). Verfügbar unter: https://medium.com/@androidcrypto/use-an-esp32-cheap-yellow-device-as-graphical-wi-fi-analyzer-47549374a1e3[reference:61]
- Random Nerd Tutorials – ESP32 Cheap Yellow Display (CYD) Pinout (ESP32-2432S028R). Verfügbar unter: https://randomnerdtutorials.com/esp32-cheap-yellow-display-cyd-pinout-esp32-2432s028r/[reference:62]
- GitHub – LVGL_CYD: Using the „Cheap Yellow Display“ with LVGL (ropg/LVGL_CYD). Verfügbar unter: https://github.com/ropg/LVGL_CYD[reference:63]
- GitHub – ESP32-Cheap-Yellow-Display (witnessmenow). Verfügbar unter: https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display[reference:64]
- GitHub – CYD_Projects (bitbank2). Verfügbar unter: https://github.com/bitbank2/CYD_Projects[reference:65]
Kommentar abschicken