扩展支持蓝牙 Beacon 遥控器

更新时间:2023-11-08 02:10:37下载pdf

蓝牙单点通用模组可以接收蓝牙 Beacon 遥控器的控制信号并将其传递至微控制器(MCU),以便实现设备的蓝牙 Beacon 遥控器控制功能。

适用场景

  • 适用于长时间供电的家电和照明设备,以及需要遥控功能的设备。

方案特点

  • 提供手机和网关的蓝牙单点配网控制支持。
  • 支持蓝牙 Beacon 遥控器的本地和群组控制功能。
  • 支持身份验证机制,提供遥控器数据安全加密。
  • 遥控器不需要配网,不管被控设备是否配网,都可以被遥控器控制(和 2.4 GHz 遥控器的体验一致),除非遥控器通过被控设备的代理认证失败则不可以控制。
  • App 端可以移除遥控器群组信息。

快速体验

软硬件准备

  • 蓝牙单点通用模组
  • 蓝牙 Beacon 遥控器
  • 涂鸦模组调试助手

第一步:选择支持的蓝牙通用固件

选择支持蓝牙 Beacon 遥控器功能的蓝牙通用固件。

  1. 登录 涂鸦 IoT 开发平台

  2. 打开 创建产品 页面。

  3. 根据您已有的智能设备分类,选择产品类目,确定具体产品。例如,小家电 > 风扇

    扩展支持蓝牙 Beacon 遥控器
  4. 选择智能化方式 处,选择 产品开发

    扩展支持蓝牙 Beacon 遥控器
  5. 自定义方案 处,选择风扇或风扇遥控器。填写产品名称并选择通讯协议后,单击 创建产品

    扩展支持蓝牙 Beacon 遥控器
  6. 进入产品开发,在 03 硬件开发 中,选择 MCU SDK 对接方式,选择固件。

    当前 Telink 系列模组和 BPU 模组已经对遥控器功能进行了适配。以下是当前支持遥控器功能的交付物不完全列举。若您在硬件开发页面无法选择到对应的交付物,可 提交工单 联系涂鸦上架相应交付物。

    扩展支持蓝牙 Beacon 遥控器

    当前支持遥控器功能的固件有:

    • 固件 Key keyyayjm,固件版本 2.3.0 以上。
    • 固件 Key keyysck3,固件版本 2.1.1 以上。

第二步:准备蓝牙 Beacon 遥控器

购买或通过涂鸦蓝牙 Beacon 遥控器开发包开发遥控器。

第三步:使用涂鸦模组调试助手体验遥控器功能

跟随以下步骤快速体验遥控器功能。

  1. 首先,模组默认是不支持蓝牙 Beacon 遥控器的,需要通过功能扩展协议 蓝牙遥控器功能配置(CMD-0xC100) 打开该功能。例如:

    MCU -> 模组:55 AA 00 C1 00 03 00 07 01 CB。设置打开遥控器功能,且全时段支持配对,支持照明品类指令。

    模组 -> MCU:55 AA 00 C1 00 02 00 00 C2。配置成功,掉电记忆。

  2. 遥控器发送配对指令和模组配对,配对成功后模组将打印遥控器绑定信息。例如:

    模组 -> MCU:55 AA 00 C1 00 03 02 01 02 C8。遥控器配对成功,群组 ID:2。

  3. 遥控器控制开灯和关灯。

    依据 遥控器控制命令表0xFF 为通用品类,0x04 表示开关,后面跟的第一个字节为 0x00 表示关,为 0x01 表示开。

    模组 -> MCU:55 AA 00 C1 00 07 01 FF 04 00 00 00 00 CB,表示关灯。

    模组 -> MCU:55 AA 00 C1 00 07 01 FF 04 01 00 00 00 CC,表示开灯。

  4. 遥控器本地移除。当控制蓝牙遥控器本地移除时,模组将通知 MCU 遥控器绑定状态变化。

    模组 -> MCU:55 AA 00 C1 00 03 02 00 00 C5

  5. 将设备添加到智能生活 App 中。

    扩展支持蓝牙 Beacon 遥控器
  6. 再次控制遥控器发送配对指令和模组配对。

    模组 -> MCU:55 AA 00 C1 00 03 02 01 02 C8。遥控器配对成功,群组 ID:2。

  7. 模组对遥控器发起代理认证流程,认证成功后,App 面板内可见设备。若认证失败,将删除遥控器配对关系。

    扩展支持蓝牙 Beacon 遥控器
  8. App 移除遥控器。当通过 App 移除蓝牙遥控器时,模组也将通知 MCU 遥控器绑定状态变化。

    模组 -> MCU:55 AA 00 C1 00 03 02 00 00 C5

协议节选

