Projeto de Bancada #02 🖥️ HMI Touch & Painel Interativo

Terminal HMI Touchscreen ESP32 CYD 2.8"

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 CYD na Bancada de Hardware

📋 Especificações do Hardware (CYD 2432S028)

SoC / Processador

ESP32-WROOM-32 (Dual Core 240MHz, 4MB Flash, Wi-Fi & BT).

Tela / Display TFT

2.8 polegadas TFT LCD, 240×320 pixels (controlador ILI9341 / ST7789).

Touchscreen Resistivo

Controlador XPT2046 via barramento SPI com pino de interrupção IRQ.

Periféricos Integrados

Slot MicroSD, LDR fotossensor (GPIO35), LED RGB traseiro (GPIO4/16/17), buzzer e amplificador de áudio P1.

📌 Mapa Completo de Pinagem & Conectores

Tabela de pinagem interna e dos conectores de expansão JST-1.25.

1. Display TFT e Touch Screen (SPI Interno)

FunçãoPino ESP32Observação
TFT Chip Select (CS)GPIO 15Habilita controlador ILI9341
TFT Data / Command (DC)GPIO 2Alterna entre comando e dados de pixel
TFT SPI Clock (SCK)GPIO 14Relógio do barramento HSPI
TFT SPI MOSI (Data In)GPIO 13Linha de escrita de dados de vídeo
TFT Backlight (Brilho)GPIO 21Controle de intensidade via PWM (0-100%)
Touch Chip Select (CS)GPIO 33Habilita o chip XPT2046
Touch SPI Clock (SCK)GPIO 25Clock do barramento de toque
Touch SPI MOSIGPIO 32Comandos de leitura X/Y
Touch SPI MISOGPIO 39Retorno das coordenadas analógicas do toque
Touch IRQ (Interrupção)GPIO 36Indica toque físico na tela

2. Conectores de Expansão Externa (JST 1.25mm)

ConectorPinos (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).

🔨 Passo a Passo de Montagem e Calibração

1 Gravação de Firmware e Drivers

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

2 Calibração das Coordenadas do Touch 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.

3 Integração com a Telemetria da Cisterna

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%).

4 Controle do Relé por Toque na Tela

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.

⚡ Código ESPHome com Display e Touch

Configuração completa com calibração de tela e integração MQTT.

cyd-hmi-dashboard.yaml (ESPHome)
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

🛒 Onde Comprar no Brasil

Adquira o display ESP32 CYD 2.8" nas principais plataformas com envio nacional:

🛍️ Comprar na Shopee Brasil 🛒 Comprar no Mercado Livre 📦 Comprar na Amazon Brasil