Painel Web de Controle para Placa ESP32 com 4 Relés de 30A

Placa ESP32 4 Relés 30A RB2554 — manual técnico completo

No desenvolvimento de quadros de comando elétrico, automação predial e sistemas autônomos de potência, acionar cargas com elevado consumo de corrente — como motobombas, compressores de ar condicionado, bancadas de aquecimento térmico e sistemas de iluminação de grande porte — exige soluções de comutação muito mais robustas do que os tradicionais módulos de relé de 10A. Placas genéricas sofrem com faiscamento interno nos contatos, sobreaquecimento de trilhas e queima frequente sob regimes de trabalho contínuo.

O projeto de código aberto ROBOBUILDERS RB2554 foi criado exatamente para suprir essa necessidade industrial, integrando a placa controladora ESP-32_RELAY_30A_X4_V1.1 (equipada com o microcontrolador ESP32-WROOM-32E) a 4 relés industriais de 30A com isolamento galvânico por optoacopladores independentes. O firmware nativo emite um ponto de acesso sem fio próprio com Portal Captivo, permitindo que técnicos e operadores acessem uma interface gráfica completa em Dark Mode e uma API RESTful diretamente pelo celular ou computador, sem necessidade de roteador Wi-Fi ou conexão à internet.

Neste tutorial técnico, vamos dissecar o funcionamento completo do projeto disponível no repositório oficial da RoboBuilders no GitHub, apresentando as especificações elétricas, o mapeamento exato das GPIOs, os diagramas esquemáticos oficiais de instalação e gravação serial, e o passo a passo prático para compilar e testar a placa em bancada.


1. Visão Geral do Projeto

O firmware do ROBOBUILDERS RB2554 atua como uma solução completa de validação de hardware (Board Diagnostic) e controle operacional para a placa ESP-32_RELAY_30A_X4_V1.1.

Principais Casos de Uso na Prática:

  1. Comutação Confiável de Cargas Pesadas: Controle seguro de até 4 circuitos independentes de 30A (250V AC ou 30V DC), eliminando a necessidade de contatores intermediários para cargas médias/altas.
  2. Ponto de Acesso Local Autônomo: Em locais remotos, como galpões, estufas agrícolas, bombas de poço ou casas de máquinas, a placa emite a rede Wi-Fi ROBOBUILDERS-RB2554. Basta conectar para operar.
  3. Portal Captivo Instantâneo: Ao conectar um smartphone à rede da placa, o navegador abre automaticamente a tela do painel em tela cheia, dispensando digitação de endereços IP.
  4. Integração Externa via API REST: Sistemas de automação (como Home Assistant, Node-RED, SCADA ou scripts Python) podem comandar e auditar o estado dos relés e das entradas/saídas digitais através de requisições HTTP RESTful em JSON.

2. Especificações de Hardware

A placa ESP-32_RELAY_30A_X4_V1.1 foi projetada para suportar ambientes com elevado ruído eletromagnético e alta demanda de corrente:

Placa ESP-32_RELAY_30A_X4_V1.1 da RoboBuilders com 4 relés azuis de 30A e bornes verdes industriais
ItemEspecificação Detalhada
Identificador do ProdutoRoboBuilders RB2554
Modelo da Placa BaseESP-32_RELAY_30A_X4_V1.1 (ou ESP-32_RELAY_30A_X4)
Microcontrolador CentralESP32-WROOM-32E (Xtensa® Dual-Core 32-bit LX6 @ 240 MHz, 4MB Flash SPI, 520KB SRAM)
Relés de Potência4 Relés de Alta Potência SONGLE SLA-05VDC-SL-C (30A)
Capacidade Máxima por Canal30A em 250V AC ou 30A em 30V DC
Isolamento de CircuitoIsolamento óptico dedicado por optoacopladores em cada um dos 4 canais de relé
Terminais de ConexãoBornes de parafuso industriais reforçados: COM (Comum), NO (Normal Aberto) e NC (Normal Fechado)
LED Indicador OnboardLED de diagnóstico e atividade conectado à GPIO 5
Botão Físico OnboardBotão tátil multifunção / Bootloader conectado à GPIO 0 (IO0)
Entrada de Alimentação DCBorne de alimentação DC de ampla faixa: 7V a 30V DC (ou borne secundário de 5V DC)
Entrada de Alimentação ACBorne de alimentação AC integrado para rede elétrica: 90V a 250V AC
Header de Programação UARTHeader serial de pinos expostos: TXD0 (GPIO 1), RXD0 (GPIO 3), IO0 (GPIO 0), EN/RST, GND, 5V/3V3

