Placa ESP32 com 1 Relé de 30A RB2556: Manual Técnico Completo

Placa ESP32 1 Relé 30A RB2556 — manual técnico completo

Introdução

Neste manual, será apresentado como instalar, configurar e utilizar a placa de controle e automação ESP32 com 1 Relé de 30A (RB2556). Se desejar adquirir esta placa, clique aqui.

A placa controladora RB2556 (código de engenharia esp32_relay_30a_x1_v1.1) é um módulo eletrônico de automação industrial e predial que integra o microcontrolador ESP32-WROOM-32E a um estágio de potência eletromecânico de alta capacidade nominal. O sistema foi desenvolvido especificamente para comandar circuitos de carga pesada de até 30A em 250V AC ou 30A em 30V DC (tais como motores de indução monofásicos, compressores, bombas de poço artesiano, resistências térmicas e sistemas de iluminação de grande porte) com isolamento galvânico por optoacoplador, supressão de ruídos transitórios e imunidade eletromagnética superior à dos módulos de relé residenciais convencionais de 10A.

O que você vai aprender:

  • Compreender a arquitetura interna, o estágio de optoisolamento e as especificações elétricas da placa RB2556.
  • Identificar a pinagem exata do processador ESP32-WROOM-32E, do canal de relé, periféricos onboard e pinos de expansão livres.
  • Dimensionar condutores de cobre e dispositivos de proteção externa segundo a norma técnica brasileira NBR 5410.
  • Executar a ligação de cargas monofásicas em 127V/220V AC e circuitos em corrente contínua de 12V/24V DC com proteção contra picos indutivos.
  • Realizar a gravação de programas via gravador externo USB-Serial operando o modo ROM Bootloader.
  • Desenvolver rotinas de acionamento em C++ com filtragem por software (debounce), chaveamento temporizado não-bloqueante por millis() e controle via Wi-Fi Ponto de Acesso (SoftAP) com API RESTful JSON.
  • Conhecer o projeto pronto de painel web de controle autônomo com portal captivo disponível para esta placa.

Material utilizado:

  • Placa de Controle ESP32 com 1 Relé de 30A (RB2556 / esp32_relay_30a_x1_v1.1) — disponível no catálogo oficial da loja RoboBuilders.
  • Módulo Conversor USB-Serial externo (chips CP2102, FT232RL, CH340 ou compatíveis).
  • Fonte de alimentação DC de 7V a 60V (12V DC ou 24V DC / 1A recomendada, serigrafia 7-60V na placa) ou cabo Micro-USB com fonte estabilizada de 5V DC / 1A.
  • Cabos flexíveis de cobre com bitola entre 2,5 mm² e 6,0 mm² e terminais ilhós tubulares para as conexões de potência.
  • Circuito snubber RC externo (resistor de 100 Ω 2W em série com capacitor de poliéster 100 nF / 630V) e Varistor MOV de 275V para cargas indutivas severas.

Descrição geral do produto

O que é a Placa ESP32 com 1 Relé de 30A (RB2556)?

A placa RB2556 soluciona uma das limitações mais críticas encontradas em projetos de Internet das Coisas (IoT — Internet of Things) e automação predial: a comutação direta de equipamentos elétricos de consumo elevado. Módulos genéricos azuis de 10A (como SRD-05VDC) possuem pistas de circuito impresso estreitas e lâminas de contato frágeis, que sofrem desgaste rápido por faiscamento elétrico (micro-soldagem de contatos), aquecem excessivamente e colocam em risco a integridade dos painéis de distribuição.

A placa RB2556 adota o relé selado de alta potência SONGLE SLA-05VDC-SL-C, estruturado com contatos de liga de prata-óxido de estanho (AgSnO₂) capazes de suportar correntes térmicas contínuas de até 30A, além de trilhas reforçadas com camada dupla de cobre estanhado na placa de circuito impresso (PCB — Printed Circuit Board).

Para que serve?

  • Comutação direta de cargas de elevada corrente em corrente alternada (até 250V AC / 30A) ou contínua (até 30V DC / 30A), como motobombas de recalque, compressores de ar condicionado, resistências de caldeira/sauna e refletores de alta potência, sem a necessidade de contatores intermediários;
  • Implementação de centrais autônomas de controle sem fio, emitindo seu próprio ponto de acesso Wi-Fi local (SoftAP) com portal captivo automático ou integrando-se a redes locais e sistemas de automação (Home Assistant, ESPHome, Node-RED, MQTT e Tasmota);
  • Automação expansível com sensores e periféricos secundários, aproveitando as 17 GPIOs digitais expostas e 2 entradas analógicas puras para ler sensores de temperatura, umidade, nível, fluxo, chaves de fim de curso e acionar módulos auxiliares.

