STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制 整体说明 测试功能 2.安装微信小程序 3.请使用杜邦线连接如下: 4.当前拨动开关如下: 5.提醒 测试 单片机程序 微信小程序   微信小程序扫码绑定   微信小程序通信控制 5.提示

这节演示一下使用微信小程序扫码绑定Air302(NB-IOT),

然后通过MQTT服务器实现远程温湿度采集和远程控制继电器

测试功能

1.请按照第一节硬件介绍,下载单片机程序

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

2.安装微信小程序

微信小程序已经发布,用户可使用微信扫描安装


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示






如果有微信小程序经验,可源码安装

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


3.请使用杜邦线连接如下:

白线 A3 --- TX

黑线 A2 --- RX


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


4.当前拨动开关如下:

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


5.提醒

串口1在程序里面作为了日志打印输出口

用户可以打开串口调试助手观察日志


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

测试

1.打开微信小程序,添加设备

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

2.扫描成功以后,自动跳转到主页面,并添加了一个设备

设备显示的信息为GPRS的IMEI


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示




3.控制继电器吸合

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

4.控制继电器断开


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

 STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

单片机程序

1.如果用户搭建好了MQTT服务器,可以修改下面的参数连接自己的服务器

注:假设服务器的IP地址是 47.92.31.46,则unsigned char IP[55]="47.92.31.46";

ClientID默认使用芯片的唯一码,用户不需要填写.

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

2.程序主要概况

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

① 控制模块以非阻塞方式连接MQTT服务器
② MQTT消息处理封装包

2.和NB-IOT通信

单片机使用串口2和NB-IOT用AT指令通信

串口1作为日志输出口

所有的串口采用环形队列缓存管理,利用空闲中断检测接收完一条数据以后再去处理.

由于NB-IOT模块发送数据有间断问题,为保证接收完一条数据

在空闲中断的基础上增加了额外的20Ms空闲检测

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

3.我封装的MQTT库为回调函数形式

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

4.MQTT服务器实际上就是一个TCP服务器

然后在TCP的基础上增加的协议.

所以一开始连接TCP服务器

连接服务器是使用的我写的 ConfigModuleNoBlock小框架

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

提示:

case 3 是获取模组的IMEI号,就是模组上面的二维码

用IMEI作为了MQTT的ClientID

 

连接上TCP服务器(MQTT服务器)完成以后,发送连接MQTT协议

执行上面的case9 的 FunctionParseConnectMqtt 函数

在FunctionParseConnectMqttAck 函数里面处理返回的消息.

5.发送连接MQTT协议

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

提示:设备发布的主题在此地方组合   device/模组IMEI

注意一件事情: 字符串转16进制表示的字符串

模组的发送数据需要先把所有的数据转换程序16进制,然后再发!

模组内部程序就做成了这样!!!确实有点麻烦,需要先转一下!!!

6.连接成功以后执行MQTT连接回调

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

7.在连接回调函数里面订阅主题

订阅的主题:user/设备的IMEI

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

8.接收处理消息

模组发过来的是把数据转成16进制字符串以后的信息,需要转换为实际的数据

然后让mqtt_read_function 处理各种MQTT消息.

如果返回的是普通通信数据,则调用回调函数处理

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

9.发送数据

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示



微信小程序

1.如果用户搭建好了MQTT服务器,可以修改下面的参数连接自己的服务器

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

建议在微信小程序平台上设置合法域名(推荐)

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

注意:wss://自己的域名

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

如果不设置合法域名,想尽快的测试,也可以设置软件不校验域名

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

2.微信小程序整理概况

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示




① APUConfig 程序
② 控制页面
③ 主页
④ 本人封装的mqtt包
⑤ mqtt底层包

 

微信小程序扫码绑定


STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示

扫码得到IMEI号以后携带着信息跳转到主页面.

 

微信小程序通信控制

1.点击相应的设备以后,把设备的MAC地址信息传递给控制页面

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


2.启动两个定时器,订阅主题和查询设备继电器状态

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


3.发送数据
STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


4.接收数据

STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
整体说明
测试功能
2.安装微信小程序
3.请使用杜邦线连接如下:
4.当前拨动开关如下:
5.提醒
测试
单片机程序
微信小程序
 
微信小程序扫码绑定
 
微信小程序通信控制
5.提示


5.提示

MQTT底层包封装了回调函数
内部支持断线重连,用户只需要调用回调函数使用即可.

结语

这节只是大致概括下程序,为已经有基础的人提供学习思路
如果没有基础,请按部就班的接着学习