Sei un appassionato di Arduino, ESP32 e del mondo IoT? Stai cercando una scheda compatta, potente e con un display integrato per dare vita ai tuoi progetti? Allora la TTGO T-Display potrebbe essere esattamente ciò di cui hai bisogno!
Questa piccola meraviglia è diventata rapidamente una delle preferite nella community maker, e adesso scopriremo perché.

Indice
Cos’è la TTGO T-Display?
La TTGO T-Display non è la solita scheda di sviluppo. Basata sul chip ESP32-D0WDQ6 offre tutte le funzionalità di connettività che ti aspetti da un ESP32 (Wi-Fi e Bluetooth) ma con un bonus incredibile: un display IPS a colori da 1.14 pollici 135x 240 integrato. Tutto questo in un formato estremamente compatto, con dimensioni di circa 51 x 25 x 6 mm.
Ecco alcune delle sue caratteristiche principali:
- Microcontrollore: ESP32-D0WDQ (Dual Core MCU, WiFi & Bluetooth Combo)
- Display: 1.14 pollici, IPS a colori, risoluzione 135×240 pixel (driver ST7789V)
- Connettività: Wi-Fi 802.11 b/g/n e Bluetooth v4.2 BR/EDR & BLE
- Memoria: 4MB di Flash SPI
- Interfaccia USB: USB-C (chip CH9102F per la seriale)
- Pulsanti: Due pulsanti programmabili etichettati S1 (GPIO 0) e S2 (GPIO 35), pulsante di RST
- Pin GPIO: Vari pin GPIO esposti per sensori e attuatori.
- Alimentazione: Tramite USB-C o pin 5V/3.3V.
Il display IPS offre angoli di visione eccellenti e colori vivaci, rendendolo perfetto per visualizzare dati, icone o interfacce utente semplici per i tuoi progetti IoT. Immagina un piccolo dispositivo meteo con schermo, un contatore di passi intelligente, o un controller remoto con feedback visivo!

Le foto sono relative al modello originale, in rete sono presenti vari cloni
Schema elettrico della scheda “TTGO T-Display”
Il suo circuito elettrico (download PDF) può essere suddiviso nei seguenti blocchi funzionali principali:
Microcontroller Unit (MCU) – ESP32
-
- Componente Principale: Il cuore della scheda è un System-on-a-Chip (SoC) della serie ESP32 tipo ESP32-D0WDQ6 (Datasheet) Dual Core MCU, WiFi & Bluetooth Combo. Si tratta di un componente obsoleto ma ancora utile per applicazioni di base.
- Funzione: Gestisce tutte le operazioni logiche, l’elaborazione dei dati, la connettività (Wi-Fi e Bluetooth), il controllo dei periferici e l’interfacciamento con il display e altri sensori esterni. Include CPU, memoria (Flash, SRAM), e periferiche come GPIO, SPI, I2C, UART, ADC, DAC, PWM, ecc.

Memoria Flash Esterna
- Componente Principale: Il chip è il W25Q32 (Datasheet) , un chip di memoria flash seriale di Winbond, una memoria non volatile da 32 Megabit (4 Megabyte) che utilizza un’interfaccia SPI (Serial Peripheral Interface) per la comunicazione, rendendola una soluzione di archiviazione a basso costo, a basso consumo energetico e a basso numero di pin per sistemi con spazio limitato, ideale per firmware, dati e applicazioni che richiedono memorizzazione di codice
- Funzione: Archiviazione di dati, asset grafici, o codice aggiuntivo

Display TFT a Colori
-
- Componente Principale: display TFT LCD 1,14 ” risoluzione 135×240 con un driver come l’ST7789 (Datasheet).
- Funzione: Visualizza l’output grafico della scheda. È collegato all’ESP32 tramite un’interfaccia SPI (Serial Peripheral Interface).

Interfaccia USB (Programmazione e Alimentazione):
- Componente Principale: Un chip bridge USB-a-UART, tipo CH9102F (Datasheet) prodotto da WCH (Nanjing Qinheng).
- Funzione: Permette di caricare il firmware sull’ESP32 e di comunicare serialmente con la scheda (per il debugging o l’invio di comandi). Fornisce anche l’alimentazione alla scheda tramite la porta USB.