Por que devo usar?

  • Capacidade nominal de 30A no canal: contatos reforçados de liga de prata capazes de absorver picos de corrente de partida indutiva sem risco de colagem precoce de contatos;
  • Isolamento galvânico por optoacoplador: barreira óptica dedicada que impede que ruídos elétricos gerados pela carga ou arcos dos contatos cheguem às trilhas digitais do microcontrolador ESP32;
  • Alimentação flexível de 7V a 60V DC: conversor chaveado (step-down buck) de alto rendimento que dissipa calor mínimo e opera confiavelmente em fontes padrão de 12V e 24V DC, além de baterias e bancos solares;
  • Conectividade Wi-Fi e Bluetooth Nativas: processador dual-core ESP32 de 240 MHz com suporte completo a stacks de comunicação modernos.

Quando devo usar?

A placa RB2556 é recomendada quando:

  1. O projeto demanda o controle confiável de 1 carga elétrica crítica de alta potência (até 30A);
  2. A carga elétrica solicita corrente nominal contínua entre 10A e 30A, onde placas convencionais de 10A sofreriam sobreaquecimento ou queima precoce;
  3. O espaço físico no quadro elétrico é reduzido e exige uma controladora compacta com Wi-Fi embutido e barramento aberto com ampla disponibilidade de pinos de expansão.

Não é indicada quando:

  • O sistema exigir o acionamento independente de múltiplos circuitos de carga pesada simultâneos (nesse caso, utilize as controladoras de 2 Relés RB2555, 4 Relés RB2554 ou 8 Relés RB2553);
  • A carga exigir comutação ultra rápida por PWM em alta frequência (onde relés de estado sólido SSR ou MOSFETs de potência são obrigatórios).

Comparativo da família de placas com relés de 30A RoboBuilders

A RoboBuilders desenvolveu uma linha completa de placas industriais equipadas com relés SONGLE de 30A para diferentes graus de complexidade de projeto:

ModeloCanais de Relé (30A)GPIOs dos RelésAlimentação SuportadaPinos Livres no HeaderAplicação Recomendada
RB2556 (Este manual)1 CanalGPIO 167V a 60V DC / Micro-USB 5V17 Digitais + 2 ADCsCargas individuais pesadas, bombas, aquecedores
RB25552 CanaisGPIO 13, GPIO 127V a 30V DC / Micro-USB 5V16 Digitais + 2 ADCsIntertravamento motor/reversão, aquecimento duplo
RB25544 CanaisGPIO 12, 13, 14, 1590V-250V AC / 7-30V DC / USB8 Digitais + 2 ADCsQuadros prediais híbridos, 4 setores industriais
RB25538 CanaisGPIO 13, 12, 14, 27, 26, 25, 33, 327V a 30V DC / Micro-USB 5V8 Digitais + 2 ADCsPainéis elétricos completos, automação predial

Especificações técnicas

A tabela abaixo compila todos os parâmetros elétricos, mecânicos e operacionais do modelo RB2556 (esp32_relay_30a_x1_v1.1):

