• 物联网工程师开发服务平台

LoRaWAN 模块 AT 指令使用手册

本文档对 LoRaWAN 模块支持的AT指令做了详细说明。

目录

  1. 串口设置
  2. AT指令
    1. AT 命令基本格式
    2. 参数保存
    3. 通用命令
    4. 节点信息管理
    5. 组网和数据收发
    6. 网络管理
    7. 信息查询
    8. 频率设置

串口设置

用户串口,具体管脚参考:LoRaWAN AT 固件管脚配置参数配置:

  • 波特率:9600
  • 数据位:8bit
  • 停止位:1bit
  • 校验:无

AT指令

AT命令基本格式

符号 描述
AT AT指令,都以AT开头,不区分大小写。
+CMD +CMD为命令。
= 说明当前为设置操作。
? 说明当前为读取操作。
, 参数分隔符,可能带多个参数。
\<CR>\<LF> \r\n

其中:

  • AT+\<CMD>? : 获取\<CMD>的帮助

  • AT+\<CMD> : 执行\<CMD>

  • AT+\<CMD>=\<value> : 设置\<CMD>的参数,\<value>为参数值

  • AT+\<CMD>=? : 获取设置参数

注意: 所有命令以\<CR>或\<LF>结尾。

每个命令发送后都会有返回结果,如下所示:

  • OK: 命令执行成功

  • AT_ERROR: 命令错误

  • AT_PARAM_ERROR: 命令参数错误

  • AT_BUSY_ERROR: 模块正在处理其他命令

  • AT_TEST_PARAM_OVERFLOW: 参数长度过长

  • AT_NO_NETWORK_JOINED: 尚未加入LoRaWAN网络

  • AT_RX_ERROR: 命令接收错误

返回结果的格式:\<CR>\<LF>\<结果>\<CR>\<LF>

参数保存

下表所示的参数会固化在本地:

序号 参数
1 DEVEUI |终端设备标识符,全球唯一
2 APPEUI |应用标识符
3 APPKEY |应用密钥
4 APPEUI |应用会话表示非
5 NWKSKEY |网络会话密钥
6 APPSKEY |应用会话密钥
7 MNWKSKEY | LoRaWAN 中的组播 NWKSKEY 值,ABP模式手动设置,OTAA模式无需设置
8 MAPPSKEY | LoRaWAN 中的组播 APPSKEY 值
9 NJM |入网方式
10 TXFQ |TX 起始发射频率值
11 RX1FQ |RX1 起始接收频率值

通用命令

AT

功能:连接状态检测

该命令用于检测主机与模块间的串口连接状态。

执行指令 AT
返回值
返回结果 OK
参数

AT?

功能:获取所有支持的命令列表。

查询指令 AT?
返回值 AT+<CMD>?:Help on <CMD>
AT+<CMD>: Run <CMD>
AT+<CMD>=<value> : Set the value
AT+<CMD>=?: Get the value
ATZ: Trig a reset of the MCU
AT+DEUI: Get the Device EUI
返回结果 OK
参数

ATZ

功能:复位模块。

查询指令功能 ATZ?
返回值 AT+<CMD>?:Help on <CMD>
返回结果 OK,模块复位
参数
指令 ATZ
返回值
返回结果 OK,模块复位
参数

节点信息管理

本章节主要介绍节点信息管理相关的命令。

AT+APPEUI

功能:用于查询或设置 LoRaWAN 中的 APPEUI 值,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+APPEUI?
返回值 AT+APPEUI: get or set the application EUI
返回结果 OK
参数
查询指令 AT+APPEUI=?
返回值 8个16进制字符串表示的APPEUI,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
返回结果 OK
参数
设置指令 AT+APPEUI=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value: 16进制字符串表示的APPEUI,以‘:’隔开,如:01:01:01:01:01:01:01:03
说明 设置后即保存,上电不丢失。

AT+APPKEY

功能:用于查询或设置 LoRaWAN 中的 APPKEY 值,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+APPKEY?
返回值 AT+APPKEY: get or set the application key
返回结果 OK
参数
查询指令 AT+APPKEY=?
返回值 16个16进制字符串表示的APPKEY,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
返回结果 OK
参数
设置指令 AT+APPKEY=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:16个16进制字符串表示的APPKEY,以‘:’隔开,如:2b:7e:15:16:28:ae:d2:a6:ab:f7:15:88:09:cf:4f:3c

AT+APPSKEY