Alimentazione
- Componenti Principali: E’ basato su un regolatore lineare a bassa caduta (LDO — Low DropOut) con funzione “enable” (attivazione/disattivazione) prodotto da Diodes Incorporated. Tipo AP2112 (Datasheet) in gradi di convertire la tensione USB (5V) alla tensione operativa dell’ESP32 (3.3V) con una corrente massima di 600 mA.
- Funzione: Assicura che i diversi componenti ricevano una tensione stabile e corretta..
- Alimentazione a batteria: Batteria supportata: litio 2,7 ÷4,2 V CC, Corrente dì carica della batteria: 500 mA, connettore batteria: JST 2 pin, 1,25 mm. Utilizza il chip TP4054 (Datasheet)

Pulsanti
- Componenti Principali: sono presenti 3 pulsanti tattili (push buttons).
- Funzione: due pulsanti per l’input utente per l’applicazione connessi ai pin GPO0 e GPO 35. Il terzo è per il Reset della scheda.

Connettori e Pinout:
- Componenti Principali: Pin header per l’accesso ai GPIO dell’ESP32.
- Funzione: Permette di collegare sensori esterni, attuatori e altri moduli alla scheda.

Led incorporati
Sfortunatamente la TTGO T-Display con nessun LED incorporato. L’unico presente è un LED blu vicino al connettore USB-C (lato inferiore) , ma è collegato al caricabatterie interno e non può essere programmato. Il comportamento del LED dipende dallo stato della batteria:
- Nessuna batteria collegata – Acceso (attenuato)
- Batteria collegata, in carica – Acceso (luminoso)
- Batteria collegata, non in carica – Spento
Antenna Wi-Fi/Bluetooth:
- Componente Principale: antenna PCB (stampata sul circuito) senza connettore IPEX per un’antenna esterna.
- Funzione: Abilita la connettività wireless.
Pin disponibili
Sotto la tabella con l’indicazione di tutti i pin utilizzati e utilizzabili dalla scheda
| GPIO | Pin Function | Utilizzo Interno / Esterno | Descrizione |
|---|---|---|---|
| 19 | TFT_MOSI | Interno | Data Output per il display TFT (SPI MOSI) |
| 18 | TFT_SCLK | Interno | Clock per il display TFT (SPI Clock) |
| 5 | TFT_CS | Interno | Chip Select per il display TFT |
| 16 | TFT_DC | Interno | Data/Command per il display TFT |
| 23 | TFT_RST | Interno | Reset per il display TFT |
| 4 | TFT_BL | Interno | Retroilluminazione del display TFT (regolabile tramite PWM) |
| 21 | I2C_SDA | Esterno | Data Line per comunicazione I2C (usato anche per sensori esterni) |
| 22 | I2C_SCL | Esterno | Clock Line per comunicazione I2C (usato anche per sensori esterni) |
| 34 | ADC_IN | Esterno (Input) | Ingresso ADC per la lettura della tensione della batteria (Batt_ADC) |
| 35 | BUTTON1 | Interno / Esterno (Input) | Pulsante integrato ( in basso a destra, con pull-up) |
| 0 | BUTTON2 | Interno / Esterno (Input) | Pulsante integrato ( in basso a sinistra, senza pull-up) |
| 14 | ADC Power | Esterno | Pin per l'alimentazione dell'ADC (utilizzato per la lettura della batteria) |
| 1 | Generale | Esterno | GPIO generico |
| 2 | Generale | Esterno | GPIO generico |
| 12 | Generale | Esterno | GPIO generico |
| 13 | Generale | Esterno | GPIO generico |
| 15 | Generale | Esterno | GPIO generico |
| 17 | Generale | Esterno | GPIO generico |
| 25 | Generale | Esterno | GPIO generico |
| 26 | Generale | Esterno | GPIO generico |
| 32 | Generale | Esterno (Output) | GPIO generico |
| 33 | Generale | Esterno (Output) | GPIO generico |
| 36 | Generale | Esterno (Input) | GPIO generico |
| 37 | Generale | Esterno (Input) | GPIO generico |
| 38 | Generale | Esterno (Input) | GPIO generico |
| 39 | Generale | Esterno (Input) | GPIO generico |
| 3V3 | 3V3 | Esterno (Output) | Uscita alimentazione 3.3V |
| GND | GND | Esterno | Ground |
| 5V | 5V | Esterno (Input) | Ingresso alimentazione 5V (tramite USB-C) |