ParâmetroValor Nominal / Descrição
MicrocontroladorEspressif ESP32-WROOM-32E (Arquitetura Xtensa Dual-Core 32-bit LX6 @ 240 MHz)
Memória de Programa e Dados4 MB (32 Mbits) SPI Flash / 520 KB SRAM interna
Conectividade Sem FioWi-Fi 802.11 b/g/n (2.4 GHz, até 150 Mbps) e Bluetooth v4.2 BR/EDR + BLE
Quantidade de Relés de Potência1 Canal Eletromecânico de Alta Capacidade
Modelo do ReléSONGLE SLA-05VDC-SL-C (Bobina de 5V DC)
Tensão de Isolamento dos Contatos250V AC / 30V DC
Corrente Máxima de Contato30A contínuos (Carga Resistiva pura)
Potência Máxima de Chaveamento7.500 VA em rede alternada / 900 W em corrente contínua
Resistência Inicial de Contato≤100 mΩ\le 100\text{ m}\Omega (medida em 1A / 6V DC)
Vida Útil Mecânica / Elétrica10.000.00010.000.000 ciclos (sem carga) / 100.000100.000 operações (sob carga nominal máxima)
Tempo de Comutação (Pick-up / Release)≤15 ms\le 15\text{ ms} para fechar / ≤10 ms\le 10\text{ ms} para abrir
Tensão de Alimentação DC (Borne)7V a 60V DC (conversor chaveado buck integrado de alta eficiência, serigrafia 7-60V)
Tensão de Alimentação USB5V DC ±5%\pm 5\% via porta Micro-USB (apenas alimentação, sem chip serial)
Consumo em Repouso (Relé Desligado)≈45 mA@12V DC\approx 45\text{ mA} @ 12\text{V DC} (ESP32 com rádio Wi-Fi ativo)
Consumo com Relé Atracado≈185 mA@12V DC\approx 185\text{ mA} @ 12\text{V DC} (energia exigida pela bobina e optoacoplador)
Temperatura de Operação−25∘C-25^\circ\text{C} a +70∘C+70^\circ\text{C}
Dimensões Físicas da PlacaAproximadamente 70 mm×60 mm×22 mm70\text{ mm} \times 60\text{ mm} \times 22\text{ mm}

Limites operacionais de chaveamento por categoria de carga

Em engenharia elétrica, cargas com características físicas distintas exigem cálculo de redução de capacidade (derating) para assegurar a vida útil dos contatos:

Categoria da CargaExemplos PráticosLimite Recomendado na RB2556Fator de Atenção
Resistiva Pura (AC-1 / DC-1)Aquecedores, resistências blindadas, fornos elétricosAté 30A (6.600W em 220V)Carga ideal, sem transitórios de partida
Indutiva Moderada (AC-3)Motores de bomba d’água, compressores, ventiladoresAté 16A (Motores de até 2 HP / 1,5 kW)Corrente de partida atinge de 5 a 7 vezes a nominal
Lâmpadas com Reator / DriverRefletores LED industriais, lâmpadas a vapor de sódioAté 10AAlta corrente de irrupção capacitiva (inrush current)
Cargas em Corrente ContínuaVálvulas solenoides 24V DC, motores DC, atuadoresAté 15A (sob 24V DC)O arco voltaico em DC não passa por zero e desgasta contatos

⚠️ Atenção: Em motores elétricos monofásicos acima de 1,5 HP (ou cargas indutivas severas operando próximas a 16A de regime contínuo), utilize obrigatoriamente um circuito Snubber RC em paralelo com os terminais do relé ou com a carga para amortecer a força contra-eletromotriz gerada na abertura do circuito.


Pinagem e descrição dos terminais

O microcontrolador ESP32-WROOM-32E montado na placa possui pinos dedicados aos periféricos internos soldados na PCB e exporta todos os pinos restantes para as barras de conexão lateral (headers de 2,54 mm).

Pinos dedicados onboard

Periférico IntegradoGPIO do ESP32DireçãoNível Lógico de DisparoFunção Técnica
Relé de Potência 30A (K1)GPIO 16OUTPUTActive HIGH (3.3V)Dispara o transistor do optoacoplador e energiza a bobina do relé
LED Indicador de StatusGPIO 5OUTPUTActive HIGH (3.3V)LED azul para sinalização visual de operação ou conexão Wi-Fi
Botão Tátil Onboard (S1 / BOOT)GPIO 0INPUT_PULLUPActive LOW (0V)Pressionado conecta o pino ao terra (GND). Usado também para entrar em modo bootloader
UART0 Transmissão (TX)GPIO 1OUTPUT3.3V TTLEnvio de mensagens de telemetria serial e resposta ao gravador
UART0 Recepção (RX)GPIO 3INPUT3.3V TTLRecepção de código-fonte binário durante o upload de firmware

💡 Dica: O canal de acionamento do relé opera em lógica positiva (Active HIGH). Isso significa que ao inicializar o ESP32, colocar a GPIO 16 em nível lógico baixo (digitalWrite(16, LOW)) mantém a carga desligada e segura contra acionamentos intempestivos durante a reinicialização (boot).

Barramento de expansão para sensores e periféricos

Ao contrário de placas comerciais lacradas, a RB2556 disponibiliza 19 portas do ESP32 para acoplamento de sensores externos, displays e módulos de rádio:

