Marcio Cunha

Como monitorar sensores industriais via ESP32 e MQTT

Aprenda a coletar telemetria em tempo real com ESP32 e MQTT em ambientes industriais, garantindo baixo consumo e entrega confiável de dados.

Marcio Cunha•3 min
Também disponível em:EnglishEspañol
Resumo
  • O ESP32 oferece excelente custo-benefício e conectividade Wi-Fi e Bluetooth nativas para o chão de fábrica.
  • O protocolo MQTT consome pouca banda e bateria, sendo ideal para redes instáveis com muitos dispositivos.
  • Sinais industriais brutos precisam de circuitos de isolamento e conversão de tensão antes de chegarem aos pinos do microcontrolador.
  • A publicação de dados em intervalos regulares evita o congestionamento da rede e previne falhas no broker.
  • Garantir a reconexão automática ao Wi-Fi e ao broker MQTT evita a perda de telemetria em ambientes críticos.

Por que usar o ESP32 na automação industrial moderna?

Levar inteligência para o chão de fábrica não exige necessariamente o uso de computadores industriais caros ou CLPs de última geração. Na prática, isso significa que microcontroladores acessíveis como o ESP32 conseguem ler temperaturas, vibrações e pressões com alta precisão. O segredo está em entender como tratar os sinais elétricos do mundo real, que costumam ser ruidosos, e transformá-los em dados digitais seguros.

Em ambientes industriais, a robustez física e a imunidade a interferências eletromagnéticas são prioridades absolutas. O ESP32 atende a essa demanda oferecendo processamento dual-core e baixo consumo de energia, permitindo processar leituras locais antes de enviá-las. Quando combinamos esse hardware com uma arquitetura de software modular, criamos uma rede de sensores resiliente e fácil de escalar.

Entendendo o protocolo MQTT e sua leveza

O MQTT é um protocolo de mensagens leve projetado especificamente para conexões de rede instáveis e com largura de banda limitada. Ele funciona no modelo de publicação e assinatura, onde os dispositivos enviam dados para um intermediário central chamado broker, sem precisar saber quem vai ler essas informações. Na prática, isso reduz drasticamente o tráfego de rede em comparação com requisições HTTP tradicionais.

Para sensores industriais que enviam leituras a cada segundo, essa economia de pacotes evita o congestionamento do canal de comunicação. Além disso, o protocolo permite configurar níveis de qualidade de serviço conhecidos como QoS, garantindo que mensagens críticas de alarme cheguem ao destino mesmo se houver oscilações temporárias no sinal de rádio.

Preparando o hardware e isolando os sinais

Os pinos de entrada do ESP32 operam com níveis lógicos de 3.3V e não toleram tensões de 24V comumente encontradas em sensores industriais padrão. Por isso, a primeira etapa prática envolve o uso de divisores de tensão ou optoacopladores para proteger o microcontrolador. Na prática, essa barreira física impede que picos de energia queime o circuito principal.

Além da proteção elétrica, é fundamental utilizar cabos blindados e manter a fiação de dados distante de motores elétricos de grande porte. Se a sua aplicação exige alta confiabilidade e processamento de dados robusto no servidor, vale a pena otimizar o fluxo da mesma forma que fazemos ao acelerar endpoints com cache em memória para evitar gargalos na ponta receptora.

Escrevendo o código de leitura e publicação

O código rodando no ESP32 deve ser simples, direto e focado em evitar travamentos por estouro de memória. Abaixo está um exemplo funcional utilizando a biblioteca PubSubClient para conectar o dispositivo ao Wi-Fi e publicar a telemetria de um sensor analógico.

#include <WiFi.h>
#include <PubSubClient.h>

const char* ssid = "SuaRedeWiFi";
const char* password = "SuaSenha";
const char* mqtt_server = "192.168.1.100";

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
client.setServer(mqtt_server, 1883);
}

void loop() {
if (!client.connected()) {
while (!client.connected()) {
if (client.connect("ESP32IndustrialClient")) {
break;
} else {
delay(5000);
}
}
}
client.loop();

int sensorValue = analogRead(34);
char buffer[10];
sprintf(buffer, "%d", sensorValue);
client.publish("fabrica/sensor/temperatura", buffer);
delay(2000);
}

Garantindo a estabilidade e reconexão automática

Perdas de sinal Wi-Fi ou quedas momentâneas no broker MQTT são comuns em galpões industriais devido a barreiras físicas e interferências. O código do ESP32 precisa prever essas falhas e tentar a reconexão em loop sem travar a execução. Na prática, implementar uma rotina robusta de tratamento de erros evita visitas desnecessárias de técnicos à linha de produção.

Outro ponto crítico é o gerenciamento do watchdog timer interno do ESP32, que reinicia o microcontrolador caso o código fique preso em algum loop infinito. Manter o firmware atualizado e monitorar o comportamento da rede garante operação contínua e sem surpresas desagradáveis.

Considerações finais sobre telemetria industrial

Implementar monitoramento com ESP32 e MQTT transforma o controle de processos industriais em uma tarefa ágil e de baixo custo. Ao tratar os sinais elétricos corretamente, escrever código resiliente e estruturar a comunicação de forma leve, obtemos uma rede de telemetria altamente confiável. Essa abordagem abre caminho para diagnósticos preditivos e tomada de decisão mais rápida no dia a dia da fábrica.