文档
硬件接入测试 · Arduino R4
用真实微控制器验证协议解码与告警闭环
沐安平台支持真实硬件数据源接入。本页展示用 Arduino Uno R4 WiFi(ESP32-S3)模拟比亚迪风格 BMS 报文,经 HTTPS 上报平台协议解码端点,验证协议解码 → 数据接收 → 告警判级的完整闭环。
测试装置
- 控制器:Arduino Uno R4 WiFi(ESP32-S3,内置 WiFiS3 + WiFiSSLClient)
- 协议:BYD-BMS 报文(帧头 0x5A + SOC/温度/单体电压/绝缘)
- 上报:帧 base64 → POST /api/ingest/decode(HTTPS/TLS)
- 固件:每秒上报一轮,每 20 轮注入一次 47℃ 高温异常(验证告警链)
协议解码精度(端到端实测)
将 R4 生成的 6 组 BYD 帧提交平台协议端点,解码字段与真值逐位一致:
| 用例 | SOC | 温度℃ | 最高单体V | 最低单体V | 绝缘Ω/V | 解码 |
|---|---|---|---|---|---|---|
| 正常行驶 | 70 | 30.0 | 3.68 | 3.62 | 1240 | ✅一致 |
| 过温 45℃ | 60 | 46.0 | 3.70 | 3.64 | 1200 | ✅一致 |
| 过温 52℃ | 60 | 52.0 | 3.70 | 3.64 | 1200 | ✅一致 |
| 压差 0.37V | 60 | 35.0 | 3.82 | 3.45 | 1200 | ✅一致 |
| 绝缘偏低 | 60 | 35.0 | 3.70 | 3.64 | 420 | ✅一致 |
| SOC 过低 | 8 | 35.0 | 3.70 | 3.64 | 1200 | ✅一致 |
实测 6/6 端到端解码通过——R4 帧流可被平台协议层实时接收、解析,SOC/温度/单体电压/绝缘逐位还原。
告警判级验证
R4 上报的异常数据,平台规则引擎判级结果(与过温/压差/绝缘/SOC 规则一致):
| 场景 | 判定等级 | 命中规则 |
|---|---|---|
| 正常行驶 | green | 无 |
| 过温 45~50℃ | orange | 温度异常 |
| 过温 ≥50℃ | red | 温度异常(超红线) |
| 压差 ≥0.3V | orange | 压差异常 |
| 绝缘 <500Ω/V | red | 绝缘异常(超红线) |
| SOC <10% | yellow | SOC 过低 |
实测 6/6 告警判级通过——R4 注入的异常可正确触发过温/压差/绝缘/SOC 四类告警,并匹配五色等级。
端到端闭环
R4 数据源 → 平台协议层 → 告警/展示 全链路:
- 电池安全监控:R4 上报的车辆 SOC/温度/单体电压实时更新
- 告警管理中心:注入的 47℃ 高温异常触发过温告警,可查看/处置
- 协议插件框架:BYD-BMS 插件解码,新增品牌只加插件类,零主干改动
可复现测试
测试可完全复现(仓库 hardware/r4_wifi_battery_source/):
verify-byd-frame.mjs— verify-byd-frame.mjs — 验证 BYD 帧格式解码(3/3)verify-alarms.mjs— verify-alarms.mjs — 验证告警判级(6/6)e2e-decode-live.mjs— e2e-decode-live.mjs — 端到端线上解码(6/6)Arduino_R4_WiFi_Battery_Source.ino— Arduino_R4_WiFi_Battery_Source.ino — R4 固件(烧录后实时上报)
运行方式:node hardware/r4_wifi_battery_source/e2e-decode-live.mjs(连接平台线上端点)。本测试证明沐安协议层对真实硬件数据源的接受能力——从微控制器到协议解码到告警,全链路可验收。