flag Brasil

Sua Próxima Ferramenta de Bancada: Como Construir um Scanner de Rede CAN para VRF com um ESP32 e seu Celular

Focar no passo a passo prático. Mostrar como essa ferramenta barata (ESP32) pode substituir equipamentos caros para diagnosticar erros de comunicação ...

#diagnóstico rede CAN VRF#ferramenta caseira ar condicionado#ESP32 scanner CAN#erro de comunicação E4#como testar comunicação VRV
Notícia de climatização: Sua Próxima Ferramenta de Bancada: Como Construir um Scanner de Rede CAN para VRF com um ESP32 e seu Celular

INTRODUÇÃO

Se tem uma coisa que eu vejo todo dia na bancada é: erro de comunicação custa tempo, peça e reputação. Você chega na assistência de ar condicionado VRF/VRV (Daikin, Midea, Gree, LG, Carrier…) e o código de erro aponta “comunicação” — às vezes aparece como E4, outras vezes como Cx — e aí começa o cabo de guerra: ligar unidade por unidade, trocar placa, cobrar visita técnica… Nem sempre é necessário. Pega essa visão: com um ESP32, um transceiver CAN barato e o seu celular você pode montar um scanner de barramento CAN que entra na rede, mostra quem fala e quem cala, e aponta onde está o nó problemático — tudo acessível via uma interface web local. Eletrônica é uma só: entender sinais digitais e saber interpretá-los salva serviço.

Recentemente o Portal Embarcados publicou um projeto similar que usa ESP32 para varredura CAN e interface web (referência: embarcados.com.br). Eu, Lawhander, trago aqui um guia completo, prático e orientado para o técnico brasileiro. Vou mostrar por que o CAN é o padrão em sistemas VRF, listar o material, explicar ligação e software, e dar o passo a passo para você diagnosticar falhas de comunicação em campo usando apenas um ESP32 e o celular. Bora nós — tamamo junto!

No final você terá: uma ferramenta portátil, de baixo custo, que substitui em muitos casos equipamentos caros de diagnóstico; fluxo de testes para identificar unidade offline, erro de barramento, curtos, conflitos de ID e frames corrompidos; e dicas de bancada para não queimar placa nem inverter polaridade.

CONTEXTO TÉCNICO

O que é a rede CAN (noções essenciais)

O Controller Area Network (CAN) é um padrão de comunicação serial diferencial projetado para ambientes ruidosos (automotivo, industrial e HVAC). Características principais:

  • Barramento diferencial: dois fios — CAN_H e CAN_L — que transportam sinais diferenciais para imunidade a ruído.
  • Taxas típicas: até 1 Mbps (mas em HVAC normalmente valores como 125 kbps, 250 kbps ou 500 kbps aparecem conforme projeto).
  • Mensagens estruturadas em frames com ID, DLC (comprimento), bytes de dados e bits de controle, com prioridade por ID (menor ID = maior prioridade).
  • Mecanismo robusto de detecção e retransmissão de erros (CRC, ACK, bit stuffing), e estados como bus-off quando um nó comete muitos erros.

Para o técnico: imagine o CAN como uma linha de rádio entre placas. Cada unidade transmite pacotes periódicos (telemetria, status) e responde a comandos. Se uma unidade trava e fica com a linha dominada (nível permanente dominante), todo o barramento para — daí o valor de um scanner que mostre “quem está falando”.

Por que o CAN é usado em VRF/VRV

Sistemas VRF/VRV têm dezenas de unidades internas e uma ou mais externas. O CAN é adotado porque:

  • Suporta múltiplos nós em um único par de fios, simplificando fiação.
  • É tolerante a ruídos elétricos típicos de compressores e motores.
  • Permite mensagens de curto prazo (controle em tempo real) e diagnósticos.
  • Facilita endereçamento e priorização (comandos críticos do compressor, por exemplo).

Em resumo: estabilidade, custo e confiabilidade. E por isso fabricantes (Daikin, Midea, Gree etc.) adotam variações do CAN ou implementam protocolos proprietários sobre CAN.

ANÁLISE APROFUNDADA

Materiais e especificações — o que comprar (lista prática)