Spiegazioni aggiuntive
- Interno: Questi pin sono principalmente utilizzati dalla scheda stessa per far funzionare il display TFT e altre periferiche integrate. Non sono generalmente disponibili per essere collegati a componenti esterni.
- Esterno: Questi pin sono accessibili tramite i connettori sulla scheda e possono essere utilizzati per collegare sensori, attuatori o altri moduli esterni.
- Input/Output (Input/Output): Alcuni pin GPIO hanno restrizioni sulla loro funzionalità. Ad esempio, i pin 34, 35, 36 e 39 sono tipicamente solo input (GPI), mentre i pin 32 e 33 sono tipicamente solo output (GPO).
Come configurare la TTGO T-Display con l’Arduino IDE
Uno dei maggiori vantaggi della TTGO T-Display è la sua piena compatibilità con l’Arduino IDE, il che significa che puoi sfruttare la vasta libreria di esempi e risorse della community ESP32.
Ecco come configurarla:
- Installa l’Arduino IDE: Se non l’hai già fatto, scarica e installa l’ultima versione dell’Arduino IDE dal sito ufficiale.
- Aggiungi il supporto ESP32 Board Manager:
- Apri l’Arduino IDE.
- Vai su
File > Preferenze. - Nella casella “URL aggiuntivi per il Board Manager”, incolla il seguente URL:
https://espressif.github.io/arduino-esp32/package_esp32_index.json - Fai clic su “OK”.

- Installa il pacchetto ESP32:
- Vai su
Strumenti > Scheda > Gestore Schede... - Cerca “esp32” e installa il pacchetto “esp32 by Espressif Systems”. Questo potrebbe richiedere alcuni minuti.
- Vai su

- Seleziona la scheda corretta:
- Una volta installato, vai su
Strumenti > Scheda > ESP32 Arduinoe seleziona “TTGO LoRA32-OLED”.
- Una volta installato, vai su

- Installa le librerie per il display:
-
- La TTGO T-Display utilizza il driver ST7789V per il suo display. Avrai bisogno di una libreria grafica. La più comune e versatile è la libreria TFT_eSPI.
- Vai su
Strumenti > Gestisci Librerie... - Cerca “TFT_eSPI” e installala.
Importante: Dopo aver installato TFT_eSPI, dovrai configurarla per la TTGO T-Display:-
- Trova la cartella della libreria
TFT_eSPI(solitamente inDocumenti/Arduino/libraries/TFT_eSPI). - Apri con editor di testo il file
User_Setup_Select.hnella sottocartellaUser_Setups.
- Aggiungi la linea
"#define DISABLE_ALL_LIBRARIY_WARNINGS" - Togli le “//” che servono per commentare la riga che include
User_Setups/Setup25_TTGO_T_Display.h(o una simile, cerca quella che fa riferimento alla T-Display). Assicurati che le altre configurazioni siano commentate. - Salva il file.
- Trova la cartella della libreria
-
-

-
-
- Collega la TTGO T-Display: Connetti la tua scheda al computer tramite un cavo USB-C.
- Seleziona la porta seriale: Vai su
Strumenti > Portae seleziona la porta COM corrispondente alla tua TTGO T-Display. - Se tutto funziona, la scheda eseguirà il codice “FactoryTest” precaricato, e che può essere scaricato dal sito del produttore
-

