ESP32 mit 3,5 Zoll TFT (ESP32-3248S035)


Die Hardware

Beim Modul ESP32-3248S035 han­delt es sich um ein 3,5 Zoll gro­ßes TFT-Dis­­play mit 480×320 Pixeln. Auf der Rück­sei­te sind ein ESP32-Wroom und ein SD-Kar­ten-Modul ver­baut. Der ESP32-Wroom ver­fügt über WiFi und Blue­tooth. Mit JST-Ste­­ckern kön­nen Peri­phe­rie­ge­rä­te ange­schlos­sen wer­den.

Es gibt zwei Ver­sio­nen:

  • mit Mini-USB-Anschluss
    JST-Ste­cker sind rechts ange­ord­net (vom USB-Ste­cker aus betrach­tet)
    I²C-Pins: SDA 22, SCL 21
  • mit USB-C-Anschluss
    JST-Ste­cker befin­den sich links (vom USB-Ste­cker aus betrach­tet)
    I²C-Pins: SDA 32, SCL 25

Bei­de Ver­sio­nen ver­wen­den den Gra­fik­trei­ber ST7796.

Anschluss von Peripherie

I²C und Datenpins

Modul mit Mini-USB-Anschluss

I²C-Pins (Anschluss CN1)
SDA -> 22
SCL -> 21

Daten­pins
21 und 22

Modul mit USB-C-Anschluss

I²C-Pins (Anschluss I2C)
SDA -> 32
SCL -> 25

Daten­pins
25 und 32

Lautsprecheranschluss

Lau­t­spre­cher-Anschluss mit 2 Pin Mikro-JST-Ste­­cker
GND
26

RGB-LED