蓝牙遥控器功能配置(CMD-0xC100)

  • 蓝牙遥控器功能指的是通过蓝牙遥控器控制该设备,蓝牙遥控器功能默认关闭。
  • CFG 字段选择模组自处理蓝牙遥控器配对许可模式时,模组上电 30 秒内允许蓝牙遥控器配对,30 秒后禁止配对。
  • CFG 字段选择 MCU 与模组配合处理蓝牙遥控器配对许可模式时,MCU 可以通过设置允许或者拒绝蓝牙遥控器配对,来控制蓝牙遥控器配对的窗口。
  • 遥控器最大配对数量为 5。若超出遥控器配对数量,会出现配对失败情况。
  • 打开蓝牙遥控器功能后,模组不会进入低功耗状态。所以在进入低功耗状态之前,需要调用该指令关闭蓝牙遥控器功能,退出低功耗状态后再打开。
  • 注意 RF 射频测试 CMD-0x0E 指令会影响扫描功能,需要在射频测试完成后再次开启遥控器功能。
  • 该配置将永久储存,支持掉电记忆。

MCU 发送

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xC1
4
5
2 数据长度 0x00
0x03
6 1 子命令 0x00
7
8
2 数据 Data[0]:CFG ①
Data[1]:品类 ID ②
9 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

① CFG:蓝牙遥控器功能配置字段。

  • bit00:关闭蓝牙遥控器功能。1:打开蓝牙遥控器功能。
  • bit10:模组自处理蓝牙遥控器配对许可模式。1:MCU 与模组配合处理蓝牙遥控器配对许可模式。
  • bit20:拒绝蓝牙遥控器配对。1:允许蓝牙遥控器配对。此字段仅当 bit11 时有效。
  • 其他 bit 保留,填 0。

② 品类 ID:

  • 全品类:Oxff
  • 照明:0x01
  • 插座/排插:0x02
  • 窗帘开关:0x03
  • 晾衣架:0x04
  • 风扇:0x05
  • 浴霸:0x06
  • 空调:0x07
  • 车库控制:0x08
  • 水阀控制:0x09
  • 消毒控制:0x0A
  • 温控插座:0x0B
  • 调光开关:0x0C
  • 情景灯插座:0x0D
  • 开关:0x0E
  • 窗帘通断器:0x0F

例如,55 AA 00 C1 00 03 00 01 05 C9,表示打开蓝牙遥控器功能。

模组返回

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xC1
4
5
2 数据长度 0x00
0x02
6 1 子命令 0x00
7 1 数据
  • 0x00:设置成功
  • 其他:设置失败
8 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

蓝牙遥控器数据通知(CMD-0xC101)

模组发送

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xC1
4
5
2 数据长度 0x00
0x07
6 1 子命令 0x01
数据
  • Data[0]:品类 ID,1 字节
  • Data[1]:控制命令,1 字节
  • Data[2]-Data[5]:控制数据,4 字节
13 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

MCU 返回

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xC1
4
5
2 数据长度 0x00
0x01
6 1 子命令 0x01
7 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

蓝牙遥控器绑定信息通知(CMD-0xC102)

该服务的前提是开启蓝牙遥控器功能,见 CMD-0xC100

模组发送

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xC1
4
5
2 数据长度 0x00
0x03
6 1 子命令 0x02
7
8
2 数据 Data[0]:0x00 表示解绑,0x01 表示绑定
Data[1]:群组 ID
9 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

蓝牙遥控器控制命令表

控制命令字
(1 字节)
控制命令(1 字节)
以下为通用命令
控制数据(4 字节),如未使用则补 0
品类 ID
全品类:0xFF

单个品类

照明:0x01

插座/排插:0x02

窗帘开关:0x03

晾衣架:0x04

风扇:0x05

浴霸:0x06

空调:0x07

车库控制:0x08

水阀控制:0x09

消毒控制:0x0A

温控插座:0x0B

调光开关:0x0C

情景灯插座:0x0D

开关:0x0E

窗帘通断器:0x0F

键值发送:0x01
字节 1:type,0 单击,1 双击,2 长按,3 长按保持,4 长按抬起

