前言
刚刚封装好了比较完善的MQTT库
如果是初学者可以先学习51单片机实现MQTT实现通信控制的文章
https://www.cnblogs.com/yangfengwu/p/12536382.html
之所以又封装了一套是因为前面用的官方的库太大,小容量的单片机无法承受
当然主要还是为了大家可以方便理解MQTT协议
用51单片机跑了MQTT,这样便可以方便让更多的人入门学习.
此程序兼容SIM800
如果想绑定SIM800,请把其IMEI号,生成二维码,用手机APP扫描.
实现功能概要
1.功能概述
APP通过扫描二维码获取GPRS设备的IMEI号,
然后设置订阅的主题:device/设备IMEI号
发布的主题:user/设备IMEI号
2.这节程序和绑定Wi-Fi实现远程控制的关系
https://www.cnblogs.com/yangfengwu/p/12539421.html 上一节
注:实际上和上一节代码唯一不同的地方是控制GPRS连接TCP服务器,
然后实现透传.其它程序完全一样!
3.提醒
GPRS模块上面的二维码就是IMEI号
测试准备工作(详细下载步骤请参考 硬件使用说明 )
一,下载单片机程序
工程目录: STM32F10xTemplateProgect
hex文件目录: STM32F10xTemplateProgectProgect
二,安装APP软件 (这节APP和上一节一样)
三,调整波动开关位置,STM32和GPRS 串口1 通信
四,别忘了插手机卡,还有安装上天线
开始测试
一.打开手机APP,点击右上角菜单 "扫一扫" 扫描模块上面的二维码,模块的二维码就是这个模块的IMEI号,扫描成功将在主页面添加一个设备.
二.单片机控制GPRS连接上MQTT服务器以后,指示灯1S闪耀
三.点击设备进入,设备控制页面,页面显示当前温湿度数据,显示当前设备的状态
四.远程控制继电器吸合
五.远程控制继电器断开
六.请自行控制家电(最大支持10A,注意安全!),咱的GPRS远程控制器就做好了.
关于程序
整个程序是STM32使用AT指令控制GPRS模块实现MQTT通信控制
程序的整体结构: https://www.cnblogs.com/yangfengwu/p/11669323.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移植到自己的工程
https://www.cnblogs.com/yangfengwu/p/12540710.html
如果是新手,请接着按部就班学习!
源码说明:
这节单片机源码只是修改了控制网络模块连接TCP部分,
其它程序和上一节完全一致:
https://www.cnblogs.com/yangfengwu/p/12539421.html
GPRS模块是用IMEI号作为了发布和订阅的主题的一部分
GPRS模块发布的主题: device/设备的IMEI号
GPRS模块订阅的主题: user/设备的IMEI号
APP通过扫码获取GPRS的IMEI号,然后设置
订阅的主题:device/设备的IMEI号
发布的主题:user/设备的IMEI号
用户这节只需要学习配置GPRS实现TCP透传的流程即可.
其它程序和上一节完全一样!