Placa ESP32 com 8 Relés de 30A RB2553: Manual Técnico Completo

Introdução
Neste manual, será apresentado como instalar, configurar e utilizar a placa de controle e automação ESP32 com 8 Relés de 30A (RB2553). Se desejar adquirir esta placa, clique aqui.
Descrição geral do produto
O que é a Placa ESP32 com 8 Relés de 30A (RB2553)?
A placa ESP-32_RELAY_30A_X8_V1.2 (identificada pelo SKU RB2553 na RoboBuilders) é uma solução profissional de acionamento eletromecânico e processamento embarcado desenvolvida para ambientes industriais e prediais de alta demanda. Ela integra um microcontrolador ESP32-WROOM-32 da Espressif Systems (arquitetura dual-core de 32 bits rodando a até 240 MHz com Wi-Fi e Bluetooth nativos) a um conjunto de 8 relés selados de alta potência de 30A modelo SONGLE SLA-05VDC-SL-C.
Diferente de módulos convencionais de baixa potência (geralmente limitados a 10A com pistas finas na placa de circuito impresso), a RB2553 foi projetada com barramentos de potência reforçados, isolamento óptico dedicado por optoacopladores em cada canal e um conversor redutor chaveado (step-down buck) onboard de alta eficiência, permitindo alimentar toda a placa a partir de uma ampla faixa de tensão contínua industrial sem gerar aquecimento excessivo na lógica.
Para que serve?
- Acionamento direto de cargas elétricas pesadas em corrente alternada (até 250V AC / 30A) ou contínua (até 30V DC / 30A), dispensando contatores auxiliares em motobombas, compressores, bancos de resistências térmicas e refletores;
- Controle remoto e integração com redes Wi-Fi e Bluetooth (BLE), atuando como ponto de acesso autônomo (SoftAP) sem depender de roteador ou integrado a ecossistemas IoT (Home Assistant, ESPHome, Tasmota, MQTT e Node-RED);
- Automação expansível com barramento de GPIOs livres, disponibilizando portas de entrada analógicas e saídas digitais para conexão de sensores de temperatura, umidade, chaves fim de curso e atuadores secundários.
Por que devo usar?
- Capacidade de corrente superior: suporta correntes nominais de até 30A por canal, suportando o pico de partida de motores e evitando a colagem precoce de contatos elétricos;
- Isolamento galvânico total: cada bobina de relé é isolada da CPU do ESP32 por meio de optoacopladores dedicados, prevenindo que ruídos indutivos e transientes de chaveamento travem o microcontrolador;
- Alimentação flexível de 7V a 30V DC: regulador chaveado integrado de alta estabilidade que opera perfeitamente com fontes industriais padrão de 12V e 24V DC, além de baterias automotivas e sistemas solares.
Quando devo usar?
A placa RB2553 é indicada quando:
- É necessário controlar simultaneamente até 8 circuitos independentes de alta potência em um único ponto centralizado;
- A carga demanda corrente contínua entre 10A e 30A, onde módulos de relé convencionais sofreriam queima de trilha ou solda fria;
- O projeto exige conectividade de rede sem fio (Wi-Fi 2.4 GHz) para supervisão remota, envio de telemetria ou painel web local embarcado.
Não é a melhor escolha quando:
- O controle exige chaveamento contínuo em altíssima frequência ou controle de intensidade via PWM (nestes casos, utilize relés de estado sólido SSR ou pontes H/MOSFETs);
- A carga ultrapassa 30A por fase ou necessita de acionamento trifásico direto com bloqueio mecânico entre fases (sendo mandatória a utilização de contatores tripolares industriais);
- A aplicação envolve apenas sinais lógicos e sensores de baixa potência, sem nenhuma necessidade de chaveamento de tensão de rede.
Como funciona o chaveamento optoacoplado de alta potência
O acionamento dos relés na placa RB2553 segue o padrão de nível lógico alto (Active HIGH). Quando uma GPIO configurada como saída digital vai para nível alto (3.3V), ela aciona o LED interno do optoacoplador correspondente. O fototransistor do optoacoplador conduz e polariza a base do transistor bipolar de acionamento, que então energiza a bobina de 5V do relé SONGLE SLA-05VDC-SL-C.
A bobina cria um campo eletromagnético que atrai a armadura mecânica, fechando o contato entre o terminal comum (COM) e o terminal normalmente aberto (NO). Em paralelo com cada bobina existe um diodo de roda-livre (flyback), responsável por suprimir a força contraeletromotriz gerada no momento da desenergização da bobina, assegurando total estabilidade da alimentação lógica.
💡 Dica: como o isolamento galvânico entre a bobina e o circuito do ESP32 é garantido pelos optoacopladores, ruídos gerados pelas faíscas internas dos contatos mecânicos não se propagam para o barramento de dados do processador.
Variantes disponíveis
A RoboBuilders disponibiliza a linha de placas com relés industriais de 30A em duas configurações principais:
| Modelo / SKU | Número de Relés | Capacidade por Canal | Tensão de Entrada (VIN) | Barramento de GPIOs Livres |
|---|---|---|---|---|
| RB2553 (ESP-32_RELAY_30A_X8_V1.2) | 8 Canais | 30A @ 250V AC / 30V DC | 7V a 30V DC (ou 5V) | 10 GPIOs digitais + 2 analógicas (ADC) |
| RB2554 (ESP-32_RELAY_30A_X4_V1.1) | 4 Canais | 30A @ 250V AC / 30V DC | 7V a 28V DC (ou 5V) | 8 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_X8_V1.2 |
| Código do Produto / SKU | RoboBuilders RB2553 |
| Microcontrolador | ESP32-WROOM-32 / ESP32-WROOM-32E (Espressif Systems) |
| Núcleo de Processamento | Xtensa® Dual-Core 32-bit LX6 operando a até 240 MHz |
| Memória | 448 KB ROM, 520 KB SRAM, 4 MB Flash SPI externa |
| Conectividade Sem Fio | Wi-Fi 802.11 b/g/n (até 150 Mbps) e Bluetooth v4.2 BR/EDR + BLE |
| Canais de Chaveamento | 8 Relés SONGLE SLA-05VDC-SL-C (Alta Potência) |
| Capacidade Máxima de Carga (AC) | 30A em 250V AC (Cargas resistivas) |
| Capacidade Máxima de Carga (DC) | 30A em 30V DC (Cargas resistivas) |
| Tensão de Bobina dos Relés | 5V DC (acionada internamente via regulador/fonte da placa) |
| 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 8 canais |
| Entrada de Alimentação Principal (VIN) | Borne de parafuso: 7V a 30V DC (regulador chaveado buck) |
| Entrada de Alimentação Secundária (5V) | Borne conector dedicado de 5V DC |
| Porta USB Onboard | Conector USB Tipo C / Micro-USB somente para alimentação 5V |
| Porta de Programação / UART | Header de pinos serial (TXD0, RXD0, IO0, EN, GND, 5V/3V3) |
| LEDs Indicadores | LED de status onboard na GPIO 5 + LEDs de acionamento em cada relé |
| Botão de Usuário / Boot | Botão tátil físico acoplado à GPIO 0 com pull-up interno |
| Dimensões Físicas | 185 mm × 110 mm × 22 mm |
| Temperatura de Operação | −20°C a +70°C |
Capacidade de carga e limites operacionais dos relés de 30A
Cada relé SONGLE SLA-05VDC-SL-C é especificado para suportar até 30A. No entanto, em aplicações contínuas de engenharia elétrica, é fundamental considerar o fator de derating e a natureza da carga:
| Tipo de Carga | Corrente Máxima Recomendada | Observações de Projeto |
|---|---|---|
| Resistiva pura (aquecedores, estufas, resistências) | 25A a 30A | Chaveamento direto sem sobretensão de desenergização |
| Indutiva moderada (motores monofásicos, compressores) | 15A a 20A | Pico de partida de 4 a 6 vezes a corrente nominal |
| Lâmpadas de descarga / LED de grande potência | 12A a 15A | Corrente de irrupção (inrush current) elevada na ligação |
| Controle de fontes chaveadas pesadas | 16A | Carga capacitiva com pico instantâneo de partida |
⚠️ Atenção: para cargas indutivas em corrente alternada (motores elétricos e solenoides), é mandatório instalar um circuito amortecedor Snubber RC (resistor de 100 Ω em série com capacitor de 100 nF / 400V) em paralelo com os contatos ou com a própria carga para suprimir o arco elétrico e proteger os relés.
Circuito de alimentação e regulador chaveado
A placa RB2553 incorpora uma fonte chaveada step-down integrada. Diferente dos reguladores lineares (como a família 7805 ou AMS1117), o conversor chaveado suporta tensões de entrada de 7V a 30V DC com eficiência superior a 85%, sem gerar aquecimento excessivo na placa mesmo quando todos os 8 relés estão com suas bobinas energizadas simultaneamente (consumo aproximado de 1,2A na linha de 5V).
💡 Dica: ao alimentar a placa com 12V ou 24V pelo borne VIN, utilize uma fonte com capacidade mínima de corrente de 2A a 3A para garantir reserva de potência estável durante o disparo simultâneo dos 8 canais.
Pinagem e descrição dos terminais
A placa organiza suas conexões em bornes de parafuso reforçados para alta corrente e cabeçalhos de pinos macho de passo 2,54 mm para sinais lógicos e expansão.
Mapeamento dos 8 canais de relé (GPIOs)
Todos os relés são controlados diretamente por pinos de uso geral (GPIOs) do ESP32 com lógica Active HIGH:
| Canal | GPIO ESP32 | Direção | Modo Padrão | Lógica | Função no Circuito |
|---|---|---|---|---|---|
| Relé 1 (CH1) | GPIO 32 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 1 / Bobina do Relé 1 |
| Relé 2 (CH2) | GPIO 33 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 2 / Bobina do Relé 2 |
| Relé 3 (CH3) | GPIO 25 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 3 / Bobina do Relé 3 |
| Relé 4 (CH4) | GPIO 26 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 4 / Bobina do Relé 4 |
| Relé 5 (CH5) | GPIO 27 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 5 / Bobina do Relé 5 |
| Relé 6 (CH6) | GPIO 14 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 6 / Bobina do Relé 6 |
| Relé 7 (CH7) | GPIO 12 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 7 / Bobina do Relé 7 (Strapping Pin MTDI) |
| Relé 8 (CH8) | GPIO 13 | Saída | OUTPUT | Active HIGH | Dispara o Optoacoplador 8 / Bobina do Relé 8 |
⚠️ Atenção sobre a GPIO 12: a GPIO 12 é um pino especial de configuração de inicialização (strapping pin) do ESP32, que define a tensão da memória Flash SPI no boot. A placa RB2553 possui polarização interna adequada na placa para que o boot ocorra sem conflitos. Mantenha a GPIO 12 como saída apenas no código do seu programa.
Conexões de alimentação e periféricos onboard
| Terminal / Ponto | Identificação | Tipo | Nível Lógico | Descrição Técnica |
|---|---|---|---|---|
| Borne VIN | VIN | Entrada de Potência | 7V a 30V DC | Alimentação contínua da fonte principal |
| Borne GND | GND | Referência Comum | 0V | Negativo comum da alimentação e controle |
| Borne 5V | 5V | Entrada / Saída DC | 5V DC | Entrada direta de 5V ou saída após o regulador |
| Porta USB | USB | Alimentação | 5V DC | Exclusivamente para alimentação. Sem chip serial. |
| LED Onboard | GPIO 5 | Saída Digital | Active HIGH | LED de sinalização de status e heartbeat |
| Botão BOOT | GPIO 0 (IO0) | Entrada Digital | Active LOW | Botão tátil com pull-up interno e seletor de boot |
| UART0 TXD | GPIO 1 (TX) | Serial UART | 3.3V TTL | Linha de transmissão de dados serial (upload/debug) |
| UART0 RXD | GPIO 3 (RX) | Serial UART | 3.3V TTL | Linha de recepção de dados serial (upload/debug) |
| Pino Reset | EN (RST) | Controle Lógico | Active LOW | Linha de reset do microcontrolador ESP32 |
⛔ Perigo de conexão incorreta: a porta USB presente na placa RB2553 não possui chip de conversão serial integrado (como CH340, CP2102 ou FT232). Ela é fisicamente conectada apenas às linhas de alimentação 5V e GND. O upload de código requer conexão via conector UART.
Barramento de expansão de GPIOs
Para projetos que requerem sensores de temperatura, umidade, displays ou relés adicionais, a placa disponibiliza um barramento em fita de pinos de 2,54 mm com as seguintes portas:
| Grupo de Pinos | GPIOs Disponíveis | Tipo de Pino | Nível de Tensão |
|---|---|---|---|
| I/O Digital de Uso Geral | GPIO 2, 4, 15, 16, 17, 18, 19, 21, 22, 23 | Entrada ou Saída Digital | 3.3V TTL (Max 12 mA por pino) |
| Entradas Analógicas / Input-Only | GPIO 34, 35 | Apenas Entrada (ADC1) | 0 a 3.3V (Sem resistores de pull-up/down) |
Instalação e conexão
Requisitos de hardware e segurança elétrica
- Fonte de alimentação: fonte chaveada de 12V DC ou 24V DC com capacidade de 2A a 3A, conectada aos bornes VIN e GND;
- Dimensionamento dos condutores elétricos (Norma NBR 5410):
- Para correntes de carga de até 15A: condutores de cobre com seção mínima de 2,5 mm²;
- Para correntes de carga de até 25A: condutores de cobre com seção mínima de 4,0 mm²;
- Para correntes plenas de até 30A: condutores de cobre com seção mínima de 6,0 mm²;
- Disjuntor de proteção: instale disjuntores termomagnéticos apropriados na linha de alimentação de cada carga conectada aos relés;
- Conversor USB-Serial externo: módulo USB-Serial (FT232RL, CP2102 ou CH340) configurado para nível lógico de 3.3V.
Passo a passo da instalação
- Fixação mecânica da placa: instale a placa em um quadro elétrico ou painel com trilho DIN utilizando espaçadores isolantes, mantendo distância mínima de 15 mm de superfícies metálicas para evitar contatos acidentais;
- Conexão da alimentação da placa: ligue o cabo positivo da fonte (12V ou 24V) ao borne VIN e o cabo negativo ao borne GND, conferindo a polaridade com multímetro antes de energizar;
- Conexão das cargas de potência: passe a fase ou o condutor positivo da carga pelo terminal comum (COM) do canal escolhido e derive para a carga através do terminal normalmente aberto (NO);
- Instalação dos circuitos de proteção: instale filtros Snubber RC ou diodos flyback nos terminais de equipamentos indutivos (motores, bombas e bobinas);
- Gravação inicial de firmware: com a placa desenergizada na alta tensão, conecte o conversor USB-Serial ao header UART para efetuar a gravação do sketch.
Esquema de ligação de cargas AC e DC
Cada canal de relé possui 3 bornes de parafuso reforçados:
- COM (Comum): recebe a alimentação da carga (fase da rede AC ou positivo da fonte DC);
- NO (Normalmente Aberto): liga a carga ao fechar o relé;
- NC (Normalmente Fechado): mantém a carga ligada em repouso e desliga quando o relé é acionado.
Tabela de conexões elétricas de potência (De → Para)
| Origem | Destino | Cor do Cabo | Sinal Elétrico | Observações |
|---|---|---|---|---|
| Fonte DC 12V (+) | Borne VIN da Placa | Vermelho | 12V DC (+) | Entrada de alimentação lógica da placa |
| Fonte DC 12V (−) | Borne GND da Placa | Preto | 0V (GND) | Negativo comum da fonte |
| Rede AC (Fase - L) | Borne COM do Relé 1 (CH1) | Marrom | 110V/220V AC | Fase de entrada da rede elétrica |
| Borne NO do Relé 1 | Terminal 1 da Carga AC (30A) | Vermelho | Fase Chaveada | Contato fecha ao acionar a GPIO 32 |
| Rede AC (Neutro - N) | Terminal 2 da Carga AC (30A) | Azul | Neutro AC | Retorno neutro direto da rede à carga |
| Fonte Carga DC (+) | Borne COM do Relé 2 (CH2) | Vermelho | Positivo DC | Tensão contínua para motor/bomba DC |
| Borne NO do Relé 2 | Terminal (+) da Carga DC | Laranja | DC Chaveado | Contato fecha ao acionar a GPIO 33 |
| Fonte Carga DC (−) | Terminal (−) da Carga DC | Preto | Negativo DC | Retorno negativo direto da fonte DC |
⛔ Perigo de choque elétrico fatal: sempre desligue o disjuntor geral da rede elétrica antes de manusear ou apertar parafusos nos bornes COM, NO e NC. Tensões de 110V/220V AC presentes nos bornes podem causar acidentes fatais.
Conexão do gravador USB-Serial (UART)
Para enviar código à placa através da Arduino IDE ou do PlatformIO, utilize um conversor USB-Serial com sinal de 3.3V conectado ao header serial da placa RB2553:
Tabela de conexão do gravador serial
| Pino do Gravador USB-Serial | Pino do Header na Placa RB2553 | Sinal / Função | Regra de Conexão |
|---|---|---|---|
| GND | GND | Terra de Referência | Obrigatório unificar os GNDs |
| TXD (Transmissor) | RXD0 (GPIO 3) | Dados do PC → ESP32 | Ligação cruzada: TX vai no RX |
| RXD (Receptor) | TXD0 (GPIO 1) | Dados do ESP32 → PC | Ligação cruzada: RX vai no TX |
| 5V (ou 3V3) | 5V (ou 3V3) | Alimentação de gravação | Usado para alimentar o ESP32 na bancada |
Procedimento para entrar em Modo Bootloader (Download Boot):
- Conecte os pinos do conversor USB-Serial à placa e plugue o cabo USB no computador;
- Pressione e mantenha pressionado o botão físico BOOT / IO0 (GPIO 0) da placa;
- Pressione e solte o botão EN / RST (ou desconecte e reconecte brevemente o pino de alimentação mantendo BOOT pressionado);
- Solte o botão BOOT;
- O ESP32 entrará imediatamente no modo de recepção serial, pronto para receber o upload da Arduino IDE ou do PlatformIO.
Configuração de software
Preparação do ambiente de desenvolvimento
Para programar a placa na Arduino IDE:
- Acesse Arquivo > Preferências e adicione a URL do pacote ESP32 nas URLs adicionais de placas:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - No menu Ferramentas > Placa > Gerenciador de Placas, instale o pacote esp32 da Espressif Systems;
- Selecione a placa: Ferramentas > Placa > ESP32 Arduino > ESP32 Dev Module;
- Em Upload Speed, selecione
921600ou115200; - Em Porta, selecione a porta serial atribuída ao conversor USB-Serial.
Para quem utiliza PlatformIO (VS Code), utilize a seguinte configuração no arquivo platformio.ini:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Código básico de acionamento sequencial dos relés
O código abaixo inicializa todos os 8 canais de relé e o LED onboard, executando um ciclo sequencial de acionamento a cada segundo para teste funcional de bancada:
// Definição das GPIOs associadas aos 8 canais de relé de 30A
const int RELES[8] = {32, 33, 25, 26, 27, 14, 12, 13};
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 a comunicação serial em 115200 bps
Serial.println("Iniciando teste da Placa ESP32 8 Relés 30A (RB2553)...");
pinMode(LED_STATUS, OUTPUT); // Configura o pino do LED onboard como saída
digitalWrite(LED_STATUS, LOW);
pinMode(BOTAO_BOOT, INPUT_PULLUP); // Botão onboard com resistor de pull-up interno
// Configura todas as GPIOs dos relés como saída e garante estado desligado (LOW)
for (int i = 0; i < 8; i++) {
pinMode(RELES[i], OUTPUT); // Define o pino do relé como saída digital
digitalWrite(RELES[i], LOW); // Inicializa com relé desligado (Active HIGH)
}
Serial.println("Todos os relés inicializados em estado DESLIGADO.");
}
void loop() {
// Varredura progressiva ligando um relé por vez
for (int i = 0; i < 8; i++) {
Serial.printf("Ligando Relé %d (GPIO %d)\n", i + 1, RELES[i]);
digitalWrite(RELES[i], HIGH); // Liga o relé correspondente
digitalWrite(LED_STATUS, HIGH); // Acende o LED de status
delay(1000); // Aguarda 1 segundo com o relé acionado
digitalWrite(RELES[i], LOW); // Desliga o relé
digitalWrite(LED_STATUS, LOW); // Apaga o LED de status
delay(200); // Intervalo de segurança mecânico
}
delay(2000); // Pausa de 2 segundos antes de reiniciar a sequência
}
Código de controle com pulso temporizado e botão de boot
Em muitas automações (como abertura de portões, partida de motores ou sirenes industriais), o relé deve operar em modo pulso (inch / pulso temporizado) sem bloquear a execução com a função delay(). O sketch abaixo implementa acionamento por pulso de 2,5 segundos no Relé 1 ao pressionar o botão onboard:
const int PINO_RELE1 = 32; // Relé 1 conectado à GPIO 32
const int PINO_LED = 5; // LED de status onboard
const int PINO_BOTAO = 0; // Botão físico onboard IO0
unsigned long inicioPulso = 0; // Armazena o timestamp do início do pulso
const unsigned long DURACAO_PULSO = 2500; // Duração do pulso em milissegundos (2,5 segundos)
bool releAtivo = false; // Indicador de estado do relé
void setup() {
Serial.begin(115200); // Inicialização serial
pinMode(PINO_RELE1, OUTPUT); // Configura pino do relé 1 como saída
pinMode(PINO_LED, OUTPUT); // Configura pino do LED como saída
pinMode(PINO_BOTAO, INPUT_PULLUP); // Botão com pull-up interno ativo em nível baixo
digitalWrite(PINO_RELE1, LOW); // Relé 1 desligado por padrão
digitalWrite(PINO_LED, LOW);
Serial.println("Pressione o botão BOOT (IO0) para disparar pulso no Relé 1.");
}
void loop() {
// Leitura do botão onboard com lógica invertida (Active LOW)
if (digitalRead(PINO_BOTAO) == LOW && !releAtivo) {
delay(50); // Debounce simples de contato mecânico
if (digitalRead(PINO_BOTAO) == LOW) {
Serial.println("Botão pressionado: Disparando pulso de 2500 ms no Relé 1...");
digitalWrite(PINO_RELE1, HIGH); // Liga o relé 1
digitalWrite(PINO_LED, HIGH); // Acende o LED de status
releAtivo = true; // Atualiza flag de estado
inicioPulso = millis(); // Registra o tempo de início
}
}
// Verifica se o tempo do pulso decorreu sem travar o processador
if (releAtivo && (millis() - inicioPulso >= DURACAO_PULSO)) {
digitalWrite(PINO_RELE1, LOW); // Desliga o relé 1
digitalWrite(PINO_LED, LOW); // Desliga o LED
releAtivo = false; // Reseta flag
Serial.println("Tempo esgotado: Relé 1 desligado com sucesso.");
}
}
Automação com Web Server e API RESTful JSON
Este exemplo cria um ponto de acesso sem fio Wi-Fi (SoftAP) com servidor web HTTP nativo, permitindo controlar os relés e consultar seu estado via requisições RESTful em JSON:
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "ESP32-RELE-30A-RB2553"; // Nome da rede gerada pela placa
const char* password = ""; // Rede aberta sem senha
WebServer server(80); // Cria o servidor HTTP na porta 80
const int RELES[8] = {32, 33, 25, 26, 27, 14, 12, 13};
int estados[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Guarda o estado de cada canal
// Retorna JSON com estado de todos os relés
void handleStatus() {
String json = "{\"uptime\":" + String(millis() / 1000) + ",\"relays\":[";
for (int i = 0; i < 8; i++) {
json += "{\"ch\":" + String(i + 1) + ",\"pin\":" + String(RELES[i]) + ",\"val\":" + String(estados[i]) + "}";
if (i < 7) json += ",";
}
json += "]}";
server.sendHeader("Access-Control-Allow-Origin", "*");
server.send(200, "application/json", json);
}
// Alterna o estado de um canal de relé via parâmetro ?ch=1..8
void handleToggle() {
if (server.hasArg("ch")) {
int canal = server.arg("ch").toInt();
if (canal >= 1 && canal <= 8) {
int idx = canal - 1;
estados[idx] = !estados[idx];
digitalWrite(RELES[idx], estados[idx] ? HIGH : LOW);
String resposta = "{\"ch\":" + String(canal) + ",\"val\":" + String(estados[idx]) + "}";
server.sendHeader("Access-Control-Allow-Origin", "*");
server.send(200, "application/json", resposta);
return;
}
}
server.send(400, "application/json", "{\"error\":\"Canal invalido. Use ch=1 a 8\"}");
}
void setup() {
Serial.begin(115200);
// Inicializa as saídas dos 8 relés
for (int i = 0; i < 8; i++) {
pinMode(RELES[i], OUTPUT);
digitalWrite(RELES[i], LOW);
}
// Inicializa o Ponto de Acesso Wi-Fi do ESP32
WiFi.softAP(ssid, password);
IPAddress ip = WiFi.softAPIP();
Serial.print("Ponto de Acesso criado. Acesse http://");
Serial.println(ip);
// Configuração das rotas da API REST
server.on("/api/status", HTTP_GET, handleStatus);
server.on("/api/toggle", HTTP_GET, handleToggle);
server.begin(); // Inicia o servidor HTTP
Serial.println("Servidor HTTP ativo e pronto para requisições.");
}
void loop() {
server.handleClient(); // Atende requisições de clientes conectados
}
💡 Dica: com o código acima gravado, conecte o celular à rede Wi-Fi
ESP32-RELE-30A-RB2553e acesse via navegadorhttp://192.168.4.1/api/toggle?ch=1para acionar o Relé 1 ouhttp://192.168.4.1/api/statuspara obter o JSON de telemetria completo.
Exemplos de aplicação
Exemplo 1: Automação e acionamento de cargas industriais com controle sequencial
Em quadros elétricos com múltiplos motores ou resistências térmicas, energizar todos os circuitos no mesmo instante gera uma queda de tensão acentuada na rede elétrica devido à soma das correntes de partida. O sketch abaixo implementa uma rotina com rampa de inicialização escalonada com proteção contra religamento imediato:
const int CANAIS_POTENCIA[4] = {32, 33, 25, 26}; // Relés 1 a 4 para bancos de resistências
const unsigned long DELAY_ESCALONADO = 1500; // 1,5 segundo entre a ativação de cada estágio
void acionarCargasEmRampa() {
Serial.println("Iniciando acionamento progressivo de potência...");
for (int i = 0; i < 4; i++) {
digitalWrite(CANAIS_POTENCIA[i], HIGH); // Liga o estágio atual
Serial.printf("Estagio de potencia %d ativado com sucesso.\n", i + 1);
delay(DELAY_ESCALONADO); // Aguarda estabilização da rede elétrica
}
Serial.println("Todos os estágios operando em regime pleno.");
}
void desligarCargasGeral() {
Serial.println("Desligamento de segurança acionado!");
for (int i = 0; i < 4; i++) {
digitalWrite(CANAIS_POTENCIA[i], LOW); // Desliga imediatamente todas as saídas
}
}
Exemplo 2: Monitoramento e controle remoto via Web Server
Para uma experiência visual completa sem necessidade de instalar aplicativos dedicados, você pode utilizar o projeto oficial de código aberto Painel Web da RoboBuilders hospedado no GitHub. O firmware armazena a interface gráfica em Dark Mode na memória Flash SPI do microcontrolador (via diretiva PROGMEM), fornecendo uma aplicação de página única (Single Page Application) com portal captivo automático, botões de ação rápida em lote (“Ligar Todos” e “Desligar Todos”) e controle dinâmico dos pinos do barramento de expansão.
Projetos
Para implementar uma solução completa de controle e monitoramento sem a necessidade de programar a interface gráfica do zero, confira o projeto passo a passo documentado aqui no blog da RoboBuilders:
- Projeto: Painel Web para Placa ESP32 com 8 Relés de 30A (RB2553): aprenda a gravar e operar um firmware completo com servidor web embutido em Dark Mode, portal captivo automático, API RESTful em JSON, acionamentos individuais ou em lote (Ligar Todos / Desligar Todos) e controle dos pinos de expansão diretamente pelo navegador no celular ou computador, sem necessidade de instalar aplicativos externos.
💡 Dica: o tutorial do projeto inclui instruções para upload via PlatformIO, gravação serial via adaptador USB-UART e o código-fonte integral aberto pronto para produção.
Conclusão
Este manual abordou de forma completa a placa controladora ESP32 com 8 relés de 30A (RB2553), desde suas características de hardware até os esquemas de ligação elétrica e desenvolvimento de firmware:
- Descrição geral do produto: placa industrial de automação equipada com microcontrolador ESP32-WROOM-32 e 8 relés industriais SONGLE SLA-05VDC-SL-C com capacidade de 30A por canal;
- Especificações técnicas: ampla faixa de tensão de entrada (7V a 30V DC) com conversor chaveado integrado, isolamento galvânico por optoacopladores em cada canal e conectividade Wi-Fi e Bluetooth nativas;
- Pinagem e descrição dos terminais: mapeamento das GPIOs de controle (32, 33, 25, 26, 27, 14, 12 e 13), barramento de expansão para sensores externos e detalhamento da porta USB exclusiva para alimentação elétrica;
- Instalação e conexão: dimensionamento adequado de condutores de potência (4,0 a 6,0 mm² conforme a NBR 5410), esquema elétrico completo de cargas AC/DC com proteção snubber e guia de gravação via conversor USB-Serial externo no modo bootloader;
- Configuração de software: preparação do ambiente na Arduino IDE e no PlatformIO, código de teste com varredura sequencial, controle temporizado por
millis()com leitura de botão onboard e servidor Web com API RESTful JSON; - Exemplos de aplicação: partida escalonada de cargas industriais pesadas e integração com painel web autônomo embarcado;
- Projetos: aplicação prática completa disponível no blog com tutorial passo a passo para o painel web embarcado.
Com isolamento óptico dedicado, robustez mecânica para correntes elevadas de até 30A e a flexibilidade do ecossistema ESP32, a placa RB2553 se estabelece como a escolha definitiva para automação de maquinários, quadros de distribuição e projetos de Internet das Coisas de missão crítica.
Solução de problemas
Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Placa ESP32 com 8 Relés de 30A RB2553: 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.