字节 2:键值
开关:0x04 字节 1:0 关闭,1 开启,2 暂停
字节 2:路数,路数为 0 时表示总控
喜好收藏:0x05 字节 1:1 收藏状态,2 切换到该收藏
字节 2:收藏号:0-3
倒计时功能:0x06 字节 1 和 2:倒计时时间,秒为单位,0 为取消倒计时,大端格式
字节 3:字节定时执行功能,暂时不用,待功能标号确定,默认关灯功能
一键群组查询:0x07 用于子设备广播通知已加入的群组
照明开关:0x08 字节 1:0 关闭,1 开启
字节 2:0 总开关,1 白光开关,2 彩光开关
亮度调节:0x09 字节 1:0 亮度值,1 亮度 +,2 亮度 -
字节 2:0 设备当前模式亮度,1 白光模式亮度
字节 3:字节 1 为 0 时表示亮度百分比(1-100%),字节 1 为 1 或 2 时表示亮度步进值(1-100%)
亮度无极调节:0x0A 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:0 设备当前模式亮度、1 白光模式亮度
字节 3:速率(每 1s 调节的百分比)
字节 4:无极调节目标值
色温调节:0x0B 字节 1:0 色温值、1 色温+、2 色温-
字节 2:字节 1 为 0 时表示色温百分比(0-100%) 字节 1 为 1 或 2 时表示色温步进值(0-100%)
色温无极调节:0x0C 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率(每 1s 调节的百分比)
字节 3:无极调节目标值
七彩调节:0x0D 字节 1:0 相对切换,1 具体颜色,2 循环调节开始,3 循环调节结束
字节 2:字节 1 为 1 时的具体颜色 ID
H 值调节:0x0E 字节 1:0 H 百分比值,1 步进加 +,2 步进减 -
字节 2:字节 1 为 0 时表示 H 百分比值(0-100%),字节 1 为 1 或 2 时表示 H 步进值(0-100%)
H 值无极调节:0x0F 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3:无极调节目标值
S 值调节:0x10 字节 1:0 S 百分比值,1 步进加 +,2 步进减 -
字节 2:字节 1 为 0 时表示 S 百分比值(0-100%),字节 1 为 1 或 2 时表示 S 步进值(0-100%)
S 值无极调节:0x11 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3:无极调节目标值
V 值调节:0x12 字节 1:0 V 百分比值,1 步进加 +,2 步进减 -
字节 2:字节 1 为 0 时表示 V 百分比值(1-100%),字节 1 为 1 或 2 时表示 V 步进值(1-100%)
V 值无极调节:0x13 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3:无极调节目标值
HSV 控制:0x14 字节 1:H 百分比值(0-100%)
字节 2:S 百分比值(0-100%)
字节 3:V 百分比值(1-100%)
场景调节:0x15 字节 1:0 相对切换,1 具体场景,2 循环调节开始,3 循环调节结束
字节 2:具体场景时的场景 ID
照明模式设置:0x16 字节 1:1 小夜灯模式
电机转动行程调节:0x20 字节 1:0 正转,1 反转,2 暂停
字节 2:行程百分比(0-100%),0 表示连续转动
字节 3:路数,0 表示总路数
电机行程设置:0x21 字节 1:0 进入行程点设置,1 进入微调行程点,2 确认 行程点
字节 2:0 上行程设置,1 下行程设置,2 中间行程设置
字节 3:路数,0 表示总路数
电机速度调节:0x22 字节 1:0 档位值,1 步进 +,步进 -
字节 2:具体档位或步进档位,字节 3:路数,0 表示总路数
电机速度无极调节:0x23 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3:无极调节目标值,字节 4:路数,0 表示总路数
温度调节:0x24 字节 1:0 温度值,1 步进 +,2 步进 -
字节 2 和 3:字节 1 为 0 时具体温度,字节 1 为 1 或 2 时步进温度。两字节温度值,大端表示,最高位表示正负,其他位的值表示温度单位值,以 0.1 摄氏度为单位,相乘得到具体温度。
温度无极调节:0x25 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3 和 4:无极调节目标值,温度值同上
湿度调节:0x26 字节 1:0 湿度值,1 步进 +,2 步进 -
字节 2:具体档湿度或步进湿度
湿度无极调节:0x27 字节 1:0 连续加开始,1 连续减开始,2 连续结束
字节 2:速率,每 1s 调节的百分比
字节 3:无极调节目标值
以下为品类定制命令

定制品类(1 字节)

定制命令(1 字节)

参数(3 字节)

照明定制:0xFF

RGBY 控制:0x01

字节 1:0 向 R 色调节,1 向 G 色调节,2 向 B 色调 节,3 向 Y 色调节

风扇定制:0xFE

风扇模式切换:0x01

字节 1:0:手动风,1:自然风,2:睡眠风

浴霸定制:0xFD

浴霸模式切换:0x01

字节 1:0 暖风,1 换气,2 干燥,3 吹风

空调定制:0xFC

睡眠:0x01

字节 1:0 off,1 on

常见问题

Q:遥控器功能配置(CMD-0xC100)如何配置?

A:当配置遥控器功能(CMD-0xC100),CFG 字段的设置取决于产品是否需要在任意时间允许遥控器进行配对操作。强烈建议仅在设备上电的前 30 秒内允许遥控器进行配对操作,这可以通过将 bit1 设置为 0 来实现。如果您需要更长的配对时间,可以根据具体需求通过组合 bit1bit2 来自行配置。

不建议始终允许遥控器在全时段内进行配对,因为这可能导致遥控器配对的对象不确定性,从而降低系统的安全性和可控性。

该配置策略有助于确保在设备启动后的特定时间窗口内才允许遥控器进行配对操作,从而提高产品的安全性和稳定性。

Q:有哪些常见的注意事项?

  • 以灯举例,一个灯最多支持 5 个遥控器。

  • 一个遥控器最多支持 8 个按键(8 个群组)。

  • 替代逻辑:遥控器先和 A 家庭的灯配对,然后和 B 家庭的灯配对。此时云端应该删除遥控器与 A 家庭的配对关系,并在 A 家庭的灯在线时通知灯删除该配对关系,之后遥控器不能再控制 A 家庭的灯。

如果在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。咨询前,建议首先查阅 官方资料 或参考已有帖子,并认真阅读 发帖规范

参考文档