⚠️ Atenção sobre a corrente das bobinas de 30A: Cada relé de 30A consome cerca de 185 mA a 5V quando acionado. Com os 4 relés energizados simultaneamente, o consumo atinge aproximadamente 750 mA apenas para os relés, somado aos picos de transmissão Wi-Fi do ESP32. Portanto, ao alimentar via borne DC, utilize sempre uma fonte com capacidade mínima de 5V / 2A (ou 12V / 1,5A) para evitar reinicializações por queda de tensão (brownout reset).


3. Mapeamento de Pinos (Pinout Oficial)

A placa mapeia os 4 canais de relé, os periféricos onboard e o barramento de expansão de acordo com a tabela abaixo:

3.1 Barramento dos 4 Canais de Relé (30A)

O acionamento dos relés ocorre em nível lógico alto (Active HIGH). Ao aplicar nível HIGH (3.3V) na GPIO correspondente, o optoacoplador conduz e fecha o contato entre o terminal COM e o terminal NO:

Canal do ReléGPIO (ESP32)DireçãoLógica de AcionamentoDescrição Funcional
Relé 1 (CH1)GPIO 12OUTPUTActive HIGHOptoacoplador e bobina do Relé 1 (30A)
Relé 2 (CH2)GPIO 13OUTPUTActive HIGHOptoacoplador e bobina do Relé 2 (30A)
Relé 3 (CH3)GPIO 14OUTPUTActive HIGHOptoacoplador e bobina do Relé 3 (30A)
Relé 4 (CH4)GPIO 15OUTPUTActive HIGHOptoacoplador e bobina do Relé 4 (30A)

3.2 Recursos Onboard & Comunicação Serial

PeriféricoGPIO (ESP32)DireçãoNível / ModoDescrição Técnica
🔵 LED OnboardGPIO 5OUTPUTActive HIGHIndicador de status, heartbeat e pisca-pisca de diagnóstico
🟡 Botão BOOT (IO0)GPIO 0INPUT_PULLUPActive LOWBotão tátil físico e seleção de modo bootloader
🔌 UART0 TXGPIO 1UARTTransmissãoLinha de transmissão serial TX para gravação (115.200 bps)
🔌 UART0 RXGPIO 3UARTRecepçãoLinha de recepção serial RX para gravação (115.200 bps)

3.3 Barramento de Expansão para Sensores e Atuadores Extras

Grupo de PinosGPIOs DisponíveisModo PadrãoObservações de Projeto
I/O Digital Configurável2, 4, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33OUTPUTEntradas ou saídas de 3.3V comutáveis pelo painel web
Input-Only (Sensores ADC)34, 35INPUTPinos de entrada pura, ideais para sensores analógicos e digitais

4. Recursos do Painel Web

A interface do ROBOBUILDERS RB2554 foi projetada como uma Single Page Application (SPA) responsiva em modo escuro (Dark Mode). Ela é armazenada inteiramente na memória Flash SPI através da diretiva PROGMEM, sem ocupar memória RAM dinâmica do microcontrolador:

Interface web de controle e monitoramento da placa ESP32 com 4 relés de 30A RB2554

4.1 Seção 1 — Teste dos 4 Relés de Potência & Recursos Onboard

  • Acionamento dos 4 Canais (GPIOs 12, 13, 14, 15): Cada relé possui um card dedicado com status visual em tempo real (destaque colorido com indicação Fechado / Aberto).
  • Pulso Temporizado de 1s: Botão “Pulso 1s” aciona o relé selecionado e programa seu desarme automático após 1000 milissegundos de forma assíncrona, sem interromper o loop principal.
  • Ações Rápidas em Lote: Dois botões de alta performance permitem ligar simultaneamente (”⚡ Ligar Todos os Relés”) ou desativar todos (”⛔ Desligar Todos os Relés”) com um único comando.
  • Controle do LED Onboard (GPIO 5): Permite alternar manualmente (Ligar/Desligar) ou acionar o teste rápido (Piscar 500ms).
  • Monitoramento do Botão BOOT (GPIO 0): Cartão de diagnóstico em tempo real que exibe se a tecla física IO0 está pressionada (LOW) ou solta (HIGH).