Recomendo duas abordagens: usar o controlador CAN interno do ESP32 (mais limpo) ou usar um módulo MCP2515 via SPI (mais universal). Vou listar o que funciona em campo:

Essencial

  • ESP32 (DevKit) — preferencialmente versão USB com 3.3V IO.
  • Transceiver CAN 3.3V, exemplo: SN65HVD230 (TI) — converte sinal do controlador para a linha diferencial CAN.
  • Cabo para CAN: par trançado blindado (ou par trançado comum) para ligação até a placa do equipamento.
  • Jumpers (fêmea-macho), soldador e pistola de estanho.

Opcional / alternativo

  • Módulo MCP2515 + TJA1050 (MCP2515 é controlador via SPI; TJA1050 é transceiver) — atenção aos níveis de tensão (alguns módulos exigem 5V).
  • Módulo pronto “CAN BUS” (MCP2515+TJA1050) disponível no mercado brasileiro — aceitável, mas confirme se o módulo opera em 3.3V.
  • Fonte 12V/24V do equipamento (para alimentar placa) — não alimente o barramento com fonte separada sem entender o que faz.
  • Osciloscópio portátil (altamente recomendado) — para ver formas de onda e detectar dominância.

Peças típicas de compra no Brasil:

  • ESP32 DevKit V1 — R$ 30–80
  • Módulo SN65HVD230 breakout — R$ 20–50 (às vezes vendido em módulos “CAN transceiver”)
  • Módulo MCP2515+TJA1050 — R$ 25–70 Custos totais: aproximadamente R$ 60–200 dependendo das escolhas. Show de bola para uma ferramenta de bancada.

Esquema de ligação (conceito e conexões)

Pega essa visão básica: o ESP32 precisa conversar com o transceiver. Dois caminhos:

Opção A — Usar TWAI (CAN) interno do ESP32 + transceiver SN65HVD230

  • SN65HVD230 VCC -> 3.3V do ESP32
  • SN65HVD230 GND -> GND comum
  • SN65HVD230 TXD -> GPIO configurado como CAN_TX (conforme driver/tua configuração)
  • SN65HVD230 RXD -> GPIO configurado como CAN_RX
  • CAN_H e CAN_L do transceiver -> rede CAN (para placa do ar)
  • Terminação: 120 Ω entre CAN_H e CAN_L nas extremidades do barramento (máx. duas terminações)

Opção B — Usar MCP2515 (SPI) + transceiver (TJA1050) com ESP32

  • MCP2515 VCC -> 3.3V ou 5V conforme módulo (verifique)
  • SPI: MOSI -> GPIO23, MISO -> GPIO19, SCK -> GPIO18 (padrões no ESP32), CS -> p.ex. GPIO5
  • INT (interrupção do MCP2515) -> GPIO4 (ou outra)
  • TJA1050 VCC -> conforme módulo (normalmente 5V — cuidado!)
  • TJA1050 CAN_H/L -> rede CAN
  • GND comum sempre

⚠️ Importante: confira tensão do módulo. Muitos módulos MCP2515 vendidos usam reguladores e level shifters; outros exigem 5V. Conectar 5V a pinos do ESP32 pode queimar o microcontrolador.

Terminação e topologia

  • Use 120 Ω entre CAN_H e CAN_L nas extremidades do barramento. Em uma instalação VRF, normalmente já existe uma terminação nas placas ponta. Se for conectar no meio do barramento, não adicionar terminação dupla.
  • Nunca “alivie” o GND: conecte GND do seu ESP32 ao GND do sistema antes de conectar sinais.

Configuração de software e carregamento do firmware (passo a passo)

