更新时间:2024-05-14 08:00:14下载pdf
涂鸦 Wi-Fi 串口协议是针对涂鸦 Wi-Fi 模组定制的串口协议,主要用于涂鸦 Wi-Fi 模组与其它 MCU 串口直连完成串口通信。
串口协议通信示意图如下。
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 固定为 0x55aa |
版本 | 1 | MCU 软件版本号,升级扩展时使用 |
命令字 | 1 | 具体的命令字 |
数据长度 | 2 | 采用大端模式 |
数据 | 取决于具体数据 | 传输的数据 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
数据段 | 长度(字节) | 说明 |
---|---|---|
dpid | 1 | 功能点序号 |
type | 1 | 对应开放平台上功能点具体的数据类型:
|
len | 2 | 长度对应 value 的字节数(大端) |
value | 1/2/4/N | hex 表示,大于 1字节采用大端传输 |
产品信息由 PID(产品 ID)和 MCU 软件版本号构成。
x.x.x
,x 为十进制数并且 0<=x<=99。模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 支持以下两个版本:
|
命令字 | 1 | 0x01 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,然后将得出的结果对 256 求余 |
示例:0x55aa 00 01 0000 00
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 或 0x01 |
命令字 | 1 | 0x01 |
数据长度 | 2 | N |
数据 | 取决于具体数据 | 参见示例 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:{"v":"1.0.0", "m":1, "cap":0, "p":"mhnmpqzf7ntzm***", "n":0, "s":0, "a":0}
v:MCU 版本号。示例为:1.0.0。
m:配网方式。
说明:常配网工作模式。模组出厂上电后处于待配网状态,如果不对模组进行配网操作改变网络状态,模组会一直保持
说明:当模组处于配网状态三分钟后未被用户配走模组便退出配网状态,进入低功耗状态,需要重新收到重置命令才会重新进入配网模式。
说明:当收到MCU的命令重置后,三分钟都没有配上网,模组会重连原来配置的WiFi。其余和低功耗配网表现一致。
cap:设备支持的能力,取值为十六进制转十进制后的数值。比特位对应功能如下:
bit7: 取消心跳管理,该位置位后网关不再发送心跳包,由 MCU 主动
控制子设备的在线/离线状态
说明:例如,设备不支持本地群组(bit0 为 0),不支持本地场景(bit1 为 0),但支持功能点(bit2 为 1),即十六进制数据为
0000 0000 0000 0100
,即 cap 值为 4。
p:产品 PID。示例中 PID 为 mhnmpqzf7ntz****
n(可选):配网模式。
无该字段:SmartConfig 和 AP 配网模式互相切换。
0:SmartConfig 和 AP 配网模式共存。
说明:选择此配网模式后,重置 Wi-Fi 选择配网模式 指令操作失效,重置后依然为 SmartConfig 和 AP 共存的配网模式。
1:仅支持 AP 配网模式。
说明:产品只能通过 AP 连接的方式进行设备配网。选择此配网模式后,重置 Wi-Fi 选择配网模式 指令操作失效,重置后依然为 AP 配网模式。
s(可选):是否为安防网关,需要安防能力支持,默认不支持安防能力。
a(可选):设备功能能力值。数据是 1 字节 8 位的数据,每个数位对应一个种功能。MCU 必须使用对应的功能。
说明:新对接的网关需要强制设置为 1,以减少 MCU 开发量,对应命令为
0xC104
。
模组工作模式主要针对如何指示 Wi-Fi 的工作状态以及如何重置 Wi-Fi,主要分两种方式。
MCU 与模组配合处理
模组自处理:
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 02 0000 01
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 |
|
数据 | 0/2 | 数据长度为 4,Port 范围为 0~3 依次代表 A~D。Pin 范围为 0~7。
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:
0x55aa 00 02 0000 04
( MCU 与模组配合处理)0x55aa 00 02 0004 0103 0102 0C
(模组自处理,指示灯 0x0103:PB_3,重置按钮 0x0102:PB_2)说明:如果模组工作模式为模组自处理,则 MCU 无需实现本协议。
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态1 | SmartConfig 配置状态 | 0x00 |
状态2 | AP 配置状态 | 0x01 |
状态3 | Wi-Fi 已配置但未连上路由器 | 0x02 |
状态4 | Wi-Fi 已配置且连上路由器 | 0x03 |
状态5 | 已连上路由器且连接到云端 | 0x04 |
状态6 | Wi-Fi 设备处于低功耗模式 | 0x05 |
状态7 | SmartConfig 和 AP 共存配置状态 | 0x06 |
模组自处理工作模式相应的 LED 显示分别为:
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 显示 Wi-Fi 工作状态。 0x00:状态1 0x01:状态2 0x02:状态3 0x03:状态4 0x04:状态5 0x05:状态6 0x06:状态7 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 03 0001 00 03
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 03 0000 02
说明:如果模组工作模式为模组自处理,则 MCU 无需实现本协议。
重置 Wi-Fi 状态转化如下图所示。
模组自处理 Wi-Fi 重置方法:Wi-Fi 检测 GPIO 入口低电平持续 5s 以上触发 Wi-Fi 重置。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 04 0000 03
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 04 0000 03
说明:如果模组工作模式为模组自处理,则 MCU 无需实现本协议。
MCU 接入用户可选择性的实现该协议。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00:进入SmartConifg配置模式 0x01:进入AP配置模式 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 05 0001 00 05
,进入SmartConfig配置模式
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:0x55aa 00 05 0000 04
App 发送允许入网指令至网关,允许子设备在指定时间内接入网络。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
App 发送关闭入网指令至网关。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x07 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x07 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送子设备入网请求至 Wi-Fi。
pk_type 为可选字段,默认值为1。
channel 对于子设备需要 OTA 功能时一定要传输,默认为10。硬件开发>新增自定义固件>升级通道号。
注意:channel 配置错误可能导致 OTA 功能异常。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | N |
数据 | N |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 接收请求 0x01 拒绝请求 (子设备实际是否入网成功,详见返回添加设备结果) |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
App 发送关闭入网指令至网关。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
Wi-Fi 模组定时查询子设备心跳。查询周期和子设备数量相关,子设备数量越多,子设备心跳查询间隔越频繁。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0A |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
说明: 在线的设备需要回复心跳,连续 2 个心跳周期不回复,则识别为设备离线。
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0A |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
用于同步子设备状态。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0B |
数据长度 | 2 | 无 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回(状态上报)
控制命令下发。
raw
类型外,其他类型均属于 obj
型。功能点命令或状态数据单元格式见此处说明。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0C |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
子设备接收到命令下发后进行回复或接收到状态变化后主动推送该指令。
功能点命令或状态数据单元格式见此处说明。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0D |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
支持将子设备加入本地群组。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0E |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0E |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
本地群组子设备删除。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0F |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0F |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 示例:0x55aa 00 10 0000 0F |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 2 | 0x0007 |
数据 | 7 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x11 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x11 |
数据长度 | 2 | 0x0008 |
数据 | 8 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
说明:
- 设备在国内激活:返回北京时间(东8区)。
- 设备在国外激活:返回设备所处时区时间。
批量添加同一个 PID 的多个子设备。单次批量添加的子设备的上限为 32 。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 无 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
设备添加完成后,通知 MCU 添加结果。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | N |
数据 | N |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
扫描指定的 SSID: tuya_mdev_test
,返回扫描结果和信号强度百分比。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x15 |
数据长度 | 2 | 0x0000 |
数据 | Data | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x15 |
数据长度 | 2 | 0x0002 |
数据 | 2 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 可根据此条命令获取 Wi-Fi 状态。具体 Wi-Fi 状态见 报告设备联网状态。网关在网络初始化完成前不会回复Wi-Fi 状态。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | 0x0001 |
数据 | 1 | Wi-Fi工作状态: 0x00:状态1 0x01:状态2 0x02:状态3 0x03:状态4 0x04:状态5 0x05:状态6 0x06:状态7 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
本地(离线)恢复出厂指令,会导致云端信息和本地信息不同步,必须在设备在线状态下使用或者设备第一次激活前使用。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x17 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
网关收到移除或者恢复出厂命令时,会向 MCU 报告状态。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x18 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送删除子设备指令。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x19 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 | 示例:{ “sub_id”:“xxx” } |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x19 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1A |
数据长度 | 2 | 0x0003 |
数据 | 3 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1A |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
获取 Wi-Fi 模组剩余内存。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x1B |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1B |
数据长度 | 2 | 0x0004 |
数据 | 4 | 数据长度为 4 字节,大端格式。例如,00 00 28 00 代表剩余 10240 字节内存。 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 可查询网关下所有子设备的列表。当列表数据大于 255 字节时分包发送。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1C |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1C |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
IoT 平台提供可视化配置选项,支持用户自行选择升级方式。模组仅作为支持 MCU 升级的数据传输通道,不对数据内容进行解析。
说明: Wi-Fi 模组发送完所有的升级包后发送 01 命令字查询产品信息 ,MCU 需要在一分钟内回复产品信息中的软件版本号和升级后的 MCU 版本号的合集。版本号需要和在涂鸦后台配置升级的版本号保持一致。
MCU 远程升级方式:
App 自动升级(原静默升级):App 端不提供提醒弹窗,固件上电后一分钟内进行升级检测,如果检测到高版本升级包则自动升级包下载和安装。自第一次上电后,每隔 24 小时进行升级检测。
MCU 升级相关流程图:
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1D |
数据长度 | 2 | 0x0004 |
数据 | 4 | 升级文件大小,大端模式 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1D |
数据长度 | 2 | 0x0001 |
数据 | 1 | 升级包分包传输大小:
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1E |
数据长度 | 2 | 0x0004+m,m 为偏移字节 |
数据 | offset_addr(4byte)+ pack(mbyte) | offset_addr: 包偏移地址 pack: 数据包内容 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
例如,若要升级的文件大小 530Byte。(最后一包数据可不回复。)
第一包数据,包偏移为 0x00000000,数据包长度为 256
0x55aa 00 1e 0104 00000000 xx…xx XX
第二包数据,包偏移为 0x00000100,数据包长度为 256
0x55aa 00 1e 0104 00000100 xx…xx XX
倒数第二包数据,包偏移为 0x00000200,数据包长度为 18
0x55aa 00 1e 0016 00000200 xx…xx XX
最后一包,包偏移为 0x00000212,数据包长度为 0
0x55aa 00 1e 0004 00000212 XX
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1E |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1F |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1F |
数据长度 | 2 | 0x0001 |
数据 | 1 | 升级包分包传输大小:
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x20 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:sub_id 为 1234,需要升级的文件大小 530 Byte。(最后一包数据可不回复。)
第一包数据,包偏移为 0x00000000,数据包长度为 256。
0x55aa 00 20 0109 04 31 32 33 34 00000000 xx…xx XX
第二包数据,包偏移为 0x00000100,数据包长度为 256。
0x55aa 00 20 0109 04 31 32 33 34 00000100 xx…xx XX
倒数第二包数据,包偏移为 0x00000200,数据包长度为 18。
0x55aa 00 20 001B 04 31 32 33 34 00000200 xx…xx XX
最后一包,包偏移为 0x00000212,数据包长度为 0。
0x55aa 00 20 0009 04 31 32 33 34 00000212 XX
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x20 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x21 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x21 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x22 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x22 |
数据长度 | 2 | 0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x23 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x23 |
数据长度 | 2 | 0x0001 |
数据 | 无 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
数据包由 Wi-Fi 模组透传给 MCU 模组进行广播。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 | 广播包数据 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 状态返回: data[0]: 0x00:success 0x01:fail data[1]: 0:success: fail: 失败原因 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
数据包由App通过MCU透传给Wi-Fi。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 无 |
数据 | data | 加密数据 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组回复
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
数据包由 Wi-Fi 通过 MCU 透传至 App。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x26 |
数据长度 | 2 | N |
数据 | 取决于具体数据 | 加密数据 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 回复
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x26 |
数据长度 | 2 | 0x0000 |
数据 | 无 | |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 会将与手机连接的状态主动推送给 Wi-Fi 模组。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x27 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 连接状态: 0x00:连接断开 0x01:连接建立 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x28 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 回复
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x28 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x29 |
数据长度 | 2 | N |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回状态上报
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2A |
数据长度 | 2 | N |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2A |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00:成功 0x01:失败 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2B |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2B |
数据长度 | 2 | 0x0007 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2C |
数据长度 | 2 | 无 |
时间 | 7 |
|
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2C |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0:成功 1:失败 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2D |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组回复
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2D |
数据长度 | 2 | 0x0007 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2E |
数据长度 | 2 | N |
数据 | 取决与具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2E |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 | 示例:{"gid":"xxx","sub_id":"xxxx" } |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2F |
数据长度 | 2 | N |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2F |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x30 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x30 |
数据长度 | 2 | 0x0002 |
数据 | 2 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x31 |
数据长度 | 2 | 0x0002 |
数据 | 2 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x31 |
数据长度 | 2 | N |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:
模组发送
55 AA 00 31 00 02 00 1E 50
MCU 返回
55 AA 00 31 00 75 00 00 00 94 FC 00 36 00 00 236f 236f 068e 0226 068e 0226 068e 0226 0226 0226 0226 0226 068e 0226 0226 0226 0226 0226 0226 0226 068e 0226 068e 0226 068e 0226 0226 0226 068e 0226 068e 0226 068e 0226 068e 0226 0226 0226 0226 0226 0226 0226 068e 0226 0226 0226 0226 0226 a9cf 236f 08ce 0226 82d5 82d5 85
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x32 |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x32 |
数据长度 | 2 | 0x0001 |
数据 | MCU 接收控制码状态:
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
w.temp,w.pm25
返回 w.temp
,返回参数少于请求参数请仔细检查请求参数名是否正确。具体可参考 天气服务详细参数说明。示例:
w.humidity:69,w.temp:32,w.pm25:10,w.condition:多云(UTF-8 编码 E5A49A E4BA91)
55 AA 00 21 00 40 01 0A 77 2E 68 75 6D 69 64 69 74 79 00 04 00 00 00 45 06 77 2E 74 65 6D 70 00 04 00 00 00 20 06 77 2E 70 6D 32 35 00 04 00 00 00 10 0B 77 2E 63 6F 6E 64 69 74 69 6F 6E 01 06 E5 A4 9A E4 BA 91 1E
入参:{"codes":"w.temp","w.humidity", "w.sunRise", "w.sunSet", "t.local","w.date.3"}
返回:{"codes": "w.temp.0":13,"w.humidity.0":100, "w.sunRise.0":2019-12-28 06:54,""w.sunSet.0":2019-12-28 17:05,"w.temp.1":13,"w.humidity.1":100, "w.sunRise.1":2019-12-28 06:54,""w.sunSet.1":2019-12-28 17:05,"w.temp.2":13,"w.humidity.2":100,"w.sunRise.2":2019-12-28 06:54,""w.sunSet.2":2019-12-28 17:05,}
打开获取天气数据功能。定时更新时间由 MCU 设置,最小更新间隔为 10 分钟,建议标准的更新时间为 60 分钟。考虑天气数据的实时性,最大间隔是 240 分钟。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | (1+1+(L+K)+(L+K)…) |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:55 AA 00 33 00 2C 00 00 06 77 2E 74 65 6D 70 0A 77 2E 68 75 6D 69 64 69 74 79 0A 77 2E 70 72 65 73 73 75 72 65 06 77 2E 70 6D 32 35 05 77 2E 73 6F 32 B0
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 0x0003 |
数据 | 3 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
开启天气数据功能后模组定时下发天气数据。开启功能后会即时触发数据下发,后续以设置的时间间隔下发。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | (1+(LKTLV)+(LKTLV)+…) |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x01 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 发送
字段 | 长度 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | (1+1+(L+K)+(L+K)…) |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和得出的 结果对 256 求余 |
示例:55 AA 00 33 00 2B 02 06 77 2E 74 65 6D 70 0A 77 2E 68 75 6D 69 64 69 74 79 0A 77 2E 70 72 65 73 73 75 72 65 06 77 2E 70 6D 32 35 05 77 2E 73 6F 32 B1
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x02 |
1 | 执行结果: 0x00:成功 0x01:失败 |
|
校验和 | 1 | 从帧头开始按字节求和得出的 结果对 256 求余 |
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 命令字:0x03 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:55 AA 00 33 00 01 03 36
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 1+2+1+7 |
数据 | 11 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
对于不需要心跳查询的场景,可以通过此命令字暂停心跳查询。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x04 |
1 | 心跳查询状态 0x01:恢复心跳查询 0x00:关闭心跳查询 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
示例:55 AA 00 33 00 02 04 00 38
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x33 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x04 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
说明:此章节类容对于对于双模平台模块有效
设备蓝牙状态 | 描述 | 状态值 |
---|---|---|
状态1 | 未绑定,未连接 | 0x00 |
状态2 | 未绑定,已连接 | 0x01 |
状态3 | 已绑定,未连接 | 0x02 |
状态4 | 已绑定,已连接 | 0x03 |
状态5 | 未知状态 | 0x04 |
对于双模平台,此功能默认支持;
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x00 |
1 | 设备蓝牙状态 状态1:0x00 状态2:0x01 状态3:0x02 状态4:0x03 状态5:0x04 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x00 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
说明:
- 模块内部目前扫描指定的蓝牙信标: ty_mdev,返回扫描结果和信号强度百分比.
- 这里为了最大程度防止不良品这里建议客户将路由于设备距离控制在5米左右,
信号强度大于等于60%为合格,这里可以根据自己产线和工厂环境的情况自行调整。
存在干扰的情况下40%也可以接受
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x01 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x01 |
2 | Data[0]:0x01失败, 0x00成功; 当Data[0]为0x00,即成功时,Data[1]表示信号强度 (0-100, 0信号最差,100信号最强); 当Data[0]为0x01,即失败时,Data[1]为0x00表示未扫描到指定的蓝牙信标,Data[1]为0x01表示模块未烧录授权key |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
说明:MCU可根据此条命令获取蓝牙状态。具体蓝牙状态见 蓝牙状态通知。网关在网络初始化完成前不会恢复蓝牙状态。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x02 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x60 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x02 |
1 | 设备蓝牙状态 状态1:0x00 状态2:0x01 状态3:0x02 状态4:0x03 状态5:0x04 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
此部分协议为安防相关功能指令,只描述指令内容,详细的对接流程请在 IoT 平台上下载《安防网关对接流程说明》。
用于设置当前的布防撤防模式。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1+N |
数据 | 取决于具体数据 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 2 |
数据 | 1 | 子命令:0x00 |
1 | 操作结果: 00:成功 非00:失败 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
用于获取当前的安防信息。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x01 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1+N |
数据 | 1 | 子命令:0x01 |
取决于具体数据 |
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
当通过 App 设置安防信息后,模组以此条指令同步状态给 MCU。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1+N |
数据 | 1 | 子命令:0x02 |
取决于具体数据 |
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x02 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
安防事件模组通过本指令同步状态至 MCU。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1+N |
数据 | 子命令 | 0x03 |
取决于具体数据 |
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC0 |
数据长度 | 2 | 1 |
数据 | 子命令 | 0x03 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 通过安防标准DP32有状态变化时,需要将状态同步给模组。
MCU 发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 2 |
数据 | 子命令 | 0x00 |
报警状态 | 0:正常; 非 0:报警中 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
模组返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 2 |
数据 | 子命令 | 0x00 |
操作结果 | 0:成功 非 0:失败 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
当通过 App 设置取消报警,模组以此条指令同步状态给 MCU,同时 MCU也 需要通过安防标准 DP 2上报 false
。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 2 |
数据 | 1 | 子命令:0x01 |
1 | 0:取消报警 | |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x01 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
当环境设备 DP 或者非环境设备 DP 触发了设备报警,模组以此条指令同步报警信息给 MCU,同时 MCU 也需要通过安防标准 DP 26 上报。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1+N |
数据 | 子命令 | 0x02 |
取决于具体数据 |
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x02 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
设备处于报警延时状态时,会通过此命令同步报警延时状态给 MCU。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 2 |
数据 | 1 | 子命令:0x03 |
1 | 报警延时状态 0:报警延时未创建 1:报警延时进行中 2:报警延时结束 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x03 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
此命令为新的设备报警信息同步,配合 01 命令字中 A 字段的 bit0 位使能,且使能后安防 0xc101 和 0xc102 命令字无需处理。
目前预留多防区网关功能的字段。当前设备不返回此字段。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1+N |
数据 | 1 | 子命令:0x04 |
取决于具体数据 |
|
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1 |
数据 | 子命令 | 0x04 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
此命令为新的设备报警信息同步,配合 01 命令字中 A 字段的 bit0 位使能。
模组发送
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 2 |
数据 | 1 | 子命令:0x05 |
Data | 0:取消报警 1:报警中 |
|
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
MCU 返回
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC1 |
数据长度 | 2 | 1 |
数据 | 1 | 子命令:0x05 |
校验和 | 1 | 从帧头开始按字节求和,将得出的结果对 256 求余 |
文字 | 编码16进制 | 文字 | 编码16进制 |
---|---|---|---|
晴 | E699B4 | 大雨 | E5A4A7 E99BA8 |
雷暴 | E99BB7 E69AB4 | 沙尘暴 | E6B299 E5B098 E69AB4 |
小雪 | E5B08F E99BAA | 雪 | E99BAA |
冻雾 | E586BB E99BBE | 暴雨 | E69AB4 E99BA8 |
局部阵雨 | E5B180 E983A8 E998B5 E99BA8 | 浮尘 | E6B5AE E5B098 |
雷电 | E99BB7 E794B5 | 小阵雨 | E5B08F E998B5 E99BA8 |
雨 | E99BA8 | 雨夹雪 | E99BA8 E5A4B9 E99BAA |
尘卷风 | E5B098 E58DB7 E9A38E | 冰粒 | E586B0 E7B292 |
强沙尘暴 | E5BCBA E6B299 E5B098 E69AB4 | 扬沙 | E689AC E6B299 |
小到中雨 | E5B08F E588B0 E4B8AD E99BA8 | 大部晴朗 | E5A4A7 E983A8 E699B4 E69C97 |
雾 | E99BBE | 阵雨 | E998B5 E99BA8 |
强阵雨 | E5BCBA E998B5 E99BA8 | 大雪 | E5A4A7 E99BAA |
特大暴雨 | E789B9 E5A4A7 E69AB4 E99BA8 | 暴雪 | E69AB4 E99BAA |
冰雹 | E586B0 E99BB9 | 小到中雪 | E5B08F E588B0 E4B8AD E99BAA |
少云 | E5B091 E4BA91 | 小阵雪 | E5B08F E998B5 E99BAA |
中雪 | E4B8AD E99BAA | 阴 | E998B4 |
冰针 | E586B0 E99288 | 大暴雨 | E5A4A7 E69AB4 E99BA8 |
雷阵雨伴有冰雹 | E99BB7 E998B5 E99BA8 E4BCB4 E69C89 E586B0 E99BB9 | 冻雨 | E586BB E99BA8 |
阵雪 | E998B5 E99BAA | 小雨 | E5B08F E99BA8 |
霾 | E99CBE | 中雨 | E4B8AD E99BA8 |
多云 | E5A49A E4BA91 | 雷阵雨 | E99BB7 E998B5 E99BA8 |
中到大雨 | E4B8AD E588B0 E5A4A7 E99BA8 | 大到暴雨 | E5A4A7 E588B0 E69AB4 E99BA8 |
天气数据参数 | 含义 | 国内 | 国外 | 是否支持预报 | 十六进制 |
---|---|---|---|---|---|
w.temp | 大气温度 | 支持 | 支持 | 国内支持7天内数据 | 77 2e 74 65 6d 70 |
w.thigh | 最高温度 | 不支持 | 支持 | 支持7天内数据 | 77 2e 74 68 69 67 68 |
w.tlow | 最低温度 | 不支持 | 支持 | 支持7天内数据 | 77 2e 74 6c 6f 77 |
w.humidity | 空气湿度 | 支持 | 支持 | 支持7天内数据 | 77 2e 68 75 6d 69 64 69 74 79 |
w.condition | 天气状况,晴、雨、雪等 | 支持 | 支持 | 支持7天内数据 | 77 2e 63 6f 6e 64 69 74 69 6f 6e |
w.conditionNum | 天气状况,数字编码表示天气状况 | 支持 | 支持 | 支持7天内数据 | 77 2e 63 6f 6e 64 69 74 69 6f 6e 4e 75 6d |
w.pressure | 大气气压 | 不支持 | 支持 | 支持7天内数据 | 77 2e 70 72 65 73 73 75 72 65 |
w.realFeel | 体感温度 | 不支持 | 支持 | 支持7天内数据 | 77 2e 72 65 61 6c 46 65 65 6c |
w.uvi | 紫外线指数 | 不支持 | 支持 | 支持7天内数据 | 77 2e 75 76 69 |
w.sunRise | 日出 | 支持 | 支持 | 支持7天内数据 | 77 2e 73 75 6e 52 69 73 65 |
w.sunSet | 日落 | 支持 | 支持 | 支持7天内数据 | 77 2e 73 75 6e 53 65 74 |
t.unix | 格林威治时间(配合日出/日落使用) | 74 2e 75 6e 69 78 | |||
t.local | 本地时间(配合日出/日落使用) | 74 2e 6c 6f 63 61 6c | |||
w.windSpeed | 风速 | 支持 | 支持 | 支持7天内数据 | 77 2e 77 69 6e 64 53 70 65 65 64 |
w.windDir | 风向 | 支持 | 不支持 | 支持7天内数据 | 77 2e 77 69 6e 64 44 69 72 2e 6e |
w.windLevel | 风级 | 支持 | 不支持 | 支持7天内数据 | 77 2e 77 69 6e 64 4c 65 76 65 6c |
w.aqi | 空气质量指数 | 支持 | 不支持 | 仅有当天数据 | 77 2e 61 71 69 |
w.tips | 一句话提示天气实况/专业实况。 | 支持 | 不支持 | 仅有当天数据 | 77 2e 74 69 70 73 |
w.rank | 详细 AQI 实况及全国排名 | 支持 | 不支持 | 仅有当天数据 | 77 2e 72 61 6e 6b |
w.pm10 | PM10(可吸入颗粒物) | 支持 | 不支持 | 仅有当天数据 | 77 2e 70 6d 31 30 |
w.pm25 | PM2.5(细颗粒物) | 支持 | 不支持 | 仅有当天数据 | 77 2e 70 6d 32 35 |
w.o3 | 臭氧浓度 | 支持 | 不支持 | 仅有当天数据 | 77 2e 6f 33 |
w.no2 | 二氧化氮浓度 | 支持 | 不支持 | 仅有当天数据 | 77 2e 6e 6f 32 |
w.co | 一氧化碳浓度 | 支持 | 不支持 | 仅有当天数据 | 77 2e 63 6f |
w.so2 | 二氧化硫浓度 | 支持 | 不支持 | 仅有当天数据 | 77 2e 73 6f 32 |
w.date.n(n表示,需要预报的天数,1<= n <=7) | 需要预报天数 | 支持 | 支持 | 77 2e 64 61 74 65 2e 6e |
版本 | 日期 | 说明 |
---|---|---|
1.1.13 | 20201221 | 1:MCU以及子设备升级包传输支持更小分包 2:增加双模模块蓝牙相关功能 |
1.1.9 | 20200925 | 1:心跳检测增加低功耗类型 2:安防增加显示信息同步和报警状态同步 3:子设备添加增加ota和channel字段 4:增加天气服务功能 5:增加带时区格林时间获取命令 6:增加心跳管理 |
1.1.8 | 20200709 | 1:增加红外相关功能; 2:产品信息中增加安防能力选择字段 3: 心跳功能说明 |
1.1.7 | 20200423 | 1:增加ap&ez共存配网状态; 2:统一安防传感拓展协议中一些字段统一 |
1.1.6 | 20200409 | 增加安防网关相关功能协议 |
1.1.5 | 20200220 | 1.基础协议中,增加3.37,3.38,3.39指令 2.在双链路扩展协议中,增加4.2.2,4.2.3,4.2.4,4.2.5,4.2.6指令 3.在3.19命令中增加key这个可选字段。 4.在3.24中增加04状态 5.增加3.38指令,3.39指令 6.删除心跳回复帧中的设置心跳时间 |
1.1.4 | 20191212 | 1.产品信息加上p字段 2.心跳间隔从60s改至180s |
1.1.3 | 20191202 | 1.产品信息加上tp字段 2.增加双链路扩展协议 新增子设备同步 3.更新子设备在线/离线状态 4.产品信息增加cap字段中增加取消心跳机制标志 5.增加获取mac的指令 6.增加记录型实时上报接口 7.心跳最小间隔 从30s改至60s |
1.1.2 | 20190713 | 1.增加串口配网指令(一体式) 2.增加串口透传配网指令(分体式) 3.增加查询dp状态指令 4.增加sigmesh清除子设备信息指令 5.增加sigmesh获取local ID 指令 6.增加sigmesh更新群组地址的指令 7.串口升级的分包兼容128byte |
1.1.1 | 20190529 | 1.增加群组控制指令带sub_id信息 2.增加获取dev_key的指令 3.对本地恢复出厂设置进行说明 4.在产品信息中增加群控指令带sub_id的标志 5.当网关为sigmesh网关时删除子设备时,增加devkey |
1.1.0 | 20190520 | 1.增加cap的bit4,是否有MCU ota功能 2.增加远程服务指令 3.增加获取Wi-Fi状态帧 4.增加本地删除子设备帧 5.增加查询子设备列表帧 6.增加本地恢复出厂设置帧 7.增加报告移除状态指令 8.增加sig mesh获取源节点指令 |
1.0.9 | 20190413 | 1.增加cap的bit3标识内部sigmesh。 2.增加网络信息拉取帧 3.增加申请网络节点帧 4.增加添加sigmesh子设备帧 5.增加本地允许/关闭添加子设备帧 6.增加获取模组内存帧 |
1.0.8 | 20190319 | 1.修改添加子设备后的应答。 |
1.0.7 | 20190118 | 1.增加群组控制帧 2. 将3.19返回批量添加设备结果 命令字改为0x13. 3.增加群控指令0x014 4.增加产测指令0x15 |
1.0.6 | 20190111 | 1. 增加时间(格林时间和本地时间)读取 2. 增加批量添加子设备 3. 增加批量添加子设备返回结果 4. sub_id为"0000"代表网关本身。 5. 心跳间隔时间最少30S. |
1.0.5 | 20181107 | 1.增加组操作返回结果集 |
1.0.4 | 20181107 | 1. 增加本地群组子设备加组、子设备删组操作 2. 修改查询产品信息指令,增加设备能力返回(是否支持本地群组,本地场景) |
1.0.3 | 20181030 | 1.删除产品信息中的pid信息 2.将3.2中的端口port限制到A-D |
1.0.2 | 20181027 | 1.增加查询产品信息命令 2.增加查询MCU工作模式命令 3.报告设备联网状态命令 4.增加重置Wi-Fi命令 5.增加重置Wi-Fi-选择配置模式命令 6.调整各个命令的命令码 |
1.0.1 | 20181025 | 修改3.3子设备添加协议,增加心跳时间设置 |
1.0.0 | 20181018 | 首次创建 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