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

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

作者头像
杨奉武
发布2020-10-28 10:25:33
8270
发布2020-10-28 10:25:33
举报
文章被收录于专栏:知识分享

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

测试准备

1.自行下载单片机程序

2.安装手机APP

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

4.当前拨动开关如下:

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

测试

1.打开APP,选择右上角的绑定设备(SmartConfig)

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

3.长按开发板上面的PB5按钮大约 3S,直至指示灯快闪

4.点击APP上的绑定设备按钮

5. 搜索成功,主页面会添加一个设备,然后点击这个设备,进入控制页面

6.控制继电器

单片机程序

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

APP程序

1.SmartConfig绑定设备部分

2.本地数据库存储

3.控制页面

4.MQTT封装的java程序

5.扫描二维码相关

6.SmartConfig 包

单片机程序运行处理思路

程序使用串口2和ESP8266通信 串口1作为日志输出口 串口1接收数据采用缓存管理+空闲中断 串口1发送数据采用环形队列+中断发送 串口2接收数据采用缓存管理+空闲中断 串口2发送数据采用中断发送 串口1打印串口2接收的数据 判断串口2接收的数据以后,直接把数据插入串口1环形队列

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

提示

设备发布的主题:device/ESP8266的MAC地址 设备订阅的主题:user/ESP8266的MAC地址 如果是初学者,看后面的文章即可明白上面的意思!

配网绑定

1.单片机按钮长按3S左右执行SmartConfig

2.APP点击按钮以后,执行SmartConfig

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

4.程序里面的其它地方只是为了检测提取手机连接的路由器名称

android 6.0以后的版本需要打开GPS才能获取路由器名称!

单片机通信控制

1.单片机执行 ConfigModuleNoBlock(); 连接MQTT服务器

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

2.连接上MQTT,订阅主题

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

4.接收处理消息 <

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

APP通信控制

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

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

3.发送数据

4.接收数据

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

结语

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试准备
  • 测试
  • 4.点击APP上的绑定设备按钮
  • 5. 搜索成功,主页面会添加一个设备,然后点击这个设备,进入控制页面
  • 6.控制继电器
  • 单片机程序
  • APP程序
  • 单片机程序运行处理思路
  • 提示
  • 配网绑定
  • 单片机通信控制
  • APP通信控制
  • 结语
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档