功能:用于查询和设置 LoRaWAN 中的 APPSKEY 值,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+APPSKEY?
返回值 AT+APPKEY: get or set the application session key
返回结果 OK
参数
查询指令 AT+APPSKEY=?
返回值 16个16进制字符串表示的APPSKEY,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
返回结果 OK
参数
设置指令 AT+APPSKEY=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:16个16进制字符串表示的APPSKEY,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

AT+DADDR

功能:用于查询或设置 LoRaWAN 中的节点短地址,该值在ABP模式下需手动设置,OTAA模式下,无需设置。

查询指令功能 AT+DADDR?
返回值 AT+DADDR: get or set the device address
返回结果 OK
参数
查询指令 AT+DADDR=?
返回值 4个16进制字符串表示的短地址,以‘:’隔开,如:00:00:00:00
返回结果 OK
参数
设置指令 AT+DADDR=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:4个16进制字符串表示的短地址,以‘:’隔开,如:00:00:00:11

AT+DEUI

功能:用于查询或设置 LoRaWAN 中的节点 EUI,该值在 ABP 模式下需手动设置,OTAA 模式下,无需设置。

查询指令功能 AT+DEEUI?
返回值 AT+DEUI: get or set the device EUI
返回结果 OK
参数
查询指令 AT+DEUI=?
返回值 8个16进制字符串表示的短地址,以‘:’隔开,如:54:66:61:04:03:02:01:01
返回结果 OK
参数
设置指令 AT+DEUI=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:8个16进制字符串表示的短地址,以‘:’隔开,如:54:66:61:04:03:02:01:02

AT+NWKSKEY

功能: 用于查询或设置 LoRaWAN 中的 NWKSKEY ,该值在 ABP 模式下需手动设置,OTAA 模式下,无需设置。

查询指令功能 AT+NWKSKEY?
返回值 AT+NWKSKEY: get or set the network session key
返回结果 OK
参数
查询指令 AT+NWKSKEY=?
返回值 16个16进制字符串表示的短地址,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
返回结果 OK
参数
设置指令 AT+NWKSKEY=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:16个16进制字符串表示的短地址,以‘:’隔开,如:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:22

AT+MAPPSKEY

功能:用于查询或设置 LoRaWAN 中的组播 MAPPSKEY 值,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+MAPPSKEY?
返回值 AT+MAPPSKEY: Get or Set the Application Session Key for Multicast
返回结果 OK
参数
查询指令 AT+MAPPSKEY=?
返回值 16个16进制字符串表示的组播 MAPPSKEY,以‘:’隔开,如:c2:65:67:a3:ec:d3:96:67:d6:23:f8:7a:e1:6c:12:23
返回结果 OK
参数
设置指令 AT+MAPPSKEY=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:16个16进制字符串表示的组播 MAPPSKEY,以‘:’隔开,如:c2:65:67:a3:ec:d3:96:67:d6:23:f8:7a:e1:6c:12:33

AT+MNWKSKEY

功能:用于查询或设置 LoRaWAN 中的组播 MNWKSKEY 值,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+MNWKSKEY?
返回值 AT+MNWKSKEY: Get or Set the Network Session Key for Multicast
返回结果 OK
参数
查询指令 AT+MNWKSKEY=?
返回值 16进制字符串表示的组播 MNWKSKEY,以‘:’隔开 ,如:65:e4:48:3d:e3:a9:ce:b1:50:d8:86:f3:61:46:02:b5
返回结果 OK
参数
设置指令 AT+MNWKSKEY=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:16进制字符串表示的组播 MNWKSKEY,以‘:’隔开, 如:65:e4:48:3d:e3:a9:ce:b1:50:d8:86:f3:61:46:02:b6

AT+MADDR: 组播地址管理

功能:用于查询或设置 LoRaWAN 中的组播地址,该值由 LoRaWAN 服务端提供。

查询指令功能 AT+MADDR?
返回值 AT+MADDR: get or set the multicast address
返回结果 OK
参数
查询指令 AT+MADDR=?
返回值 4个16进制字符串表示的短地址,以‘:’隔开 ,如:f2:4b:34:06
返回结果 OK
参数
设置指令 AT+MADDR=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:4个16进制字符串表示的短地址,以‘:’隔开, 如:f2:4b:34:09

组网和数据收发

AT+CFM

功能:用于设置上报的消息是否需要服务端 ACK。

查询指令功能 AT+CFM?
返回值 AT+CFM: Get or Set the confirmation mode (0-1)
返回结果 OK
参数
查询指令 AT+CFM=?
返回值 0
返回结果 OK
参数
设置指令 AT+CFM=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:为1,表示发送完数据后,可以使用AT+CFS=?命令来查询服务端应答状态。
为0,表示不可以。

