6-STM32+ESP8266+AIR202基本控制篇功能4-微信小程序扫码绑定GPRS,并通过MQTT和Air202实现远程通信控制(兼容SIM800)

2020-06-28 11:22:36 浏览数 (1)

整体说明 这节演示一下使用微信小程序扫码绑定GPRS,然后通过MQTT服务器实现远程温湿度采集和远程控制继电器 程序兼容SIM800 测试功能 1.请按照第一节硬件介绍,下载单片机程序 注:这节的单片机程序和上一节一样 注:这节的单片机程序和上一节一样 注:这节的单片机程序和上一节一样 <ignore_js_op>

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

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

3.请使用杜邦线连接如下: 白线 A3 --- TX 黑线 A2 --- RX

4.当前拨动开关如下:

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

测试 1.打开微信小程序,添加设备 <ignore_js_op>

<ignore_js_op>

<ignore_js_op>

2.扫描成功以后,自动跳转到主页面,并添加了一个设备 设备显示的信息为GPRS的IMEI <ignore_js_op>

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

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

单片机程序

① 控制模块以非阻塞方式连接MQTT服务器 ② MQTT消息处理封装包 微信小程序

① APUConfig 程序 ② 控制页面 ③ 主页 ④ 本人封装的mqtt包 ⑤ mqtt底层包 单片机程序通信运行处理思路 程序使用串口2和GPRS模块通信 串口1作为日志输出口 串口1接收数据采用缓存管理 空闲中断 串口1发送数据采用环形队列 中断发送 串口2接收数据采用缓存管理 空闲中断 串口2发送数据采用中断发送 串口1打印串口2接收的数据 判断串口2接收的数据以后,直接把数据插入串口1环形队列

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

提示 设备发布的主题:device/GPRS的IMEI号(模块二维码信息) 设备订阅的主题:user/GPRS的IMEI号(模块二维码信息) 如果是初学者,看后面的文章即可明白上面的意思! 微信小程序扫码绑定 <ignore_js_op>

扫码得到IMEI号以后携带着信息跳转到主页面. 单片机通信控制 1.单片机执行 ConfigModuleNoBlock(); 连接MQTT服务器

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

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 人点赞