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

Placa ESP32 8 Relés 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 / SKUNúmero de RelésCapacidade por CanalTensão de Entrada (VIN)Barramento de GPIOs Livres
RB2553 (ESP-32_RELAY_30A_X8_V1.2)8 Canais30A @ 250V AC / 30V DC7V a 30V DC (ou 5V)10 GPIOs digitais + 2 analógicas (ADC)
RB2554 (ESP-32_RELAY_30A_X4_V1.1)4 Canais30A @ 250V AC / 30V DC7V a 28V DC (ou 5V)8 GPIOs digitais + 2 analógicas (ADC)
Placa controladora ESP32 com 8 relés de alta potência de 30A RB2553 da RoboBuilders

Especificações técnicas

Principais especificações

ParâmetroEspecificação Técnica Detalhada
Modelo da PlacaESP-32_RELAY_30A_X8_V1.2
Código do Produto / SKURoboBuilders RB2553
MicrocontroladorESP32-WROOM-32 / ESP32-WROOM-32E (Espressif Systems)
Núcleo de ProcessamentoXtensa® Dual-Core 32-bit LX6 operando a até 240 MHz
Memória448 KB ROM, 520 KB SRAM, 4 MB Flash SPI externa
Conectividade Sem FioWi-Fi 802.11 b/g/n (até 150 Mbps) e Bluetooth v4.2 BR/EDR + BLE
Canais de Chaveamento8 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és5V DC (acionada internamente via regulador/fonte da placa)
Lógica de Controle dos RelésActive HIGH (nível lógico alto 3.3V fecha o contato NO)
Isolamento ElétricoOptoacopladores 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 OnboardConector USB Tipo C / Micro-USB somente para alimentação 5V
Porta de Programação / UARTHeader de pinos serial (TXD0, RXD0, IO0, EN, GND, 5V/3V3)
LEDs IndicadoresLED de status onboard na GPIO 5 + LEDs de acionamento em cada relé
Botão de Usuário / BootBotão tátil físico acoplado à GPIO 0 com pull-up interno
Dimensões Físicas185 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 CargaCorrente Máxima RecomendadaObservações de Projeto
Resistiva pura (aquecedores, estufas, resistências)25A a 30AChaveamento direto sem sobretensão de desenergização
Indutiva moderada (motores monofásicos, compressores)15A a 20APico de partida de 4 a 6 vezes a corrente nominal
Lâmpadas de descarga / LED de grande potência12A a 15ACorrente de irrupção (inrush current) elevada na ligação
Controle de fontes chaveadas pesadas16ACarga 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:

CanalGPIO ESP32DireçãoModo PadrãoLógicaFunção no Circuito
Relé 1 (CH1)GPIO 32SaídaOUTPUTActive HIGHDispara o Optoacoplador 1 / Bobina do Relé 1
Relé 2 (CH2)GPIO 33SaídaOUTPUTActive HIGHDispara o Optoacoplador 2 / Bobina do Relé 2
Relé 3 (CH3)GPIO 25SaídaOUTPUTActive HIGHDispara o Optoacoplador 3 / Bobina do Relé 3
Relé 4 (CH4)GPIO 26SaídaOUTPUTActive HIGHDispara o Optoacoplador 4 / Bobina do Relé 4
Relé 5 (CH5)GPIO 27SaídaOUTPUTActive HIGHDispara o Optoacoplador 5 / Bobina do Relé 5
Relé 6 (CH6)GPIO 14SaídaOUTPUTActive HIGHDispara o Optoacoplador 6 / Bobina do Relé 6
Relé 7 (CH7)GPIO 12SaídaOUTPUTActive HIGHDispara o Optoacoplador 7 / Bobina do Relé 7 (Strapping Pin MTDI)
Relé 8 (CH8)GPIO 13SaídaOUTPUTActive HIGHDispara 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 / PontoIdentificaçãoTipoNível LógicoDescrição Técnica
Borne VINVINEntrada de Potência7V a 30V DCAlimentação contínua da fonte principal
Borne GNDGNDReferência Comum0VNegativo comum da alimentação e controle
Borne 5V5VEntrada / Saída DC5V DCEntrada direta de 5V ou saída após o regulador
Porta USBUSBAlimentação5V DCExclusivamente para alimentação. Sem chip serial.
LED OnboardGPIO 5Saída DigitalActive HIGHLED de sinalização de status e heartbeat
Botão BOOTGPIO 0 (IO0)Entrada DigitalActive LOWBotão tátil com pull-up interno e seletor de boot
UART0 TXDGPIO 1 (TX)Serial UART3.3V TTLLinha de transmissão de dados serial (upload/debug)
UART0 RXDGPIO 3 (RX)Serial UART3.3V TTLLinha de recepção de dados serial (upload/debug)
Pino ResetEN (RST)Controle LógicoActive LOWLinha 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 PinosGPIOs DisponíveisTipo de PinoNível de Tensão
I/O Digital de Uso GeralGPIO 2, 4, 15, 16, 17, 18, 19, 21, 22, 23Entrada ou Saída Digital3.3V TTL (Max 12 mA por pino)
Entradas Analógicas / Input-OnlyGPIO 34, 35Apenas 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

  1. 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;
  2. 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;
  3. 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);
  4. Instalação dos circuitos de proteção: instale filtros Snubber RC ou diodos flyback nos terminais de equipamentos indutivos (motores, bombas e bobinas);
  5. 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.
