EC20 4G模块 AT指令/移远串口调试助手使用记录

本文介绍了如何使用移远官方的串口调试助手配置EC20/EC200等无线模块,包括设置AT指令如AT、ATE、AT+CPIN等,以及如何进行短信收发和TCP连接的建立与关闭。在收发短信部分,详细说明了如何设置URC输出端口,而在TCP通信中,讲解了透传模式和非透传buffer模式的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、移远串口调试助手

二、AT指令

2.1 AT常用指令

 2.2 AT短信收发指令

2.3 建立 TCP client 连接

2.3.1 进入透传模式 

2.3.2 退出透传模式

2.3.3 进入非透传buffer模式 

2.3.4 退出非透传buffer模式 

2.4 MQTT配置

2.4.1 打开MQTT客户端网络

2.4.2 关闭MQTT客户端网络

2.4.3 连接客户端到MQTT 服务器

2.4.4 客户端断开与MQTT 服务器的连接

2.4.5 订阅MQTT主题

2.4.6 退订MQTT主题

2.4.7 发布MQTT消息

三、参考链接


一、移远串口调试助手

 

 因为我选择的是EC20/EC200等无线模块所以选择下图所示的模块类型

 需要通过串口将移远的无线模块连接至上位机

设置AT调试串口,波特率为115200

 点击start 进入该程序

 软件配置

二、AT指令

2.1 AT常用指令

AT

用于测试是否与模块正常通信

 

ATE

关闭回显

ATE1

开启回显

AT+CPIN?

判断是否插卡

未插卡:

 插卡:

ATI

查询模块版本

AT+CSQ

查询信号强度

 2.2 AT短信收发指令

 按此方法设置后,收到短信息会以文本模式自动推送

设置URC输出端口(短信上报端口) AT+QURCCFG="urcport"

AT+QURCCFG=?
+QURCCFG: "urcport",("usbat","usbmodem","uart1","all")
OK
AT+QURCCFG="urcport"
// 查询当前 URC 输出端口。
+QURCCFG: "urcport","usbat"
OK
AT+QURCCFG="urcport","usbmodem"
// 设置 URC 输出端口为 USB Modem 端口。
OK
AT+QURCCFG="urcport"
// 查询当前 URC 输出端口。
+QURCCFG: "urcport","usbmodem"
OK

2.3 建立 TCP client 连接

2.3.1 进入透传模式 

透传模式下发送数据

串口上输入要发送的数据,将直接发送到 internet 上

透传模式下接收数据

internet 上发送的数据,将直接发送到串口

2.3.2 退出透传模式

+++ //注意没有不能带回车
OK
AT+QICLOSE=0 //关闭<connectid>为 0 的连接
OK 

2.3.3 进入非透传buffer模式 

非透传buffer模式下发送数据

AT+QISEND=0 //发送不指定长度数据
/*ctrl+Z为串口调试时使用,可以发0x1A代替*/
> test1<ctrl+Z> 
SEND OK

---------------------------
AT+QISEND=0,4 //发送长度为 4 的数据
test
SEND OK

------------------------------
AT+QISEND=0,0 //查询已发送的数据长度
+QISEND: 9,0,0
OK

非透传buffer模式下接收数据

+QIURC: “recv”,0 //表示<connectid>为 0 的连接上收到数据(假设接收到 5 个字节的数据)
AT+QIRD=0,1500 //读取 buffer 中长度为 1500 字节的数据
+QIRD: 5 //表示实际数据仅仅为 5 个字节
test1

OK

-----------------------------------
AT+QIRD=0,1500
+QIRD: 0 //buffer 中无数据

OK

--------------------------------
AT+QIRD=0,0 //查看总共接收的数据长度、 已读取的数据长度和 Buffer 中未读取的数据长度
+QIRD: 5,5,0
OK 

2.3.4 退出非透传buffer模式 

AT+QICLOSE=0 //关闭<connectid>为 0 的连接
OK

2.4 MQTT配置

2.4.1 打开MQTT客户端网络

AT+QMTOPEN=<client_idx>,"<host_name>",<port>

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。
<host_name> 字符串型。服务器地址,可以是IP 地址或者域名。最大长度:100 字节。
<port> 整型。服务器端口。范围:1~65535。

实例:

->

AT+QMTOPEN=1,"123.5.14.126",1888

<-

AT+QMTOPEN=1,"123.5.14.126",1888

OK

2.4.2 关闭MQTT客户端网络

AT+QMTCLOSE=<client_idx>

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。

此处 client_idx 为2.4.1 打开MQTT客户端网络所使用的端口号

实例:

->

AT+QMTCLOSE=1

<-

AT+QMTCLOSE=1

OK

2.4.3 连接客户端到MQTT 服务器

AT+QMTCONN=<client_idx>,"<clientid>"[,"<username>","<password>"]

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。
<clientid> 字符串型。客户端标识符。
<username> 字符串型。客户端用户名,可用于授权。
<password> 字符串型。客户端用户名对应的密码,可用于授权。