AT+CFS: 消息确认状态

功能:当‘AT+CFM’设置为1时,用于查询发送消息后服务端的应答状态。

查询指令功能 AT+CFS?
返回值 AT+CFS: Get confirmation status of the last AT+SEND (0-1)
返回结果 OK
参数
查询指令 AT+CFS=?
返回值 0
返回结果 OK
参数
设置指令 AT+CFS=<value>
返回值
返回结果 OK 或 AT_PARAM_ERROR
参数 value:为1,表示服务器有应答状态,为0,表示服务器无应答状态。

AT+JOIN

功能:发起入网请求。

查询指令功能 AT+JOIN?
返回值 AT+CFS: Get confirmation status of the last AT+SEND (0-1)
返回结果 OK
参数
查询指令 AT+JOIN
返回值 0
返回结果 OK
参数
说明 这是一个异步命令,发送该命令后,后台会发送入网请求,用户可以通过发送‘AT+NJS=?’来查询入网结果。 使用ABP模式时,也需要发送该命令。

AT+NJM

功能:用于查询或设置节点加入网络时,使用的入网方式。

查询指令功能 AT+NJM?
返回值 AT+NJM: Get or Set the Network Join Mode. (0: ABP, 1: OTAA)
返回结果 OK
参数
查询指令 AT+NJM?
返回值 01
返回结果 OK
参数
设置指令 AT+NJM=<value>
返回值 AT+NJM=0
返回结果 OK
参数 value:0, 代表 ABP 方式,1,代表 OTAA 方式

AT+NJS

功能:用于查询节点入网情况。

查询指令功能 AT+NJS?
返回值 AT+NJS: Get the join status
返回结果 OK
参数
查询指令 AT+NJS=?
返回值 value,包括:01
返回结果 OK
参数 value,0, 代表未加入网络。1,代表已加入网络

AT+RECV

功能: 节点接收到服务端发过来的数据后,会将数据缓存在内部,如果使用CLASS A模式,用户在每次‘AT+SEND’后发送调该命令来查询服务端是否有下发数据;如果使用CLASS C模式,用户需要定时发送该命令来查询服务端是否下发数据。

查询指令功能 AT+RECV?
返回值 AT+RECV: print last received data in raw format
返回结果 OK
参数
接收指令 AT+RECV=?
返回值 端口号: 应用数据。如:0:1111111111
返回结果 OK
参数

AT+RECVB

功能: 接收数据(16进制字符串)。该命令功能与‘AT+RECV’相同,只是原始应用数据部分会被转换成16进制字符串后输出。

查询指令功能 AT+RECVB?
返回值 AT+RECVB: print last received data in binary format (with hexadecimal values)
返回结果 OK
参数
接收指令 AT+RECVB=?
返回值 端口号: 应用数据。如:120:48656c6c6f
返回结果 OK
参数

AT+SEND

功能:用于向服务端发送数据。

查询指令功能 AT+SEND?
返回值 AT+SEND: send text data along with the application port
返回结果 OK
参数
发送指令 AT+SEND=<port>,<data>
返回值 端口号: 应用数据。如:120:hello
返回结果 OK 或 AT_PARAM_ERROR 或 AT_BUSY_ERROR 或 AT_NO_NETWORK_JOINED
参数

AT+SENDB

功能:向服务端发送16进制数据。

需要将待发送的16进制数据转换成16进制字符串,每个字节转换为2个字节的16进制字符串后再调用该命令发送。

查询指令功能 AT+SENDB?
返回值 AT+SENDB: Send hexadecimal data along with the application port
返回结果 OK
参数
发送指令 AT+SENDB=<port>,<data>
返回值 端口号: 应用数据。如:120:hello
返回结果 OK 或 AT_PARAM_ERROR 或 AT_BUSY_ERROR 或 AT_NO_NETWORK_JOINED
参数

网络管理

AT+ADR

用于设置节点是否启用 LoRaWAN 的 ADR ,自适应速率功能,默认为1(开启)。该功能需服务端支持。

查询指令功能 AT+ADR?
返回值 AT+ADR: Get or Set the Adaptive Data Rate setting. (0: off, 1: on)
返回结果 OK
参数
查询指令 AT+ADR=?
返回值 value,0 或 1
返回结果 OK
参数
设置指令 AT+ADR=<value>
返回值 value,0 或 1
返回结果 OK / AT_PARAM_ERROR
参数 value, 0代表:关闭 ADR 功能。 1代表:开启 ADR 功能。

AT+CLASS

功能: 用于设置节点使用的LoRaWAN Class模式,节点目前只支持 Class A 和 Class C。

