为了让使用“MCU+WiFi模组”模式接入阿里云IoT的用户更加高效地完成设备接入工作,我们基于AliOS Things实现了一套对阿里云IoT平台接入流程高度抽象的WiFi固件。使得用户最少使用3个指令就可以完成设备的接入和设备数据上报。同时还提供可通过硬件配置进入的透传模式,在用户不便修改端侧设备代码时,也可以快速地将设备接入平台。我们还为用户提供通过OTA本地代理能力,使模组成为本地MCU升级时的OTA服务提供者,帮助本地设备实现固件升级。

快速开始

通过AT命令接入阿里云IoT平台

步骤1:设置设备四元组

AT+IDMAU="PRODUCT_KEY","DEVICE_NAME","DEVICE_SECRET","PRODUCT_SECRET"

注:四元组信息可以从阿里云物联网平台设备管理页面获取,具体步骤参考通过带有阿里云IoT直连固件的WiFi模组快速完成设备接入

如果设置成功,模组返回OK。

步骤2:一键配网

  • 通过发送AT指令启动配网。
AT+IWSSTART=0

注:该步骤需要配合手机端“云智能”APP使用,具体使用方法参考通过带有阿里云IoT直连固件的WiFi模组快速完成设备接入

如果模组进入配网状态,则返回OK。

当配网成功后,模组自动连接阿里云;连接成功后,模组返回

+IDMSTA:2
OK

注:可登录阿里云物联网平台设备管理页面查看对应设备在线状态。

  • 如果有其他方式可以获得现场路由器的SSID和password也可以通过AT指令完成配网
AT+WJAP=ssid,password
  • 将模组提供的配网按钮拉低3秒钟,也可以使模组直接进入配网模式。

步骤3:上报数据

连云成功后,用户可以根据业务需求向云端上报数据。模组提供以下上报命令:

属性上报

AT+IDMPP=0,"{\"PowerSwitch_1\":0}"

事件上报

AT+IDMEP=0,"Error","{\"ErrorCode\":0}"

标签上报

AT+IDMTP=0,"[{\"attrKey\":\"welcome\",\"attrValue\":\"hello,world\"}]"

透传数据上报

AT+IDMRP=0,0

{"hello"}

透传方式接入阿里云

模组提供透传接入方式:模组上电后,自动连接阿里云,并根据某引脚输入,在连云成功后自动进入透传模式。在这一过程中,MCU无需向模组发送AT指令。因此,该模式无需添加或修改MCU的发送逻辑。

首次使用

参考以上AT指令步骤,对模组的四元组信息、配网信息进行配置。这些信息将存于flash中,后续使用无需配置。

步骤1:上电时设置引脚输入

根据模组型号,对相关引脚进行配置。例如EM3080,上电时将PWM5拉低,模组连云成功后自动进入透传模式。

步骤2:透传数据上报

进入该模式后,MCU即可以向模组发送自定义格式的数据,模组转发至相应设备的thing/model/up_raw主题。

{"hello1"}
//或16进制数
01 02 03 5F AA
		

通过模组给MCU升级固件

模组提供给MCU升级固件的能力,通过两条AT指令与ymodem即可完成。

步骤1:上传MCU固件至云端

MCU的固件需要在生成md5时对magic字段进行修改,用以标识固件类型,脚本见附件。然后,在物联网平台上传MCU的OTA固件,上传步骤参考该链接。

步骤2:下载MCU固件至模组

模组连云成功后,在物联网平台页面选择MCU固件和对应设备,开始升级,操作步骤参考该连接。

下载成功后,模组输出固件版本与长度信息。

+OTAINFO:version_1,10240

MCU收到该提示信息后,即可以进行升级前的准备。MCU也可以进行主动查询

AT+OTAINFO?

步骤3:下载MCU固件至模组

MCU准备好升级后,向模组发送开始指令,

AT+OTASTART=0

模组返回OK后,进入ymodem server等待模式。

MCU启动ymodem client,即进入OTA文件传输模式。

已适配模组及引脚说明

EM3080

引脚说明

PIN 功能 描述
14 透传模式控制 上电时保持低电平,模组进入透传模式
23 配网控制 按键进入配网模式
19 指示灯

1.灯灭表示断网

2.1Hz慢闪指示模组在配网状态

3.常亮表示网络连接成

4.0.5Hz快闪表示收到数据

传输性能指标

参数 描述
单次数据上报长度 1KByte 适用属性上报、事件上报、透传上报;透传上报数据到达1KByte,将自动进行一次上报,后续数据将在下次上报中处理
透传超时上报时长 1Sec 超时后对已收到数据包进行一次上报
配网超时 600Sec 配网超时后,将自动退出配网
自动重连次数 3次 Wi-Fi连接成功后,连接云端失败时,将自动重连3次

