Placa ESP32 com 4 Relés de 30A RB2554: Manual Técnico Completo

Introdução
Neste manual, será apresentado como instalar, configurar e utilizar a placa de controle e automação ESP32 com 4 Relés de 30A (RB2554). Se desejar adquirir esta placa, clique aqui.
Descrição geral do produto
O que é a Placa ESP32 com 4 Relés de 30A (RB2554)?
A placa ESP-32_RELAY_30A_X4_V1.1 (identificada comercialmente na RoboBuilders pelo código RB2554) é uma plataforma industrial integrada de processamento embarcado e chaveamento de potência. Ela combina o poder computacional do microcontrolador ESP32-WROOM-32E (arquitetura dual-core Xtensa® 32-bit LX6 de até 240 MHz com Wi-Fi 802.11 b/g/n e Bluetooth BLE 4.2 nativos) a um estágio de potência com 4 relés eletromecânicos selados de 30A modelo SONGLE SLA-05VDC-SL-C.
Projetada especificamente para ambientes ruidosos e painéis elétricos severos, a placa dispõe de isolamento galvânico independente por optoacopladores em cada canal de relé, pistas de alta corrente reforçadas na placa de circuito impresso (PCB) e circuitos integrados de alimentação dupla: um conversor redutor chaveado (step-down buck) para alimentação em corrente contínua de 7V a 30V DC e um módulo conversor interno para alimentação direta pela rede elétrica em corrente alternada de 90V a 250V AC, dispensando fontes externas na maioria das instalações prediais e industriais.
Para que serve?
- Comutação direta de cargas de elevada potência em corrente alternada (até 250V AC / 30A) ou contínua (até 30V DC / 30A), como motobombas, compressores de refrigeração, bancos de resistências elétricas e circuitos de iluminação de alta intensidade;
- Criação de sistemas de controle e telemetria autônomos sem fio, operando como ponto de acesso Wi-Fi independente (SoftAP) ou interligado a redes locais corporativas e plataformas de automação (Home Assistant, Node-RED, MQTT, ESPHome e Tasmota);
- Controle industrial integrado com barramento de GPIOs livres, permitindo a conexão direta de sensores de processo (temperatura, pressão, fim de curso e umidade) e expansões digitais ou analógicas.
Por que devo usar?
- Capacidade de chaveamento de 30A real: contatos sobredimensionados que suportam picos de partida de cargas indutivas, evitando a soldagem prematura dos contatos que ocorre com frequência em placas genéricas de 10A;
- Alimentação AC direta integrada (90V–250V AC): borne de entrada de alta tensão com fonte isolada onboard, eliminando a necessidade de adquirir e acomodar fontes externas de 12V em quadros de distribuição;
- Isolamento galvânico dedicado: cada relé é acionado através de optoacopladores independentes, garantindo que ruídos eletromagnéticos e transientes de chaveamento não interfiram na CPU do ESP32.
Quando devo usar?
A placa RB2554 é ideal quando:
- É necessário chavear de 1 a 4 circuitos independentes de alta potência (até 30A por canal) com segurança e confiabilidade industrial;
- A instalação possui apenas alimentação de rede elétrica alternada disponível (110V ou 220V AC) e você deseja energizar a placa diretamente sem fontes auxiliares;
- O projeto exige conectividade sem fio nativa para supervisão remota, portal captivo local ou comunicação via API REST JSON.
Não é indicada quando:
- O controle demanda modulação contínua de potência (PWM) ou chaveamento em altíssima frequência (utilize relés de estado sólido SSR ou módulos MOSFET);
- A carga excede 30A por fase ou necessita de chaveamento trifásico com travamento mecânico entre fases (nestes casos, acione bobinas de contatores tripolares industriais através da placa);
- O projeto requer mais de 4 canais de relé no mesmo painel (opte pela placa irmã RB2553 com 8 relés de 30A).
Como funciona o chaveamento optoacoplado de alta potência
O acionamento de cada canal segue o padrão de nível lógico alto (Active HIGH). Quando uma das GPIOs de controle (GPIOs 12, 13, 14 ou 15) é colocada em nível alto (3.3V), o circuito polariza o fotodiodo emissor interno do optoacoplador associado ao canal.
A luz infravermelha sensibiliza o fototransistor interno do optoacoplador, que passa a conduzir e excita a base de um transistor de potência. Este transistor fecha o circuito da bobina de 5V do relé SONGLE SLA-05VDC-SL-C correspondente. A atração magnética desloca a armadura interna mecânica, fechando o contato entre o terminal Comum (COM) e o terminal Normalmente Aberto (NO).
Um diodo de roda-livre (flyback) em antiparalelo com a bobina dissipa com rapidez a energia magnética no instante da desenergização, protegendo a eletrônica de acionamento contra transientes reversos de alta tensão.
💡 Dica: a barreira física e óptica dos optoacopladores garante imunidade total a interferências eletromagnéticas conduzidas, evitando que perturbações da rede elétrica causem resets acidentais do microcontrolador.
Variantes disponíveis
A linha de placas controladoras industriais de alta potência da RoboBuilders disponibiliza duas opções de expansão:
| Modelo / SKU | Canais de Relé | Capacidade por Canal | Faixas de Alimentação | Barramento de GPIOs Livres |
|---|---|---|---|---|
| RB2554 (ESP-32_RELAY_30A_X4_V1.1) | 4 Canais | 30A @ 250V AC / 30V DC | 90V–250V AC ou 7V–30V DC (ou 5V) | 14 GPIOs digitais + 2 analógicas (ADC) |
| RB2553 (ESP-32_RELAY_30A_X8_V1.2) | 8 Canais | 30A @ 250V AC / 30V DC | 7V–30V DC (ou 5V) | 10 GPIOs digitais + 2 analógicas (ADC) |
Especificações técnicas
Principais especificações
| Parâmetro | Especificação Técnica Detalhada |
|---|---|
| Modelo da Placa | ESP-32_RELAY_30A_X4_V1.1 (ou ESP-32_RELAY_30A_X4) |
| Código do Produto / SKU | RoboBuilders RB2554 |
| Microcontrolador | ESP32-WROOM-32E (Espressif Systems) |
| Arquitetura de CPU | Xtensa® Dual-Core 32-bit LX6 operando a até 240 MHz |
| Memória Interna | 448 KB ROM, 520 KB SRAM, 4 MB Flash SPI externa |
| Conectividade Sem Fio | Wi-Fi 802.11 b/g/n (2.4 GHz, até 150 Mbps) e Bluetooth v4.2 BR/EDR + BLE |
| Canais de Chaveamento | 4 Relés de Alta Potência SONGLE SLA-05VDC-SL-C |
| Capacidade Máxima por Canal (AC) | 30A em 250V AC (Cargas resistivas) |
| Capacidade Máxima por Canal (DC) | 30A em 30V DC (Cargas resistivas) |
| Tensão das Bobinas dos Relés | 5V DC (acionada internamente através da fonte onboard) |
| Lógica de Controle dos Relés | Active HIGH (nível lógico alto 3.3V fecha o contato NO) |
| Isolamento Elétrico | Optoacopladores independentes para cada um dos 4 canais |
| Entrada de Alimentação AC | Borne dedicado: 90V a 250V AC (50/60 Hz) com fonte isolada |
| Entrada de Alimentação DC | Borne de parafuso: 7V a 30V DC (regulador chaveado buck) |
| Entrada Auxiliar 5V DC | Borne conector dedicado de 5V DC |
| Porta de Programação / UART | Header macho de passo 2,54 mm: TXD0, RXD0, IO0, EN, GND, 5V/3V3 |
| LED Indicador Onboard | LED azul na GPIO 5 (Active HIGH) para status e diagnóstico |
| Botão de Boot / Usuário | Botão tátil físico acoplado à GPIO 0 com pull-up interno |
| Dimensões Físicas da Placa | 145 mm × 90 mm × 22 mm |
| Temperatura de Operação | −20°C a +70°C |
Capacidade de carga e limites operacionais dos relés de 30A
Para assegurar longevidade aos contatos do relé e evitar riscos operacionais, aplique os limites de corrente de acordo com a característica da carga:
| Natureza da Carga | Corrente Máxima Recomendada | Observações de Projeto |
|---|---|---|
| Resistiva pura (aquecedores, resistências, fornos) | 25A a 30A | Chaveamento estável com tensão e corrente em fase |
| Indutiva pesada (motobombas, compressores, motores) | 15A a 20A | Corrente de partida de 4 a 6 vezes a corrente nominal |
| Iluminação LED de alta potência / Lâmpadas vapor | 12A a 15A | Alta corrente de irrupção capacitiva (inrush current) |
| Fontes chaveadas e carregadores industriais | 16A | Carga capacitiva na energização |
⚠️ Atenção: para cargas indutivas operando em corrente alternada (motobombas, compressores e ventiladores), é fundamental ligar um circuito amortecedor Snubber RC (resistor de 100 Ω em série com capacitor de 100 nF / 400V) em paralelo com a carga ou com os contatos para extinguir o arco voltaico de abertura.
Circuito de alimentação dupla (AC/DC)
Um dos grandes diferenciais da RB2554 é seu sistema duplo de alimentação:
- Entrada de Alta Tensão AC (90V–250V AC): permite ligar a placa diretamente na rede elétrica sem transformadores ou adaptadores externos;
- Entrada de Baixa Tensão DC (7V–30V DC): através de conversor chaveado step-down de alta eficiência, compatível com baterias automotivas de 12V e fontes industriais de 24V DC.
Cada bobina dos relés de 30A consome cerca de 185 mA a 5V. Com os 4 canais ligados simultaneamente, o consumo atinge 740 mA a 750 mA apenas no estágio dos relés. Ao alimentar a placa pela entrada DC, utilize uma fonte de no mínimo 12V / 1,5A ou 5V / 2A para assegurar estabilidade operacional sem quedas de tensão (brownout).
Pinagem e descrição dos terminais
Mapeamento dos 4 canais de relé (GPIOs)
Os relés de potência da placa RB2554 são acionados exclusivamente por pinos de saída digital do ESP32 com lógica Active HIGH:
| Canal do Relé | GPIO ESP32 | Direção | Modo Padrão | Lógica | Descrição Funcional |
|---|---|---|---|---|---|
| Relé 1 (CH1) | GPIO 12 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 1 / Bobina do Relé 1 (Strapping MTDI) |
| Relé 2 (CH2) | GPIO 13 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 2 / Bobina do Relé 2 |
| Relé 3 (CH3) | GPIO 14 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 3 / Bobina do Relé 3 |
| Relé 4 (CH4) | GPIO 15 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 4 / Bobina do Relé 4 (Strapping MTDO) |
⚠️ Atenção sobre as GPIOs 12 e 15: as GPIOs 12 e 15 são pinos de configuração de boot (strapping pins) do ESP32. A placa RB2554 possui circuitos resistivos de terminação balanceados para garantir a inicialização segura. Configure essas GPIOs como saídas no código apenas dentro da função
setup().
Conexões de alimentação e periféricos onboard
| Terminal / Ponto | Identificação | Tipo de Conexão | Nível Elétrico | Função no Hardware |
|---|---|---|---|---|
| Borne AC (L / N) | AC IN | Borne de Parafuso | 90V a 250V AC | Alimentação direta da rede elétrica |
| Borne VIN | VIN | Borne de Parafuso | 7V a 30V DC | Entrada contínua para fontes 12V/24V |
| Borne GND | GND | Borne de Parafuso | 0V | Referência comum negativa |
| Borne 5V | 5V | Borne de Parafuso | 5V DC | Entrada direta 5V ou saída regulada |
| LED Onboard | GPIO 5 | Saída Digital | Active HIGH | Indicador luminoso de status/heartbeat |
| Botão BOOT | GPIO 0 (IO0) | Entrada Digital | Active LOW | Botão de seleção de boot e uso geral |
| UART0 TX | GPIO 1 (TX) | Serial UART | 3.3V TTL | Linha serial de transmissão (Upload/Debug) |
| UART0 RX | GPIO 3 (RX) | Serial UART | 3.3V TTL | Linha serial de recepção (Upload/Debug) |
| Pino Reset | EN (RST) | Entrada de Controle | Active LOW | Reinicia o microcontrolador ESP32 |
Barramento de expansão de GPIOs
A RB2554 expõe um conjunto abrangente de GPIOs livres em conector fêmea/macho de passo 2,54 mm:
| Grupo | GPIOs Disponíveis | Tipo de Pino | Tensão Máxima |
|---|---|---|---|
| I/O Digital Configurável | GPIO 2, 4, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33 | Entrada / Saída Digital | 3.3V TTL (máx. 12 mA por pino) |
| Entradas Analógicas Puras | GPIO 34, 35 | Apenas Entrada (ADC1) | 0V a 3.3V (sem pull-up interno) |
Instalação e conexão
Requisitos de hardware e segurança elétrica
- Alimentação: fonte de rede 110V/220V AC ligada aos bornes AC, ou fonte externa de 12V DC / 1,5A ligada em VIN e GND;
- Dimensionamento dos condutores elétricos (Norma NBR 5410):
- Para correntes até 15A: condutores de cobre com seção mínima de 2,5 mm²;
- Para correntes até 25A: condutores de cobre com seção mínima de 4,0 mm²;
- Para correntes de até 30A contínuos: condutores de cobre de 6,0 mm²;
- Disjuntores termomagnéticos: utilize disjuntores compatíveis para a proteção de cada circuito comandado;
- Conversor USB-Serial externo: módulo conversor FT232RL, CP2102 ou CH340 com sinal em nível lógico 3.3V.
Passo a passo da instalação
- Fixação mecânica da placa: instale a placa sobre uma superfície isolante em trilho DIN ou quadro de distribuição, assegurando distância mínima de 15 mm de partes metálicas;
- Conexão da linha de alimentação: conecte os fios da rede alternada aos bornes AC IN (L/N), ou ligue a fonte 12V nos bornes VIN (+) e GND (−);
- Fiação das cargas elétricas: para cada canal utilizado, leve o condutor da fase ou positivo ao borne COM e derive para o equipamento através do borne NO;
- Instalação de proteções contra picos: acople snubbers RC nos contatos de cargas indutivas para prolongar a vida útil do relé;
- Gravação do firmware: efetue o upload do sketch com a rede elétrica desligada, utilizando o conversor USB-Serial conectado ao header UART.
Esquema de ligação de cargas AC e DC
Cada relé SONGLE SLA-05VDC-SL-C conta com 3 bornes de saída de alta corrente:
- COM (Comum): recebe a linha de alimentação (fase AC ou positivo DC) que será comutada;
- NO (Normalmente Aberto): circuito aberto em repouso e fechado quando o relé é acionado;
- NC (Normalmente Fechado): circuito fechado em repouso e aberto no acionamento.
Tabela de conexões elétricas de potência (De → Para)
| Terminal de Origem | Terminal de Destino (Placa / Carga) | Cor do Fio | Tipo de Sinal | Observação Técnica |
|---|---|---|---|---|
| Fonte 12V DC (+) | Borne VIN (7-30V) da Placa | Vermelho | Alimentação DC | Entrada de alimentação lógica e bobinas |
| Fonte 12V DC (−) | Borne GND da Placa | Preto | Referência Comum | Interligar o terra comum |
| Rede Elétrica (Fase - L) | Borne COM do Relé 1 (CH1 - GPIO 12) | Marrom | Linha AC (110V/220V) | Linha de fase da rede elétrica |
| Borne NO do Relé 1 (CH1) | Terminal 1 da Carga AC (30A) | Vermelho | Fase Chaveada | Fecha contato no acionamento do relé |
| Rede Elétrica (Neutro - N) | Terminal 2 da Carga AC (30A) | Azul Claro | Retorno Neutro | Retorno neutro direto à carga |
| Fonte de Carga 24V DC (+) | Borne COM do Relé 2 (CH2 - GPIO 13) | Vermelho | Positivo DC Carga | Linha de alimentação da carga contínua |
| Borne NO do Relé 2 (CH2) | Terminal (+) do Motor / Bomba DC | Laranja | Linha DC Chaveada | Fecha circuito no acionamento |
| Fonte de Carga 24V DC (−) | Terminal (−) do Motor / Bomba DC | Preto | Retorno Negativo | Retorno negativo direto à fonte de carga |
⛔ Perigo de choque elétrico grave: sempre desligue o disjuntor geral da rede elétrica antes de manusear ou apertar parafusos nos bornes AC IN, COM, NO e NC. Tensões de 110V/220V AC presentes nos bornes podem causar acidentes fatais.
Conexão do gravador USB-Serial (UART)
Como a placa RB2554 não inclui conversor USB-Serial integrado, a gravação de código requer um módulo externo (CP2102, FTDI ou CH340) configurado para 3.3V TTL:
Tabela de conexão do gravador serial
| Pino do Conversor USB-Serial | Pino do Header UART (Placa RB2554) | Cor do Fio | Função do Sinal | Regra de Ligação |
|---|---|---|---|---|
| 5V (ou 3.3V) | 5V (ou 3V3) | Vermelho | Alimentação Lógica | Fornece energia ao ESP32 na gravação |
| GND | GND | Preto | Terra de Referência | Obrigatório interligar os terras |
| TXD (Transmissão) | RXD0 (GPIO 3) | Amarelo | Recepção de Dados | Ligação cruzada: TX do módulo no RX da placa |
| RXD (Recepção) | TXD0 (GPIO 1) | Verde | Envio de Telemetria | Ligação cruzada: RX do módulo no TX da placa |
Procedimento para colocar o ESP32 em modo Bootloader:
- Conecte os pinos do conversor serial à placa com a alta tensão AC totalmente desligada;
- Conecte o cabo USB do conversor serial ao computador;
- Pressione e mantenha pressionado o botão fásico BOOT (GPIO 0) da placa;
- Pressione e solte o botão EN / RST (ou desconecte e reconecte brevemente o pino 5V/3V3 mantendo BOOT pressionado);
- Solte o botão BOOT;
- O microcontrolador estará em modo de gravação serial (Download Boot), pronto para receber o upload.
Configuração de software
Preparação do ambiente de desenvolvimento
Para programar na Arduino IDE:
- Abra Arquivo > Preferências e insira a URL do pacote ESP32 nas URLs adicionais:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Em Ferramentas > Placa > Gerenciador de Placas, instale o pacote esp32 da Espressif;
- Selecione a placa: ESP32 Dev Module;
- Configure a velocidade de upload para
115200ou921600; - Selecione a porta COM correspondente ao conversor USB-Serial.
Para quem utiliza PlatformIO (VS Code), utilize o seguinte platformio.ini:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Código básico de acionamento sequencial dos 4 relés
O sketch abaixo testa individualmente os 4 canais de relé de 30A e o LED onboard em ciclo contínuo:
// Mapeamento oficial dos 4 canais de relé da placa RB2554
const int RELES[4] = {12, 13, 14, 15}; // GPIOs dos relés 1 a 4
const int LED_STATUS = 5; // LED onboard na GPIO 5
const int BOTAO_BOOT = 0; // Botão BOOT / IO0 na GPIO 0
void setup() {
Serial.begin(115200); // Inicializa comunicação serial em 115200 bps
Serial.println("Iniciando teste da Placa ESP32 4 Relés 30A (RB2554)...");
pinMode(LED_STATUS, OUTPUT); // Configura pino do LED como saída
digitalWrite(LED_STATUS, LOW);
pinMode(BOTAO_BOOT, INPUT_PULLUP); // Configura botão onboard com pull-up interno
// Configura todas as GPIOs dos relés como saída e garante estado desligado (LOW)
for (int i = 0; i < 4; i++) {
pinMode(RELES[i], OUTPUT); // Define o pino do relé como saída digital
digitalWrite(RELES[i], LOW); // Inicializa desligado (Active HIGH)
}
Serial.println("Os 4 canais de relé foram inicializados com sucesso.");
}
void loop() {
// Varredura progressiva acionando um relé por vez
for (int i = 0; i < 4; i++) {
Serial.printf("Ligando Relé %d (GPIO %d)\n", i + 1, RELES[i]);
digitalWrite(RELES[i], HIGH); // Energiza a bobina do relé
digitalWrite(LED_STATUS, HIGH); // Acende o LED onboard
delay(1000); // Mantém ligado por 1 segundo
digitalWrite(RELES[i], LOW); // Desliga o relé
digitalWrite(LED_STATUS, LOW); // Apaga o LED onboard
delay(300); // Pausa de alívio mecânico
}
delay(2000); // Pausa de 2 segundos antes do próximo ciclo
}
Código de controle com pulso temporizado e botão de boot
Ideal para automações que exigem pulsos rápidos (abertura de fechaduras elétricas, comandos de portão eletrônico ou rearme de contatores) sem travar a CPU com funções bloqueantes:
const int PINO_RELE1 = 12; // Relé 1 conectado à GPIO 12
const int PINO_LED = 5; // LED de status onboard
const int PINO_BOTAO = 0; // Botão físico onboard IO0
unsigned long tempoInicio = 0; // Registra o timestamp do início do pulso
const unsigned long TEMPO_PULSO = 2000; // Duração do acionamento em ms (2 segundos)
bool pulsoAtivo = false; // Flag indicadora do estado do pulso
void setup() {
Serial.begin(115200); // Inicialização da porta serial
pinMode(PINO_RELE1, OUTPUT); // Define GPIO do relé 1 como saída
pinMode(PINO_LED, OUTPUT); // Define GPIO do LED como saída
pinMode(PINO_BOTAO, INPUT_PULLUP); // Botão onboard com resistor de elevação ativo em LOW
digitalWrite(PINO_RELE1, LOW); // Inicia com relé 1 desligado
digitalWrite(PINO_LED, LOW);
Serial.println("Pressione o botão BOOT (IO0) para acionar pulso de 2s no Relé 1.");
}
void loop() {
// Leitura do botão onboard com debounce simples
if (digitalRead(PINO_BOTAO) == LOW && !pulsoAtivo) {
delay(50); // Filtro mecânico contra bouncing
if (digitalRead(PINO_BOTAO) == LOW) {
Serial.println("Comando recebido: Acionando Relé 1 por 2000 ms...");
digitalWrite(PINO_RELE1, HIGH); // Liga o relé 1
digitalWrite(PINO_LED, HIGH); // Liga o LED
pulsoAtivo = true; // Sinaliza início do pulso
tempoInicio = millis(); // Armazena o instante de ativação
}
}
// Verifica o término da contagem sem bloquear o fluxo do programa
if (pulsoAtivo && (millis() - tempoInicio >= TEMPO_PULSO)) {
digitalWrite(PINO_RELE1, LOW); // Desliga o relé 1
digitalWrite(PINO_LED, LOW); // Desliga o LED
pulsoAtivo = false; // Reseta a flag de controle
Serial.println("Tempo concluído: Relé 1 desativado com segurança.");
}
}
Automação com Web Server e API RESTful JSON
Este sketch configura a placa RB2554 como Ponto de Acesso Wi-Fi (SoftAP) e inicia um servidor web HTTP capaz de controlar os 4 relés via comandos RESTful padronizados:
#include <WiFi.h>
#include <WebServer.h>
const char* redeSSID = "ESP32-RELE-30A-RB2554"; // Nome da rede gerada pela placa
const char* senhaRede = ""; // Ponto de acesso aberto sem senha
WebServer servidor(80); // Inicializa o servidor HTTP na porta 80
const int RELES[4] = {12, 13, 14, 15}; // GPIOs dos 4 canais de relé
int statusReles[4] = {0, 0, 0, 0}; // Array com os estados atuais
// Rota para consulta do status geral em JSON
void rotaStatus() {
String json = "{\"uptime\":" + String(millis() / 1000) + ",\"relays\":[";
for (int i = 0; i < 4; i++) {
json += "{\"ch\":" + String(i + 1) + ",\"pin\":" + String(RELES[i]) + ",\"val\":" + String(statusReles[i]) + "}";
if (i < 3) json += ",";
}
json += "]}";
servidor.sendHeader("Access-Control-Allow-Origin", "*");
servidor.send(200, "application/json", json);
}
// Rota para alternar o estado de um relé específico (?ch=1..4)
void rotaToggle() {
if (servidor.hasArg("ch")) {
int canal = servidor.arg("ch").toInt();
if (canal >= 1 && canal <= 4) {
int idx = canal - 1;
statusReles[idx] = !statusReles[idx];
digitalWrite(RELES[idx], statusReles[idx] ? HIGH : LOW);
String resposta = "{\"ch\":" + String(canal) + ",\"val\":" + String(statusReles[idx]) + "}";
servidor.sendHeader("Access-Control-Allow-Origin", "*");
servidor.send(200, "application/json", resposta);
return;
}
}
servidor.send(400, "application/json", "{\"error\":\"Canal invalido. Use ch=1 a 4\"}");
}
// Rota para ligar ou desligar todos os relés simultaneamente (?state=0 ou 1)
void rotaRelays() {
if (servidor.hasArg("state")) {
int estado = servidor.arg("state").toInt();
for (int i = 0; i < 4; i++) {
statusReles[i] = (estado == 1) ? 1 : 0;
digitalWrite(RELES[i], statusReles[i] ? HIGH : LOW);
}
servidor.sendHeader("Access-Control-Allow-Origin", "*");
servidor.send(200, "application/json", "{\"success\":true}");
return;
}
servidor.send(400, "application/json", "{\"error\":\"Parametro state ausente\"}");
}
void setup() {
Serial.begin(115200);
// Inicializa os pinos dos 4 relés
for (int i = 0; i < 4; i++) {
pinMode(RELES[i], OUTPUT);
digitalWrite(RELES[i], LOW);
}
// Inicializa o Ponto de Acesso Wi-Fi do ESP32
WiFi.softAP(redeSSID, senhaRede);
Serial.print("Ponto de acesso criado. Acesse http://");
Serial.println(WiFi.softAPIP());
// Registra as rotas da API REST
servidor.on("/api/status", HTTP_GET, rotaStatus);
servidor.on("/api/toggle", HTTP_GET, rotaToggle);
servidor.on("/api/relays", HTTP_GET, rotaRelays);
servidor.begin(); // Inicia o serviço HTTP
Serial.println("Servidor HTTP ativo e pronto para requisições.");
}
void loop() {
servidor.handleClient(); // Processa as requisições de clientes conectados
}
💡 Dica: grave o sketch acima, conecte o celular à rede Wi-Fi
ESP32-RELE-30A-RB2554e acesse pelo navegadorhttp://192.168.4.1/api/toggle?ch=1para comutar o Relé 1, ouhttp://192.168.4.1/api/relays?state=1para acionar os 4 canais juntos.
Exemplos de aplicação
Exemplo 1: Automação de motobomba e aquecimento com intertravamento de segurança
Em sistemas de piscinas ou caldeiras, a resistência de aquecimento (Relé 2) jamais pode ser ativada caso a motobomba de circulação de água (Relé 1) esteja desligada, sob risco de queima por superaquecimento. O código a seguir implementa uma lógica de intertravamento de proteção:
const int RELE_BOMBA = 12; // Relé 1: Motobomba de circulação de água (GPIO 12)
const int RELE_AQUECEDOR = 13; // Relé 2: Resistência térmica de 30A (GPIO 13)
bool estadoBomba = false;
bool estadoAquecedor = false;
void ligarBomba() {
digitalWrite(RELE_BOMBA, HIGH);
estadoBomba = true;
Serial.println("Motobomba ativada com sucesso.");
}
void desligarBomba() {
// Intertravamento: desliga obrigatoriamente o aquecimento antes de cortar o fluxo
if (estadoAquecedor) {
digitalWrite(RELE_AQUECEDOR, LOW);
estadoAquecedor = false;
Serial.println("Aquecedor desligado automaticamente por seguranca!");
}
digitalWrite(RELE_BOMBA, LOW);
estadoBomba = false;
Serial.println("Motobomba desativada.");
}
bool ligarAquecedor() {
// Permite ligar o aquecedor somente se a bomba estiver em pleno funcionamento
if (!estadoBomba) {
Serial.println("FALHA: Impossivel ligar aquecedor sem fluxo de agua na bomba.");
return false;
}
digitalWrite(RELE_AQUECEDOR, HIGH);
estadoAquecedor = true;
Serial.println("Resistencia de aquecimento ativada com seguranca.");
return true;
}
Exemplo 2: Monitoramento e controle remoto via Web Server
Para usufruir de uma experiência visual interativa completa e profissional sem depender da criação manual de interfaces gráficas, utilize o projeto oficial Painel Web da RoboBuilders RB2554.
O firmware em código aberto armazena uma aplicação Single Page Application completa em Dark Mode na memória Flash SPI do ESP32 (PROGMEM), fornecendo portal captivo imediato, cards de acionamento de 30A com confirmação em tempo real e controle dinâmico de todas as GPIOs do barramento de expansão:
Projetos
Para implementar uma solução completa de automação, diagnóstico e controle local sem precisar programar a interface gráfica do zero, confira o projeto passo a passo documentado aqui no blog da RoboBuilders:
- Projeto: Painel Web de Controle para Placa ESP32 com 4 Relés de 30A (RB2554): aprenda a compilar e gravar um firmware completo de código aberto com interface moderna em Dark Mode, portal captivo automático, API RESTful em JSON, acionamento por pulso temporizado de 1 segundo, ações em lote (Ligar Todos / Desligar Todos) e configuração dinâmica de todas as GPIOs de expansão diretamente pelo navegador no smartphone ou PC.
💡 Dica: o projeto inclui suporte para gravação rápida via PlatformIO, diagrama de ligação serial UART detalhado e o código-fonte integral pronto para uso em campo.
Conclusão
Este manual abordou de forma completa a placa controladora ESP32 com 4 relés de 30A (RB2554), desde suas características de hardware até os esquemas de ligação elétrica e desenvolvimento de firmware:
- Descrição geral do produto: plataforma industrial com microcontrolador ESP32-WROOM-32E, 4 relés selados SONGLE SLA-05VDC-SL-C de 30A por canal e alimentação de alta tensão AC integrada;
- Especificações técnicas: suporte para chaveamento de cargas AC (até 250V / 30A) e DC (até 30V / 30A), entrada bivolt AC direta de 90V a 250V AC e ampla faixa DC de 7V a 30V DC com conversor buck integrado;
- Pinagem e descrição dos terminais: mapeamento das GPIOs de controle dos relés (12, 13, 14 e 15), periféricos onboard (LED GPIO 5 e botão IO0) e barramento com 14 GPIOs digitais livres e 2 entradas analógicas;
- Instalação e conexão: boas práticas de cabeamento conforme a NBR 5410 (condutores de 4,0 a 6,0 mm²), esquemas de ligação AC/DC com proteção snubber e procedimentos de bootloader para gravação via UART;
- Configuração de software: preparação do ambiente na Arduino IDE e no PlatformIO, código de teste sequencial, controle temporizado não-bloqueante por
millis()e servidor Web com API RESTful JSON; - Exemplos de aplicação: intertravamento de segurança para bombas e aquecimento industrial, e operação com painel web autônomo embarcado;
- Projetos: tutorial prático completo com firmware de código aberto, portal captivo e interface SPA Dark Mode disponível no blog.
Combinando alta capacidade de corrente de 30A, isolamento óptico dedicado e alimentação bivolt direta integrada, a placa RB2554 se destaca como uma das soluções mais versáteis e robustas do mercado para automação predial, rural e industrial.
Solução de problemas
Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Placa ESP32 com 4 Relés de 30A RB2554: Manual Técnico Completo 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.