Auf der Rück­sei­te (Modul mit Mini-USB-Anschluss) oder auf der Vor­der­sei­te (Modul mit USB-C-Anschluss befin­det sich eine RGB-LED.
Die ver­schie­de­nen Far­ben leuch­ten bei LOW und sind bei HIGH aus­ge­schal­tet.

SD-Kartenmodul

Das ⇒SD-Kar­ten­mo­dul nutzt den Stan­dard Hard­ware SPI-Bus (VSPI):

Pins VSPI
23 -> COPI (MOSI)
19 -> CIPO (MISO)
18 -> CLK
5 -> CS

Das Bei­spiel­pro­gramm liest den Inhalt der SD-Kar­te und zeigt die Datei­en im Seri­el­len Moni­tor an.

Benö­tig­te Biblio­thek

Konfiguration

Mikrocontroller

Benötigte Bibliothek

User_Setup.h

Im Ver­zeich­nis /Arduino/libraries/TFT_eSPI (zu fin­den im aktu­el­len Benut­zer­ver­zeich­nis) muss die Datei User_Setup.h ange­passt wer­den.

Touchscreen

Touchscreen kalibrieren

Bei den Touch­screens wer­den resis­ti­ve oder kapa­zi­ti­ve Tech­ni­ken ver­wen­det:
Ein resis­ti­ver Touch­screen reagiert auf Druck mit einem Fin­ger oder einem Stift, bei einem kapa­zi­ti­ver Touch­screen reicht eine Berüh­rung um eine Reak­ti­on aus­zu­füh­ren. In der Regel ist aus Kos­ten­grün­den ein resis­ti­ver Touch­screen ver­baut.

Lei­der ver­bau­en die Her­stel­ler unter­schied­li­che Con­trol­ler für den Touch-Screen, daher funk­tio­niert das Pro­gramm nicht mit allen TFT-Modu­len. Beim Modul mit USB-C-Anschluss konn­te ich den Touch-Con­trol­ler der Biblio­thek TFT_eSPI ver­wen­den.

Für jede gewünsch­te Rota­ti­on des Dis­plays muss das Pro­gramm sepe­rat aus­ge­führt wer­den.

Nach Abschluss des Pro­gramms wird das Ergeb­nis der Kali­brie­rung im Seri­el­len Moni­tor ange­zeigt.
Je nach­dem, wie genau du die Ecken des Bild­schirms „getrof­fen“ hast, wer­den sich die Wer­te unter­schei­den.

Touchscreen testen

Du musst die Daten aus der Kali­brie­rung im set­up-Teil ein­tra­gen.

Grafische Funktionen

Bei­spiel

Beispielprogramme

Temperaturanzeige mit BMP280

Modul mit Mini-USB-Anschluss

grün -> GND
gelb -> SDA
schwarz -> SCL
rot -> VCC

Modul mit USB-C-Anschluss

rot -> VCC
schwarz -> SDA
gelb -> SCL
grün -> GND

Die HEX-Adres­se des BMP280 kannst du mit einem Pro­gramm her­aus­fin­den.
Du musst die SDA- und SCL-Pins anpas­sen. Die ange­zeig­te Adres­se musst du dem Auf­ruf von bmp.begin inner­halb der Klam­mern über­ge­ben.

Die im Pro­gramm ver­wen­de­te Biblio­thek U8g2_for_TFT_eSPI kann nicht über die Biblio­theks­ver­wal­tung instal­liert wer­den, sie muss her­un­ter­ge­la­den

https://github.com/Bodmer/U8g2_for_TFT_eSPI

und mit

Sketch -> Biblio­thek ein­bin­den -> zip-Biblio­­thek hin­zu­fü­gen

instal­liert wer­den.

Zusätz­lich benö­tig­te Biblio­thek:

Temperaturanzeige DHT mit Touch-Bedienung

(nur Modul mit USB-C-Anschluss)

Bit­maps erstel­len

Analoge Uhr

Das Pro­gramm kann ange­passt wer­den:

  • die Far­be der Zei­ger (Zeig­erfar­be)
    die Far­ben kannst du dem Kopf des Pro­gramms ent­neh­men
  • die Far­be des inne­ren Krei­ses (Kreis­far­be)
  • die Far­be der äuße­ren Umran­dung (Rand­far­be)
  • Anzei­ge des Datums (Datu­m­An­zei­gen)
    true: Datum anzei­gen, fal­se: Datum ver­ber­gen
  • Sekun­den­zei­ger voll­stän­dig oder nur als Kreis anzei­gen (Sekun­den­zei­ger­Kreis)
    true: nur den Kreis anzei­gen, fal­se: Sekun­den­zei­ger als Linie mit Kreis am Ende der Linie anzei­gen
  • die Anzei­ge der Stun­den­mar­kie­run­gen 12, 3, 6 und 9 (Zif­fern­an­zei­gen)
    true: Zif­fern anzei­gen, fal­se: Zif­fern ver­ber­gen
  • Das Pro­gramm ver­wen­det für die Anzei­ge des Datums die Schrift­ar­ten von ⇒u8g2.
    Eini­ge Bei­spie­le für Schrif­ten:
    14pt: u8g2_font_luRS14_tf
    16pt: u8g2_fnt_logisoso16_tf
    18pt: u8g2_font_luBS18_tf
    20pt: u8g2_font_fub20_tf
    22pt: u8g2_font_logisoso22_tf
    24pt: u8g2_font_helvB24_tf
    26pt: u8g2_font_logisoso26_tf
    28pt: u8g2_font_logisoso28_tf
    Die Schrif­ten wer­den mit setFont(Name_der_Schrift) defi­niert.

Beim Start des Pro­gramms zei­gen die Mel­dun­gen im Seri­el­len Moni­tor und auf dem TFT ob Datum und Zeit kor­rekt sind. Wenn in 90 Sekun­den kei­ne Ver­bin­dung zu einem Zeit­ser­ver her­ge­stellt wer­den konn­te, wird das Pro­gramm been­det. Nach einem erneu­ten Hoch­la­den kommt zumeist die Ver­bin­dung schnell zustan­de.

Analoge Uhr Temperaturanzeige mit DHT

Analoge Uhr mit DHT 90° gedreht

Analoge Uhr Temperaturanzeige mit BMP280

Wecker

Touch kali­brie­ren

(nur Modul mit USB-C-Anschluss)

Quellen


Letzte Aktualisierung: Feb. 5, 2026 @ 18:54

Inhalt