AT命令列表

物联网平台连接配置参数操作

命令 描述 实现方式
AT+IDMDC 连接域名配置 强制
AT+IDMPA 物联网平台连接参数配置 强制
AT+IDMAU 鉴权配置 强制

设置连接域名和端口 +IDMDC

命令类型 命令格式 响应
测试命令 AT+IDMDC=?

+IDMDC:mqtt_domain,mqtt_port,http_domain,http_port

OK

查询命令 AT+IDMDC?

+IDMDC:<mqtt_domain>,<mqtt_port>,<http_domain>,<http_port>

OK

执行命令 AT+IDMDC=<mqtt_domain>,<mqtt_port>,<http_domain>,<http_port> OK
参数说明

<mqtt_domain>mqtt服务器的域名或者IP地址;

<mqtt_port>mqtt服务器的端口,默认1883;

<http_domain>http服务器的域名或者IP地址;

<http_port>http服务器的端口,默认为80

返回值说明
示例
注意事项

设备鉴权配置 +IDMAU

命令类型 命令格式 响应
测试命令 AT+IDMAU=?

+IDMAU:"productKey","deviceName","deviceSecret","productSecret"

OK

查询命令 AT+IDMAU?

+IDMAU:<productKey>,<deviceName>,<deviceSecret>,<productSecret>

OK

执行命令 AT+IDMAU=<productKey>,<deviceName>,<deviceSecret>,<productSecret>

OK

或者

+CME ERROR:<err>

参数说明

<productKey>,<deviceName>,<deviceSecret>,<productSecret>:设备四元组信息

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

设置物联网平台连接参数 +IDMPA

命令类型 命令格式 响应
测试命令 AT+IDMPA=?

+IDMPA:ParaTag,ParaValue

OK

查询命令 AT+IDMPA?

+IDMPA:<ParaTag>,<ParaValue>

OK

执行命令 AT+IDMPA=<ParaTag>,<ParaValue>

OK

或者

+CME ERROR:<err>

参数说明

<ParaTag>物联网平台连接参数名称,包含以下参数项;

<ParaValue>物联网平台连接参数值;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项
REGION 使用服务器区域: SHANGHAISINGAPORE,JAPAN,USSA_WEST,GERMANY,CUSTOM
DYN_REG 动态注册,0: 不启用 1: 启用。
RECV_PROP_EVENT_REPLY 接收属性、事件上报回复,0: 不接收 1: 接收。
SEND_PROP_SET_REPLY 发送属性设置回复,0: 不发送 1:发送

配网AT指令

命令 描述 实现方式
AT+IWSSTART 开始配网 强制
AT+IWSSTOP 停止配网 强制
AT+WJAP 手动配网 强制
AT+WJAPD 删除配网信息 强制
AT+WJAPQ 查询配网信息 非强制

开始配网 +IWSSTART

命令类型 命令格式 响应
测试命令 AT+IWSSTART=? +IWSSTART:"type"
查询命令 AT+IWSSTART?

+IWSSTART:<type>

OK

执行命令 AT+IWSSTART=<type>

OK

或者

+CME ERROR:<err>

参数说明

<type>:配网类型:0: 一键配网;1: 其它

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例

AT+WSSTART

OK

注:在发起一次新的配网前,需使用AT+IDMCLS命令断开当前模组与路由器的连接。

停止配网 +IWSSTOP

命令类型 命令格式 响应
测试命令 AT+IWSSTOP=? OK
执行命令 AT+IWSSTOP

OK

或者

+CME ERROR:<err>

参数说明 <err>error代码,详见《AT command set for User Equipment (UE)》。
返回值说明
示例

手动配网 +WJAP

命令类型 命令格式 响应
执行命令

AT+WJAP=<ssid>,<password>

OK

或者

ERROR

参数说明

<ssid>:WiFi AP SSID,最大长度32

<password>:WiFi密码,最大长度64

返回值说明
示例

删除配网信息 +WJAPD

命令类型 命令格式 响应
执行命令

AT+WJAPD

OK

或者

ERROR

参数说明
返回值说明
示例

配网信息查询 +WJAPQ

命令类型 命令格式 响应
执行命令

AT+WJAPQ

+WJAPQ:<ssid>,<password>

OK

或者

ERROR

参数说明

<ssid>:WiFi AP SSID,最大长度32

<password>:WiFi密码,最大长度64

返回值说明
示例

UART AT指令

