前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3-STM32+ESP8266+AIR202基本控制篇功能1-APP使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制

3-STM32+ESP8266+AIR202基本控制篇功能1-APP使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制

作者头像
杨奉武
发布2020-06-28 11:32:48
6450
发布2020-06-28 11:32:48
举报
文章被收录于专栏:知识分享知识分享

整体说明 这节演示一下使用APP配网绑定ESP8266然后和ESP8266实现MQTT远程温湿度采集和远程控制继电器 绑定方式:APUConfig APUConfig是我自己取的名字,这种方式一开始是为了微信小程序配网绑定ESP8266而做 为了和微信小程序绑定方式做到统一,故我也用APP做了一款 测试功能 1.请按照第一节硬件介绍,下载单片机程序

<ignore_js_op>

2.安装APP

<ignore_js_op>

3.请使用杜邦线连接如下: PA3 -- TX PA2 -- RX

<ignore_js_op>

<ignore_js_op>

<ignore_js_op>

<ignore_js_op>

4.当前拨动开关如下:

<ignore_js_op>

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

<ignore_js_op>

测试 1.打开APP,点击右上角菜单,选择添加设备 "APUConfig"

<ignore_js_op>

2.手机连接自家的路由器,输入自家路由器密码

<ignore_js_op>

3.长按开发板上面的 pb5引脚大约3S 直至图示上面的指示灯快闪

<ignore_js_op>

4.点击 APP 绑定设备按钮 开始绑定设备

<ignore_js_op>

<ignore_js_op>

5.绑定成功以后,自动跳转到主页面,并添加了一个设备 设备显示的信息为ESP8266的MAC地址信息

<ignore_js_op>

6.点击设备进入设备控制页面

<ignore_js_op>

7.控制继电器吸合 <ignore_js_op>

<ignore_js_op>

8.控制继电器断开 <ignore_js_op>

<ignore_js_op>

单片机程序 <ignore_js_op>

① 控制模块以非阻塞方式连接MQTT服务器 ② 配置ESP8266功能,当前只使用了里面的复位和APUConfig ③ MQTT消息处理封装包(缓存管理,支持消息等级0,1,2) APP程序 <ignore_js_op>

① APUConfig 实现部分 ② 操作手机数据库相关 ③ 控制页面 ④ MQTT通信封装 ⑤ UDP通信封装 ⑥ 扫描二维码相关 ⑦ 连接WI-Fi热点包 单片机程序通信运行处理思路 程序使用串口2和ESP8266通信 串口1作为日志输出口 串口1接收数据采用缓存管理+空闲中断 串口1发送数据采用环形队列+中断发送 串口2接收数据采用缓存管理+空闲中断 串口2发送数据采用中断发送 串口1打印串口2接收的数据 判断串口2接收的数据以后,直接把数据插入串口1环形队列

<ignore_js_op>

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

<ignore_js_op>

提示 设备发布的主题:device/ESP8266的MAC地址 设备订阅的主题:user/ESP8266的MAC地址 如果是初学者,看后面的文章即可明白上面的意思! 配网绑定 APUConfig原理: ESP8266模块打开固定热点,打开UDP通信 手机APP连接ESP8266模块的热点,然后通过UDP把路由器信息发给模块. 1.单片机按钮长按3S左右执行APUConfig <ignore_js_op>

<ignore_js_op>

2.APP点击按钮以后,连接WI-Fi的热点,并发送路由器信息 <ignore_js_op>

<ignore_js_op>

3.接收到模块返回的MAC地址信息,携带着信息跳转到主页面 <ignore_js_op>

单片机通信控制 1.单片机执行 ConfigModuleNoBlock(); 连接MQTT服务器 <ignore_js_op>

提示:在执行获取ESP8266的MAC地址以后,MAC地址存储在 MQTTid 里面 XX:XX:XX:XX:XX:XX  (字符串形式) 在执行连接协议的时候,设置了发布的主题 device/XX:XX:XX:XX:XX:XX <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.点击相应的设备以后,把设备的MAC地址信息传递给控制页面 <ignore_js_op>

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

<ignore_js_op>

<ignore_js_op>

3.发送数据 <ignore_js_op>

4.接收数据 <ignore_js_op>

5.提示 MQTT底层包内部使用的单例模式+回填函数形式 内部支持断线重连,用户只需要调用回调函数使用即可. 结语 这节只是大致概括下程序,为已经有基础的人提供学习思路 如果没有基础,请按部就班的接着学习

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档