05-STM32+W5500+AIR202基本控制篇-功能5-Android和微信小程序扫描二维码绑定GPRS,并通过MQTT实现485,422通信和继电器控制(微信小程序)

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

功能说明

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

功能演示

1.根据第一节的硬件介绍下载本节的单片机程序

 

2.程序文件hex路径

3.按照下面方式短接通信端口

  PA9 PA10  连接ch340(串口模块)  用于Debug日志打印

  PB10  PB11连接485/422   (485/422通信)

  PA2  PA3 连接GPRS模块串口1  (和GPRS模块通信)

4.插入手机卡(移动/联通), 接上天线

5.连接485/422通信模块(任选一种即可,下面说明两种接线方式)

485连接方式:

422连接方式:

6,打开串口调试助手,分别监控STM32串口1和485/422的数据

单片机串口1监听配置

485/422通信口串口配置

7.确认设备正常工作

查看Debug调试输出,如果订阅成功则设备正常工作

如果设备没有工作起来,请检查手机卡是否松动,手机卡只支持移动和联通

尽量选择移动的手机卡!

8.安装微信小程序

注:安装上一节手机APP!

注:安装上一节手机APP!

注:安装上一节手机APP!

9.点击添加设备 选择GPRS设备

10.扫描GPRS设备上的二维码

11.扫描成功以后将在主页添加一个GPRS设备

12.点击GPRS设备进入控制页面

13. 控制两路继电器

 

 

单片机程序说明

1.关于微信小程序和GPRS模块MQTT通信

首先用户需要知道MQTT就是一个TCP服务器,在后面的章节有单独一章介绍MQTT服务器

用户当前只需要知道MQTT服务器就是一个TCP服务器,然后按照MQTT协议发送数据,MQTT服务器便会自动中转数据

单片机程序使用串口2发送AT指令控制GPRS模块连接MQTT服务器

GPRS连接MQTT以后

订阅的主题:user/GPRS模块的IMEI号

发布的主题:device/GPRS模块的IMEI号

如果想让微信小程序和GPRS之间实现通信

微信小程序需要

订阅: device/GPRS模块的IMEI号

发布: user/GPRS模块的IMEI号

所以只要微信小程序获取到W5500的GPRS模块的IMEI号即可!

GPRS模块上面的二维码就是其IMEI号

2.控制模块以TCP透传方式连接MQTT服务器

控制指令采用 ConfigModuleNoBlock 框架

获取IMEI号用于后期的订阅和发布主题; 连接TCP服务器(MQTT本身就是一个TCP服务器); 发送MQTT连接协议

连接成功,调用连接回调

3.主函数一开始注册了连接回调,订阅成功,接收消息回调等函数

在连接回调里面订阅主题

 

4.发送消息

5.接收处理消息

微信小程序

 1.点击绑定GPRS设备按钮启动扫描程序,在回调里面获取扫码结果(拼接JSON数据)

2.绑定成功,携带着数据跳转到index

提示:数据格式 

{"data":"bind","mac":"xx:xx:xx:xx:xx:xx","ip":"xxx.xxx.xxx.xxx","model":"E0000","name":"以太网设备"}

3.在 onLoad 中提取数据,并存储到手机

4.点击设备

根据型号加载不同的页面,没有型号或其他错误加载ControlDevice页面
提示携带的数据为:
{"data":"bind","mac":"xx:xx:xx:xx:xx:xx","ip":"xxx.xxx.xxx.xxx","model":"E0000","name":"以太网设备"}

5.在控制页面的onLoad提取mac,在onShow订阅主题

7.接收处理消息

8.发布消息

结语

对于初学者而言,此节代码测试一下通信即可,后面的章节会有详细的说明教程

会让用户彻底明白一切的一切是怎么来的!

不要心慌,无需着急!

详细的说明教程过后还会有专门的移植使用教程.

用户可以迅速的移植到自己的项目中使用.

猜你喜欢

转载自www.cnblogs.com/yangfengwu/p/13378543.html