命令 描述 实现方式
AT AT测试 强制
AT+UARTS UART参数设置 强制

AT测试

命令类型 命令格式 响应
执行命令 AT

OK

或者

+CME ERROR:<err>

参数说明 <err>error代码,详见《AT command set for User Equipment (UE)》。
返回值说明
示例

UART参数配置 +UARTS

命令类型 命令格式 响应
测试命令 AT+UARTS=?

+UARTS:"baud_rate","data_width","stop_bits","parity","flow_control"

OK

查询命令 AT+UARTS?

+UARTS:<baud_rate>,<data_width>,<stop_bits>,<parity>,<flow_control>

OK

执行命令 AT+UARTS=<baud_rate>,<data_width>,<stop_bits>,<parity>,<flow_control>

OK

或者

+CME ERROR:<err>

参数说明

<baud_rate>:波特率,有效值:115200,921600,4800,9600,14400,19200,38400,57600,230400,460800;

<data_width>:位宽,有效值:5,6,7,8,9;

<stop_bit>:停止位,有效值:1,2;

<parity>:奇偶校验,有效值:NONE,ODD,EVEN;

<flow_control>:流控,有效值:NONE,CTS,RTS,CTSRTS

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

物联网平台连接操作

命令 描述 实现方式
AT+IDMCON 建立连接 强制
AT+IDMCLS 断开连接 强制
AT+IDMSTA 连接状态 强制

连接 +IDMCON

命令类型 命令格式 响应
测试命令 AT+IDMCON=? OK
执行命令 AT+IDMCON

OK

或者

+CME ERROR:<err>

参数说明 <err>error代码,详见《AT command set for User Equipment (UE)》。
返回值说明
示例

断开连接 +IDMCLS

命令类型 命令格式 响应
测试命令 AT+IDMCLS=? OK
执行命令 AT+IDMCLS

OK

或者

+CME ERROR:<err>

参数说明 <err>error代码,详见《AT command set for User Equipment (UE)》。
返回值说明
示例

查询连接状态 +IDMSTA

命令类型 命令格式 响应
测试命令 AT+IDMSTA=? OK
查询命令 AT+IDMSTA?

+IDMSTA:<state>

OK

当网络状态发生变化,模组也可以主动上报:

+IDMSTA:<state>

OK

参数说明

<state>MQTT连接状态

0物联网平台连接断开状态。

1:保留。

2物联网平台连接连接状态。

返回值说明
示例

物模型操作

命令 描述 实现方式
AT+IDMPP 属性上报 强制
+IDMPS 属性设置 强制
+IDMPG 属性获取 非强制
AT+IDMEP 事件上报 强制
+IDMSS 服务请求 强制
AT+IDMRP 透传数据上报 强制
+IDMRS 透传数据下发 强制

属性上报+IDMPP

命令类型 命令格式 响应
测试命令 AT+IDMPP=?

+IDMPP:device_id,message,format,fragment_id

OK

查询命令 AT+IDMPP?

+IDMPP:<device_id>,<message>,[format],[fragment_id]

OK

执行命令 AT+IDMPP=<device_id>,<message>,[format],[fragment_id]

+IDMPP:<packet_id>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+IDMPP:<device_id>,<packet_id>,<code>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<message>:上报的消息体内容;

<packet_id>:发布消息时返回的id

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,支持0

如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMPP命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行上报属性操作。

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

属性设置+IDMPS

命令类型 命令格式 响应
测试命令 AT+IDMPS=? OK
查询命令 AT+IDMPS?

+IDMPS:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

主动上报收到的消息:

+IDMPS:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

参数说明

<device_id>:设备ID

<msg_len>:收到消息体的长度:

<message>:收到消息体的内容;

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,终端模组需要将HEX字符串转换成二进制数据格式,再执行后续操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

通信模组将收到的长消息发给终端模组前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果终端模组收到的数据包里面分包计数器大于0,它需要继续接收IDMPS命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行后续操作。

返回值说明
示例
注意事项

属性获取+IDMPG

命令类型 命令格式 响应
测试命令 AT+IDMPG=? OK
查询命令 AT+IDMPG?

+IDMPG:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

主动上报收到的消息:

+IDMPG:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

参数说明

<device_id>:设备ID

<msg_len>:收到消息体的长度:

<message>:收到消息体的内容;

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,0

如果该字段为1时,终端模组需要将HEX字符串转换成二进制数据格式,再执行后续操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

通信模组将收到的长消息发给终端模组前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果终端模组收到的数据包里面分包计数器大于0,它需要继续接收IDMPG命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行后续操作。

返回值说明
示例
注意事项

事件上报 +IDMEP

