查看: 990|回复: 0

[技术交流] Lierda NB Module NB81&MB26 MQTT应用笔记--对接onenet平台(下)

[复制链接]

50

主题

409

帖子

1309

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
1309
发表于 2022-4-27 16:08:09 | 显示全部楼层 |阅读模式
1.  上电检查流程
AT          //判断模组是否上电开机成功  
AT+CFUN=1   //关闭飞行模式  
AT+CEREG?   //判断PS域附着状态,第二个参数为1或5表示附着正常  
2.   OneNet交互流程
//创建链接  
AT+ECMTOPEN=0,”183.230.40.39”,6002  
//创建mqtt,在OneNet上注册设备  
AT+ECMTCONN=0,"915512266","499605","ecpower1"   
//创建MQTT客户端
AT+ECMTCFG="cloud",0,1,3               
//发送数据给OneNet, 内容是”{“ec_power_data”:88}”  
AT+ECMTPUB=0,0,0,0,”$dp”
>
03001b7b2265635f736d6172745f73656e736f725f64617461223a38387d
>
1A
//接收到OneNet下发的数据  
+ECMTRECV: 0,0,"$creq/b2c29202-78a1-5050-8aaa-719450192390",ec_power
//删除mqtt client和mqtt连接  
AT+ECMTDISC =0     
3.  MQTT 命令3.1.   AT+ECMTCFG 创建客户端3.1.1.      命令描述
该命令创建一个 MQTT 客户端。
3.1.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
配置保活时间
  
AT+ECMTCFG="keepalive",<tcpconnectID>[,<keep
  
-alive  time>]
OK
  
如果省略<keep-alive time>,请查
  
询keep-alive时间:
  
+ECMTCFG: "keepalive",<keepalive  time>
  
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置会话类型
  
AT+ECMTCFG="session",<tcpconnectID>[,<clean_
  
session>]
OK
  
如果省略<clean_session>,请查询
  
会话类型:
  
+ECMTCFG:
  
"session",<clean_session>
  
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置消息发送超时时间
  
AT+ECMTCFG="timeout",<tcpconnectID>[,<pkt_ti
  
meout>[,<retry_times>][,<timeout_notice>]]
OK
  
如果省略<pkt_timeout>,
  
<retry_times>,<timeout_notice>,请查询消息发
  
送的超时值:
  
+ECMTCFG:
  
"timeout",<pkt_timeout>,<retr
  
y_times>,<timeout_notice>
  
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置Will信息
  
AT+ECMTCFG="will",<tcpconnectID>[,<will_fg>[
  
,<will_qos>,<will_retain>,“<will_topic>”,“<w
  
ill_msg>”]]
OK
  
如果省略<will_fg>,<will_qos>,
  
<will_retain>,<will_topic>和
  
<will_msg>,请查询Will信息:
  
+ECMTCFG:
  
