基础系统指令
设备初始化(0x01)
模组未初始化,或收到格式错误的初始化信息,每2秒向mcu发送一次。 收到mcu的回复且验证参数格式正确后,初始化完成,停止发送。
模组发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x01 |
长度 | 2 | 0x000b |
mac/imei | 6/15 | 模组mac或imei |
version | 5 | 模组固件版本,xx.xx,0x30≤x≤0x39,“.”的编码为0x2e |
校验 | 1 | 校验和 |
mcu返回:
注意!mcu收到0x23指令后,不回复此命令
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x01 |
长度 | 2 | 0x0019 |
产品ID | 4 | 云平台生成,4字节的无符号整型数字,大端法 |
产品秘钥 | 16 | 云平台生成,16字节的十六进制编码 |
mcu_version | 5 | mcu固件版本,xx.xx,0x30≤x≤0x39,“.”的编码为0x2e |
校验 | 1 | 校验和 |
查询模组时间(0x02)
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x02 |
长度 | 2 | 0x0000 |
校验 | 1 | 校验和 |
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x02 |
长度 | 2 | 0x000c |
是否有效 | 1 | 0x00:时间有效;0x01:时间无效 |
时间戳 | 4 | 大端法表示 |
年 | 1 | 范围0-99,17表示一七年 |
月 | 1 | 1-12 |
日 | 1 | 1-31 |
时 | 1 | 0-59 |
分 | 1 | 0-59 |
秒 | 1 | 0-59 |
星期 | 1 | 1-7 |
校验 | 1 | 校验和 |
报告模组状态(0x03)
此命令用于wifi模组向mcu报告运行状态,也可作为心跳检测指令。 模组未连上云平台时,每2秒向mcu发送此命令。 模组连上云平台时,若10秒未向mcu发送过数据,则发送一次此命令。 模组状态指示灯控制信号通过GPIO14输出,低电平点亮,高电平熄灭。
模组发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x03 |
长度 | 2 | 0x0005 |
模组当前状态 | 1 | 0x00:smartconfig配网模式(灯快闪) 0x01:ap配网模式(暂不支持) 0x02:wifi配置成功但未连上路由器(灯慢闪) 0x03:wifi配置成功已连上路由器(灯灭) 0x04:连上云服务器(灯长亮) 0x05:产测模式(灯快闪2次) |
时间戳 | 4 | 大端法表示。上电后,未成功连接过服务器,此字段为0 |
校验 | 1 | 校验和 |
mcu返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x03 |
长度 | 2 | 0x0000 |
校验 | 1 | 校验和 |
重置模组(0x04)
可通过硬件/软件2种方式重置模组,模组重置会先擦除ssid和密码,并解除与APP的绑定关系,之后复位重启。
- 硬件方式:模组正常运行时会检测GPIO0电压,当检测到持续5秒以上的低电平时,模组复位。
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x04 |
长度 | 2 | n,(3≤n≤68),大端法 |
重置模式 | 1 | 0x00:重置模组 0x01:smartconfig配网模式 0x02:ap配网模式 |
超时时间 | 1 | 30~240:配网超时时间,重置模式为0x01、0x02时有效 |
AP配置 | n | 仅在重置模式0x02时有效,其余模式时置零(n=1) 格式:| ssid_len | ssid | password_len | password | ssid_len = 0:默认(ssid:IOT_AP_xxxx ; password : 无); |
校验 | 1 | 校验和 |
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x04 |
长度 | 2 | 0x0003 |
重置模式 | 1 | 0x00:重置模组 0x01:smartconfig配网模式 0x02:ap配网模式 |
超时时间 | 1 | 30~240:配网超时时间,重置模式为0x01、0x02时有效 |
重置结果标志 | 1 | 0x00:成功, 0x01:失败 |
校验 | 1 | 校验和 |
AP配置字段说明:
字段 | 长度 | 说明 |
ssid_len | 1 | AP名称长度 ( n_id ≤ 32 ) |
ssid | n_id | AP名称(支持中文,英文,下划线等) |
password_len | 1 | AP密码长度 0:无密码,公开模式 8 ≤ n_pd ≤ 32 :设置ap wifi密码 |
password | n_pd | AP密码(支持中文,英文,下划线等) |
注:
- AP配置字段的长度n=ssid_len+password_len+2。
- 若ssid,password字段设置长度为n的中文,n <=(32/3 = 10).
产测模式(0x05)
wifi模组上电后15秒内收到此命令,会进入产测模式(灯快闪2次)。 产测模式下,模组搜索周围ssid为FACTORY-TEST的测试路由,并将搜索结果和信号强度返回mcu。超时时间为40秒,搜索期间不响应任何串口指令。
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x05 |
长度 | 2 | 0x0000 |
校验 | 1 | 校验和 |
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x05 |
长度 | 2 | 0x0002 |
产测结果 | 1 | 0x00:成功找到产测路由 0x01:超时,未找到产测路由 0x02:模组扫描故障 |
信号强度 | 2 | 产测结果(1byte):产测结果为0,此字段有效,否则无效 信号强度(1byte):范围0-100,0最差,100最强 |
校验 | 1 | 校验和 |
发送数据回调(0x06)
发送数据成功后,模组收到云端回复后调用该指令。当发送4.1节上传数据、6.1节透传自定义数据、7.1节子设备上线、7.2节子设备下线指令后,模组发送这个指令。
模组发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x06 |
长度 | 2 | 0x0004 |
序列号 | 4 | 大端法自增数字,某条数据的序列号。如不关心何时处理成功,可不做处理 |
校验 | 1 | 校验和 |
用户绑定指令(0x07)
设备端发起允许绑定的指令,在超时时间内可以进行发现绑定。超时未绑定则模组返回绑定失败。(请在设备连云成功后发送此命令。)
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x07 |
长度 | 2 | 0x0004 |
超时时间 | 4 | 0~4294967295,单位:秒(s) |
校验 | 1 | 校验和 |
当用户绑定成功后,模组返回该指令。
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x07 |
长度 | 2 | 0x0001 |
返回类型 | 1 | 0x00:设置允许绑定回复; 0x01:绑定成功; 0x02:绑定失败(超时或设备未联网) |
校验 | 1 | 校验和 |
用户解绑指令(0x08)
设备端发起解绑指令。
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x08 |
长度 | 2 | 0x0004 |
超时时间 | 4 | 0~4294967295,单位:秒(s) |
校验 | 1 | 校验和 |
当用户用设备端/APP解绑成功后,模组返回该指令。
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x08 |
长度 | 2 | 0x0000 |
校验 | 1 | 校验和 |
用户分享信息变化指令(0x09)
当分享用户数量增加/减少时,模组返回该指令。
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x09 |
长度 | 2 | 0x0001 |
类型 | 1 | 0x00: 分享用户增加; 0x01:分享用户减少 |
校验 | 1 | 校验和 |
获取用户信息指令(0x0A)
设备端发起获取用户信息指令。
mcu发送:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x0A |
长度 | 2 | 0x0001 |
信息类型 | 1 | 0x00:获取绑定用户信息 0x01:获取分享用户信息 0x02:获取设备信息(绑定状态,sdk版本号) |
校验 | 1 | 校验和 |
当设备端发起获取用户信息指令,模组返回该指令。
模组返回:
字段 | 长度 | 说明 |
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x0A |
长度 | 2 | n,(4≤n≤1032),大端法 |
type | 1 | 0x00:获取绑定用户信息 0x01:获取分享用户信息 0x02:获取设备信息(绑定状态,sdk版本号) 0x03:获取ota升级信息(固件类型,固件大小,ota版本号) |
data_len | 2 | n,(1≤n≤1024),大端法,data的长度。 (当n = 0时,表示没有绑定/分享用户。) |
data | n | 自定义数据,仅支持字符型(0≤n≤1024) |
校验 | 1 | 校验和 |
用户信息包括: 用户id,邮箱,手机号国家代码,手机号,昵称
用户信息 | 长度 |
用户id | <= 20 |
邮箱 | <= 45 |
手机号国家代码 | 4 |
手机号 | 11 |
昵称 | <= 32 |
获取用户信息的OpData值解释:
DataType | 长度(Byte) | OpData值说明 |
0x00 | >112 | | len | id | len | mail | len | phonecode | len | phone | len | name | |
0x01 | >112*n | | len | id | len | mail | len | phonecode | len | phone | len | name | |
...... | 重复上个字段,可一条指令获取多条分享者信息 | |
0x02 | 6 | |bind status|sdk_version| 绑定状态(1Byte):0x00 为未绑定,0x01为已绑定 Sdk版本号(5Byte):如02.05 |
0x03 | 11 | | owner | flen | ota_ver | Owner(1byte): 固件类型,0:wifi(不支持);1:mcu; flen(4byte):固件大小 ota_ver(6byte): ota固件版本号 |