单⽚机AT指令操作GA6-B短信模块连接阿⾥云MQTT服务器(双向通信)0. 前⾔
⽹上这种东西不太多,我也是看了不少资料弄出来了,觉得应该写点东西出来。
我⽤的板⼦不是arduino,⽤的是stm32,开发⼯具是Arduino IDE,因为Arduino IDE集成了较多的函数库,我们不⽤管底层的⼀些东西,都封装好了,写着⽅便⼀些。
当然,不管你板⼦是什么,这篇⽂章主要讲的不是板⼦的问题,⽽是如何通过串⼝的AT指令控制GA6-B这种⽀持GPRS的短信模块来实现MQTT协议,以及⼩程序显⽰单⽚机发布的数据。
1. 快速弄懂MQTT协议
我觉得学习⼀个新东西,最有效的办法就是先快速的实现他,先看到预期的结果,再慢慢深⼊进去,这样会⽐较快。
弄这个⼩项⽬之前,我没有了解过MQTT协议,看了看也⽐较蒙,因为有⼈⽤的是json格式发送数据,有⼈还⽤TCP报⽂,所以我就不太明⽩了,最后还是⼀些例⼦直接上⼿操作,如果你之前没有接触过MQTT协议的话,不太明⽩他是怎么回事,你可以先按照我下边的步骤,弄清楚他的流程,我这⾥⽤的都是弄的TCP报⽂,⾄于其他的我也不太明⽩, 就不瞎bb了。
需要⼯具:
1. TCP测试⼯具
2. MQTT.fx
3. 测试平台阿⾥云IOT
1.1 在阿⾥云平台创建测试设备
登录上去以后,点击左侧“设备管理”-“产品”。然后点击“创建产品”
我的配置如下:
注意,这⾥的数据格式⼀定要选“透传/⾃定义”,连⽹⽅式随意,但是为了和后边讲短信模块的操作⼀致,就先选择蜂窝吧。都选择好了以后,点击下边的“保存”。
注:产品,是⼀个种类,他包括很多个设备,⽐如说某款⼿机,⽐如说⼩⽶6⼿机,那这就是⼀款产品,你不能说它是⼀个设备,但是如果具体到某个实物了,也就是你⼿⾥握着的那个,那个就是⼀个设备,总之,⼀个产品包括好多个设备。
产品新建好了以后,需要添加设备。
点击“确认”,⼀个设备就新建好了。新建好的设备,你看他的状态,会显⽰未激活,那是因为这个设备还没有登录过,上线⼀次就会显⽰“在线/离线”了。⼀个设备,我们需要获得它的三个关键信息,也就是⼤多数⼈说的“三元组”,点击“查看”。
再点击“查看”
出来的三个数据就是该设备的三元组了,⼀会要⽤到。
⾄此,⼀个设备就创建成功了。
1.2 Topic说明
在MQTT协议中,不允许两个⽤户之间直接通信,任何两个⽤户之间通信,需要MQTT服务器作中间⼈,来回“传话”,意思是这样,但不是真正的传话。MQTT协议采⽤“发布/订阅”模式,顾名思义,发布,就是把消息散发出去,你理解为客户端把数据发送给MQTT服务器就可以了。订阅的意思就是说,我想要收到某个⽤户的数据,我在你服务器这⾥订阅了这个消息,如果我订阅的那个⽤户有消息发出来了,那你⼀定要发送给我看。
在刚刚新建的设备那⾥,点击Topic列表
阿⾥云IOT平台给出了三种Topic,我们点击⾃定义Topic
其实,所有的Topic都可以⽤来通信,只不过⽤的地⽅不同,具体你想⽤到哪⾥,你可以⾃⼰定。打个⽐⽅,⽐如图⾥的这个第⼀个,后缀是update,你可以⽤它来上传传感器数据,当然也可以⽤来上报错误信息,再看第⼆个Topic,后缀是error,好像是⽤来上报错误信息的,但是你⾮要拿他来上报传感器数据,也是可以的。后边我们就⽤我图上圈起来的两个进⾏操作。
1.3 使⽤MQTT.fx⼯具进⾏通信
上边说完了基础的⼀些东西,设备也建好了,下边该进⾏最关⼼的通信测试了,我们只有先打通整个
流程,能够直观看到数据通信成功了,才知道MQTT是怎么回事,要不然总是云⾥雾⾥。好了,继续。
1.3.1 登录信息填写
sql连接不上服务器打开MQTT测试⼯具MQTT.fx,先点击下图的按钮配置连接信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论