目录
1.前情提要
在上一篇关于物联网的文章中介绍了如何建立一个MQTT的EMQX服务器,有需要的同学可以点击查看。在这里服务器的作用相当于建立一个MQTT消息的中转站,消息先发送到服务器中,再在服务器进行转发消息。
那么有了一个转发的平台,如何在嵌入式终端中发送MQTT消息呢,在这一篇文章中将会以最简单最暴力的方式介绍。
2.使用平台简介
云服务器:采用腾讯云的轻量级应用服务器,运行EMQX
终端:合宙Air724
测试工具:XCOM(通过串口控制Air724进行MQTT通信)、MQTT.fx(测试MQTT消息是否发送成功)
3.AIR724发送MQTT消息(不看啰嗦的话直接点击这里看发送方式)
通过查看官方的Air724模块的说明,可以查看到连接方式的教程。这里为了方便懒人,直接展示出连接方式。
3.1.确保正确联网
连上串口(波特率115200 停止位1 数据位8 无奇偶校验),插上手机卡,重启模块,此时串口返回如下,证明联网成功。
或者查看模块的58号管脚,如果连上,LED应为快速闪烁的状态。
3.2.得到正确的服务器公网IP
打开云服务器网页可以看到
3.3.发送AT指令给Air724,让Air724发送MQTT消息
根据合宙给出的AT指令说明按照以下顺序发送AT指令,这里只举例如何发送,接收请自行翻看合宙的说明,页数270
AT指令(请逐一发送) | 释义 |
---|---|
AT+CGREG? | 查询当前GPRS注册状态,如果没有联网将返回 +CGREG: 0,0 |
AT+CGATT? | 查看当前GPRS附着状态 |
AT+MCONFIG=< clientid >,XXXX,$$$$ | clientid客户端名称(必填) XXX用户名(非必填) $$$密码(非必填),这里我举一个例子:AT+MCONFIG=test_from_724_wincom,””,”” |
AT+MIPSTART=”ip 或域名”,”port” | 第一个引号内填公网IP,第二个引号填端口号,这里如果使用EMQX,端口号为1883 |
AT+MCONNECT=1,60 | 建立mqtt会话 |
AT+MPUB=“话题名称”,0,0,“发送的内容” | 发送mqtt消息 |
以上是官网给出的联网发送MQTT的方式,下面是我发送AT指令的实例,大家可以参考一下
这里将终端命名为:test_from_724_wincom,发送CAM:2FIRE:1到/mqrr/msg话题中
3.4.验证是否成功接收
使用MQTT.fx,订阅刚刚上传的话题,可以看到消息已经成功接收
在EMQX的后台也能看到有一个话题被建立,有客户端连接
4.题外话
在使用腾讯云自行搭建EMQX之前,我还使用过阿里云,阿里云通过建立一个实例的方式,再进行一机一码的安全保护,可以很大程度地提高安全度。而通过EMQX的这种方式,相对来说感觉没这么安全,还得做更多的措施保护信息的传递,但笔者本人只是随便玩玩看,所以对安全性要求没这么高,如果对安全性要求高的话,自行找方式解决。
如有错误,欢迎指正
图一图片来源:https://blog.csdn.net/zhu942100/article/details/119635200?ops_request_misc=&request_id=&biz_id=102&utm_term=mqtt%E6%B6%88%E6%81%AF&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-119635200.142v73pc_new_rank,201v4add_ask,239v2insert_chatgpt&spm=1018.2226.3001.4187
侵删