IoT4Car车载遥测系统:Arduino MKR1000 + OBD-II 采集车辆数据上云分析
项目背景与愿景
现代汽车OBD-II接口蕴含丰富车辆运行数据:转速、车速、油耗、冷却液温度、故障码等。本项目基于Arduino MKR WiFi 1000,通过SparkFun OBD-II UART板读取车辆实时数据,经LCD本地显示并上传至云端,实现个人驾驶行为分析、车队管理监控、车辆健康预测性维护等高价值应用场景。
核心硬件架构
| 模块 | 型号 | 关键作用 | ||
|---|---|---|---|---|
| 主控板 | Arduino MKR WiFi 1000 | SAMD21 Cortex-M0+, 3.3V逻辑, 内置WiFi, 低功耗 | ||
| OBD-II协议转换板 | SparkFun OBD-II UART (STN1110芯片) | 将车辆CAN/ISO9141/KWP2000等协议转为UART串口 | ||
| 电平转换板 | SparkFun 双向逻辑电平转换器 | 5V(OBD板) ↔ 3.3V(MKR1000) 安全隔离 | ||
| OBD-II转DB9线缆 | SparkFun OBD-II to DB9 Cable | 连接车辆OBD-II诊断座(16针) | ||
| LCD1602显示屏 | 1 | 实时显示转速/车速/油位/水温 (可选) |
| 参数 | PID (Hex) | 命令 | 响应解析公式 | 单位 |
|---|---|---|---|---|
| 发动机转速 | 0x0C | 010C | (A×256 + B) / 4 | RPM |
| 车辆速度 | 0x0D | 010D | A | km/h |
| 燃油液位 | 0x2F | 012F | A × 100 / 255 | % |
| 冷却液温度 | 0x05 | 0105 | A - 40 | °C |
| 参数 | 显示值 | 对应物理量 | 验证状态 |
|---|---|---|---|
| Speed PID | 0x00 | 0 km/h (静止) | ✅ |
| RPM PID | 0x098C | 611 RPM (怠速) | ✅ |
| Fuel PID | 0x1D | 11% (低油位) | ✅ |
| Temp PID | 0x79 | 81°C (正常工作温度) | ✅ |