Escolha ambiente: Arduino IDE ou PlatformIO. Vou descrever com Arduino IDE (mais comum no serviço):

  1. Instale suporte ESP32 no Arduino IDE:

    • Vá em File > Preferences > Additional Boards Manager URLs e adicione o URL do core ESP32 (esp32arduino).
    • Instale “esp32 by Espressif Systems” em Boards Manager.
  2. Bibliotecas necessárias:

    • Se usar CAN nativo: biblioteca “CAN” para ESP32 (ex.: ESP32CAN) ou o driver TWAI disponível no core.
    • Se usar MCP2515: “MCP_CAN_lib” (ou “mcp_can”).
    • Web server: “ESPAsyncWebServer” + “AsyncTCP” (melhor para websockets/real-time).
  3. Código base (fluxo lógico — não preciso copiar tudo aqui):

    • Inicializa CAN a uma taxa configurável (125k/250k/500k). Faça opção de selecionar taxa por UI.
    • Varre frames recebidos, armazena em buffer circular.
    • Serve página web com websocket que transmite frames em tempo real para o navegador do celular.
    • Endpoints: /scan (iniciar varredura passiva), /frames (lista histórica), /busload (porcentagem de utilização), /ids (lista de IDs vistos).
  4. Flash:

    • Conecte ESP32 ao PC via USB.
    • Selecione placa correta e porta.
    • Compile e carregue.
    • Ao iniciar, o ESP32 pode criar Access Point (modo AP) chamado por exemplo “CANScanner-XXXX”. Conecte seu celular nesse Wi‑Fi. Alternativa: configure para conectar à rede local se preferir.
  5. Web UI:

    • Página principal mostra tabela: Timestamp | ID | DLC | Data (hex) | Flags (RTR/ERR) | Contagem de frames.
    • Botões: “Start/Stop”, “Set bitrate”, “Filter by ID”, “Export CSV”.
    • Websocket para atualização em tempo real.

Dica: usar AP local é fundamental no campo, já que muitas instalações não têm Wi-Fi confiável. Tamamo junto com seu celular e o scanner.

Interpretando dados na interface web — o passo que separa generalista de técnico

O scanner te devolve frames. Agora o trabalho é interpretar. Vou listar os sinais típicos e o que significam para diagnóstico VRF:

O que observar primeiro

  • Frames periódicos (beacons): a maioria das unidades envia pacotes periódicos. Se uma unidade interna 04 normalmente envia a cada 200 ms e sumiu, é suspeita.
  • IDs duplicados: dois nós enviando com mesmo ID pode indicar erro de configuração ou placa com fuga, causando colisão.
  • Frames corrompidos / ACK errados: veja flags de erro na UI. Transmissões repetidas e espaço de retransmissão apontam ruído ou nó com defeito.
  • Bus load muito alto (>70%) pode indicar flooding (nó preso transmitindo demais) — isso derruba a comunicação.

Exemplos práticos

  • Caso 1 — Unidade não responde: na tabela você nota ausência de frames com o ID referente à unidade. Próximo passo: desconectar fisicamente a unidade da linha CAN (isolamento) e observar se barramento volta ao normal; se voltar, provavelmente a unidade estava travando o barramento.
  • Caso 2 — Frames com dados inconsistentes: IDs respondendo, mas bytes de status mostram valores estranhos (ex.: bit de erro acionado). Consulte manual de protocolo do fabricante (quando disponível) ou compare com outra unidade idêntica.
  • Caso 3 — Erro E4 (comunicação): E4 é um exemplo comum (varia por fabricante). Com o scanner, veja se há mensagens de erro (frames especiais) ou se o controle central está acusando timeout de respostas. Se houver muitos erros e retransmissões, verifique terminação, integridade do par trançado e conectores. Se o barramento ficar “dominant” (nível lógico contínuo), há curto entre CAN_L e GND ou um transceiver com saída travada.

⚠️ Interpretação de protocolos proprietários: muitos fabricantes usam ID e payload proprietários — sem documentação, o caminho é comparar comportamento entre unidades sanas e a suspeita. A análise comparativa é poderosa.

Diagnóstico elétrico e procedimentos de bancada

Medidas simples antes de “trocar placa”:

  • Verifique terminação (120 Ω). Use multímetro com ohmímetro offline.
  • Medida de tensão DC entre CAN_H e GND/CAN_L: em repouso, CAN_H ≈ 2.5–3.5V e CAN_L ≈ 1.5–2.5V (valores dependem do transceiver), a diferença é pequena. Melhor usar osciloscópio para verificar forma de onda.
  • Se o barramento estiver preso (nível dominante): desconecte módulos um a um (comece por internas) até que o barramento retorne a normal — assim você encontra o nó intruso.
  • Cheque conectores: oxidação e mal contato geram erros intermitentes.

