TTGO T-Display: Un piccolo gigante con display per progetti IoT

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é.

TTGO T-Display

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!

TTGO T-Display - Originale

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 (DatasheetDual 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

GPIOPin FunctionUtilizzo Interno / EsternoDescrizione
19TFT_MOSIInternoData Output per il display TFT (SPI MOSI)
18TFT_SCLKInternoClock per il display TFT (SPI Clock)
5TFT_CSInternoChip Select per il display TFT
16TFT_DCInternoData/Command per il display TFT
23TFT_RSTInternoReset per il display TFT
4TFT_BLInternoRetroilluminazione del display TFT (regolabile tramite PWM)
21I2C_SDAEsternoData Line per comunicazione I2C (usato anche per sensori esterni)
22I2C_SCLEsternoClock Line per comunicazione I2C (usato anche per sensori esterni)
34ADC_INEsterno (Input)Ingresso ADC per la lettura della tensione della batteria (Batt_ADC)
35BUTTON1Interno / Esterno (Input)Pulsante integrato ( in basso a destra, con pull-up)
0BUTTON2Interno / Esterno (Input)Pulsante integrato ( in basso a sinistra, senza pull-up)
14ADC PowerEsternoPin per l'alimentazione dell'ADC (utilizzato per la lettura della batteria)
1GeneraleEsternoGPIO generico
2GeneraleEsternoGPIO generico
12GeneraleEsternoGPIO generico
13GeneraleEsternoGPIO generico
15GeneraleEsternoGPIO generico
17GeneraleEsternoGPIO generico
25GeneraleEsternoGPIO generico
26GeneraleEsternoGPIO generico
32GeneraleEsterno (Output)GPIO generico
33GeneraleEsterno (Output)GPIO generico
36GeneraleEsterno (Input)GPIO generico
37GeneraleEsterno (Input)GPIO generico
38GeneraleEsterno (Input)GPIO generico
39GeneraleEsterno (Input)GPIO generico
3V33V3Esterno (Output)Uscita alimentazione 3.3V
GNDGNDEsternoGround
5V5VEsterno (Input)Ingresso alimentazione 5V (tramite USB-C)

TTGO T-Display - pin

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:

  1. Installa l’Arduino IDE: Se non l’hai già fatto, scarica e installa l’ultima versione dell’Arduino IDE dal sito ufficiale.
  2. 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”.

  1. 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.

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

  1. 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 in Documenti/Arduino/libraries/TFT_eSPI).
          • Apri con editor di testo il file User_Setup_Select.h nella sottocartella User_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.

      • Collega la TTGO T-Display: Connetti la tua scheda al computer tramite un cavo USB-C.
      • Seleziona la porta seriale: Vai su Strumenti > Porta e 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

TTGO T-Display - Factory test

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.

TTGO T-Display

TTGO T-Display - Programma test

Dove trovare la scheda

La scheda può essere acquistata presso molti siti on line come:

TTGO T-Display - Blister

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

IOT schede moduli esp8266

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!