全部
常见问题
产品动态
精选推荐
功能建议

分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
蓝牙通信协议

管理 管理 编辑 删除

下面为你提供一个 完整可交付给硬件团队使用的《蓝牙通信协议(正式版)》,包含指令格式、数据帧结构、校验方式、指令示例、错误码等。

协议采用 自定义二进制协议,简洁、稳定、易于小程序 BLE 写入。

蓝牙通信协议(正式版)

1. 通信基础说明

  • 通信方式:Bluetooth Low Energy(BLE)
  • 协议方式:自定义二进制指令
  • 通讯模式:小程序作为 Central,药箱作为 Peripheral
  • 蓝牙特征值(UUID) Write Characteristic: 0xFFF1 Notify Characteristic: 0xFFF2 (可根据硬件最终版本自定义)

2. 数据帧结构(统一格式)

每一条蓝牙指令以如下格式发送:

┌────────┬────────┬────────┬───────────────┬────────┐
│  Head  │ CmdCode│ Length │     Payload    │  CRC   │
├────────┼────────┼────────┼───────────────┼────────┤
│ 0xAA   │ 1 byte │ 1 byte │ 0~20 bytes     │ 1 byte │
└────────┴────────┴────────┴───────────────┴────────┘

字段说明

字段说明
Head固定为 0xAA
CmdCode指令码(见下)
LengthPayload 数据长度
Payload参数区,不定长
CRC校验:Head 到 Payload 的所有字节相加取低 1 字节


3. 指令列表(核心)

以下为药箱智能售货常用指令,已按你项目需求定制。

3.1 读取设备信息(设备编号、电量)

下行(小程序 → 设备)

AA 01 00  AB
  • CmdCode = 0x01
  • 无参数(Length=0)

上行(设备 → 小程序)返回

AA 01 07  [DeviceID 4B] [Battery 1B] [BoxMask 1B] CRC
参数说明
DeviceID设备唯一编号(4 bytes)
Battery电量百分比 0–100
BoxMask4bits 表示 4 个格口是否有货(1=有货,0=无货)

示例:

AA 01 07  12 34 56 78  64  0F  YY


3.2 获取格口库存状态

下行

AA 02 00 AC

上行

AA 02 01 [BoxMask] CRC
BoxMask(二进制)说明
bit0 = box1是否有货
bit1 = box2是否有货
bit2 = box3是否有货
bit3 = box4是否有货

示例:0b0111 → 第 4 个格口没货


3.3 开启指定格口(开箱)

下行(小程序 → 设备)

AA 03 01 [BoxID] CRC
BoxID取值
0x01开 1 号格口
0x02开 2 号格口
0x03开 3 号格口
0x04开 4 号格口

上行(设备返回)

AA 03 02 [BoxID] [Result] CRC
Result说明
0x00开箱失败
0x01开箱成功


3.4 更新某格口库存状态(管理员补货)

用于管理员补货后同步状态。

下行

AA 04 02 [BoxID] [StockStatus] CRC
StockStatus说明
0x00无货
0x01有货(补货完成)

上行

AA 04 01 [Result] CRC
Result说明
0x01更新成功
0x00更新失败


3.5 请求开箱动作结果查询(可选)

硬件执行时间较长情况下使用。

下行:

AA 05 00 AF

上行:

AA 05 01 [Result] CRC


3.6 设备异常回报(Notify 主动上报)

AA 0E 02 [ErrorCode] [Info] CRC
ErrorCode含义
0x01电量低
0x02电机异常
0x03传感器异常
0x04蓝牙通信异常
0x05存在卡箱情况


4. 错误码列表

错误码说明
0x00成功
0x01指令格式错误
0x02CRC 校验失败
0x03不支持的指令码
0x04参数错误
0x05蓝牙通信失败
0x06电箱电量过低不允许开箱
0x07设备繁忙


5. CRC 校验说明(单字节校验)

计算方式:

CRC = (Head + CmdCode + Length + Payload[所有字节]) & 0xFF

示例:

AA 03 01 04
Sum = AA + 03 + 01 + 04 = B2
CRC = B2


6. 蓝牙交互流程(小程序侧)

用户购买开箱流程

  1. 扫码进入小程序
  2. 蓝牙扫描 → 连接药箱 → 绑定特征值
  3. 读取库存 AA 02 00 AC
  4. 用户选择格口并付款
  5. 支付成功 → 小程序发送开箱指令 AA 03 01 xx CRC
  6. 设备返回开箱成功
  7. 后台订单标记完成


管理员补货流程

  1. 进入管理员模式
  2. 蓝牙连接设备
  3. 查询库存状态
  4. 选择格口 → 点击开箱补货
  5. 补货完成 → 发送更新库存指令 AA 04 02 xx xx CRC
  6. 服务器同步库存状态


7. 附录:蓝牙协议示例(完整交互)

用户购买 2 号格口流程

小程序 → 设备:

AA 03 01 02 B0

设备 → 小程序:

AA 03 02 02 01 B2

(表示 2 号格口开箱成功)

{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

小码二开 最后编辑于2025-12-02 11:42:29

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
2
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服