Grupo de GPIOsPinos DisponíveisTipo SuportadoRestrições e Cuidados Técnicos
Entradas/Saídas Digitais LivresGPIO 2, GPIO 4, GPIO 12, GPIO 13, GPIO 14, GPIO 15, GPIO 17, GPIO 18, GPIO 19, GPIO 21, GPIO 22, GPIO 23, GPIO 25, GPIO 26, GPIO 27, GPIO 32, GPIO 33Entrada / Saída Digital, PWM, I2C, SPIPinos totalmente configuráveis. As portas 21 e 22 são comumente configuradas como barramento I2C (SDA e SCL).
Portas de Entrada Analógica PurasGPIO 34, GPIO 35Apenas Entrada (INPUT)Pertencem ao ADC1 interno. Não possuem resistores de pull-up/pull-down internos e não funcionam como saída digital. Ideais para sensores de umidade, temperatura e corrente (transformadores de corrente SCT-013).

Terminais de parafuso do relé de potência (Borne Verde K1)

O borne de três vias com parafusos reforçados localizado na saída do relé possui a serigrafia padrão industrial:

  • COM (Comum): Ponto comum do circuito de chaveamento. Deve receber a fase da rede elétrica em corrente alternada ou o polo positivo da fonte de carga em corrente contínua.
  • NO (Normalmente Aberto — Normally Open): Permanece isolado do comum enquanto a bobina do relé estiver desenergizada (GPIO 16 = LOW). Conecta-se mecanicamente ao terminal COM quando o relé é acionado (GPIO 16 = HIGH). Este é o terminal padrão para 99% das aplicações.
  • NC (Normalmente Fechado — Normally Closed): Conectado ao pino COM quando o relé está desligado, e se desconecta quando o relé é acionado. Utilizado em sistemas de emergência ou sinalizadores de estado desligado.

Instalação e conexão

Dimensionamento de condutores conforme NBR 5410

A norma brasileira de instalações elétricas de baixa tensão (ABNT NBR 5410) estipula critérios rigorosos para capacidade de condução de corrente em função da elevação de temperatura e queda de tensão:

  1. Para Correntes de até 30A contínuos: Utilize obrigatoriamente condutores de cobre eletrolítico isolados em PVC (70°C) ou EPR/XLPE (90°C) com seção transversal mínima de 4,0 mm² (para distâncias curtas até 15 metros) ou 6,0 mm² (para circuitos mais longos, mitigando queda de tensão superior a 2%).
  2. Terminação dos Condutores: É expressamente proibido inserir fios de cobre desencapados com pontas desfiadas sob os parafusos dos bornes. Utilize alicates de crimpagem e terminais do tipo ilhós tubular (bootlace ferrule). Isso assegura contato uniforme em toda a superfície metálica e impede pontos quentes por efeito Joule.
  3. Disjuntor de Proteção: Instale na linha de alimentação da carga um disjuntor termomagnético monopolar curva B (para cargas resistivas puras) ou curva C (para motores e compressores) dimensionado entre 25A e 32A.

Supressão de transitórios (Circuito Snubber RC e Varistor)

O desligamento abrupto de cargas indutivas gera picos de alta tensão reversa que podem ultrapassar 1.000V. Para proteger os contatos do relé contra queima e eliminar ruídos eletromagnéticos que possam resetar o microcontrolador ESP32:

  • Conecte em paralelo com a carga indutiva (ou em paralelo entre os bornes COM e NO do relé) um circuito Snubber RC composto por um resistor de 100 Ω\Omega / 2W em série com um capacitor de poliéster metalizado de 100 nF (0,1 μ\muF) / 630V.
  • Instale um Varistor de Óxido Metálico (MOV) de 275V AC (para rede de 220V) em paralelo com os polos de alimentação da carga para absorver surtos de tensão da rede.

Diagrama de ligação elétrica

O diagrama esquemático e infográfico técnico abaixo ilustra a conexão profissional completa da placa ESP32 com 1 Relé de 30A (RB2556), alimentada por fonte industrial de 12V DC e acionando uma carga em 120/220V AC conforme as normas da NBR 5410:

Diagrama de ligação elétrica da Placa ESP32 com 1 Relé de 30A (RB2556)

Tabela de conexões dos terminais

A tabela abaixo descreve detalhadamente cada conexão ilustrada no diagrama:

