目录
一、移远串口调试助手
因为我选择的是EC20/EC200等无线模块所以选择下图所示的模块类型
需要通过串口将移远的无线模块连接至上位机
设置AT调试串口,波特率为115200
点击start 进入该程序
软件配置
二、AT指令
2.1 AT常用指令
AT
用于测试是否与模块正常通信
ATE
关闭回显
ATE1
开启回显
AT+CPIN?
判断是否插卡
未插卡:
插卡:
ATI
查询模块版本
AT+CSQ
查询信号强度
2.2 AT短信收发指令
按此方法设置后,收到短信息会以文本模式自动推送
设置URC输出端口(短信上报端口) AT+QURCCFG="urcport"
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"
}