为了让使用“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” | 使用服务器区域: SHANGHAI,SINGAPORE,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:一般字符串;1:HEX字符串。可选字段,支持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:一般字符串;1:HEX字符串。可选字段,目前只支持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:一般字符串;1:HEX字符串。可选字段,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:一般字符串;1:HEX字符串。可选字段,目前只支持0。 如果该字段为1时,通信模组需要将HEX字符串转换成二进制数据格式,再执行发布操作; [fragment_id]:长消息体分包计数器。可选字段,默认为0。 终端模组发布长消息前,需要先设置分包计数器为最大分包数-1;然后每发送一个新的分包,计数器-1, 0表示这是最后一个分包。如果重发一个分包,分包计数器保持不变。 如果通信模组收到的数据包里面分包计数器大于0,它需要继续接收IDMEP命令,直到收到分包计数器为0,然后将收到的消息按顺序组包,再执行上报事件操作。 <code>:结果代码,详见“阿里云日志服务”; [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:一般字符串;1:HEX字符串。可选字段,目前只支持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_len为0时存在; <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:一般字符串;1:HEX字符串。可选字段,目前只支持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:一般字符串;1:HEX字符串。可选字段,目前只支持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>:消息类型,例如,timestamp、FOTA,由模组厂商事先制定; [message]:消息体内容,可选字段,默认为空; <packet_id>:发送消息时返回的id; [format]:消息体格式,0:一般字符串;1:HEX字符串。可选字段,目前只支持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)》。 |
|
返回值说明 | ||
示例 | ||
在文档使用中是否遇到以下问题
更多建议
匿名提交