Diagrama esquemático de ligação elétrica da placa ESP32 com 8 relés de 30A RB2553 para cargas AC e DC

Tabela de conexões elétricas de potência (De → Para)

OrigemDestinoCor do CaboSinal ElétricoObservações
Fonte DC 12V (+)Borne VIN da PlacaVermelho12V DC (+)Entrada de alimentação lógica da placa
Fonte DC 12V (−)Borne GND da PlacaPreto0V (GND)Negativo comum da fonte
Rede AC (Fase - L)Borne COM do Relé 1 (CH1)Marrom110V/220V ACFase de entrada da rede elétrica
Borne NO do Relé 1Terminal 1 da Carga AC (30A)VermelhoFase ChaveadaContato fecha ao acionar a GPIO 32
Rede AC (Neutro - N)Terminal 2 da Carga AC (30A)AzulNeutro ACRetorno neutro direto da rede à carga
Fonte Carga DC (+)Borne COM do Relé 2 (CH2)VermelhoPositivo DCTensão contínua para motor/bomba DC
Borne NO do Relé 2Terminal (+) da Carga DCLaranjaDC ChaveadoContato fecha ao acionar a GPIO 33
Fonte Carga DC (−)Terminal (−) da Carga DCPretoNegativo DCRetorno 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:

Diagrama de conexão UART com conversor USB-Serial para gravação de firmware na placa ESP32 RB2553

Tabela de conexão do gravador serial

Pino do Gravador USB-SerialPino do Header na Placa RB2553Sinal / FunçãoRegra de Conexão
GNDGNDTerra de ReferênciaObrigatório unificar os GNDs
TXD (Transmissor)RXD0 (GPIO 3)Dados do PC → ESP32Ligação cruzada: TX vai no RX
RXD (Receptor)TXD0 (GPIO 1)Dados do ESP32 → PCLigação cruzada: RX vai no TX
5V (ou 3V3)5V (ou 3V3)Alimentação de gravaçãoUsado para alimentar o ESP32 na bancada

Procedimento para entrar em Modo Bootloader (Download Boot):

  1. Conecte os pinos do conversor USB-Serial à placa e plugue o cabo USB no computador;
  2. Pressione e mantenha pressionado o botão físico BOOT / IO0 (GPIO 0) da placa;
  3. Pressione e solte o botão EN / RST (ou desconecte e reconecte brevemente o pino de alimentação mantendo BOOT pressionado);
  4. Solte o botão BOOT;
  5. 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:

  1. 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
  2. No menu Ferramentas > Placa > Gerenciador de Placas, instale o pacote esp32 da Espressif Systems;
  3. Selecione a placa: Ferramentas > Placa > ESP32 Arduino > ESP32 Dev Module;
  4. Em Upload Speed, selecione 921600 ou 115200;
  5. 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-RB2553 e acesse via navegador http://192.168.4.1/api/toggle?ch=1 para acionar o Relé 1 ou http://192.168.4.1/api/status para 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.

Interface do painel web embarcado em Dark Mode da placa ESP32 com 8 relés de 30A RB2553

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.