<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
提示:数据格式
3.在 onLoad 中提取数据,并存储到手机
4.点击设备
5.在控制页面的onLoad提取mac,在onShow订阅主题
7.接收处理消息
8.发布消息
结语
对于初学者而言,此节代码测试一下通信即可,后面的章节会有详细的说明教程
会让用户彻底明白一切的一切是怎么来的!
不要心慌,无需着急!
详细的说明教程过后还会有专门的移植使用教程.
用户可以迅速的移植到自己的项目中使用.