4.2 Seção 2 — Mapeamento e Controle de Todas as GPIOs

  • Comutação Individual de Saídas: Cada pino do barramento secundário pode ser acionado ou desligado independentemente.
  • Ações Globais: Botões rápidos para “Ligar Todas as Saídas” e “Desligar Todas”.”
  • Modal de Configuração Dinâmica (⚙️): Permite alterar a função de cada pino entre Saída Digital (OUTPUT) e Entrada com Resistor de Elevação (INPUT_PULLUP).
  • Proteção de Hardware: As entradas analógicas GPIO 34 e GPIO 35 são travadas pelo sistema como apenas leitura (Input-Only).

5. Documentação da API REST JSON

A placa possui um servidor web HTTP embutido que disponibiliza endpoints no padrão RESTful com retorno em JSON:

5.1 GET /api/status

Retorna o tempo de atividade (uptime) em segundos e o estado lógico de todos os pinos monitorados:

curl http://192.168.4.1/api/status

Exemplo de Resposta:

{
  "uptime": 42,
  "pins": [
    { "pin": 5, "mode": 0, "val": 0 },
    { "pin": 12, "mode": 0, "val": 1 },
    { "pin": 13, "mode": 0, "val": 0 },
    { "pin": 14, "mode": 0, "val": 0 },
    { "pin": 15, "mode": 0, "val": 0 },
    { "pin": 0, "mode": 1, "val": 1 }
  ]
}

5.2 GET /api/toggle?pin=<gpio>

Inverte imediatamente o estado lógico da GPIO especificada:

# Alterna o estado do Relé 1 (GPIO 12)
curl "http://192.168.4.1/api/toggle?pin=12"

Resposta:

{ "pin": 12, "val": 1 }

5.3 GET /api/pulse?pin=<gpio>&ms=<duracao>

Gera um pulso em nível alto (HIGH) pelo tempo solicitado em milissegundos:

# Pisca o LED onboard por 500 ms
curl "http://192.168.4.1/api/pulse?pin=5&ms=500"

# Aciona o Relé 2 (GPIO 13) durante 2000 ms (2 segundos)
curl "http://192.168.4.1/api/pulse?pin=13&ms=2000"

Resposta:

{ "success": true }

5.4 GET /api/relays?state=<0_ou_1>

Aciona ou desliga simultaneamente todos os 4 canais de relé de 30A:

# Liga os 4 relés simultaneamente
curl "http://192.168.4.1/api/relays?state=1"

# Desliga os 4 relés simultaneamente
curl "http://192.168.4.1/api/relays?state=0"

Resposta:

{ "success": true }

5.5 GET /api/mode?pin=<gpio>&mode=<0_ou_1>

Configura o pino como Saída Digital (mode=0) ou Entrada com Pull-Up (mode=1):

# Configura a GPIO 22 como entrada com pull-up
curl "http://192.168.4.1/api/mode?pin=22&mode=1"

5.6 GET /api/all?state=<0_ou_1>

Altera o estado de todas as GPIOs configuradas como saída digital.


6. Esquema de Ligação Elétrica de Cargas AC/DC

Cada relé SONGLE SLA-05VDC-SL-C possui um borne de parafuso dedicado com 3 posições:

  • COM (Comum): Entrada da linha de alimentação (fase AC ou positivo DC) que será chaveada.
  • NO (Normalmente Aberto): O circuito fica aberto em repouso e fecha quando o relé é acionado. É o terminal recomendado para 99% das aplicações de automação.
  • NC (Normalmente Fechado): O circuito permanece fechado em repouso e abre quando o relé é acionado.
Diagrama esquemático de ligação elétrica profissional da placa ESP32 com 4 relés de 30A RB2554 para cargas AC e DC

Tabela de Conexões dos Terminais de Alimentação e Relés

A tabela abaixo detalha cada condutor e ponto de interligação do diagrama:

Terminal de OrigemTerminal de Destino (Placa / Carga)Cor do FioTipo de SinalObservação Técnica
Fonte 12V DC (+)Borne VIN (7-30V) da Placa🔴 VermelhoAlimentação DCEntrada de alimentação lógica e bobinas
Fonte 12V DC (-)Borne GND da Placa⚫ PretoReferência ComumInterligar o terra comum
Rede Elétrica (Fase - L)Borne COM do Relé 1 (CH1 - GPIO 12)🟤 MarromLinha AC (110V/220V)Linha de fase da rede elétrica
Borne NO do Relé 1 (CH1)Terminal 1 da Carga AC (30A)🔴 VermelhoFase ChaveadaFecha contato no acionamento do relé
Rede Elétrica (Neutro - N)Terminal 2 da Carga AC (30A)🔵 Azul ClaroRetorno NeutroRetorno neutro direto à carga
Fonte de Carga 24V DC (+)Borne COM do Relé 2 (CH2 - GPIO 13)🔴 VermelhoPositivo DC CargaLinha de alimentação da carga contínua
Borne NO do Relé 2 (CH2)Terminal (+) do Motor / Bomba DC🟠 LaranjaLinha DC ChaveadaFecha circuito no acionamento
Fonte de Carga 24V DC (-)Terminal (-) do Motor / Bomba DC⚫ PretoRetorno NegativoRetorno negativo direto à fonte de carga

Recomendações Críticas de Segurança para Cargas de 30A:

Perigo de choque elétrico e sobreaquecimento:

  1. Bitola Adequada dos Cabos: Para conduzir até 30A de corrente com segurança sem superaquecimento, utilize cabos de cobre de bitola mínima de 4,0 mm² (para distâncias curtas) ou 6,0 mm² conforme a norma brasileira NBR 5410.
  2. Proteção Contra Picos Indutivos: Motores, bombas e bobinas geram arcos de abertura nos contatos do relé. Instale filtros Snubber RC em cargas de corrente alternada ou diodos de roda-livre (Flyback) em cargas de corrente contínua.
  3. Torque nos Parafusos dos Bornes: Certifique-se de reapertar firmemente os parafusos dos bornes verdes industriais após a fiação. Conexões frouxas causam resistência de contato e aquecimento localizado.

7. Guia de Conexão e Gravação UART

A placa ESP-32_RELAY_30A_X4_V1.1 não possui conversor USB-Serial integrado. Por esse motivo, a gravação de firmware requer um módulo conversor USB-Serial externo (como CP2102, FTDI FT232RL, CH340 ou PL2303) conectado ao header de pinos UART:

Diagrama de ligação serial UART para gravação de firmware na placa ESP32 RB2554 com conversor USB-Serial

⚠️ Aviso Crítico de Segurança: NUNCA conecte o conversor USB-Serial ao computador enquanto a placa estiver ligada à rede elétrica de alta tensão AC (110V/220V). Desconecte completamente a rede elétrica antes de efetuar qualquer conexão serial de bancada.

Tabela de Conexões do Gravador USB-Serial

Pino do Conversor USB-SerialPino do Header UART (Placa RB2554)Cor do FioFunção do SinalRegra de Ligação
5V (ou 3.3V)5V (ou 3V3)🔴 VermelhoAlimentação LógicaFornece energia ao ESP32 durante a gravação
GNDGND⚫ PretoTerra de ReferênciaObrigatório interligar os terras
TXD (Transmissão)RXD0 (GPIO 3)🟡 AmareloRecepção de DadosLigação cruzada: TX do módulo no RX da placa
RXD (Recepção)TXD0 (GPIO 1)🟢 VerdeEnvio de TelemetriaLigação cruzada: RX do módulo no TX da placa

Procedimento para Colocar o ESP32 em Modo Bootloader (Download Boot):

  1. Interligue os pinos do conversor USB-Serial e da placa conforme a tabela acima e conecte o cabo USB ao computador.
  2. Pressione e mantenha pressionado o botão físico BOOT / IO0 (GPIO 0) da placa.
  3. Dê um toque rápido no botão EN / RST (ou desconecte e reconecte o cabo USB mantendo o botão BOOT pressionado).
  4. Solte o botão BOOT.
  5. O ESP32 entrará imediatamente no modo bootloader (waiting for download), aguardando a transferência do firmware via PlatformIO ou Arduino IDE.

8. Estrutura do Repositório

O projeto na pasta RB2554 do repositório da RoboBuilders possui uma arquitetura limpa e modular:

📁 RB2554/

├── 📁 include/
│   └── web_page.h              --> Interface web completa em PROGMEM (HTML5, CSS3, JS Vanilla)

