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

Lesezeit: 35 Minuten

Die Hardware

Beim Mod­ul ESP32-3248S035 han­delt es sich um ein 3,5 Zoll gro­ßes TFT-Dis­­­play mit 480×320 Pix­eln. Auf der Rück­sei­te sind ein ESP32-Wroom und ein SD-Karten-Mod­ul ver­baut. Der ESP32-Wroom ver­fügt über WiFi und Blue­tooth. Mit JST-Ste­ck­ern 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-Steck­er sind rechts ange­ord­net (vom USB-Steck­er aus betra­chtet)
    I²C-Pins: SDA 22, SCL 21
  • mit USB-C-Anschluss
    JST-Steck­er befind­en sich links (vom USB-Steck­er aus betra­chtet)
    I²C-Pins: SDA 32, SCL 25

Bei­de Ver­sio­nen ver­wen­den den Grafik­treiber ST7796.

Anschluss von Peripherie

I²C und Datenpins

Mod­ul mit Mini-USB-Anschluss

I²C-Pins (Anschluss CN1)

SDA -> 22
SCL -> 21

Daten­pins
21 und 22

Mod­ul mit USB-C-Anschluss

I²C-Pins (Anschluss I2C)

SDA -> 32
SCL -> 25

Daten­pins

25 und 32

Lautsprecheranschluss

Laut­spre­ch­er-Anschluss mit 2 Pin Mikro-JST-Ste­ck­er
GND
26

RGB-LED

Auf der Rück­seite (Mod­ul mit Mini-USB-Anschluss) oder auf der Vorder­seite (Mod­ul mit USB-C-Anschluss befind­et sich eine RGB-LED.
Die ver­schiede­nen Far­ben leucht­en bei LOW und sind bei HIGH aus­geschal­tet.

SD-Kartenmodul

Das ⇒SD-Karten­modul nutzt den Stan­dard Hard­ware SPI-Bus (VSPI):

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

Das Beispiel­pro­gramm liest den Inhalt der SD-Karte und zeigt die Dateien im Seriellen Mon­i­tor an.

Benötigte Bib­lio­thek

Konfiguration

Mikrocontroller

Benötigte Bibliothek

User_Setup.h

Im Ver­zeich­nis /Arduino/libraries/TFT_eSPI (zu find­en im aktuellen Benutzerverze­ich­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­bauen die Her­steller unter­schiedliche Con­troller für den Touch-Screen, daher funk­tion­iert das Pro­gramm nicht mit allen TFT-Mod­ulen. Beim Mod­ul mit USB-C-Anschluss kon­nte ich den Touch-Con­troller der Bib­lio­thek TFT_eSPI ver­wen­den.

Für jede gewün­schte Rota­tion des Dis­plays muss das Pro­gramm seper­at aus­ge­führt wer­den.

Nach Abschluss des Pro­gramms wird das Ergeb­nis der Kalib­rierung im Seriellen Mon­i­tor angezeigt.
Je nach­dem, wie genau du die Eck­en des Bild­schirms “getrof­fen” hast, wer­den sich die Werte unter­schei­den.

Touchscreen testen

Du musst die Dat­en aus der Kalib­rierung im set­up-Teil ein­tra­gen.

Grafische Funktionen

Beispiel

Beispielprogramme

Temperaturanzeige mit BMP280

Mod­ul mit Mini-USB-Anschluss

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

Mod­ul mit USB-C-Anschluss

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

Die HEX-Adresse des BMP280 kannst du mit einem Pro­gramm her­aus­find­en.
Du musst die SDA- und SCL-Pins anpassen. Die angezeigte Adresse musst du dem Aufruf von bmp.begin inner­halb der Klam­mern übergeben.

Die im Pro­gramm ver­wen­dete Bib­lio­thek U8g2_for_TFT_eSPI kann nicht über die Bib­lio­theksver­wal­tung instal­liert wer­den, sie muss herun­terge­laden

https://github.com/Bodmer/U8g2_for_TFT_eSPI

und mit

Sketch -> Biblio­thek ein­bin­den -> zip-Bib­lio­thek hinzufü­gen

instal­liert wer­den.

Zusät­zlich benötigte Bib­lio­thek:

Temperaturanzeige DHT mit Touch-Bedienung

(nur Mod­ul mit USB-C-Anschluss)

Bitmaps erstellen

Analoge Uhr

Das Pro­gramm kann angepasst wer­den:

  • die Farbe der Zeiger (Zeiger­farbe)
    die Far­ben kannst du dem Kopf des Pro­gramms ent­nehmen
  • die Farbe des inneren Kreis­es (Kre­is­farbe)
  • die Farbe der äußeren Umran­dung (Rand­farbe)
  • Anzeige des Datums (Datu­mAnzeigen)
    true: Datum anzeigen, false: Datum ver­ber­gen
  • Sekun­den­zeiger voll­ständig oder nur als Kreis anzeigen (Sekun­den­zeigerKreis)
    true: nur den Kreis anzeigen, false: Sekun­den­zeiger als Lin­ie mit Kreis am Ende der Lin­ie anzeigen
  • die Anzeige der Stun­den­markierun­gen 12, 3, 6 und 9 (Zif­fer­nanzeigen)
    true: Zif­fern anzeigen, false: Zif­fern ver­ber­gen
  • Das Pro­gramm ver­wen­det für die Anzeige des Datums die Schrif­tarten von ⇒u8g2.
    Einige Beispiele für Schriften:
    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 Schriften wer­den mit setFont(Name_der_Schrift) definiert.

Beim Start des Pro­gramms zei­gen die Mel­dun­gen ob Datum und Zeit kor­rekt sind. Wenn in 90 Sekun­den keine Verbindung zu einem Zeit­serv­er hergestellt wer­den kon­nte, wird das Pro­gramm been­det. Nach einem erneuten Hochladen kommt zumeist die Verbindung schnell zus­tande.

Analoge Uhr Temperaturanzeige mit DHT

Analoge Uhr Temperaturanzeige mit BMP280

Wecker

(nur Mod­ul mit USB-C-Anschluss)

Quellen


Letzte Aktualisierung: Nov. 16, 2025 @ 23:07