Terminal de OrigemTerminal de Destino (RB2556 / Carga)Cor do FioTipo de SinalObservação
Fonte 12V DC (+)Borne 7-60V (Placa)VermelhoAlimentação DCRespeitar polaridade positiva da fonte
Fonte 12V DC (-) / GNDBorne GND (Placa)PretoReferência ComumNegativo/terra da fonte de alimentação
Rede AC (Fase - L)Borne COM (Comum)MarromLinha AC AtivaEntrada da fase da rede elétrica 120/220V AC
Borne NO (Normalmente Aberto)Carga (Terminal 1)VermelhoLinha AC ChaveadaLinha energizada ao acionar o relé (GPIO 16 em HIGH)
Rede AC (Neutro - N)Carga (Terminal 2)Azul ClaroRetorno NeutroLigação direta à carga, sem passar pelo relé

⛔ Perigo de Choque Elétrico: O condutor de Neutro da rede elétrica residencial ou industrial NUNCA deve ser ligado a nenhum terminal do relé. O relé comuta exclusivamente o condutor de Fase. Conectar Fase e Neutro nos terminais do relé provocará um curto-circuito franco imediato ao atracar o contato.


Gravação de firmware via gravador USB-Serial (UART)

A porta Micro-USB integrada na placa RB2556 é conectada somente ao regulador de tensão de 5V para fornecimento de energia, não contando com chip conversor USB-Serial onboard (como CP2102 ou CH340). Para gravar novos códigos ou atualizar o firmware:

Diagrama de ligação entre o conversor USB-Serial e o header UART da placa ESP32 RB2556 para gravação de código

Tabela de conexões do gravador USB-Serial

Pino no Módulo USB-SerialPino no Header da Placa RB2556Cor do CaboSinal LógicoRegra de Comunicação
5V (ou 3V3)5V (ou 3V3)🔴 VermelhoAlimentaçãoAlimenta a placa durante o processo de gravação
GNDGND⚫ PretoTerraObrigatório unificar os terras
TX / TXDRX / RXD (GPIO 3)🟡 AmareloEnvio de DadosLigação Cruzada: Saída TX do conversor entra no RX do ESP32
RX / RXDTX / TXD (GPIO 1)🟢 VerdeRetorno de DadosLigação Cruzada: Saída TX do ESP32 entra no RX do conversor

Passo a passo para entrar no modo Bootloader (Download Mode)

  1. Com a placa completamente desenergizada da rede elétrica de 220V, conecte os 4 cabos jumpers do conversor USB-Serial ao header da RB2556 conforme a tabela acima.
  2. Pressione e mantenha pressionado o botão BOOT (GPIO 0) localizado na placa.
  3. Conecte o cabo USB do gravador à porta USB do seu computador (ou aperte e solte o botão RST/EN mantendo o BOOT pressionado).
  4. Solte o botão BOOT após 2 segundos. O chip ESP32 estará no modo ROM Download Bootloader, pronto para receber o código via PlatformIO ou Arduino IDE na taxa de 115.200 bps ou 921.600 bps.

Configuração de software

Configuração de ambiente no PlatformIO (platformio.ini)

Para projetos no PlatformIO Core / VS Code, crie ou configure o arquivo platformio.ini:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
build_flags = 
    -DCORE_DEBUG_LEVEL=0
lib_deps =
    bblanchon/ArduinoJson @ ^6.21.3

Exemplo 1: Teste básico sequencial com relé e LED onboard

O código abaixo inicializa a porta de potência e o LED onboard, demonstrando a inicialização segura com o relé em repouso e comutações a cada 5 segundos:

/**
 * ============================================================================
 * Projeto: Teste Básico de Chaveamento - Placa ESP32 1 Relé 30A (RB2556)
 * Autor: RoboBuilders (https://www.robobuilders.com.br)
 * Placa: esp32_relay_30a_x1_v1.1
 * ============================================================================
 */

#include <Arduino.h>

// Definição dos pinos oficiais da RB2556
const uint8_t PINO_RELE_30A = 16;  // Relé K1 de 30A na GPIO 16 (Active HIGH)
const uint8_t PINO_LED_STATUS = 5; // LED onboard na GPIO 5 (Active HIGH)

