MeinSBS
· 5 Minuten read

ESP32-2432S028R (Cheap Yellow Display) - Tasmota Leistungsmonitor

Als C/C++-Einsteiger kann die Einrichtung einer Entwicklungsumgebung unter Linux schnell unübersichtlich werden. Mein Ziel war es, auf dem populären ESP32-2432S028R – besser bekannt als Cheap Yellow Display (CYD) – die Leistungswerte von Smart-Plugs mit Tasmota-Firmware auszulesen und live anzuzeigen.

Hier ist die Schritt-für-Schritt-Anleitung von der Grundeinrichtung unter Linux Mint bis zum ersten erfolgreichen Flash.

Vorbereitung: Setup-Skript für Linux Mint

Um VS Code, Python-Abhängigkeiten und PlatformIO komfortabel zu installieren, hilft ein kurzes Bash-Skript. Es kümmert sich auch gleich um die benötigten Rechte für den Zugriff auf die serielle Schnittstelle.

#!/bin/bash
set -e

echo "[1/4] System aktualisieren und Basis-Pakete installieren..." sudo apt update sudo apt install -y curl wget git python3 python3-pip python3-venv build-essential python3-full

echo "[2/4] VS Code installieren..." if ! command -v code &> /dev/null; then wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null rm -f packages.microsoft.gpg sudo apt update sudo apt install -y code else echo "VS Code ist bereits installiert." fi

echo "[3/4] PlatformIO-Erweiterung für VS Code installieren..." code --install-extension platformio.platformio-ide

echo "[4/4] Benutzer zur Gruppe 'dialout' hinzufügen (USB/Seriell-Zugriff)..." sudo usermod -aG dialout $USER

echo "-------------------------------------------------------" echo "Installation abgeschlossen!" echo "WICHTIG: Bitte einmal ab- und wieder anmelden," echo "damit die Gruppenrechte (dialout) wirksam werden." echo "-------------------------------------------------------"

Das Skript ausführbar machen und starten, Wichtig: Kein sudo!

chmod +x install.sh
./install.sh

Projekt in PlatformIO anlegen

PlatformIO Home öffnen: VS Code starten, in der linken Leiste auf das PlatformIO-Ameisen-Icon klicken und unter Quick Access den Punkt PIO Home -> Open wählen.
Neues Projekt erstellen: Auf + New Project klicken.
Konfiguration eintragen:

Name: CYD-Tasmota-Display (oder ein beliebiger Name)
Board: Espressif ESP32 Dev Module
Framework: Arduino
Use default location aktiviert lassen und auf Finish klicken. (Der erste Start kann ein bis zwei Minuten dauern, da die ESP32-Toolchain im Hintergrund geladen wird.)

platformio.ini konfigurieren

Damit das Display ohne manuelles Bearbeiten einer User_Setup.h angesteuert werden kann, werden alle Pin-Belegungen und Treiber-Definitionen direkt über build_flags in der platformio.ini übergeben.

Inhalt der Datei vollständig ersetzen durch:

Ini, TOML 
; PlatformIO-Projektkonfiguration für ESP32-2432S028R (Cheap Yellow Display)
; Alle TFT_eSPI-Einstellungen werden über build_flags gesetzt.

[env:esp32-2432S028R] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 upload_speed = 921600

lib_deps = bblanchon/ArduinoJson @ ^6.21.5 bodmer/TFT_eSPI @ ^2.5.43

build_flags = -DUSER_SETUP_LOADED=1 -DILI9341_DRIVER=1 -DTFT_WIDTH=240 -DTFT_HEIGHT=320

; SPI-Pins des CYD (ESP32-2432S028R)
-DTFT_MISO=12
-DTFT_MOSI=13
-DTFT_SCLK=14
-DTFT_CS=15
-DTFT_DC=2
-DTFT_RST=-1
-DTFT_BL=21
-DTFT_BACKLIGHT_ON=HIGH

-DSPI_FREQUENCY=55000000
-DSPI_READ_FREQUENCY=20000000
-DUSE_HSPI_PORT=1

; Fonts
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT6=1
-DLOAD_FONT7=1
-DLOAD_FONT8=1
-DLOAD_GFXFF=1
-DSMOOTH_FONT=1</code></pre>

Der erste Flash-Vorgang

Öffne die Datei src/main.cpp.
Verbinde den ESP32 per USB mit deinem Rechner.
Klicke unten in der Statusleiste von VS Code auf den Pfeil nach rechts (PlatformIO: Upload), um den Code zu kompilieren und auf das Board zu übertragen.
Klicke anschließend auf das Stecker-Symbol (PlatformIO: Serial Monitor), um die Log-Ausgaben der seriellen Schnittstelle (115200 Baud) einzusehen.
Den vollständigen Quellcode für die main.cpp findest du auf GitHub.

Typischer Fehler

Rechte auf der USB-Schnittstelle

Sollte beim Upload folgender Fehler auftreten:Hint: Try to add user into dialout or uucp group.

*** [upload] Error 2
================ catalog [FAILED] Took 5.04 seconds =================

Fehlen deinem Benutzer die Schreibrechte auf der seriellen Schnittstelle (/dev/ttyUSB0 oder /dev/ttyACM0).

Lösung:

sudo usermod -aG dialout $USER

Wichtig: Nach dem Befehl musst du dich einmal ab- und wieder anmelden, damit die Gruppenänderung für deine Session aktiv wird. Danach lässt sich der Zugriff prüfen:

ls -l /dev/ttyUSB /dev/ttyACM

Ausgabe sollte z. B. so aussehen:

# crw-rw---- 1 root dialout 188, 0 Aug 14 23:06 /dev/ttyUSB0