此处 client_idx 为2.4.1 打开MQTT客户端网络所使用的端口号

实例: 

->

AT+QMTCONN=1,"client1","admin","admin111"

<-

AT+QMTCONN=1,"client1","admin","admin111"
OK

2.4.4 客户端断开与MQTT 服务器的连接

AT+QMTDISC=<client_idx>

此处 client_idx 为2.4.1 打开MQTT客户端网络所使用的端口号

实例:

->

AT+QMTDISC=1

<-

AT+QMTDISC=1
OK

2.4.5 订阅MQTT主题

AT+QMTSUB=<client_idx>,<msgid>,"<topic1>",<qos1>[,"<topic2>",<qos2>…]

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。
<msgid> 整型。数据包标识符。范围:1~65535。
<topic> 字符串型。客户端订阅或者退订的主题。
<qos> 整型。客户端发布消息的QoS 等级。
                        0 最多发送一次
                        1 至少发送一次
                        2 只发送一次

此处 client_idx 为2.4.1 打开MQTT客户端网络所使用的端口号

实例:

->

AT+QMTSUB=1,1,"serverMsg",0 

<-

AT+QMTSUB=1,1,"serverMsg",0 
OK

2.4.6 退订MQTT主题

AT+QMTUNS=<client_idx>,<msgid>,"<topic1>"[,"<topic2>"…]

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。
<msgid> 整型。数据包标识符。范围:1~65535。
<topic> 字符串型。客户端想要订阅或者退订的主题。

实例:

->

AT+QMTUNS=1,1,"serverMsg"

<-

AT+QMTUNS=1,1,"serverMsg"
OK

2.4.7 发布MQTT消息

AT+QMTPUBEX=<client_idx>,<msgid>,<qos>,<retain>,"<topic>",<msg_length>

<client_idx> 整型。MQTT 客户端标识符。范围:0~5。
<msgid> 整型。数据包消息标识符。范围:0~65535;只有当<qos>=0 时;该参数值为0。
<qos> 整型。客户端想要发布消息时的QoS 等级。
                        0 最多发送一次
                        1 最少发送一次
                        2 只发送一次

<topic> 字符串型。待发布主题。
<msg_length> 整型。待发布消息数据长度。

实例:

->

AT+QMTPUBEX=1,0,0,0,"boxMsg"

>

 {
    "controller_id":    "1",
    "circuit_id":    "0",
    "start_component_id":    "0",
    "end_component_id":    "1",
    "raw_data":    "00"
}

三、参考链接

EC20模块AT命令讲解_at+qiact_O_MMMM_O的博客-CSDN博客

### AT+QMTPUB 和 AT+QMTPUBEX 指令的区别及用法 #### AT+QMTPUB 指令详解 `AT+QMTPUB` 是用于发布消息到指定主题的标准命令。该指令适用于大多数场景下的简单消息发送需求。 语法结构如下: ```plaintext AT+QMTPUB=<index>,<qos>,<retain>,<topic_len>,<topic> ``` 参数说明: - `<index>`:MQTT 客户端索引号。 - `<qos>`:服务质量等级 (0 或 1),决定了传输可靠性。 - `<retain>`:保留标志位(0 表示不保留,1 表示保留),当设置为 1 时,服务器会保存最后一条消息给新订阅者。 - `<topic_len>`:主题名称长度。 - `<topic>`:实际的主题字符串[^3]。 例子: ```plaintext AT+QMTPUB=0,0,0,7,"test/topic" ``` 此命令表示通过客户端编号 0 发送 QoS 级别为 0 的非持久化消息至 "test/topic" 主题。 #### AT+QMTPUBEX 扩展功能介绍 相比之下,`AT+QMTPUBEX` 提供了更丰富的选项来满足复杂的应用场景需求。除了基本的消息发布外,还支持附加属性如超时时间、回调函数等特性。 其完整的调用格式为: ```plaintext AT+QMTPUBEX=<index>,<qos>,<retain>,<dup>,<topic_len>,<topic>,<msg_len>[,<timeout>][,<callback_id>] ``` 额外增加的字段解释: - `<dup>`:重复标记,默认情况下应设为 0;仅在网络异常重传时才可能被置为 1。 - `[<timeout>]`:可选参数,定义操作的最大等待时限(单位 ms)。如果省略,则采用默认值。 - `[<callback_id>]`:同样作为可选项存在,允许应用程序注册特定事件处理程序以便接收反馈通知。 实例展示: ```plaintext AT+QMTPUBEX=0,1,0,0,7,"device/status",12,5000,1 ``` 上述语句意指利用 ID 编码为 0 的连接对象向名为 "device/status" 的通道广播具有较高优先级的数据包,并设定最大响应周期不超过五秒以及关联唯一识别符为 1 的监听器。 总结来说,在常规应用场合下推荐使用 `AT+QMTPUB` 来简化编程流程;而对于那些追求更高灵活性和可控性的开发者而言,`AT+QMTPUBEX` 则提供了更加全面的功能集以适应多样化的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myqpy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值