当前位置: 首页 > article >正文

大夏龙雀科技4G Cat1 CT511-AT0 MQTT联网实战教程

https://www.dong-blog.fun/post/1960

大夏龙雀科技4G Cat1 CT511-AT0 MQTT联网实战教程

本文将详细介绍如何搭建自己的MQTT Broker,并使用大夏龙雀科技4G Cat1 CT511-AT0模块进行MQTT联网实战。通过本教程,您将学会如何配置模块、连接MQTT服务器、订阅和发布消息等操作。

1. 搭建MQTT Broker

在开始之前,您需要搭建自己的MQTT Broker。匿名的Broker不需要用户名和密码即可使用。关于如何搭建MQTT Broker,可以参考以下链接:

搭建MQTT Broker教程

2. 获取大夏龙雀科技4G Cat1 CT511-AT0模块

大夏龙雀科技4G Cat1 CT511-AT0模块现以9.9元的价格提供样品。

资料下载

相关文档如下:

DX-CT511&CT511N_串口UART_应用指导.pdf

3. 硬件连接

按照以下步骤连接模块:

  1. 将USB转串口模块的TX、RX、GND分别连接到DX-CT511/DX-CT511N模块的RX、TX、GND。
  2. 插入SIM卡。
  3. 连接4G天线,如果使用带N的模块,还需连接GPS天线。
  4. 连接电源,确保模块正常供电。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4. 模块串口配置

模块串口默认配置如下:

  • 波特率:115200bps
  • 数据位:8位
  • 校验位:无
  • 停止位:1位(115200/8/N/1)

5. 模块工作模式

模块支持三种工作模式:

  1. AT指令模式(默认模式)
  2. 数据传输模式
  3. 休眠模式

说明:模块上电后默认进入AT指令模式。

6. 使用XCOM连接模块

打开电脑上的XCOM软件,并连接串口设备:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发送AT指令后,如果收到OK回复,说明模块工作正常:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7. MQTT连接配置

接下来,参考以下图片进行MQTT连接配置:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7.1 设置APN

当设备需要接入中国移动的NB-IoT网络时,需要通过以下指令设置APN。如果APN配置错误,设备将无法成功连接到网络。

AT+QICSGP=1,1,"cmnbiot","",""

OK

7.2 开启移动网络

AT+NETOPEN

OK

+NETOPEN: SUCCESS

7.3 设置客户端ID

设置客户端ID。指令 AT+MCONFIG=<clientid>,[<username>,<password>][,<will_flag>,<will_qos>,<will_retain>,<will_topic>,<will_message>] 用于配置MQTT连接的客户端ID(<clientid>)、用户名(<username>,最大长度256)、密码(<password>,最大长度256)以及遗嘱相关参数,包括遗嘱开关(<will_flag>,0表示禁用,1表示启用)、遗嘱QoS(<will_qos>,0-2分别表示最多一次、最少一次、只有一次)、遗嘱保留标志(<will_retain>,0表示服务器不存储,1表示存储)、遗嘱主题(<will_topic>,最大长度256)和遗嘱内容(<will_message>,最大长度1024),配置成功后返回 OK;通过 AT+MCONFIG? 可以查询当前配置,返回格式为 <clientid>,[<username>],[<password>],[<will_flag>,<will_qos>,<will_retain>,<will_topic>,<will_message>],分别对应客户端ID、用户名、密码及遗嘱参数。

通过以下指令配置MQTT连接的客户端ID:

AT+MCONFIG="4G_TEST"

OK

7.4 配置MQTT服务器信息

配置MQTT服务器信息:通过指令 AT+MIPSTART=<ipaddress>,<port>[,<version>] 可以配置MQTT服务器的IP地址(最大长度256字符)、端口号(范围0-65535,默认值为0)以及协议版本(3表示3.1版本,4表示3.1.1版本,可选),配置成功后返回 OK,并通过 +MIPSTART: <result> 反馈配置结果(SUCCESS 表示成功,FAILURE 表示失败);使用 AT+MIPSTART? 可以查询当前配置,返回格式为 <port>,<version>,分别表示当前端口号和协议版本。

通过以下指令配置MQTT服务器的IP地址、端口号和协议版本:

AT+MIPSTART=198.12.95.182,9000,4

OK

+MIPSTART: SUCCESS

7.5 连接MQTT服务器

连接MQTT服务器。指令 AT+MCONNECT=<clean_session>,<keepalive> 用于连接MQTT服务器,其中 <clean_session> 指定会话模式(0表示持久会话模式,1表示临时会话模式),<keepalive> 设置心跳间隔时间(范围30-1800秒),连接成功后返回 OK,并通过 +MCONNECT: <result> 反馈连接结果(SUCCESS 表示成功,FAILURE 表示失败);使用 AT+MCONNECT? 可以查询当前连接配置,返回格式为 <clean_session>,<keepalive>,分别表示会话模式和心跳间隔。

通过以下指令连接MQTT服务器:

AT+MCONNECT=1,60

OK

+MCONNECT: SUCCESS

7.6 订阅主题

订阅主题。指令 AT+MSUB=<topic>,<qos> 用于订阅MQTT主题,其中 <topic> 为主题名称(最大长度256,最多可订阅50个主题),<qos> 为服务质量等级(0表示最多一次,1表示最少一次,2表示只有一次),订阅成功后返回 OK,并根据 AT+MQTTMIX 的设置反馈结果:当 AT+MQTTMIX=0 时,通过 +MSUB:<result> 返回订阅结果(SUCCESS 表示成功,FAILURE 表示失败);当 AT+MQTTMIX=1 时,通过 +MSUBID: <packetid> 返回数据包标识符(范围1-65535),并在订阅确认后通过 +MSUBACK: <packetid> 返回确认信息;使用 AT+MSUB? 可以查询当前订阅配置,返回格式为 <topic>,<qos>,分别表示主题和服务质量等级。