Ora sei pronto per programmare!
Un semplice programma di test: Wi-Fi e Pulsante
Ora verifichiamo il funzionamento della scheda.
Questo programma ti mostrerà come far apparire del testo sul display, connetterti al Wi-Fi e leggere lo stato di uno dei pulsanti integrati.
Useremo il pulsante posto a lato delle porta USB “S1 ” che è collegato al GPIO 0.
Prima di caricare il codice:
- Sostituisci “NOME_RETE_WIFI” con il nome esatto (SSID) della tua rete Wi-Fi.
- Sostituisci “PASSWORD_WIFI” con la password della tua rete Wi-Fi.
Carica il programma sulla tua TTGO T-Display. Vedrai il display inizializzarsi, tentare di connettersi al Wi-Fi e poi mostrare lo stato della connessione e il tuo indirizzo IP (se connesso).
Ora se provi a premere il pulsante “S1” vedrai il testo sul display cambiare di conseguenza!
NOTE:
- Se il, display del modulo non si attiva dopo l’accensione, premere il tasto 1 (reset)
- Se non si riesce a caricare il programma, tenere premuto il tasto 2 per 3 secondi, quindi rilasciarlo, il processo di caricamento dovrebbe iniziare.

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#include <WiFi.h> #include <TFT_eSPI.h> // Libreria per il display TFT // Credenziali Wi-Fi const char* ssid = "NOME_RETE_WIFI"; // Sostituisci con il nome della tua rete Wi-Fi const char* password = "PASSWORD_WIFI"; // Sostituisci con la password della tua rete Wi-Fi // Inizializza il display TFT TFT_eSPI tft = TFT_eSPI(); // Pin del pulsante (GPIO 0 per il pulsante utente sulla TTGO T-Display) const int buttonPin = 0; bool buttonPressed = false; void setup() { Serial.begin(115200); // Inizializza il display tft.init(); tft.setRotation(1); // Valore (0-3) a seconda dell'orientamento desiderato tft.fillScreen(TFT_BLACK); // Pulisce lo schermo tft.setTextFont(2); // Seleziona un font (0-7) // Configura il pin del pulsante come input con pull-up interno // Il pulsante tipicamente collega il pin a GND quando premuto (active low) pinMode(buttonPin, INPUT_PULLUP); tft.println("Connessione Wi-Fi..."); // Connessione al Wi-Fi WiFi.begin(ssid, password); int attempts = 0; while (WiFi.status() != WL_CONNECTED && attempts < 20) { delay(500); Serial.print("."); tft.print("."); attempts++; } if (WiFi.status() == WL_CONNECTED) { tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); tft.setTextColor(TFT_GREEN); tft.println("Wi-Fi Connesso!"); tft.setTextColor(TFT_WHITE); tft.print("Indirizzo IP: "); tft.println(WiFi.localIP()); } else { tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); tft.setTextColor(TFT_RED); tft.println("Connessione Wi-Fi fallita!"); tft.println("Verifica credenziali."); } delay(2000); // Mostra il messaggio per 2 secondi } void loop() { tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); tft.setTextColor(TFT_WHITE); // Mostra lo stato del Wi-Fi if (WiFi.status() == WL_CONNECTED) { tft.println("Wi-Fi OK!"); tft.print("IP: "); tft.println(WiFi.localIP()); } else { tft.println("Wi-Fi Sconnesso!"); tft.println("Riconnessione..."); } tft.println(""); // Spazio // Leggi lo stato del pulsante // Il pulsante è active low, quindi LOW significa premuto if (digitalRead(buttonPin) == LOW) { if (!buttonPressed) { // Per rilevare solo la pressione iniziale tft.setTextColor(TFT_YELLOW); tft.println("Pulsante PREMUTO!"); buttonPressed = true; Serial.println("Pulsante premuto!"); } } else { if (buttonPressed) { // Per rilevare il rilascio tft.setTextColor(TFT_WHITE); tft.println("Pulsante Rilasciato!"); buttonPressed = false; Serial.println("Pulsante rilasciato!"); } else { tft.setTextColor(TFT_CYAN); tft.println("Attesa pressione pulsante S1.."); } } delay(500); // Aggiorna ogni mezzo secondo } |

Dove trovare la scheda
La scheda può essere acquistata presso molti siti on line come:
- AliExpress: https://s.click.aliexpress.com/e/_c3FpBdGx
- Presso il sito Amazon: https://amzn.to/3KxsJfD


Il contenuto della confezione, oltre alle due pinstrip, comprende un cavo con connettore per il collegamento della batteria.
Altri modelli di schede ESP32
Potete trovare altri modelli di schede per IOT nel post Raccolta schede IOT moduli ESP8266 o ESP32
Conclusioni
La TTGO T-Display è una scheda incredibilmente versatile e divertente da usare. Con il suo ESP32 integrato e il display a colori, le possibilità per i tuoi progetti IoT sono praticamente infinite. Che tu voglia costruire un monitor ambientale, un controller remoto, o semplicemente sperimentare con l’ESP32 e la grafica, questa scheda è un’ottima scelta per iniziare.
Spero che questo post ti sia stato utile per iniziare con la tua TTGO T-Display! Se hai domande o hai realizzato qualche progetto interessante, condividilo nei commenti qui sotto!





