前言
此程序兼容SIM800
如果想绑定SIM800,请把其IMEI号,生成二维码,用手机APP扫描.
实现功能概要
APP通过扫描二维码获取GPRS设备的IMEI号,然后设置订阅的主题:device/设备IMEI号 发布的主题:user/设备IMEI号
注:实际上和上一节代码唯一不同的地方是控制GPRS连接TCP服务器,然后实现透传.其它程序完全一致!
测试准备工作(详细下载步骤请参考 硬件使用说明 )
一,下载单片机程序
二,安装APP软件(APP软件还是上一节的那个软件)
三,调整波动开关位置,STM32和GPRS 串口1 通信
四,别忘了插手机卡,还有安装上天线
开始测试
一.打开手机APP,点击右上角菜单 "扫一扫" 扫描模块上面的二维码,模块的二维码就是这个模块的IMEI号,扫描成功将在主页面添加一个设备.
二.单片机控制GPRS连接上MQTT服务器以后,指示灯1S闪耀
三.点击设备进入,设备控制页面,页面显示当前温湿度数据,显示当前设备的状态
四.远程控制继电器吸合
五.远程控制继电器断开
六.请自行控制家电(最大支持10A,注意安全!),咱的GPRS远程控制器就做好了.
其它
后面我便告诉大家如何移植当前我的MQTT处理程序到自己的项目,只要自己的模块可以实现TCP,便一定可以实现MQTT
因为本身MQTT就是个TCP服务器而已.你按照他给的规定发数据,它就帮你转发数据了而已.
我当时封包就是为了大家无论用的什么模块,都可以分分钟移植上MQTT!
授人予鱼,就要给一条有很大价值的鱼!
说实话哈,我用我的包移植上这个程序,只用了不到10分钟.其实如果有现成稳定的流程的知道怎么控制模块连接TCP了,也就5分钟.
一.实际应用请使用一个引脚控制模块重启
请在每个程序文件的此处修改(注,本人的板子现在未引出复位引脚,下一批板子将跟进)\
如果没有复位可能出现一直发送 AT+CIPSHUT ,模块要等到好久才有反应
现在测试可人为进行复位!
二,硬件程序
1.1: STM32控制GPRS模块以AT指令TCP透传方式连接MQTT服务器, 实现MQTT通信控制.
1.1.1: MQTT处理,采用官方C语言MQTT包+本人二次封装.(方便大家快速的移植使用)
1.1.2: 控制GPRS连接MQTT服务器部分程序
1.1.3: GPRS模块发布的主题: device/设备IMEI号 GPRS模块订阅的主题: user/设备IMEI号
1.1.4: 处理MQTT服务器返回的数据部分程序(和上一节一样)