IoT4Car: Telemetria Veicular com Arduino MKR1000 – Captura e Análise via OBD-II
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino MKR1000 (WiFi) | 1 |
| Conversor de Nível Lógico Bidirecional (SparkFun) | 1 |
| Placa OBD-II UART (SparkFun, chip STN1110) | 1 |
| Cabo OBD-II para DB9 (SparkFun) | 1 |
Aplicativos e Serviços Online
- Arduino IDE
- freeboard.io (dashboard)
- dweet.io (IoT messaging)
Sobre o Projeto
Coleta e analisa telemetria do veículo (velocidade, RPM, nível combustível, temperatura) via OBD-II, exibindo em LCD e enviando para nuvem.
Contexto: OBD-II
On-Board Diagnostics padrão em veículos 1996+ (EUA), 2001+ (EU). Interface 16 pinos. Protocolos: CAN bus (obrigatório desde 2008). Placa SparkFun OBD-II UART usa chip STN1110 para converter protocolos OBD para UART (comandos ELM327).
Hardware: Conexões
Arduino MKR1000 opera a 3.3V – necessário conversor de nível para a placa OBD (5V). Conexões:
- MKR Pin 13 (RX) ↔ OBD TX (via level shifter)
- MKR Pin 14 (TX) ↔ OBD RX (via level shifter)
- GND comum
- LCD 1602 opcional para display local (pinos 12,11,5,4,3,2)
Programação: Pontos-Chave
- Use Serial1 (pinos 13/14), não
Serial(USB). Inicialize:Serial1.begin(9600) - Comandos OBD (Modo 01 - dados em tempo real):
010D– Velocidade010C– RPM motor012F– Nível combustível0105– Temperatura líquido de arrefecimento
- Resposta formato:
>1 0D 00(5 chars header + dados hex). Dados reais começam no índice 6. - Decodificação: RPM = (0x098C)/4 = 611; Combustível = 0x1D/255*100 = 11%; Temp = 0x79-40 = 81°C
Envio para Nuvem (dweet.io → freeboard.io)
void httpRequest() {
client.stop();
if (client.connect("www.dweet.io", 80)) {
String data = "POST /dweet/for/mkr1000?RPM=" + String(vRPM)
+ "&Speed=" + String(vSpeed)
+ "&Fuel=" + String(vFuel)
+ "&Temp=" + String(vTemp);
client.println(data);
client.println("Host: www.dweet.io");
client.println("Connection: close");
client.println();
}
}
No freeboard: crie dashboard, datasource apontando para "mkr1000" no dweet.io, widgets Gauge para cada variável.
Workaround WiFi
MKR1000 usa WiFi – sinal raro em estradas. Solução: use celular como hotspot pessoal.
Código Completo (IoT4Car_code)
Versão 9 – WiFi, sem serial debug, upload a cada 10s. Inclui: WiFi101, LiquidCrystal, parsing OBD, envio HTTP. Disponível no projeto.
Esquemáticos
Fritzing: MKR1000 + OBD-II UART + Level Shifter + LCD 1602.
Conclusão
Testado em veículo real – funcionou bem. Futuro: PCB integrada. MKR GSM 1400 seria melhor para cobertura móvel ampla. Cuidado ao depurar enquanto dirige!
Processo de manufatura
- Guia Completo das Placas de Licenciamento Veicular: História, Design e Futuro
- Sistema de Freios ABS: Protegendo Seu Veículo em Estradas Escorregadias
- Entendendo o Trem de Força: Como Ele Impulsiona Seu Veículo
- Entendendo o Alternador: Como Alimenta Seu Carro e Sinais de Falha
- Sistema de Desvio de Obstáculos com IA usando Arduino e Sensores Ultrassônicos
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- Fantasia de Nuvem DIY: Fita LED, Arduino Nano e Peças SparkFun
- Entendendo Aterramento do Chassi (Chassis Ground): Finalidade, Função e Importância
- Layout do Chassis do Veículo: Posição do Motor e Configurações de Tração Explicadas
- Fiação Veicular Desmistificada: Conceitos-Chave para Desempenho Automotivo Confiável