8-STM32物联网开发WIFI+GPRS基础篇(STM32+GPRS(AT指令)实现MQTT远程通信控制)

Posted yangfengwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8-STM32物联网开发WIFI+GPRS基础篇(STM32+GPRS(AT指令)实现MQTT远程通信控制)相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/yangfengwu/p/11482905.html

上一节测试的是Wi-Fi 这节测试  GPRS

技术图片

 

 

 

看名字就知道了,简单的说 就是  单片机使用AT指令控制模块实现MQTT通信控制

这节是 STM32+GPRS(AT指令)实现MQTT通信控制:

一,下载STM32程序

1,方式一,串口下载(其他下载方式在最后补充)

①调整拨动开关位置 → 短接BOOT0和3.3V → 复位STM32

技术图片

 

 

 

②打开下载软件,下载程序

技术图片

 

选择对应的串口

 技术图片

 

技术图片

 

 

 

去掉短接,复位下单片机

技术图片

 

 

 

 

 

 

①手机卡

②天线

③调整拨动开关,让STM32和GPRS通信

技术图片

 

 

 

 

打开手机APP

下载APP(该APP购买到安全篇即可获取,只有学到微信小程序篇才能看得懂源码,涉及的知识点多一些)

技术图片

 

扫码下载

技术图片

 

技术图片  技术图片

 

 

 

 

技术图片

 

 

 

注意:只有这样的时候说明MQTT通信正常  (刚刚才知道可以插入视频....)

 

 

然后

技术图片

 

 

 技术图片

 

 

最后说一下程序

首先看一下官方的文档

技术图片

 

 

技术图片

 

 

自行查看

 

整体代码和上一节一样,有几个地方说一下

技术图片

 

 

实际上是为了缩短发送指令的时间,只要判断接收到相应的数据了,就立刻发送下一条指令

技术图片

 

 

但是,为了保险起见,中间有500ms延时

 

再者,主函数里面用了一个串口回调函数   

如果想知道回调函数怎么写的,可以看这篇  https://www.cnblogs.com/yangfengwu/p/11112014.html

技术图片

 

 

获取IMEI,我感觉这样获取IMEI比较放心.

 

 

注:这个代码没有做上,断线重连呢!

 

其实用GPRS实现MQTT有个矛盾的地方.

MQTT是靠心跳包判断设备在不在线,心跳包数据是 C0,00

但是呢,对于GPRS来讲,心跳包时间太短的话...流量需要的多

太长的话又不可以及时的知道掉没掉线....

 

以上是关于8-STM32物联网开发WIFI+GPRS基础篇(STM32+GPRS(AT指令)实现MQTT远程通信控制)的主要内容,如果未能解决你的问题,请参考以下文章

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)

9-STM32物联网开发WIFI+GPRS基础篇(STM32+SIM800实现MQTT远程通信控制)

7-STM32物联网开发WIFI+GPRS基础篇(STM32+Wi-Fi(AT指令)实现MQTT远程通信控制)

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--Wi-Fi )

16-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(精简版GPRS程序,实现远程升级单片机程序)

20-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(升级篇优化)