void setup() {
  Serial.begin(115200);
  delay(1000);

  Serial.println("\n==============================================");
  Serial.println("RoboBuilders RB2556 - Inicializando Teste...");
  Serial.println("==============================================");

  // Inicializa a GPIO do relé em nível LOW ANTES de configurar como OUTPUT
  // para garantir que a carga inicie estritamente desligada (repouso)
  digitalWrite(PINO_RELE_30A, LOW);
  pinMode(PINO_RELE_30A, OUTPUT);

  // Configura LED de status
  digitalWrite(PINO_LED_STATUS, LOW);
  pinMode(PINO_LED_STATUS, OUTPUT);

  Serial.println("[STATUS] GPIOs configuradas com sucesso.");
  Serial.println("[STATUS] Relé K1 em repouso (desligado).");
}

void loop() {
  Serial.println("\n>>> [AÇÃO] Ligando Relé K1 de 30A...");
  digitalWrite(PINO_RELE_30A, HIGH);
  digitalWrite(PINO_LED_STATUS, HIGH);
  Serial.println("    Estado: CARGA ENERGIZADA (NO fechado com COM)");
  delay(5000);

  Serial.println("\n>>> [AÇÃO] Desligando Relé K1...");
  digitalWrite(PINO_RELE_30A, LOW);
  digitalWrite(PINO_LED_STATUS, LOW);
  Serial.println("    Estado: CARGA DESLIGADA (NO aberto)");
  delay(5000);
}

Exemplo 2: Acionamento temporizado sem bloqueio com botão onboard

Este exemplo faz a leitura filtrada do botão onboard conectado à GPIO 0 (debounce por software) e ativa o relé de 30A temporizado durante 10 segundos, utilizando temporização não-bloqueante por millis():

/**
 * ============================================================================
 * Projeto: Acionamento Temporizado com Botão Onboard - Placa RB2556
 * Autor: RoboBuilders (https://www.robobuilders.com.br)
 * ============================================================================
 */

#include <Arduino.h>

const uint8_t PINO_RELE_30A = 16;
const uint8_t PINO_BOTAO_S1 = 0;   // Botão BOOT onboard (GPIO 0)
const uint8_t PINO_LED_STATUS = 5;

// Temporização de acionamento: 10 segundos
const unsigned long TEMPO_LIGADO_MS = 10000;

unsigned long tempoInicioAcionamento = 0;
bool releAtivo = false;
int ultimoEstadoBotao = HIGH;
unsigned long ultimoDebounce = 0;
const unsigned long DEBOUNCE_DELAY = 50;

void setup() {
  Serial.begin(115200);

  digitalWrite(PINO_RELE_30A, LOW);
  pinMode(PINO_RELE_30A, OUTPUT);

  digitalWrite(PINO_LED_STATUS, LOW);
  pinMode(PINO_LED_STATUS, OUTPUT);

  pinMode(PINO_BOTAO_S1, INPUT_PULLUP);

  Serial.println("\n[SISTEMA] Modo temporizado pronto. Pressione o botão S1...");
}

void loop() {
  int leitura = digitalRead(PINO_BOTAO_S1);

  if (leitura != ultimoEstadoBotao) {
    ultimoDebounce = millis();
  }

  if ((millis() - ultimoDebounce) > DEBOUNCE_DELAY) {
    // Botão pressionado (ativo em nível LOW)
    if (leitura == LOW && !releAtivo) {
      Serial.println("\n>>> [EVENTO] Botão S1 pressionado!");
      Serial.println("    Ligando Relé 30A por 10 segundos...");

      releAtivo = true;
      tempoInicioAcionamento = millis();

      digitalWrite(PINO_RELE_30A, HIGH);
      digitalWrite(PINO_LED_STATUS, HIGH);
    }
  }

  ultimoEstadoBotao = leitura;

  // Gerenciamento não-bloqueante do desligamento automático
  if (releAtivo && (millis() - tempoInicioAcionamento >= TEMPO_LIGADO_MS)) {
    Serial.println(">>> [TIMER] Tempo limite atingido! Desligando Relé...");
    releAtivo = false;
    digitalWrite(PINO_RELE_30A, LOW);
    digitalWrite(PINO_LED_STATUS, LOW);
  }
}

Exemplo 3: Ponto de Acesso Wi-Fi autônomo com API RESTful JSON

Este exemplo cria uma rede Wi-Fi própria (RB2556-Painel-Wifi) gerada pelo próprio ESP32 e disponibiliza uma API RESTful HTTP que responde em formato JSON, permitindo controlar o relé via navegador ou aplicativo móvel:

/**
 * ============================================================================
 * Projeto: Ponto de Acesso com API RESTful JSON - Placa RB2556
 * Autor: RoboBuilders (https://www.robobuilders.com.br)
 * ============================================================================
 */

