Skip to content

4.4 通信协议 ​

通信协议分为通用AT指令协议和功能协议,通用AT指令协议请参考《探频WiFi模组AT指令使用说明》。功能指令协议在完成第二章产品定义后,可在平台通信协议流程里导出当前协议。

4.4.1 通用指令协议 ​

通用指令协议是模组自身支持的协议,对应《探频WiFi模组AT指令使用说明》,接下来演示下通用协议,示例使用的是TPL8684模组,其他模组也相同或者类似。

先将蓝牙模组接上USB-TTL工具,然后USB插入电脑,PC端使用的串口助手和测试的指令也存放在文档里面。

**模组的串口参数:**奇偶检验位: 无,数据位:8 位,停止位: 1 位,默认波特率115200。

硬件接线:USB-TTL工具的3V3 TX RX GND 分别对应模块的VCC U1_RX U1_TX GND ,串口需要交叉连接,使用邮票孔贴片的设计参考TPL8684模块规格书。

​ EN需要上拉

如下图

/img/4-3-4-1.png

<1>:AT指令使用测试 ​

打开串口助手,我们设置合适的波特率,默认115200,然后给模块掉电重新上电,会上电打印“+ATReaday”。

接着打印wifi配网状态,还没有设置配网的模块打印“+WIFI_SOFTAP”

我们发送基础的AT测试指令“AT”,会返回"+OK” 。完成此步骤代表我们硬件接线以及测试环境搭建成功。

注意:串口助手测试务必勾选附加位回车换行,单片机测试附加位 16进制,0D 0A。

备注:使用串口助手是方便我们演示,实际产品指令实现还需要开发者在MCU内完成。

/img/4-3-4-1-1.png

<2>:WiFi模块初始化流程(测试阶段) ​

模组调试首次配置,我们需要配置,设备编码,产品编号,MQTT账号,MQTT密码,产品密钥,然后用app配置WIFI模块连接至路由器。

**设备编号:**仅测试时候修改即可(为了同一个模块测试不同的设备),建议测试时设置为11位个人手机号+1位数字顺序递增,量产时候可以不设置和修改,模块默认采用MAC地址作为设备编号,具体查看《探频WiFi模组AT指令使用说明》中的AT+DEVICENUM指令描述。

**产品编号:**平台自动生成,请查看产品定义->基础配置里面3.3.1。演示项目编号为 142。

MQTT账号:平台自动生成,请查看产品定义->基础配置里面3.3.1。演示项目为TOPYLINK。

MQTT密码:平台自动生成,请查看产品定义->基础配置里面3.3.1。演示项目为P451956FZ4S1X8E0。

产品密钥:平台自动生成,请查看产品定义->基础配置里面3.3.1。演示项目为K5U40O6F8IE6MK6H。

具体的这些参数请自行查看平台信息,每个项目都是不一样的。

在配置这些必要的参数之前,我们可以先查询下MQTT状态,我们是首次测试,MQTT是没有连接的。

我们依次发送AT指令:

“AT+DEVICENUM=147823686072” 注意这个编码是我个人手机编码,这里请用自己的手机号。

“AT+PRODUCTNUM=142”

“AT+MQTTUSERNAME=TOPYLINK”

“AT+MQTTUSERPWD=P451956FZ4S1X8E0”

“AT+PRODUCTKEY=K5U40O6F8IE6MK6H”

须确保每条指令都返回OK,所有指令均配置一次既可,再次上电已保存Flash不需要再配置。

然后我们查询下我们的配置信息“AT+GETINFO”指令,可以看到我们的信息均配置成功。

配置信息完成后,我们复位模块“AT+RESET”或者发送“AT+WIFICONFIG”重置WiFi准备连接路由器网络。待出现“+WIFI_SOFTAP”既可通过手机小程序给WIFI模块连接网络。

/img/4-3-4-1-2.png

详细的流程图如下:具体见《探频WiFi模组AT指令使用说明》附录。

/img/4-3-4-1-3.png

<3>:WiFi模块商用使用流程 ​

总体流程和调试阶段一致,不过不用配置设备编号,设备编号由模块内部MAC自动生成。然后用app配置WIFI模块连接至路由器。

详细的流程图如下:具体见《探频WiFi模组AT指令使用说明》附录。

/img/4-3-4-1-4.png

<4>:WiFi模块配网流程 ​

上两个章节我们已经将模块参数配置成功,模块会打印“+WIFI_SOFTAP”,收到这个指令之后我们可以使用我们测试小程序给WiFi模块配网,微信扫描下面二维码进入测试小程序,按照小程序的操作指导进行WiFi配网。

/img/4-3-4-3-4.png

4.4.2 功能协议 ​

第二章产品定义后,可在通信协议流程里导出当前协议,注意功能协议是针对当前产品定义的功能实现协议,需要在WIFI配网成功APP连接状态下来测试。

/img/4-3-4-2-1.png

<1>:《协议介绍》 ​

这个是介绍协议总的格式,如下截图。

其中系统事件不用处理,“仅上报” 是由MCU发送数据给wifi模组上报给服务器,用以显示到APP上,(主要用于数据显示)。“可上报/可下发 ”包含数据上报以及APP下发数据给MCU, “仅下发”类型仅支持数据下发给MCU。

/img/4-3-4-2-2.png

<2>:《协议测试》 ​

设备配网完成之后,串口会打印,“+WIFI_CONNECTED” “+MQTT_CONNECTED”,代表WiFi和MQTT已经正常,可以工作了。

进入测试小程序,可以看到设备已经显示到APP界面,进入设备主界面,可以看到设备显示的默认参数,WiFi模组串口会打印“+MQTT_GET”已获取设备当前的最新状态信息,我们需要上报我们设备的参数。

/img/4-3-4-2-3.png

数据上报:

我们通过AT+MQTTPUB上报设备状态。具体格式见《探频WiFi模组AT指令使用说明》。

假设我们上报湿度为56,温度为-10,第二通道为开启。其余不变。

查看我们导出的功能协议,其中湿度id为5f66fff1 ,温度id为2592f2a5,第二通道开关id为ca5bbb96。

那么我们上报的具体指令为AT+MQTTPUB=5f66fff1:56,2592f2a5:-100,b33d92b7:1

/img/4-3-4-2-4.png

数据下发:

我们操作手机APP依次打开通道1,通道4,功率等级调整到5。我们可以在串口助手看到打印信息

"+MQTT_SUB=2e95a2cf:1"

“+MQTT_SUB=95d79c57:1”

“+MQTT_SUB=d6fde087:5”

对照我们的导出的通信协议,可以看到ID 与数据一致。