命令类型 命令格式 响应
测试命令 AT+IDMEP=?

+IDMEP:device_id,event_id,event_payload,format,fragment_id

OK

查询命令 AT+IDMEP?

+IDMEP:<device_id>,<event_id>,<event_payload>,[format],[fragment_id]

OK

执行命令 AT+IDMEP=<device_id>,<event_id>,<event_payload>,[format],[fragment_id]

+IDMEP:<packet_id>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+IDMEP:<device_id>,<packet_id>,<code>,<event_id>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<event_id>:事件标识;

<event_payload>:事件内容;

<packet_id>:发布消息时返回的id

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMEP命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行上报事件操作。

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

服务请求+IDMSS

命令类型 命令格式 响应
测试命令 AT+IDMSS=? OK
查询命令 AT+IDMSS?

+IDMSS:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

主动上报收到的消息:

+IDMSS:<device_id>,<msg_len>,<message>,[format],[fragment_id]

OK

参数说明

<device_id>:设备ID

<msg_len>:收到消息体的长度:

<message>:收到消息体的内容;

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,终端模组需要将HEX字符串转换成二进制数据格式,再执行后续操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

通信模组将收到的长消息发给终端模组前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果终端模组收到的数据包里面分包计数器大于0,它需要继续接收IDMSS命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行后续操作。

返回值说明
示例
注意事项

透传数据上报 +IDMRP

命令类型 命令格式 响应
测试命令 AT+IDMRP=?

+IDMRP:device_id,msg_len

OK

bin_message

查询命令 AT+IDMRP?

+IDMRP:<device_id>,<msg_len>

OK

<bin_message>

执行命令 AT+IDMRP=<device_id>,<msg_len>

msg_len大于0,

OK

msg_len等于0

>

<bin_message>[+++]

+IDMRP:<packet_id>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。 +IDMRP:<device_id>,<packet_id>,<code>,<event_id>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<msg_len>:上报的消息长度;

<bin_message>:上报的消息体内容,二进制格式;

[+++]:从二进制数据传输模式返回命令模式,仅当msg_len0时存在;

<packet_id>:上报消息时返回的id;

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

透传数据下发+IDMRS

命令类型 命令格式 响应
测试命令 AT+IDMRS=? OK
查询命令 AT+IDMRS?

+IDMRS:<device_id>,<msg_len>

OK

<bin_message>

主动上报收到的消息:

+IDMRS:<device_id>,<msg_len>

OK

<bin_message>

参数说明

<device_id>:设备ID;

<msg_len>:收到消息体的长度:

<bin_message>:收到消息体的内容,二进制格式;

返回值说明
示例
注意事项

子设备管理操作

命令 描述 实现方式
AT+ISUBRP 子设备注册 强制
AT+ISUBRD 子设备注销 强制
AT+ISUBLGP 子设备登录 强制
AT+ISUBLGD 子设备登出 强制
+ISUBPS 网关允许添加子设备 强制

子设备注册 +ISUBRP

命令类型 命令格式 响应
测试命令 AT+ISUBRP=?

+ISUBRP:"productKey","deviceName","deviceSecret","productSecret"

OK

查询命令 AT+ISUBRP?

+ISUBRP:<productKey>,<deviceName>,<deviceSecret>,<productSecret>

OK

执行命令 AT+ISUBRP=<productKey>,<deviceName>,<deviceSecret>,<productSecret>

+ISUBRP:<device_id>

OK

或者

+CME ERROR:<err>

参数说明

<productKey>,<deviceName>,<deviceSecret>,<productSecret>:子设备四元组

<device_id>:设备ID

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

子设备注销 +ISUBRD

命令类型 命令格式 响应
测试命令 AT+ISUBRD=?

+ISUBRD:<deviceID>

OK

查询命令 AT+ISUBRD?

+ISUBRD:device_id

OK

执行命令 AT+ISUBRD=<deviceID>

OK

或者

+CME ERROR:<err>

参数说明

<device_id>:设备ID

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例

子设备登录 +ISUBLGP

命令类型 命令格式 响应
测试命令 AT+ISUBLGP=?

+ISUBLGP:<deviceID>

OK

查询命令 AT+ISUBLGP?

+ISUBLGP:<deviceID>

OK

执行命令 AT+ISUBLGP=<deviceID>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+ISUBLGP:<device_id>,<packet_id>,<code>,<event_id>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<err>error代码,详见《AT command set for User Equipment (UE)》。

<packet_id>:发布消息时返回的id

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

返回值说明
示例

子设备登出 +ISUBLGD

命令类型 命令格式 响应
测试命令 AT+ISUBLGD=?