查询指令功能 AT+CLASS?
返回值 AT+CLASS: get or set the device class
返回结果 OK
参数
查询指令 AT+CLASS=?
返回值 value,A 或 C
返回结果 OK
参数
设置指令 AT+CLASS=<value>
返回值 value,A 或 C
返回结果 OK / AT_PARAM_ERROR
参数 value, A代表:开启 Class A。 C代表:开启 Class C。

AT+DR

功能:用于设置节点的传输速率。

查询指令功能 AT+DR?
返回值 AT+DR: get or set the data rate (0-5 corresponding to DR_X)
返回结果 OK
参数
查询指令 AT+DR=?
返回值 [0,1,2,3,4,5]
返回结果 OK
参数
设置指令 AT+DR=<value>
返回值 value,可以是:0,1, 2, 3, 4, 5
返回结果 OK / AT_PARAM_ERROR
参数 value, 0

AT+FCD

功能:用于获取和设置下行数据的计数值。

查询指令功能 AT+FCD?
返回值 AT+FCD: get or set the downlink frame counter
返回结果 OK
参数
查询指令 AT+FCD=?
返回值 下行数据计数值,如:100
返回结果 OK
参数
设置指令 AT+FCD=<count>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 count, 下行数据计数值

AT+FCU

功能:用于获取和设置上行数据的计数值。

查询指令功能 AT+FCU?
返回值 AT+FCU: get or set the uplink frame counter
返回结果 OK
参数
查询指令 AT+FCU=?
返回值 上行数据计数值,如:100
返回结果 OK
参数
设置指令 AT+FCU=<count>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 count, 上行数据计数值

AT+TXP

功能:设置节点的射频发射功率,默认值为0(最大发射功率)。

发射功率设置值与实际发射功率对应关系:

设置值 实际发射功率
0 17dBm
1 16dBm
2 14dBm
3 12dBm
4 10dBm
5 7dBm
6 5dBm
7 2dBm
查询指令功能 AT+TXP?
返回值 AT+TXP: get or set the transmit power (0-7)
返回结果 OK
参数
查询指令 AT+TXP=?
返回值 发射功率设置值,如:5
返回结果 OK
参数
设置指令 AT+TXP=<power>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 power, 发射功率设置值

信息查询

AT+RSSI

功能: 查询上一次接收到的数据包信号强度,单位 dBm。

查询指令功能 AT+RSSI?
返回值 AT+RSSI: get the RSSI of the last received packet
返回结果 OK
参数
查询指令 AT+RSSI=?
返回值 信号强度值,如:-30
返回结果 OK
参数

AT+VER

功能:用于查询当前固件版本。

查询指令功能 AT+VER?
返回值 AT+VER: get the version of the FW
返回结果 OK
参数
查询指令 AT+VER=?
返回值 固件版本号; LoRaWAN 版本
返回结果 OK
参数

频率设置

AT+TXFQ

功能:设置节点的射频发射起始频率, 范围 410000000Hz ~ 525000000Hz。

默认为 8 个通道,每个通道的频率间隔固定为 200000Hz。

查询指令功能 AT+TXFQ?
返回值 AT+TXFQ:Set first tx channel frequency
返回结果 OK
参数
查询指令 AT+TXFQ=?
返回值 起使发射频率
返回结果 OK
参数
设置指令 AT+TXP=<flu>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 flu, 起始发射功率设置值

AT+RX1FQ

用于设置 LoRaWAN RX1 起始接收频率, 范围 410000000Hz ~ 525000000Hz。

默认为 8 个通道,每个通道的频率间隔固定为 200000Hz。

查询指令功能 AT+RX1FQ?
返回值 AT+RX1FQ:Set first rx1 channel frequency
返回结果 OK
参数
查询指令 AT+RX1FQ=?
返回值 RX1 起使接收频率值
返回结果 OK
参数
设置指令 AT+RX1FQ=<flu>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 flu, RX1 起始接收功率设置值

AT+RX2FQ

用于设置 LoRaWAN RX2起始接收频率, 范围 410000000Hz ~ 525000000Hz。

只有 1 个通道.

查询指令功能 AT+RX2FQ?
返回值 AT+RX2FQ:Set first rx2 channel frequency
返回结果 OK
参数
查询指令 AT+RX2FQ=?
返回值 RX2 起使接收频率值
返回结果 OK
参数
设置指令 AT+RX2FQ=<flu>
返回值
返回结果 OK / AT_PARAM_ERROR
参数 flu, RX2 起始接收功率设置值
文本导读目录