ESA2GJK1DH1K基础篇: 测试APP扫描Air202上面的二维码绑定通过MQTT控制设备(兼容SIM800)(V0.1)
前言
此程序兼容SIM800
如果想绑定SIM800,请把其IMEI号,生成二维码,用手机APP扫描.
实现功能概要
APP通过扫描二维码获取GPRS设备的IMEI号,然后设置订阅的主题:device/设备IMEI号 发布的主题:user/设备IMEI号
注:实际上和上一节代码唯一不同的地方是控制GPRS连接TCP服务器,然后实现透传.其它程序完全一致!
测试准备工作(详细下载步骤请参考 硬件使用说明 )
一,下载单片机程序
工程目录: STM32F10xTemplate\Progect
hex文件目录: STM32F10xTemplate\Progect\Progect
二,安装APP软件 (这节APP和上一节一样)
三,调整波动开关位置,STM32和GPRS 串口1 通信
四,别忘了插手机卡,还有安装上天线
开始测试
一.打开手机APP,点击右上角菜单 "扫一扫" 扫描模块上面的二维码,模块的二维码就是这个模块的IMEI号,扫描成功将在主页面添加一个设备.
二.单片机控制GPRS连接上MQTT服务器以后,指示灯1S闪耀
三.点击设备进入,设备控制页面,页面显示当前温湿度数据,显示当前设备的状态
四.远程控制继电器吸合
五.远程控制继电器断开
六.请自行控制家电(最大支持10A,注意安全!),咱的GPRS远程控制器就做好了.
注意
一.实际应用请使用一个引脚控制模块重启
请在每个程序文件的此处修改(注,本人的板子现在未引出复位引脚,下一批板子将跟进)\
如果没有复位,单片机可能出现一直发送 AT+CIPSHUT ,模块要等到好久才有反应(抱歉!)
现在测试,下载完单片机程序后,可人为进行复位一下.
V2.5.1版本内部默认PB2连接了Wi-Fi模块的RST引脚,不需要手动操作复位
V2.5.1版本内部默认PB2连接了Wi-Fi模块的RST引脚,不需要手动操作复位
V2.5.1版本内部默认PB2连接了Wi-Fi模块的RST引脚,不需要手动操作复位
关于程序
整个程序是STM32使用AT指令控制GPRS模块实现MQTT通信控制
程序的整体结构: https://www.cnblogs.com/yangfengwu/p/11669323.html
程序的按键处理: https://www.cnblogs.com/yangfengwu/p/11669354.html
串口接收数据 : https://www.cnblogs.com/yangfengwu/p/11669373.html
配置AT指令模板(阻塞版): https://www.cnblogs.com/yangfengwu/p/11673439.html
配置AT指令模板(非阻塞版): https://www.cnblogs.com/yangfengwu/p/11674814.html
MQTT实现部分
一,前言
对于初学者而言,如果不了解MQTT,可先看后面的关于MQTT的教程,看会以后
再来看此部分!
MQTT处理,采用官方C语言MQTT包+本人二次封装.(方便大家快速的移植使用)
Wi-Fi模块发布的主题: device/设备的IMEI号
Wi-Fi模块订阅的主题: user/设备的IMEI号
APP通过扫码获取GPRS的IMEI号,然后设置
订阅的主题:device/设备的IMEI号
发布的主题:user/设备的IMEI号
具体请看上一节介绍
二,连接TCP服务器(MQTT服务器)
AT指令配置模块连接TCP的程序处理模板是:配置AT指令模板(非阻塞版)
配置指令主要的就是获取IMEI号,设置透传,连接TCP服务器.
(串口接收的数据,自动发给TCP服务器)
(从TCP服务器接收的数据自动发给串口)
注;程序除了配置模块连接TCP实现透传和上一节程序不一样以外,其它皆是一样....
这体现了教程的主要目的: 重在移植应用 ,轻开发.