模块(MODULE): 由氦氪提供的Wi-Fi通信模块,简称模块或Wi-Fi模块

帧长 (1B):整帧内容(包括帧头、帧长、校验码等)的字节个数,取值:[0x06,0xFE];
帧序号 (1B):取值[0x00,0xFF],循环累加,标识顺序,返回帧中填入相同值;
校验码 (1B):整帧内容(包括帧头、帧长等)的数据和,超过0XFF取低8位(1B)。
注:为简化交互流程,本文档中的描述弱化云端节点,将模块——云端——APP改述为模块——APP。

1.设备定时(如1分钟)或 在自身状态发生变化时向Wi-Fi模块主动发起上报。
2.设备主动上报频率(即帧间隔时间)不能低于200ms,否则可能造成丢帧。
模块接收到设备上报帧后会对帧格式校验,校验无误返回原帧作为应答,否则应答错误帧。错误类型请参考附1. 错误码表
此类帧应用于APP主动发送控制设备的指令,数据帧是经由模块下发至设备MCU。


模块将来自APP的数据帧下发后会等待设备MCU返回应答帧,超时时间为3s;MCU须在超时时间内进行应答,原帧返回即可。
设备进行应答后若设备状态发生改变,还需发送一帧设备上报帧,上报设备当前状态。参考2.1 设备主动上报流程。
在下发帧协议中,基本原则是尽可能在一帧中表达所有业务,基本格式为【命令+所有对应属性】,相关命令则调用相对应属性。
为了精简文档,本小节仅说明基本帧格式中有效数据部分,其他帧头等部分参考基本帧格式。以智能照明灯为例进行定义说明。

注意:当设备状态发生改变(包括APP发送控制指令导致的状态改变),务必需要通过主动上报帧上报当前所有状态!主动上报帧格式及内容可登录console平台查询。
本小节定义模块操作相关部分内容,例如Wi-Fi模块状态查询、重启Wi-Fi模块等。对应基本帧格式中有效数据部分。帧类型为0xFE。
另外,当模块状态改变,会主动发送状态帧到设备,格式与查询状态返回格式一致。


对于8266来说,固件运行区分为A和B,#10来表示;而对于其他硬件平台,则不区分,#10为00

ProdKey是产品唯一标识码,由开发者在氦氪console平台上添加产品时自动生成,字符串度为32Byte.
ProdKey用于区分不同产品型号,通常由厂测软件写入模块。也可由设备MCU通过串口指令来设置,以MCU设置的优先。

1.登录氦氪console平台并且点击进入“产品管理”界面。如果产品管理列表中已有氦氪项目部为您创建的产品,可点击对应产品图标右上角的“查看产品信息”,在基本信息栏中查看产品秘钥(ProdKey)。
3.根据产品秘钥ProdKey设置帧格式将获取的ProdKey字符串转换为对应的ProdKey设置帧。转换后的示例帧如下:
4.如果产品管理列表中暂时没有产品,可直接使用上述示例帧进行产品秘钥设置进入体验页面。
考虑到ProdKey的安全性,模块不支持直接查询,而是带ProdKey查询、模块返回是否匹配,所以开发者只能使用已知的PK去查询与模块中的ProdKey是否匹配。具体格式如下:


设备发送给模块的帧包括0x01设备上报帧和0xFE模块操作帧,如果模块应答错误帧,则说明发送帧有问题,如帧校验错误、操作帧中的帧命令不支持等。