Transformação da placa ESP32-2432S028 (Cheap Yellow Display) em um display inteligente de bancada ou parede, com visualização gráfica dos níveis da cisterna, acionamento de relés via touch screen resistivo e integração MQTT com Home Assistant.
ESP32-WROOM-32 (Dual Core 240MHz, 4MB Flash, Wi-Fi & BT).
2.8 polegadas TFT LCD, 240×320 pixels (controlador ILI9341 / ST7789).
Controlador XPT2046 via barramento SPI com pino de interrupção IRQ.
Slot MicroSD, LDR fotossensor (GPIO35), LED RGB traseiro (GPIO4/16/17), buzzer e amplificador de áudio P1.
Tabela de pinagem interna e dos conectores de expansão JST-1.25.
| Função | Pino ESP32 | Observação |
|---|---|---|
| TFT Chip Select (CS) | GPIO 15 | Habilita controlador ILI9341 |
| TFT Data / Command (DC) | GPIO 2 | Alterna entre comando e dados de pixel |
| TFT SPI Clock (SCK) | GPIO 14 | Relógio do barramento HSPI |
| TFT SPI MOSI (Data In) | GPIO 13 | Linha de escrita de dados de vídeo |
| TFT Backlight (Brilho) | GPIO 21 | Controle de intensidade via PWM (0-100%) |
| Touch Chip Select (CS) | GPIO 33 | Habilita o chip XPT2046 |
| Touch SPI Clock (SCK) | GPIO 25 | Clock do barramento de toque |
| Touch SPI MOSI | GPIO 32 | Comandos de leitura X/Y |
| Touch SPI MISO | GPIO 39 | Retorno das coordenadas analógicas do toque |
| Touch IRQ (Interrupção) | GPIO 36 | Indica toque físico na tela |
| Conector | Pinos (1 a 4) | Funções / Sensores Recomendados |
|---|---|---|
| Porta CN1 (JST-4P) | 1: GND · 2: GPIO 22 · 3: GPIO 27 · 4: 3.3V | Barramento I²C livre (SDA/SCL) para sensor SHT40/BME280 ou porta serial UART RX/TX. |
| Porta P3 (JST-4P) | 1: GND · 2: GPIO 35 · 3: GPIO 21 · 4: 3.3V | Entrada analógica ADC (GPIO 35 conectado ao sensor LDR) e Backlight PWM. |
| Porta P1 (JST-2P) | 1: SPK+ · 2: SPK- | Saída de alto-falante amplificado com chip NS4168 (GPIO 26 DAC). |
Conecte o CYD ao PC através do conector Micro-USB. O conversor CH340 criará uma porta COM. Grave o ESPHome configurado com o driver `ili9xxx` e `xpt2046`.
Displays resistivos possuem pequenas variações mecânicas. Durante o primeiro boot, toque nos 4 cantos da tela e ajuste os parâmetros `x_min: 300, x_max: 3800, y_min: 250, y_max: 3850` para obter precisão perfeita no clique dos botões.
O CYD assina o tópico MQTT `nodes/cisterna/nivel_pct` e atualiza uma barra de progresso gráfica com animação e cores dinâmicas (Verde > 60%, Amarelo 30-60%, Vermelho < 30%).
Um botão touch na tela envia a mensagem `switch.toggle` para o relé da bomba, com feedback sonoro no buzzer e alteração da cor do LED RGB traseiro para indicar o status da bomba em tempo real.
Configuração completa com calibração de tela e integração MQTT.
esphome:
name: cyd-hmi-touch
friendly_name: CYD HMI Lab
esp32:
board: esp32dev
framework:
type: esp-idf
spi:
- id: tft_spi
clk_pin: GPIO14
mosi_pin: GPIO13
miso_pin: GPIO12
- id: touch_spi
clk_pin: GPIO25
mosi_pin: GPIO32
miso_pin: GPIO39
output:
- platform: ledc
pin: GPIO21
id: backlight_pwm
light:
- platform: monochromatic
output: backlight_pwm
name: "Brilho da Tela"
id: tft_backlight
restore_mode: ALWAYS_ON
display:
- platform: ili9xxx
model: ILI9341
spi_id: tft_spi
cs_pin: GPIO15
dc_pin: GPIO2
rotation: 90
lambda: |-
it.fill(Color::BLACK);
it.printf(160, 15, id(font_title), TextAlign::TOP_CENTER, "LAB CISTERNA · ARTES DO SUL");
float nivel = id(sensor_nivel_cisterna).state;
it.printf(30, 60, id(font_sub), "Nível Cisterna: %.1f %%", nivel);
it.filled_rectangle(30, 100, (int)(nivel * 2.6), 24, Color(0, 217, 255));
touchscreen:
- platform: xpt2046
spi_id: touch_spi
cs_pin: GPIO33
interrupt_pin: GPIO36
calibration:
x_min: 300
x_max: 3800
y_min: 250
y_max: 3850
Adquira o display ESP32 CYD 2.8" nas principais plataformas com envio nacional: