825 字
4 分钟
电动牙刷BLE指令设计

大端在前,每条指令均为20字节,未使用的字节填充为0


0x01 设置牙刷命令#

该命令用于设置牙刷的工作参数,包括使能状态、振动频率、振动幅度、扫动频率、扫动幅度等。其余字节补零。

字节位置123456~20
内容使能振动频率振动幅度扫动频率扫动幅度0 填充

0x02 刷牙状态服务#

该命令用于上报电池电量、刷牙进度和固件版本号。

字节位置12-34-78~20
内容电池电量刷牙进度(大端)版本号(大端)0 填充

0x03 RFID 标签数据#

该命令用于上报刷头标签信息,包括唯一ID、生产日期、刷头类型、寿命及使用次数。

字节位置1-89-1011121314-1516-1718~20
内容标签唯一ID年份(大端)刷头类型寿命(大端)使用次数(大端)0 填充

0x04 同步历史数据服务 - 包1#

历史数据同步包1用于传输时间戳、刷牙时长及刷头ID。

字节位置12-56-78-1516~20
内容包头时间戳(大端)时长(大端)刷头ID(大端)0 填充

0x04 同步历史数据服务 - 包2#

历史数据同步包2用于传输刷牙位置等刷牙数据。

字节位置12-1920
内容包头刷牙数据

0x07 刷牙状态数据#

刷牙状态数据用于传输刷牙状态信息及剩余时间。

字节位置1-181920
内容状态数据剩余时间

0x08 刷牙模式设置#

刷牙模式设置共5个包,每个包包含分片索引、刷头ID和部分模式数据(每包截取20字节)。

字节位置12-910-20
内容分片索引刷头ID(大端)模式数据部分

0x09 UTC 时间同步#

用于同步 UTC 时间,4 字节时间戳 + 填充。

字节位置1-45-20
内容UTC 时间(大端)0 填充

0x0A 图片传输服务 - 信息包#

该命令用于传输图片的基本信息,包括图片尺寸、总包数及图片格式等。

字节位置12-34-56-789-161718-1920
内容包头图片宽度(大端)图片高度(大端)总包数(大端)图片格式标签唯一ID(8字节)位置保留保留
  • 包头:0x00 表示信息包
  • 图片宽度、高度:2字节大端
  • 总包数:2字节大端
  • 图片格式:1字节(如 0x01=RGB565)
  • 其余字节补零或保留

0x0A 图片传输服务 - 数据包#

该命令用于分包传输图片数据,每包最多携带18字节图片数据。

字节位置12-1920
内容包序号图片数据填充
  • 包序号:1字节,表示当前数据包的序号(从1开始递增)

    若超出则从1循坏开始(packetnumber)%255 + 1

  • 图片数据:最多18字节,若不足18字节则后续字节补0

  • 填充:1字节,若图片数据已满18字节则为0,否则用于补齐20字节长度

每个数据包的格式为:命令字节(0x0A)+ 包序号 + 图片数据(18字节)+ 填充(不足时补0),共20字节。

0x0B 同步RFID名称附加信息#

该命令用于上报刷头标签信息及名称

字节位置1-8910 ~20
内容标签唯一ID位置数据1、2、3字符串

电动牙刷BLE指令设计
https://blog.zyfang.top/posts/toothbrush/电动牙刷指令设计/
作者
Fang
发布于
2025-04-01
许可协议
CC BY-NC-SA 4.0