一个月玩转MQTT(篇四:移远EC200U模块MQTT连接测试)

前面讲到了:

一个月玩转MQTT(篇二:部署阿里云服务器和EMQX)-CSDN博客

一个月玩转MQTT(篇三:测试EMQX)-CSDN博客

现在开始我们使用移远的EC200U模块来进行测试。主要实现如下功能:

1、通过EC200U建立与EMQX服务器的MQTT连接。

2、然后就是订阅"test/win11"主题消息(因为前文一直在用这个主题做测试)

3、然后就是发布"test/win11"主题消息

后边我们会看到当我用EC200U发消息时,订阅了"test/win11"的MQTTX客户端,以及webSocket客户端,都能收到来自EC200U发出的主题消息,由于EC200U自己也订阅了这个消息,因此EC200U自己也能收到自己发出的消息。

下面开始吧!

1、开发板(硬件的准备)

首先,用到了上图这个开发板。必须吐槽的是,这个开发板的资料,写得稀里糊涂的。文档写得乱七八糟,毫无重点,逻辑混乱;教程视频更是又臭又长,讲得云里雾里,完全抓不住关键。后来干脆不看他的文档了。

好在这个板子的硬件还是有利用价值的。该电路板通过CH340芯片实现了COM串口。通过上图白色的USB线连接电脑,就可以用串口调试助手实现与EC200U模块的连接。这样就可以用AT指令操作EC200U了。

这个板子直接略过,简单的说,就是现在我要用串口调试助手,通过AT指令来操控EC200U的MQTT连接。

2、AT指令完整流程

2.1 基础网络配置
序号 AT 指令 返回内容 说明
1 AT OK 测试模块响应,确认串口通信正常
2 AT+CGATT=1 +CGATT: 1 OK 附着移动网络(注册到核心网)
3 AT+CGDCONT=1,"IP","cmnet" OK 设置 APN(移动 / 联通 = cmnet,电信 = ctnet)
4 AT+CGACT=1,1 OK 激活数据连接
5 AT+QPING=1,"101.201.110.56" +QPING: 0,"101.201.110.56",64,165,255 +QPING: 0,"101.201.110.56",64,58,255 +QPING: 0,"101.201.110.56",64,61,255 +QPING: 0,"101.201.110.56",64,55,255 +QPING: 0,4,4,0,55,165,70 测试模块到 EMQX 服务器的连通性
2.2 MQTT连接配置
序号 AT 指令 返回内容 说明
6 AT+QMTCFG="version",0,4 OK 设置 MQTT 版本为 5.0
7 AT+QMTCFG="session",0,1 OK Clean Session=1(MQTT 5.0 兼容该参数,默认开启)
8 AT+QMTCFG="keepalive",0,60 OK 心跳时间 60 秒(MQTT 5.0 支持,和 EMQX 保持一致)
9 AT+QMTOPEN=0,"101.201.110.56",1883 +QMTOPEN: 0,0 打开 MQTT 5.0 连接(端口仍用 1883,EMQX 5.0 兼容 1883)返回 0,0= 成功
10 AT+QMTCONN=0,"EC200U_MQTT5_Client","admin","public" +QMTCONN: 0,0,0 登录 EMQX(MQTT 5.0 认证逻辑和 3.1.1 一致,账号密码仍用 admin/public)返回 0,0,0= 登录成功

以下是串口调试助手的设置截图:

2.3 MQTT 主题消息的订阅 + 发布
序号 AT 指令 返回内容 说明
11 AT+QMTSUB=0,1,"test/win11",0 +QMTSUB: 0,1,0,0 订阅 MQTT 主题(QoS 0,返回 0,1,0,0= 成功)
12 AT+QMTPUB=0,0,0,0,"test/win11","hello, i love you!" +QMTPUB: 0,0,0 发布基础消息(返回 0,0,0= 成功)
13 (接收消息) +QMTRECV: 0,0,"test/win11","hello, i love you!" 由于订阅了该消息,所以也会接收到该消息

串口调试助手截图:

我们再看看MQTTX客户端,也收到消息了哦。

再看看webSocket客户端,也收到消息了哦。这是因为这两个客户端都订阅了"test/win11"主题消息。

至此,大家应该明白如何使用串口通过给EC200模块发送AT指令,来将消息发送到服务器,也可收到来自服务器的消息了吧。

这样,您进一步的就可以使用STM32的uart口来编程实现消息的订阅与发布了。这里算是已经打通了硬件层面与服务器的连接问题。关于stm32如何实现自己的应用,我这里就不再展开来讲了。

下一篇,我会进一步讲解,如何在手机端实现消息的订阅和发布。这样我们就可以有效的将stm32的数据(比如将温度数据,倾角数据)传递给手机进行显示。当然也可以将手机的命令传递给stm32实现类似开关控制等功能。

其他:

序号 AT 指令 预期返回 说明
1 AT+QMTDISC=0 +QMTDISC: 0,0 断开 MQTT 连接
2 AT+QMTCLSE=0 OK 关闭 MQTT 套接字
相关推荐
x-cmd16 分钟前
[x-cmd] 一切 Web、桌面应用和本地工具皆可 CLI -opencli
前端·ai·github·agent·cli·x-cmd
徐同保1 小时前
openclaw 的github项目同步到gitee仓库
gitee·github
认真的薛薛2 小时前
Docker网络模式
linux·运维·数据库·面试·github
ZengLiangYi2 小时前
从文章到脚本:把 Git Tag + Semver + CI/CD 收敛成一个 `release.mjs`
前端·github
love530love3 小时前
Windows 开源项目部署评估与决策清单(完整版)
人工智能·windows·python·开源·github
梦梦代码精4 小时前
开源即商用,预期产出、风险与优化建议
人工智能·gitee·前端框架·开源·github
AI成长日志6 小时前
【GitHub开源项目专栏】扩散模型开源项目深度解析:Stable Diffusion与ControlNet架构全景
stable diffusion·开源·github
SUNNY_SHUN6 小时前
ICLR 2026 | Judo: 7B小模型工业缺陷问答超越GPT-4o,用对比学习+强化学习注入领域知识
论文阅读·人工智能·学习·视觉检测·github
Vibelearning_AI7 小时前
Vibecoding进阶教程-从能用到可控(一):让coding agent也有自己的工具可用,减少不必要的重复工作
github
怪兽同学7 小时前
详解github workflows流
github