<qos> 是MQTT协议中 服务质量等级(Quality of Service, QoS) 的参数,用于定义消息传递的可靠性和保证机制。它有三个等级,分别如下:

  1. QoS 0:最多一次(At most once)
    • 消息发送后不保证接收方是否收到,也不进行确认和重传。
    • 适用于对可靠性要求不高的场景,例如传感器数据丢失对系统影响较小的情况。

就像你随便把信扔进邮筒,邮局会尽力送,但不会告诉你信有没有送到。如果信丢了,你也不知道。

  1. QoS 1:最少一次(At least once)
    • 消息发送后,接收方会确认收到消息。如果发送方未收到确认,会重发消息。
    • 确保消息至少被接收一次,但可能导致重复接收。
    • 适用于需要保证消息到达但对重复数据不敏感的场景。

这次邮局会确认信送到了。如果没收到确认,邮局会再送一次。但可能会发生“信送到了,但邮局以为没送到,又送了一次”的情况,导致你的朋友收到两封信。

  1. QoS 2:只有一次(Exactly once)
    • 通过复杂的确认机制,确保消息只被接收一次,避免重复或丢失。
    • 适用于对数据完整性和准确性要求极高的场景,例如金融交易或关键控制指令。

这次邮局会确保信只送一次,既不会丢,也不会重复。它会用一套复杂的流程来保证这一点。

<qos> 等级越高,消息传递的可靠性越强,但网络开销和延迟也会增加。选择适当的 QoS 等级需要根据具体应用场景的需求权衡。

通过以下指令订阅MQTT主题:

AT+MSUB="hello/topic_mcu_rev",0

OK

+MSUB: SUCCESS

比如我在linux客户端往这个主题发消息:

mosquitto_pub -t 'hello/topic_mcu_rev' -m 'hello MCU' -h localhost -p 9000

可以看到收到了消息:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7.7 发布消息

发布消息。指令 AT+MPUB=<topic>,<qos>,<retain>,<message> 用于发布MQTT消息,其中 <topic> 为主题名称(最大长度256),<qos> 为服务质量等级(0表示最多一次,1表示最少一次,2表示只有一次),<retain> 为保留标志(0表示服务器不存储消息,1表示存储消息和QoS),<message> 为消息内容(最大长度512),发布成功后返回 OK,并根据 AT+MQTTMIX 的设置和 QoS 等级反馈结果:当 AT+MQTTMIX=0 时,通过 +MPUB:<result> 返回发布结果(SUCCESS 表示成功,FAILURE 表示失败);当 AT+MQTTMIX=1QoS=1 时,通过 +MPUBACK: <packetid> 返回数据包标识符(范围1-65535);当 AT+MQTTMIX=1QoS=2 时,通过 +MPUBREC: <packetid>+MPUBCOMP: <packetid> 分别返回消息接收和完成确认;使用 AT+MPUB? 可以查询当前发布配置,返回格式为 <topic>,<qos>,<retain>,<message>,分别表示主题、服务质量等级、保留标志和消息内容。

通过以下指令发布MQTT消息:

AT+MPUB="hello/topic",0,0,"hello world"

OK

在别的客户端订阅了这个主题的会收到消息:

root@racknerd-b12da5f:~/mqtt5# mosquitto_sub -v -t 'hello/topic' -h localhost -p 9000
hello/topic hello world # 这是收到的消息

7.8 取消订阅

取消订阅:AT+MUNSUB=“hello/topic”. 可以订阅多个主题,所以不需要的主题也可以取消。

AT+MUNSUB="hello/topic"

OK

+MUNSUB: SUCCESS

7.9 断开MQTT连接

通过以下指令断开MQTT连接:

AT+MDISCONNECT

7.10 释放MQTT资源

通过以下指令释放MQTT资源:

AT+MIPCLOSE

8. 其他操作

8.1 查询SIM信号质量

通过以下指令查询SIM信号质量:

AT+CSQ

+CSQ: 21,99

OK

8.2 Ping服务器

通过以下指令Ping服务器,测试网络连通性:

AT+MPING=test.ranye-iot.net,1

OK

+MPING:3,0,0,0,0,0,0

结语

通过本教程,您已经成功配置并连接了大夏龙雀科技4G Cat1 CT511-AT0模块到MQTT服务器,并进行了消息的订阅和发布。希望本教程对您的开发工作有所帮助。


http://www.kler.cn/a/569529.html

相关文章:

  • C++格式讲解
  • PhyloSuite v1.2.3安装与使用-生信工具049
  • 大模型学习笔记-基于《Deep Dive into LLMs like ChatGPT》
  • 第1章 基础网络和安全工具(网络安全防御实战--蓝军武器库)
  • 谈谈 Node.js 中的模块系统,CommonJS 和 ES Modules 的区别是什么?
  • 不要升级,Flutter Debug 在 iOS 18.4 beta 无法运行,提示 mprotect failed: Permission denied
  • ubuntu:桌面版磁盘合并扩容
  • Stapler: 1靶场渗透测试
  • 中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
  • LeetCode-81. 搜索旋转排序数组 II
  • Java 大视界 -- Java 大数据中的时间序列数据异常检测算法对比与实践(103)
  • server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
  • k8s学习记录:环境搭建二(基于Kubeadmin)
  • 【线性代数】3向量
  • Mybatis是如何进行分页的?与Mybatis-plus的区别在哪里?
  • 【服务器】Nginx
  • 【AD】3-10 原理图PDF导出
  • 力扣hot 100之矩阵四题解法总结
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • javascript实现雪花飘落效果