├── 📁 src/
│   └── main.cpp                --> Firmware principal PlatformIO (SoftAP, DNS, REST API, GPIOs)

├── 📁 ROBOBUILDERS_RB2554/     --> Sketch pronto para compilação na Arduino IDE
│   ├── ROBOBUILDERS_RB2554.ino --> Arquivo principal Arduino
│   └── web_page.h              --> Interface web embutida no sketch

├── 📁 img/                     --> Capturas de tela da documentação
│   └── TELA-INICIAL.png

├── platformio.ini              --> Arquivo de parâmetros de build do PlatformIO
└── README.md                   --> Documentação técnica oficial do hardware e pinout

9. Como Baixar o Projeto do GitHub

Você pode obter exclusivamente a pasta do projeto RB2554 sem clonar todo o repositório da RoboBuilders:

Opção A — Clonar apenas a pasta via Git Sparse-Checkout (Recomendado)

Abra o terminal do seu computador e execute:

mkdir esp32-rele-30a-4ch && cd esp32-rele-30a-4ch
git init
git remote add origin https://github.com/luanvieiramendes/ROBOBUILDERS.git
git config core.sparseCheckout true
git sparse-checkout set "RB2554/Documentação da placa e projeto WEB"
git pull --depth=1 origin main
cd "RB2554/Documentação da placa e projeto WEB"

Opção B — Download Direto em Arquivo ZIP

Se preferir baixar diretamente pelo navegador sem comandos Git: 👉 [Baixar pasta do projeto RB2554 via DownGit](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/luanvieiramendes/ROBOBUILDERS/tree/main/RB2554/Documentação da placa e projeto WEB)


10. Compilação e Gravação via PlatformIO CLI

O gerenciamento de compilação e upload é feito diretamente pelo terminal com o PlatformIO Core:

  1. Compilar o Firmware:

    pio run

    (As dependências da biblioteca ArduinoJson e do framework ESP32 serão baixadas automaticamente).

  2. Gravar na Placa (com ESP32 em modo Bootloader):

    pio run -t upload
  3. Gravar Especificando a Porta Serial Manualmente:

    pio run -t upload --upload-port COM3
  4. Abrir o Monitor Serial (115.200 bps):

    pio device monitor
  5. Limpar Arquivos de Build:

    pio run -t clean

11. Compilação Alternativa via Arduino IDE

Caso utilize a Arduino IDE:

  1. Certifique-se de que o pacote de placas ESP32 está instalado em Ferramentas > Placa > Gerenciador de Placas.
  2. Abra o arquivo localizado na subpasta:
    ROBOBUILDERS_RB2554/ROBOBUILDERS_RB2554.ino
  3. Em Ferramentas > Placa > ESP32 Arduino, selecione ESP32 Dev Module.
  4. Em Ferramentas > Porta, selecione a porta COM do seu conversor USB-Serial.
  5. No Gerenciador de Bibliotecas (Ctrl + Shift + I), instale a biblioteca ArduinoJson (versão 6.x).
  6. Coloque a placa em modo bootloader (mantenha BOOT pressionado, dê um toque em RST).
  7. Clique em Carregar (Upload).

12. Acesso ao Painel Web e Teste em Bancada

Com a gravação finalizada, pressione o botão RST da placa para inicializar o firmware em modo de execução normal:

  1. Conecte-se à Rede Wi-Fi Gerada:
    • No celular, tablet ou computador, localize a rede sem fio:
      📶 ROBOBUILDERS-RB2554
    • Esta rede é aberta (não requer senha).
  2. Abra a Interface Web:
    • Em smartphones e tablets, o Portal Captivo será iniciado automaticamente em tela cheia.
    • Se preferir abrir no navegador convencional, acesse:
      👉 http://192.168.4.1
  3. Teste os Acionamentos:
    • Clique nos botões dos 4 relés de potência para ouvir a comutação dos relés de 30A e conferir a sinalização visual.
    • Utilize as chamadas da API REST para integrar o sistema a supervisórios e plataformas IoT.

Solução de problemas

Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Painel Web de Controle para Placa ESP32 com 4 Relés de 30A e eu ajudarei a encontrar a solução.

O assistente usa IA e pode errar. Confirme informações críticas no datasheet oficial do fabricante.