Marcio Cunha

Como criar uma placa IoT com ESP32 e CAN bus industrial

Aprenda a projetar uma placa controladora IoT combinando o ESP32 e o barramento CAN para comunicação industrial barata, robusta e tolerante a falhas.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O ESP32 integra Wi-Fi e Bluetooth nativos, mas carece de robustez física para ambientes industriais ruidosos.
  • O padrão CAN bus utiliza diferenciação de tensão para garantir comunicação confiável mesmo sob forte interferência eletromagnética.
  • Controladores MCP2551 ou TJA1050 atuam como transceptores essenciais para traduzir os sinais lógicos do microcontrolador para a rede física.
  • A alimentação da placa exige cuidados rígidos com isolamento galvânico e filtragem para evitar travamentos por ruído de motores.
  • Projetar circuitos integrados dedicados reduz custos e viabiliza automação descentralizada em máquinas antigas.

Por que unir o ESP32 à rede CAN industrial?

No universo da automação, conectar dispositivos à internet costuma exigir placas caras e sistemas complexos. No entanto, unir o microcontrolador ESP32, um chip barato com Wi-Fi embutido, a uma interface CAN bus (um protocolo de comunicação robusto usado em carros e fábricas) resolve esse problema com elegância. Na prática, isso significa que você consegue coletar dados de sensores de chão de fábrica e enviá-los para a nuvem sem gastar uma fortuna em CLPs tradicionais.

Muitas vezes, projetos de Internet das Coisas sofrem com a falta de confiabilidade do Wi-Fi em galpões industriais cheios de barreiras metálicas. É aqui que o barramento CAN brilha, pois foi desenhado originalmente para conectar computadores automotivos sob condições severas de vibração e ruído elétrico. Quando criamos uma placa própria, eliminamos a necessidade de gambiarras com protobords e criamos um produto pronto para o mundo real.

Entendendo a física e o protocolo do barramento CAN

O CAN bus (Controller Area Network) funciona de maneira parecida com um sistema de rádio em que todos os dispositivos ouvem a mesma frequência, mas apenas o destinatário certo responde. Ele utiliza dois fios trançados, chamados CAN High e CAN Low, que transmitem dados baseados na diferença de tensão entre eles. Na prática, se houver uma interferência eletromagnética forte gerada por um motor elétrico vizinho, ela afeta os dois fios igualmente, anulando o erro.

Para que o ESP32, que opera com níveis lógicos de 3.3 volts, converse com essa rede diferencial, precisamos de um chip intermediário chamado transceptor CAN. Componentes como o TJA1050 ou o MCP2551 pegam os sinais digitais do microcontrolador e os convertem para o padrão físico da rede. Além disso, assim como discutimos em estratégias para diagnosticar perda de pacotes e latência alta em redes, entender a integridade física do meio de transmissão evita quedas misteriosas de pacotes no chão de fábrica.

Desenhando o circuito impresso e o isolamento galvânico

O projeto do circuito impresso, ou PCB, é a etapa onde o barato pode sair caro se ignorarmos as regras de ouro da eletrônica industrial. Motores, inversores de frequência e relés geram picos de tensão que podem queimar o seu ESP32 instantaneamente se não houver proteção. Por isso, a placa controladora deve incluir isolamento galvânico, utilizando optoacopladores ou fontes isoladas para separar fisicamente a energia do microcontrolador da energia da rede industrial.

Outro detalhe crítico no layout da placa é a terminação do barramento CAN, que exige resistores de 120 ohms exatamente nas duas pontas físicas da linha de transmissão para evitar o reflexo do sinal. Na prática, negligenciar esses resistores faz com que a comunicação funcione na bancada com meio metro de fio, mas falhe miseravelmente quando instalada em uma linha de montagem real com dezenas de metros de cabo.

Escrevendo o código para enviar e receber mensagens CAN

O ESP32 possui um controlador CAN integrado em seu silício, conhecido como TWAI (Two-Wire Automotive Interface), o que facilita bastante a programação. Abaixo, apresentamos um trecho de código funcional usando o framework Arduino para inicializar o barramento e enviar uma mensagem simples com leituras de sensores:

#include <driver/twai.h> void setup() { Serial.begin(115200); twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT((gpio_num_t)5, (gpio_num_t)4, TWAI_MODE_NORMAL); twai_timing_config_t t_config = TWAI_TIMING_CONFIG_50KBPS(); twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL(); if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) { Serial.println("Driver CAN instalado com sucesso!"); } else { Serial.println("Falha ao instalar driver CAN."); return; } if (twai_start() == ESP_OK) { Serial.println("Barramento CAN iniciado."); } } void loop() { twai_message_t message; message.identifier = 0x541; message.data_length_code = 4; message.data[0] = 0x12; message.data[1] = 0x34; message.data[2] = 0x56; message.data[3] = 0x78; if (twai_transmit(&message, pdMS_TO_TICKS(1000)) == ESP_OK) { Serial.println("Mensagem enviada na rede!"); } else { Serial.println("Erro no envio da mensagem."); } delay(1000); }

Esse código configura os pinos de transmissão e recepção, define a velocidade da rede para 50 kilobits por segundo e tenta transmitir um pacote a cada segundo. Assim como ocorre ao gerenciar estados em sistemas distribuídos, manter o tratamento de erros robusto no código garante que a controladora se recupere automaticamente se o barramento sofrer um curto-circuito momentâneo.

Integrando os dados locais com sistemas em nuvem

Depois que os dados das máquinas chegam à nossa placa controladora via CAN bus, o próximo passo lógico é disponibilizar essas informações para sistemas de monitoramento modernos. O ESP32 pode pegar os pacotes recebidos do barramento industrial e publicá-los em um broker MQTT ou transmiti-los via WebSockets para dashboards em tempo real. Da mesma forma que investigamos soluções para entender por que conexões WebSocket caem e como garantir resiliência, manter o reconectivo automático é fundamental para evitar perda de telemetria.

Essa abordagem híbrida transforma uma rede industrial antiga e isolada em um ativo inteligente de IoT. Os engenheiros de manutenção conseguem visualizar alertas de temperatura e consumo de energia diretamente no celular ou no computador da sala de controle, sem precisar de licenças de software caras de grandes corporações de automação.

Considerações finais

Construir a sua própria placa controladora IoT baseada em ESP32 e CAN bus abre um leque imenso de possibilidades para modernizar fábricas e máquinas com investimento reduzido. Dominar o projeto físico, o isolamento elétrico e a programação do protocolo garante que o hardware criado resista bravamente às piores condições do ambiente industrial. Com planejamento cuidadoso e testes rigorosos na bancada, você elimina intermediários comerciais e ganha total controle sobre a tecnologia da sua operação.