+ISUBLGD:<deviceID>

OK

查询命令 AT+ISUBLGD?

+ISUBLGD:<deviceID>

OK

执行命令 AT+ISUBLGD=<deviceID>

OK

或者

+CME ERROR:<err>

参数说明

<device_id>:设备ID

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例

网关允许添加子设备 +ISUBPS

命令类型 命令格式 响应
测试命令 AT+ISUBPS=? OK
查询命令 AT+ISUBPS?

+ISUBPS:<productkey>,<timeout>

OK

主动上报收到的消息:

+ISUBPS:<productkey>,<timeout>

OK

参数说明

<productkey>:产品key值;

<timeout>permit超时时间,单位second

示例

+ISUBPS=3a1PcArcq23G,60

OK

设备标签操作

命令 描述 实现方式
AT+IDMTP 设备标签上报 强制
AT+IDMTD 设备标签删除 强制

设备标签上报 +IDMTP

命令类型 命令格式 响应
测试命令 AT+IDMTP=?

+IDMTP:device_id,message,format,fragment_id

OK

查询命令 AT+IDMTP?

+IDMTP:<device_id>,<message>,[format],[fragment_id]

OK

执行命令 AT+IDMTP=<device_id>,<message>,[format],[fragment_id]

+IDMTP:<packet_id>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+IDMTP:<device_id>,<packet_id>,<code>,<event_id>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<message>:上报的消息体内容;

<packet_id>:发布消息时返回的id

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMTP命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行发送操作。

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

设备标签删除 +IDMTD

命令类型 命令格式 响应
测试命令 AT+IDMTD=?

+IDMTD:device_id,message,format,fragment_id

OK

查询命令 AT+IDMTD?

+IDMTD:<device_id>,<message>,[format],[fragment_id]

OK

执行命令 AT+IDMTD=<message>,[format],[fragment_id]

+IDMTD:<packet_id>

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+IDMTD:<device_id>,<packet_id>,<code>,<event_id>,[reply_len],[reply_msg]

参数说明

<device_id>:设备ID

<message>:上报的消息体内容。

<packet_id>:发布消息时返回的id

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMTD命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行发送操作。

<code>:结果代码,详见“阿里云日志服务”;

[reply_len]:回复消息长度,可选字段;

[reply_msg]:回复消息,可选字段,如果存在,reply_len必须存在;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

信息查询操作

命令 描述 实现方式
AT+IDMQ 信息查询 强制

信息查询 +IDMQ

命令类型 命令格式 响应
测试命令 AT+IDMQ=?

+IDMQ:device_id,msg_type,message,format,fragment_id

OK

查询命令 AT+IDMQ?

+IDMQ:<device_id>,<msg_type>,<msg_type>,[message],[format],[fragment_id]

OK

执行命令 AT+IDMQ=<device_id>,<msg_type>,[message],[format],[fragment_id]

OK

或者

+CME ERROR:<err>

如果输入合法,首先返回OK,然后主动上报结果。

+IDMQ:<device_id>,<msg_type>,<reply_len>,<reply_msg>

参数说明

<device_id>:设备ID

<msg_type>:消息类型,例如,timestampFOTA,由模组厂商事先制定;

[message]:消息体内容,可选字段,默认为空;

<packet_id>:发送消息时返回的id

[format]:消息体格式,0:一般字符串;1HEX字符串。可选字段,目前只支持0

如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作;

[fragment_id]:长消息体分包计数器。可选字段,默认为0

终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。

如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMQ命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行回复操作。

<reply_len>:回复消息长度;

<reply_msg>:回复消息;

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例
注意事项

MCU OTA AT指令

命令 描述 实现方式
AT+OTAINFO MCU固件信息查询 强制
AT+OTASTART MCU固件传输开始 强制

MCU固件信息查询

命令类型 命令格式 响应
测试命令 AT+OTAINFO=? OK
查询命令 AT+OTAINFO?

+OTAINFO:<version>,<image_size>

OK

当MCU OTA完成后,模组也可以主动上报:

+OTAINFO:<version>,<image_size>

OK

参数说明

<version>:MCU 固件版本;

<image_size>:MCU 固件大小,单位字节。

返回值说明
示例

MCU固件传输开始

命令类型 命令格式 响应
测试命令 AT+OTASTART=?

+OTASTART=“type”

OK

查询命令 AT+OTASTART?

+OTASTART=<type>

OK

执行命令 AT+OTASTART=<type>

OK

或者

+CME ERROR:<err>

参数说明

<type>:升级方式,0: ymodem

<err>error代码,详见《AT command set for User Equipment (UE)》。

返回值说明
示例