"will",<will_fg>[,<will_qos>,
  
<will_retain>,<will_topic>,<w
   
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置要使用的MQTT协议版本
  
AT+ECMTCFG="version",<tcpconnectID>[,<versio
  
n>]
OK
  
如果省略<version>,请查询MQTT
  
协议版本:
  
+ECMTCFG:  "version",<version>
  
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置阿里云的设备信息
  
AT+ECMTCFG="aliauth",<tcpconnectID>[,“<produ
  
ct_key>”,“<device_name>”,“<device_secret>”]
OK
  
如果省略“ <product_key>”,
  
“ <device_name>”,
  
“ <device_secret>”,请查询设
  
备信息:
  
+ECMTCFG:
  
"aliauth",<product_key>,<devi
  
ce_name>,<device_secret>
  
  
OK
  
如果发生错误,响应:
  
ERROR
设置命令
  
配置云类型和云发送数据的格式
  
AT+ECMTCFG="cloud",<tcpconnectID>,<cloud  
  
type>,<data  type>
OK
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTCFG=?
+ECMTCFG:+ECMTCFG:  "keepalive",(0),(0-
  
3600)
  
+ECMTCFG:  "session",(0),(0,1)
  
+ECMTCFG: "timeout",(0),(1-60),(1-10),(0,1)
  
+ECMTCFG:  "will",(0),(0,1),(0-
  
2),(0,1),"will_topic","will_msg"
  
+ECMTCFG:  "version",(0),(3,4)
  
+ECMTCFG:  "aliauth",(0),"productkey","d
  
evicename","devicesecret"
  
+ECMTCFG:  "cloud",(0-255), (0-255)
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.1.3.      参数描述
<tcpconnectID>
字符串类型
MQTT套接字标识符,值为0
<echo_mode>
整型。  是否在数据模式下将输入数据回显到UART(不支持)
0 不要将输入数据回显到UART
1 将输入数据回传到UART
<keep-alive
  
time>
整型。
范围是0-3600。  默认值为120。单位:秒。 它定义了从客户端收到的消息之
  
间的最大时间间隔。  如果服务器在保持活动时间段的1.5倍内未收到来自客户
  
端的消息,则它将断开客户端的连接,就好像客户端已发送DISCONNECT消
  
息一样。
<clean_session>
整型。  配置会话类型
0 断开连接后,服务器必须存储客户端的订阅。
1 服务器端丢弃之前为该客户端保留的任何信息,并将连接视为“clean(清除)”
<pkt_timeout>
整型。
数据包传递超时时间。  范围是1-60。 默认值为10。单位:秒。
<retry_times>
整型. (不支持)
数据包传递超时的重试时间。  范围是0-10。 预设值为3。
<timeout_notice>
整型. (不支持)
0 传输数据包时不报告超时消息
1 传输数据包时报告超时消息
<will_fg>
整型。  配置Will标志
0 忽略Will标志配置
1 需要Will标志配置
<will_qos>
整型。  消息传递的服务质量
0 最多一次
1 最少一次
2 正好一次
<will_retain>
整型。 Will保留标志仅用于发布消息。
0 当客户端向服务器发送发布消息时,服务器在将消息传递给当前订户后将不
  
保留该消息
1 当客户端向服务器发送PUBLISH消息时,服务器在将消息传递给当前订户后
  
应保留该消息
<will_topic>
整型。
Will主题字符串,最大大小为255字节
<will_msg>
整型。
Will消息定义了客户端意外断开连接时发布到will主题的消息的内容。 它可以是
  
零长度的消息。  最大大小为255个字节
<version>
整型。 MQTT协议的版本,默认为MQTT v3.1.1
3 MQTT v3.1
4 MQTT v3.1.1
<product_key>
整型。
阿里云发布的产品密钥,最大大小为32个字节
<device_name>
整型.
阿里云发布的设备名称,最大为32个字节
<device_secret>
整型.
阿里云发布的设备密钥,最大为64个字节
<cloud type >
整型
0 mosquitto平台
1 OneNet平台
2 阿里云
3-255 客户自定义
<data type>
整型,范围是 0-255
OneNet 云平台定义如下
  
1 OneNet数据类型1
  
2 OneNet数据类型2
  
3 OneNet数据类型3
  
4 OneNet数据类型4
  
5 OneNet数据类型5
  
6 OneNet数据类型6
阿里云定义如下
  
1 Json 数据
  
2 字符串数据
其他平台,数据格式没有规定

3.1.4.      命令示例
  
AT+ECMTCFG ="cloud",0,1,1
  
OK
  
3.2.   AT+ECMTOPEN 打开客户端连接3.2.1.      命令描述
该命令用于为 MQTT 客户端打开网络。
3.2.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTOPEN=<tcpconnectID>,“<host_name>”,
  
<port>
OK
  
+ECMTOPEN:
  
<tcpconnectID>,<result>
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTOPEN=?
+ECMTOPEN: (支持列表
  
<tcpconnectID>s),“<host_name>”,(支持列
  
表 <port>s)
  
  
OK
  
若出现任何错误:
  
ERROR
  
或者
  
+CME ERROR:  <err>
查询命令
  
AT+ECMTOPEN?
[+ECMTOPEN:
   
  
OK
最大响应时间
5s
参数保存模式
不保存

3.2.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<host_name>
字符串类型
服务器的地址。  它可以是IP地址或域名。 最大100个字节
<port>
整型
服务器的端口。  范围是1-65535
<result>
整型,命令执行结果
-1 打开网络失败
0 打开网络成功

3.2.4.      命令示例
  
AT+ECMTCFG ="cloud",0,1,1
  
OK
  
AT+ECMTOPEN=0,"183.230.40.39",6002
  
OK
  
  
+ECMTOPEN: 0,0
  
3.3.   AT+ECMTCLOSE 关闭客户端3.3.1.      命令描述
该命令发送 MQTT 关闭数据包。
3.3.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTCLOSE=<tcpconnectID>
OK
  
+ECMTCLOSE:  <tcpconnectID>,<result>
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTCLOSE=?
+ECMTCLOSE: (支持列表 <tcpconnectID>s)
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.3.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<result>
整型
-1 关闭mqtt失败
0 关闭mqtt成功

3.3.4.      命令示例
  
AT+ECMTCLOSE=0
  
OK
  
  
+ECMTCLOSE: 0,0
  
3.4.   AT+ECMTCONN 创建连接3.4.1.      命令描述
连接客户端到 MQTT 服务器。
3.4.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTCONN=<tcpconnectID>,“<clientID>
  
[,“<username>”[,“<password>”]]
OK
  
+ECMTCONN:
  
<tcpconnectID>,<result>[,<ret_code>]
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTCONN=?
+ECMTCONN: (支持列表
  
<tcpconnectID>s),“<clientID>”[,“<u
  
sername>”[,“<password>”]]
  
  
OK
查询命令
  
AT+ECMTCONN?
[+ECMTCONN:  <tcpconnectID>,<state>]
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.4.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<clientID>
字符串类型
客户端标识符,最大48个字节
<username>
字符串类型
客户端的用户名。  可用于身份验证,最大48个字节
<password>
字符串类型
客户端用户名对应的密码。  它可以用于身份验证,最大96个字节
<result>
整型
0 发送数据成功,并收到服务器的回复
1 发送数据成功,并收到服务器的错误回复
2 发送失败
<ret_code>
整型,服务器返回的连接结果
0 连接服务器成功
1 连接服务器被拒绝 – 错误的协议版本
2 连接服务器被拒绝 – 错误的客户端ID
3 连接服务器被拒绝 – 找不到服务器
4 连接服务器被拒绝 – 用户名或者密码错误
5 连接服务器被拒绝 – 认证失败
6 连接服务器失败

3.4.4.      命令示例
  
AT+ECMTCFG ="cloud",0,1,1
  
OK
  
AT+ECMTOPEN=0,"183.230.40.39",6002
  
OK
  
  
+ECMTOPEN: 0,0
  
AT+ECMTCONN=0,"565326403","291622","123456"
  
OK
  
  
+ECMTCONN: 0,0,0
  
3.5.   AT+ECMTDISC 断开连接3.5.1.      命令描述
断开客户端和 MQTT 服务器的连接。
3.5.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTDISC=<tcpconnectID>
OK
  
+ECMTDISC:  <tcpconnectID>,<result>
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTDISC=?
+ECMTDISC: (支持列表 <tcpconnectID>s)
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.5.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<result>
整型
-1 断开连接失败

0 断开连接成功

3.5.4.      命令示例
  
AT+ECMTDISC=0
  
OK
  
  
+ECMTDISC: 0,0
  
3.6.   AT+ECMTSUB 发起订阅3.6.1.      命令描述
该命令发送 MQTT 订阅数据包。
3.6.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTSUB=<tcpconnectID>,<msgID>,“<topi
  
c>”,<qos>
OK
  
+ECMTSUB:
  
<tcpconnectID>,<msgID>,<result>[,
   
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTSUB=?
+ECMTSUB: (支持列表<tcpconnectID>s),(支持列表<msgID>s),“<topic>”,(支持列表<qos>s)
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.6.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<msgID>
整型
报文的报文标识。  范围是1-65535
<topic>
字符串类型
客户想要订阅或取消订阅的主题。  最大长度为255个字节
<qos>
整型
消息QoS,可以为0,1或2
<result>
整型
0
发送成功,并收到server回复
1
发送成功,但接收到的回复错误
2
发送失败
<value>
整型
服务器授予的qos等级

3.6.4.      命令示例
  
AT+ECMTSUB=0,1,"test",2
  
OK
  
  
+ECMTSUB: 0,1,0,1
  
3.7.   AT+ECMTUNS 取消订阅3.7.1.      命令描述
该命令发送 MQTT 取消订阅数据包。
3.7.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTUNS=<tcpconnectID>,<msgID>,“<topic>
  
OK
  
+ECMTUNS:
  
<tcpconnectID>,<msgID>,<result>
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTUNS=?
+ECMTUNS: (支持列表<tcpconnectID>s),(支持列表<msgID>s),“<topic>”
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.7.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<msgID>
整型
报文的报文标识。  范围是1-65535
<topic>
字符串类型
客户想要订阅或取消订阅的主题。  最大长度为255个字节
<result>
整型
0
发送成功,并收到server回复
1
发送成功,但接收到的回复错误
2
发送失败

3.7.4.      命令示例
  
AT+ECMTUNS=0,1,"test"
  
OK
  
  
+ECMTUNS: 0,1,0
  
3.8.   AT+ECMTPUB 发布数据3.8.1.      命令描述
该命令发送 MQTT 发布数据包。
3.8.2.      命令语法
指令类型
  
指令响应
  
设置命令
  
AT+ECMTPUB=<tcpconnectID>,<msgID>,<qos>,<retai
  
n>,“<topic>”,“<payload>"
OK
  
+ECMTPUB:
  
<tcpconnectID>,<msgID>,<result>[,<value>]
  
如果发生错误,响应:
  
ERROR
测试命令
  
AT+ECMTPUB=?
+ECMTPUB: (支持列表<tcpconnectID>s),(支持列表<msgID>s),(支持列表<qos>s),(支持列表<retain>s),“<topic>”,“<msg>”
  
  
OK
最大响应时间
5s
参数保存模式
不保存

3.8.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<msgID>
整型
报文的报文标识。  范围是1-65535
<qos>
整型
消息QoS,可以为0,1或2
<retain>
整型
0
服务器不应保留该消息
1
服务器应保留该消息
<topic>
字符串类型
需要发布的主题。  最大长度为255个字节
<payload>
字符串类型 or Hex type
需要发布的消息。  最大长度为700个字节。 如果处于数据模式,则最大长度为
  
1024字节
<result>
整型
0
发送成功,并收到server回复
1
发送成功,但接收到的回复错误
2
发送失败
<value>
整型
服务器授予的qos等级

3.8.4.      命令示例
  
AT+ECMTPUB=0,0,0,0,"$dp", "{"datastreams":[{"id":"temperature","datapoints":[{"at":"2020-08-31  14:20:12","value": 30.5}]}]}"
  
OK
  
  
+ECMTPUB: 0,0,0
  
3.9.   +ECMTSTAT URC 消息,报告链路层状态3.9.1.      命令描述
当 MQTT 链路层状态发生变化时,将上报此 URC。
3.9.2.      命令语法
指令类型
  
指令响应
  
主动上报
+ECMTSTAT: <tcpconnectID>,<err_code>

3.9.3.      参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<err_code>
整型。错误代码
1 连接已关闭或由对等方重置

3.9.4.      命令示例
  
  
3.10.+ECMTRECV URC 消息,指示接收服务器数据3.10.1.   命令描述
这是一条 URC 消息,指示 MQTT 客户端从 MQTT 服务器接收数据。
3.10.2.   命令语法
指令类型
  
指令响应
  
主动上报
+ECMTRECV: <tcpconnectID>,<msgID>,<topic>,<data>

3.10.3.   参数描述
<tcpconnectID>
整型
MQTT套接字标识符。 值是0
<msgID>
字符串类型
报文的报文标识。
<topic>
字符串类型
从MQTT服务器收到的主题。
<data>
字符串类型
从服务器接收数据。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表