Ferramentas úteis

  • Osciloscópio: identifica bit stuffing errado, frames truncados, níveis dominantes.
  • Multímetro: teste de terminação e continuidade.
  • Scanner ESP32: identifica rapidamente IDs, frequência e retransmissões — ótimo como primeiro recurso.

APLICAÇÃO PRÁTICA

Fluxo de trabalho no dia a dia (procedimento recomendado)

  1. Chegou chamado com código de comunicação ou sistema parcial:
    • Conecte o scanner no conector CAN da central (desligue a alimentação principal se o manual recomendar — em muitos casos é ok conectar com sistema energizado, mas faça com cuidado).
    • Inicie scan em modo passivo (não transmita) e observe por 1–2 minutos. Veja lista de IDs e frequência.
  2. Identificar anomalias:
    • Unidade ausente → verificar alimentação, fusível e conexão.
    • Unidade presente mas com payload estranho → testar na bancada, comparar com unidade boa.
    • Barramento travado → isolar unidades até recuperar funcionamento.
  3. Se necessário, passe para modo ativo (envio de frames) para pingar uma unidade — cuidado: só faça se souber o protocolo ou tiver documentação, risco de mandar comandos indesejados.
  4. Anote logs (export CSV) e compare com histórico; isso ajuda ao homologar peça trocada ou justificar visita.

💡 Dica prática: sempre faça testes com o scanner em modo “AP” (access point). No local o técnico raramente tem rede Wi‑Fi disponível. Nomeie o AP com código do cliente e data — facilita rastrear logs depois.

Exemplo de detecção de unidade com problema

  • Sintoma: 1 das 10 evaporadoras mostra falha intermitente. O comando para ligar não chega.
  • Ação:
    1. Conecto o scanner (modo passivo). Observo IDs: 0x201 (evap 1) aparece a cada 200 ms; 0x20A (evap 10) não aparece.
    2. Desconecto evaporadora 10 fisicamente: barramento estabiliza e nenhuma outra unidade some — sinal de que evaporadora 10 está apenas offline, não provocando curto.
    3. Verifico alimentação e comunicação local da evaporadora: conector oxidado. Limpo pinos e reconecto — volta a aparecer 0x20A no scanner e operação normal. Resultado: economizei horas de teste e uma possível troca de placa externa.

⚠️ Alerta de segurança: desconectar unidades com equipamento energizado pode ser perigoso se não seguir procedimento do fabricante. Aja com EPIs e atenção.

CONCLUSÃO

Resumo rápido e prático: com um ESP32, um transceiver CAN compatível (preferencialmente SN65HVD230) e um pouco de software você monta uma ferramenta portátil, barata e muito poderosa para diagnosticar redes CAN em sistemas VRF. A solução substitui muitas visitas repetitivas e trocas desnecessárias de placas, pois permite identificar se o problema é elétrico (fiação, terminação), de barramento (nó travando) ou de aplicação (payload errático, unidade com defeito).

Ações imediatas que recomendo:

  • Monte o scanner seguindo a opção que se adeque ao seu conforto (TWAI nativo ou MCP2515).
  • Teste em bancada com um par de nós simulados antes de ir ao cliente.
  • Salve logs e compare com unidades conhecidas — diagnóstico por comparação é ouro.
  • Use AP local no ESP32 para acesso rápido via celular em campo.

Meu patrão, a manutenção moderna pede ferramentas simples, robustas e de baixo custo — pega essa visão: “Toda placa tem reparo”, e com a ferramenta certa você encontra o problema sem chutar. Se quiser, eu te passo um esboço de firmware com endpoints básicos (/scan, /frames, /set_bitrate) e layout da página web para começar. Tamamo junto — vamos reduzir custo de parada e elevar a sua eficiência na assistência técnica.

Referência: baseado no projeto publicado no Portal Embarcados (embarcados.com.br) e adaptado para aplicação prática em climatização VRF no Brasil.

Compartilhar: