5-STM32+ESP8266+AIR202基本控制篇功能3-APP扫码绑定Air202,并通过MQTT和Air202实现远程通信控制(兼容SIM800)

Posted 优秀不够,你是否无可替代

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5-STM32+ESP8266+AIR202基本控制篇功能3-APP扫码绑定Air202,并通过MQTT和Air202实现远程通信控制(兼容SIM800)相关的知识,希望对你有一定的参考价值。

 

 

 整体说明

这节演示一下使用APP扫码绑定GPRS,然后通过MQTT服务器实现远程温湿度采集和远程控制继电器
程序兼容SIM800

测试功能

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


2.安装APP

注:这节的APP和第三节的一样,如果在第三节安装了APP,不用重新安装.

技术图片

3.请使用杜邦线连接如下:
白线 A3 --- TX
黑线 A2 --- RX

<ignore_js_op>技术图片



技术图片



<ignore_js_op>技术图片


4.当前拨动开关如下:
技术图片

5.提醒
串口1在程序里面作为了日志打印输出口
用户可以打开串口调试助手观察日志

技术图片

技术图片


测试

1.打开APP,点击右上角菜单,选择添加设备 扫一扫
<ignore_js_op>技术图片

<ignore_js_op>技术图片

2.扫描成功以后,自动跳转到主页面,并添加了一个设备
设备显示的信息为GPRS的IMEI
<ignore_js_op>技术图片


3.点击设备进入设备控制页面
技术图片

4.控制继电器吸合
技术图片

技术图片

5.控制继电器断开

技术图片

技术图片

单片机程序

<ignore_js_op>技术图片

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

APP程序

技术图片

① APUConfig 实现部分
② 操作手机数据库相关
③ 控制页面
④ MQTT通信封装
⑤ UDP通信封装
⑥ 扫描二维码相关
⑦ 连接WI-Fi热点包


单片机程序通信运行处理思路

程序使用串口2和ESP8266通信
串口1作为日志输出口

串口1接收数据采用缓存管理+空闲中断
串口1发送数据采用环形队列+中断发送

串口2接收数据采用缓存管理+空闲中断
串口2发送数据采用中断发送


串口1打印串口2接收的数据
判断串口2接收的数据以后,直接把数据插入串口1环形队列
技术图片


串口1打印串口2发送的数据
在串口2调用发送数据的地方,把发送的数据插入串口1环形队列
技术图片


提示

设备发布的主题:device/GPRS的IMEI号(模块二维码信息)
设备订阅的主题:user/GPRS的IMEI号(模块二维码信息)

如果是初学者,看后面的文章即可明白上面的意思!

扫码绑定

APP程序使用的google的二维码扫码程序
扫描到二维码以后执行以下程序(携带着扫码信息传给主页面)
<ignore_js_op>技术图片


单片机通信控制

1.单片机执行 ConfigModuleNoBlock(); 连接MQTT服务器
<ignore_js_op>技术图片

提示:在执行获取GPRS的IMEI以后,IMEI存储在 MQTTid 里面 XXXXXXXXXXXXXXX  (字符串形式)
在执行连接协议的时候,设置了发布的主题 device/XXXXXXXXXXXXXXX

<ignore_js_op>技术图片


2.连接上MQTT,订阅主题
<ignore_js_op>技术图片

3.发布消息,
mqtt_publish(mqtt_t *mqtt,unsigned char* topic,unsigned char* date, int data_length, int qos, int retain, MqttCallback PublishedCb);

4.接收处理消息

<ignore_js_op>技术图片

5.提示
在执行完连接MQTT以后,后期所有的消息全部用缓存进行了管理
本MQTT包是本人封装的,支持消息等级0,1,2处理,支持掉线重连.

APP通信控制

1.点击相应的设备以后,把设备的IMEI传递给控制页面
技术图片


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

技术图片

技术图片

技术图片


3.发送数据
技术图片

4.接收数据

技术图片


5.提示
MQTT底层包内部使用的单例模式+回填函数形式
内部支持断线重连,用户只需要调用回调函数使用即可.


结语

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

 

以上是关于5-STM32+ESP8266+AIR202基本控制篇功能3-APP扫码绑定Air202,并通过MQTT和Air202实现远程通信控制(兼容SIM800)的主要内容,如果未能解决你的问题,请参考以下文章

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)

1-STM32+ESP8266+AIR202远程升级篇-远程升级篇概述

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--GPRS )

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP)

20-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(升级篇优化)

STM32+ESP8266+AIR202/302远程升级方案-程序优化3-关于版本号判断的问题