jr551/ChinaBLEVoltageMonitor
GitHub: jr551/ChinaBLEVoltageMonitor
该项目是一个基于 Web Bluetooth 的本地优先仪表板,通过逆向 BKmonitor 蓝牙协议实现对兼容电压监测设备的实时数据读取、图表绘制与电压骤降健康分析。
Stars: 0 | Forks: 1
# BLE 电压实验室
一款 local-first 的 Web Bluetooth 仪表板,适用于 **KONNWEI BK300** 及其他兼容 BKmonitor 的电池电压监视器。它直接从支持的浏览器进行连接,显示实时端电压,绘制读数图表,读取设备标识符,并提供解码后的数据包日志。
对于 30 V 至 42.5 V 之间的读数,仪表板会将其视为普通的 10S 锂离子电池组:满电为 42.0 V(10 × 4.2 V)。它显示的是基于电压的电量估算,而不是 BMS 的荷电状态读数。诸如 `4P` 之类的并联数量无法通过端电压推断。
在持续监控期间,应用会检测电压骤降和恢复事件。它最多可在浏览器本地存储中保存 50 个事件,并在发生三次事件后,根据该电池组记录的最佳状态报告相对的骤降健康趋势。在检测到骤降期间,电量估算会使用骤降前的电压。由于电流未知,只有在对比的负载大致相似时,健康趋势才有意义;它并不是 BMS 的 SOH 测量值。
它也是一款可安装的 Progressive Web App。加载后,界面可离线使用;访问 Bluetooth 仍需要兼容的浏览器和附近的设备。
本项目将原始的 [BKmonitor 协议逆向工程 gist](https://gist.github.com/jr551/21f1e88d8efa7113deb9c139310b23b9) 转化为一个经过测试、易于维护的代码库。
## 硬件
逆向工程已通过广播为 `bikebattery` 的 KONNWEI 品牌设备验证。相同的 BK300 硬件和协议也可能以其他品牌名称出售。
- [AliExpress BK300 商品示例](https://s.click.aliexpress.com/e/_c3i1uXXr)
(商品 `1005007797314538`)
- 观察到的价格:2026 年 7 月约为 **£6.49**;市场价格、税费、运费和产品变体可能会有所变动。
链接的商品将该设备描述为适用于 12 V 和 24 V 系统的“BK300 铅酸启动汽车电池检测器”。匹配的外壳或产品名称并不能保证固件也匹配,因此在实验前请验证 service UUID `FFF0`。
## 试用
Web Bluetooth 需要安全上下文。请使用已发布的 GitHub Pages 站点,或运行本地开发服务器:
```
npm install
npm run dev
```
在桌面端或 Android 端的 Chrome 或 Edge 中打开显示的 `localhost` URL,选择监视器(测试名称:`bikebattery`),然后使用 **立即读取** 或 **开始监控**。
Safari 和 Firefox 目前不支持 Web Bluetooth。iOS 浏览器无法使用此应用,因为它们都使用 WebKit。
## 安全性
只有经过验证的只读命令 `02 01` 和 `0B 0B` 具有一键控制。具有不完整 payload 语义的命令和会改变状态的命令显示为锁定的文档。原始控制台仅用于对自己拥有且可恢复的硬件进行协议研究。
## 开发
```
npm test
npm run build
```
协议实现无需任何依赖,位于 [`src/protocol.js`](src/protocol.js) 中。它包含 CRC-16/X-25 组帧、响应验证和通知片段重组。
## 协议
经过测试的设备公开了 service `FFF0`、通知 characteristic `FFF1`,以及无响应写入 characteristic `FFF2`。参见 [`protocol/BKMONITOR_BLE_PROTOCOL.md`](protocol/BKMONITOR_BLE_PROTOCOL.md)。
## 贡献
欢迎提供抓包数据和解码后的 payload。在提交 issue 之前,请对设备标识符、制造商数据和其他唯一值进行脱敏处理。
这是独立的互操作性研究,而非供应商文档。
## ESP32 屏幕演示
[`esp32demo/`](esp32demo/) 包含适用于 Waveshare ESP32-C6-LCD-1.47 开发板的、经过编译测试的 PlatformIO 固件。它直接连接到监视器,并在板载的 320×172 横向显示屏上渲染电压、10S 电量估算、标志、RSSI 以及简短轨迹。
标签:PWA, Web Bluetooth, 数据可视化, 物联网, 电池监控, 硬件接口, 蓝牙低功耗