#include <Arduino.h>
#include <WiFi.h>
#include <WebServer.h>
#include <ArduinoJson.h>

const char* WIFI_SSID = "RB2556-Painel-Wifi";
const char* WIFI_PASS = "12345678";

const uint8_t PINO_RELE_30A = 16;
const uint8_t PINO_LED_STATUS = 5;

WebServer server(80);
bool estadoRele = false;

void enviarJsonStatus() {
  StaticJsonDocument<256> doc;
  doc["dispositivo"] = "RB2556";
  doc["rele_30a"] = estadoRele ? "LIGADO" : "DESLIGADO";
  doc["tempo_ativo_seg"] = millis() / 1000;
  doc["free_heap"] = ESP.getFreeHeap();

  String resposta;
  serializeJson(doc, resposta);
  server.send(200, "application/json", resposta);
}

void rotaLigar() {
  estadoRele = true;
  digitalWrite(PINO_RELE_30A, HIGH);
  digitalWrite(PINO_LED_STATUS, HIGH);
  Serial.println("[API] Comando recebido: LIGAR");
  enviarJsonStatus();
}

void rotaDesligar() {
  estadoRele = false;
  digitalWrite(PINO_RELE_30A, LOW);
  digitalWrite(PINO_LED_STATUS, LOW);
  Serial.println("[API] Comando recebido: DESLIGAR");
  enviarJsonStatus();
}

void setup() {
  Serial.begin(115200);

  digitalWrite(PINO_RELE_30A, LOW);
  pinMode(PINO_RELE_30A, OUTPUT);

  digitalWrite(PINO_LED_STATUS, LOW);
  pinMode(PINO_LED_STATUS, OUTPUT);

  // Inicializa modo Ponto de Acesso (Access Point)
  WiFi.mode(WIFI_AP);
  WiFi.softAP(WIFI_SSID, WIFI_PASS);

  IPAddress IP = WiFi.softAPIP();
  Serial.println("\n[WI-FI] Ponto de Acesso criado com sucesso!");
  Serial.print("[WI-FI] Endereço IP: ");
  Serial.println(IP);

  // Registra rotas da API RESTful
  server.on("/api/status", HTTP_GET, enviarJsonStatus);
  server.on("/api/on", HTTP_GET, rotaLigar);
  server.on("/api/off", HTTP_GET, rotaDesligar);

  server.begin();
  Serial.println("[HTTP] Servidor Web iniciado na porta 80.");
}

void loop() {
  server.handleClient();
}

Exemplos de aplicação

Automação de motobomba de poço artesiano ou recalque predial

Nesta arquitetura, a placa RB2556 é instalada em um quadro de comando protegido junto ao reservatório inferior de água:

  • Um sensor de nível tipo bóia de contato seco é conectado à GPIO 32 (configurada como entrada digital com pull-up).
  • Um transformador de corrente (TC) não-invasivo modelo SCT-013 é acoplado à fase do motor e sua saída analógica ligada à GPIO 34 (porta pura de ADC).
  • Quando o nível do reservatório atinge o patamar mínimo, o relé na GPIO 16 é ativado, alimentando diretamente a motobomba monofásica de 1,5 HP em 220V AC.
  • O microcontrolador monitora continuamente o sensor de corrente: se a bomba permanecer ligada sem consumo elétrico (falha mecânica) ou com corrente em vazio (falta d’água na sucção), o relé é desarmado em menos de 1 segundo para proteção térmica do motor.
  • A telemetria de vazão e tempo acumulado de funcionamento do motor é transmitida via Wi-Fi para o sistema central da edificação.

Controle térmico de caldeira ou resistência elétrica de alta potência

Em sistemas de aquecimento onde uma resistência tubular blindada de 4.000W em 220V AC (~18A contínuos) mantém fluidos aquecidos, um sensor digital de temperatura DS18B20 à prova d’água é acoplado à GPIO 4 com resistor pull-up de 4,7 kΩ. O microcontrolador processa uma rotina de controle térmico com histerese:

  • Se a temperatura estiver abaixo de 60°C, a GPIO 16 fecha os contatos do relé SONGLE.
  • Ao atingir 65°C, a placa desenergiza a resistência, mantendo a temperatura uniforme e evitando oscilações rápidas que diminuam a vida útil do elemento de comutação.

Solução de problemas

