菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
28
0

STM32+ESP8266+AIR202基本控制篇-211-功能测试-微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制

原创
05/13 14:22
阅读数 69294

 

 

 

 整体说明

这节演示一下使用微信小程序配网绑定ESP8266然后和ESP8266实现远程温湿度采集和远程控制继电器
绑定方式:APUConfig
APUConfig是我自己取的名字,这种方式一开始就是为了微信小程序配网绑定ESP8266而做解决大家苦恼的微信小程序如何配网绑定ESP8266问题

测试功能

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

 

 



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

 

 






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

 

 




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

 

 

 


4.当前拨动开关如下:

 

 



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

 

 



 

 




测试
1.点击小程序下方的添加设备按钮

 

 




2.选择添加Wi-Fi设备

 

 



3.输入路由器密码(注:Wi-Fi名称自动获取,也可自己填写)

 

 



4.长按开发板上面的 pb5引脚大约3S

直至图示上面的指示灯快闪

 

 




5.点击小程序上的 "绑定设备"按钮,开始搜索设备,绑定成功,将自动跳转到主页面,显示绑定的Wi-Fi设备

 
5.1 正在尝试连接Wi-Fi模块的热点
 

 

 

 
5.2 连接上热点,正在和模块通信

 

 

 

5.3 成功绑定设备

 

 

 




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

 

 




7.控制继电器吸合

 

 


 

 






8.控制继电器断开

 

 




 

 






单片机程序

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

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

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

 

 

 

2.程序主要概况


 

 



① 控制模块以非阻塞方式连接MQTT服务器
② 配置ESP8266功能,当前只使用了里面的复位和APUConfig
③ MQTT消息处理封装包




微信小程序

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

 

 

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

 

 

 

 

 

 

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

 

 

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

 

 

 

2.微信小程序整理概况

 

 




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

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

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

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

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


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

 

 




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

 

 




提示

设备发布的主题:device/ESP8266的MAC地址
设备订阅的主题:user/ESP8266的MAC地址

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

配网绑定

APUConfig原理:
ESP8266模块打开固定热点,打开UDP通信
手机APP连接ESP8266模块的热点,然后通过UDP把路由器信息发给模块.

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

 

 



 

 






2.微信小程序点击按钮以后,连接WI-Fi的热点,并发送路由器信息

 

 



 

 



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

 

 






单片机通信控制

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处理,支持掉线重连.


微信小程序通信控制

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

 

 




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

 

 




3.发送数据

 

 



4.接收数据

 

 




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


结语

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

 

发表评论

0/200
28 点赞
0 评论
收藏