A tabela abaixo resume as ocorrências mais comuns em bancada e campo com suas respectivas causas e soluções práticas:

Sintoma ObservadoCausa Mais ProvávelAção Corretiva Recomendada
O ESP32 reseta espontaneamente ao atracar o reléQueda abrupta na tensão de alimentação durante a partida da bobina do reléUtilizar fonte DC de bancada de pelo menos 12V / 1A. Se alimentar via Micro-USB, assegurar que a porta ou fonte forneça 5V reais sem quedas sob 1A.
O ESP32 trava ou reseta no momento em que a carga de 220V desligaRuído eletromagnético transitório de alta frequência gerado pela força contra-eletromotriz da carga indutivaInstalar circuito Snubber RC (100 Ω\Omega + 100 nF / 630V) e Varistor MOV de 275V em paralelo com a carga. Afastar cabos de sinal do cabeamento de potência.
Falha no upload do firmware (Failed to connect to ESP32: Timed out)Pinos TX/RX invertidos ou o microcontrolador não entrou no modo ROM Bootloader1. Inverter os cabos: conectar TX do gravador no RX (GPIO 3) da placa e RX do gravador no TX (GPIO 1).
2. Garantir que o pino GND do gravador está ligado ao GND da placa.
3. Manter o botão BOOT (GPIO 0) pressionado durante o início do upload.
O LED onboard (GPIO 5) acende, mas o relé não atracaTensão de alimentação insuficiente para magnetizar a bobina do relé de 5VVerificar se a tensão no circuito do regulador está fornecendo 5.0V estáveis. Fontes abaixo de 7V no borne DC podem desestabilizar a bobina de 5V do relé SONGLE.
Aquecimento anormal no borne verde do reléParafuso frouxo, condutor com bitola inferior a 4,0 mm² ou ausência de terminal ilhósDesligar a energia imediatamente, crimpar terminais ilhós tubulares nos fios e reapertar os parafusos do borne com torque firme.
Leituras analógicas instáveis na GPIO 34 ou GPIO 35Ausência de resistor pull-up ou ruído no barramento ADC1As GPIOs 34 e 35 são Input-Only e não têm resistores internos. Adicione resistor externo de 10 kΩ\Omega e utilize capacitor cerâmico de 100 nF entre o pino analógico e o GND.

Projetos

Para quem deseja utilizar esta placa imediatamente em campo sem necessidade de escrever código do zero, a equipe da RoboBuilders desenvolveu um projeto de código aberto completo com firmware profissional pronto para gravação:

  • Painel Web de Controle para Placa ESP32 com 1 Relé de 30A (RB2556): Um guia passo a passo detalhado que ensina como compilar e utilizar o firmware oficial de supervisão da placa RB2556. O firmware gera automaticamente um Ponto de Acesso Wi-Fi com Portal Captivo, interface web responsiva em tema escuro (Dark Mode), botões de teste rápido com pulsos temporizados, monitor do botão de usuário onboard, comutação global de GPIOs e uma API RESTful JSON pronta para integração com Home Assistant, Node-RED e supervisórios industriais.

Conclusão

A placa RoboBuilders RB2556 consolida uma plataforma industrial compacta e extremamente robusta para controle de cargas monofásicas pesadas com o consagrado SoC ESP32-WROOM-32E. Através deste manual, você aprendeu:

  • A arquitetura elétrica do módulo esp32_relay_30a_x1_v1.1, destacando o optoacoplador de isolamento e a capacidade de comutação do relé SONGLE SLA de 30A.
  • O mapeamento oficial de periféricos, com o relé atrelado à GPIO 16 (Active HIGH), LED na GPIO 5, botão de boot na GPIO 0 e barramento livre com 17 GPIOs digitais e 2 analógicas.
  • O dimensionamento e instalação segura de condutores e elementos de proteção segundo a NBR 5410, incluindo terminais ilhós, disjuntores e filtros Snubber RC contra ruído eletromagnético.
  • O procedimento de gravação do microcontrolador via módulo externo USB-Serial utilizando o modo ROM Bootloader.
  • Exemplos práticos em linguagem C++ para Arduino IDE e PlatformIO, cobrindo rotinas básicas, acionamentos temporizados sem bloqueio por millis() e arquitetura de servidor web Ponto de Acesso com API RESTful JSON.

Solução de problemas

Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Placa ESP32 com 1 Relé de 30A RB2556: 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.