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

AT v2.0 指令 – 使用用例

本文将详细介绍:如何更新 AT 应用程序固件;如何实现工作模式切换;如何开启模块 WiFi 功能的不同工作模式;以及如何建立 Socket 连接并通信等功能。

目录

AT透传固件串口更新

更新方法: 进入 Bootloader 模式,输入命令 1 ,通过用户串口进行下载。

1.硬件准备

首先,您需要拥有一个模块可以正常运行的硬件环境,可以是以下任意一种:

  • MXKit-xxxx 开发板 - 支持EMW系列模块包括:EMW3165,3166,3239,3031,3080B,3081,3060。
  • EMW-380-S2 开发板 - 支持 3088,3162。
  • 或您自己搭建的 EMWxxx 模块的 最小工作电路(至少包括:电源,串口两部分)。

2.软件准备

3.更新步骤

(1) 连接串口

通过 Mini USB(for MXKit) 或 Micro USB(for EMB-380-S2) 串口线,将开发板的用户串口连接到PC,在PC的控制面板中-设备管理器找到 COM 端口号,打开secureCRT,创建连接,配置如下:

com_config

(2) 进入Bootloader模式

BOOT 脚拉低 0,STATUS 脚拉高1,RESET拉低,重启模块,串口输出log如下图:

bootloader

(3)下载固件

输入:1,Update application。返回如下图:

command_1

特殊地,型号 3060 模块需要使用 boot 模式下的专用指令进行烧录,如下图:

3060_ota_update.png

此时,选择菜单栏:Transfer—Send Ymodem,选择要下载的 ota.bin 固件,如下图:

choose_bin

下载成功后,输出如下图。

download_ok

可进入QC模式,用户串口查看烧录固件版本结果:

QC 进入方法:

  • 一个是 BOOT 拉低,STATUS 拉低,复位,波特率:921600bps。 (适用于 3162,3165,3166,3239,3031等)
  • 一个是 用户串口输入 #, Reset 复位,波特率:921600bps。(适用于 EMW3080)

QC log如下:

download_ok

其中, Serial Number中的 FGV3.A200 表示支持 FogCloud 云服务直连的 AT 透传固件,版本 2.0.0。

此时可将BOOT脚拉高,STATUS 脚拉高,然后 Reset,进入正常工作模式,即 AT指令模式 或 数据透传模式。

工作模式切换

AT指令模式切换至透传模式

AT 指令模式时,用户串口输入指令:AT+CIPSENDRAW\r,返回: OK, 即可退出 AT 指令模式,进入数据透传模式。

透传模式切换至 AT 指令模式

透传模式时,用户串口输入指令:+++,返回: OK,即可退出透传模式,进入 AT 指令模式。

具体指令输入情况,如下图所示。

at_quit

WiFi功能用例

启动AP模式

在 AT 指令模式下,通过 “用户串口” 输入以下指令,实现模块启动 Soft_AP 模式,步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 进入 AT 指令模式 +++ OK
2 设置模块 Soft_AP 名称并启动 AT+WSAP=jenny,12345678\r OK
3 查询 Soft_AP 是否成功建立 AT+WSAPS\r +WSAPS:ESTABLISHED\r\nOK
4 查询 模块 IP 地址 AT+WSAPIP?\r WSAPIP:10.10.10.100,255.255.255.0,10.10.10.1

AP 模式设置串口工具log输出如下图所示:

ap_log

启动STATION模式

在 AT 指令模式下,通过 “用户串口” 输入以下指令,实现模块启动 STATION 模式,步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置模块接入的 AP 名称和密码 AT+WJAP=SWYANG,yangbatian2015\r OK
2 查询是否成功连接该 AP AT+WJAPS\r +WJAPS:CONNECTED\r\nOK
3 查看模块的 IP 地址 AT+WJAPIP?\r +WJAPIP:192.168.31.67,255.255.255.0,192.168.31.1

Station模式设置串口log输出如下图所示:

sta_log

AT透传固件OTA更新

进入 AT 指令模式,设备需首先连接至 AP, 保证可联网通信,然后通过发送 OTA 查询和更新的 AT 指令进行在线固件更新。具体步骤及指令如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 进入 AT 指令模式 +++ OK
2 启动模块 AT+REBOOT\r OK
3 设置模块STATION模式,及接入的AP信息 AT+WJAP=Xiaomi.Router,stm32f215\r OK+WEVENT:STATION_UP
4 查询云端可更新的 AT 固件版本 AT+OTACHECK\r +OTACHECK:fog_v3_AT_v2.0.3, OK
5 开始更新指定版本号的 AT 固件 AT+OTASTART=fog_v3_AT_v2.0.3 OK ,继而出现通知信息:+OTAEVENT:START , +OTAEVENT:SUCCESS,然后重启,出现: +WEVENT:STATION_UP

具体步骤参考下图内容:

ota_log

Socket通信用例

TCP服务器端

1.AP模式下,模块做TCP服务器

模块在 Soft_AP 模式下,做为 TCP 服务器,与 PC 端的 TCP 客户端之间建立一个 TCP 连接并通信。 步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启Soft_AP模式 AT+WSAP=jenny,12345678\r OK
2 查询模块 IP 地址 AT+WSAPIP?\r +WSAPIP=10.10.10.1,255.255.255.0,10.10.10.1
3 PC 连接到模块启动的 AP PC端 Wlan 列表找到AP:jenny,并连接 成功连接
4 设置模块做 TCP Server AT+CIPSTART=0,tcp_server,8080\r OK
5 PC 起 TCP 客户端并连接 目标IP:10.10.10.1,目标端口:8080,不指定本地端口 连接成功.+CIPEVENT=CLIENT,CONNECTED,10.10.10.2,54849
6 AT指令模式下,模块通过串口向TCP客户端发数据 AT+CIPSEND=0,54849,5\r12345 TCP客户端接收区收到:12345
7 AT指令模式下,TCP客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则需输入指令:AT+CIPRECV=0,54849\r 进行数据接收 +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令进行数据接收. 模块串口接收到:1234567890
8 透传模式下,模块通过串口向 TCP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端TCP客户端接收到:abcdefghijklmn
9 透传模式下,TCP 客户端发送数据至模块串口 TCP客户端发送区输入数据:1234567890 模块串口接收到:1234567890

PC端利用TCP/UDP测试软件创建TCP客户端,如下图:

ap_tcpclient_creat

TCP/UDP测试软件工作区如下:

ap_pc_tcpclient

串口调试软件的数据接收工作区信息如下:

ap_tcpserver_log


2.STATION模式下,模块做TCP服务器

模块在 STATION 模式下,做 TCP 服务器,建立一个 TCP 连接,并通信。具体步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启STATION模式 AT+WJAP=William Xu,mx099555\r OK
2 查询模块的IP地址 AT+WJAPIP?\r +WSAPIP=10.0.1.45,255.255.255.0,10.10.10.1
3 模块设置TCP SERVER参数 AT+CIPSTART=0,tcp_server,8080\r OK
4 PC端 起tcp 客户端 PC WLAN 连接到 Willam Xu,TCP/UDP调试工具起一个TCP client,目标IP: 10.0.1.45, 端口号:8080,并连接 连接成功.+CIPEVENT=CLIENT,CONNECTED,10.0.1.41,53594
5 AT指令模式下,模块通过串口向TCP客户端发数据 AT+CIPSEND=0,53594,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,TCP客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=0,53594\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 TCP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端TCP客户端接收到:abcdefghijklmn
8 透传模式下,TCP客户端发送数据至模块串口 TCP客户端发送区输入数据:1234567890 模块串口接收到:1234567890

PC端利用TCP/UDP测试软件创建TCP客户端,如下图:

sta_tcpclient_creat

TCP/UDP测试软件工作区:

sta_tcpserver_log

右侧为串口调试软件的数据接收工作区。

sta_tcpserver_log


TCP客户端

当需要模块做 TCP 客户端,并创建 TCP 链接,进行 TCP 通信时,可参考如下步骤:

1.AP模式下,模块做TCP客户端

AP 模式下,模块做 TCP 客户端,建立一个TCP连接,并通信。步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启Soft_AP模式 AT+WSAP=jenny,12345678\r OK
2 PC连接到 AP,并获取IP地址 PC端 Wlan 连接至jenny; PC端打开cmd.exe,输入指令:ipconfig 成功连接jenny,PC的IP 地址:10.10.10.2
3 设置模块做 tcp client 的参数 AT+CIPSTART=1,tcp_client,10.10.10.2,20001\r OK
4 PC起 TCP 服务器并自动连接 设置本机port端口号:20001 与模块的 tcp client 自动连接成功.+CIPEVENT:1,SERVER,CONNECTED
5 AT指令模式下,模块通过串口向TCP客户端发数据 AT+CIPSEND=1,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,TCP客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 TCP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端TCP客户端接收到:abcdefghijklmn
8 透传模式下,TCP客户端发送数据至模块串口 TCP客户端发送区输入数据:1234567890 模块串口接收到:1234567890

PC端利用TCP/UDP测试软件创建一个TCP服务器,与模块TCP客户端进行通信,具体情况请参考下图。

ap_pc_tcpserver

TCP/UDP测试软件工作区如下图:

ap_pc_tcpserver

串口调试软件的数据收发工作区如下图:

ap_tcpclient.png


2.STATION模式下的TCP客户端

在 STATION 模式下,模块做 TCP 客户端,建立一个TCP连接,并通信。具体步骤如下:

注意:请确保当前id的连接为断开状态,再进行设置,否则,会报错。

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启STATION模式,等待连接成功 AT+WJAP=Willam Xu,mx099555\r OK +WEVNET:STATION UP
2 PC连接到 Willam Xu,并获取IP地址 PC端 Wlan 连接至Willam Xu; PC端打开cmd.exe,输入指令:ipconfig 成功连接Willam Xu,PC的IP 地址:10.0.1.45
3 设置模块做 tcp client 的参数 AT+CIPSTART=1,tcp_client,10.0.1.48,20001\r OK
4 PC起 TCP 服务器并自动连接 设置本机port端口号:20001 与模块的 tcp client 自动连接成功。+CIPEVENT:1,SEVER,CONNECTED
5 AT指令模式下,模块通过串口向TCP客户端发数据 AT+CIPSEND=1,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,TCP客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 TCP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端TCP客户端接收到:abcdefghijklmn
8 透传模式下,TCP客户端发送数据至模块串口 TCP客户端发送区输入数据:1234567890 模块串口接收到:1234567890

利用TCP/UDP测试软件创建一个TCP服务器,与模块的TCP客户端进行通信,具体情况如下图。

sta_pc_tcpserver_creat

PC端TCP/UDP测试软件数据收发工作区:

sta_pc_tcpserver

串口调试软件数据收发工作区:

sta_tcpclient.png


UDP广播

当需要模块做 UDP 广播(服务器端),并发 UDP 广播信息时,可参考以下步骤。

1.AP模式下的UDP广播

在 AP 模式下,模块建立一个UDP广播服务(服务器端),发 UDP 广播信息。具体步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启Soft_AP模式 AT+WSAP=jenny,12345678\r OK
2 PC连接到 AP,并获取IP地址 PC端 Wlan 连接至jenny; PC端打开cmd.exe,输入指令:ipconfig 成功连接jenny,PC的IP 地址:10.10.10.2
3 设置模块 UDP 广播服务的参数 AT+CIPSTART=2,udp_broadcast,10.10.10.255,20001,4001\r OK 返回通知 +CIPEVENT:2,UDP,CONNECTED
4 PC起 UDP 客户端并连接 设置目标 Port 端口号:4001,本机端口号:20001 与模块的自动连接成功.
5 AT指令模式下,模块通过串口向 UDP 服务器端发数据 AT+CIPSEND=2,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,UDP 客户端向模块串口发数据 1. 发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 UDP 服务器发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端 UDP 客户端接收到:abcdefghijklmn
8 透传模式下,UDP 客户端发送数据至模块串口 UDP 客户端发送区输入数据:1234567890 模块串口接收到:1234567890

在PC端利用TCP/UDP测试软件创建一个UDP广播连接,与模块进行UDP通信,具体情况请参考。

PC端 UDP 连接创建如下:

ap_pc_udpboardcast

PC端TCP/UDP测试软件数据收发工作区:

ap_pc_udpboardcast

串口调试软件数据收发工作区。

ap_udpboardcast_log.png

2.STATION模式下的UDP广播

在 STATION 模式下, 建立一个UDP服务端,模块发 UDP 广播信息。具体步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启STATION模式,等待连接成功 AT+WJAP=MX,88888880\r OK +WEVNET:STATION UP
2 PC连接到 Willam Xu,并获取IP地址 PC端 Wlan 连接至MX; PC端打开cmd.exe,输入指令:ipconfig 成功连接Willam Xu,PC的IP 地址:192.168.100.118
3 设置模块做 UDP 服务器端 的参数 AT+CIPSTART=2,udp_broadcast,192.168.100.255,20001,4001\r OK
4 PC起 UDP 客户端并连接 设置目标 port 端口号:4001,本机端口号:20001 与模块的udp广播连接成功。+CIPEVENT:2,UDP,CONNECTED
5 AT指令模式下,模块通过串口向 UDP 客户端发数据 AT+CIPSEND=2,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,UDP 客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 UDP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端 UDP 客户端接收到:abcdefghijklmn
8 透传模式下,UDP 客户端发送数据至模块串口 UDP 客户端发送区输入数据:1234567890 模块串口接收到:1234567890

在PC端利用TCP/UDP测试软件创建一个UDP广播连接,与模块进行UDP通信,具体情况请参考。

PC端创建 UDP 客户端 如下:

sta_pc_udpboardcast

PC端TCP/UDP测试软件数据收发工作区:

sta_pc_udpboardcast

串口调试软件数据收发工作区:

sta_udpboardcast_log

UDP单播

当需要模块做 UDP 单播(服务端),并发 UDP 单播信息时,可参考以下步骤。

1.AP模式下的UDP单播

在WiFi AT指令模式下,AP 模式下建立一个UDP客户端,模块发 UDP 单播信息。具体步骤如下(以链接 1 为例,链接 2 方法相同):

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启Soft_AP模式 AT+WSAP=jenny,12345678\r OK
2 PC连接到 AP,并获取IP地址 PC端 Wlan 连接至jenny; PC端打开cmd.exe,输入指令:ipconfig 成功连接jenny,PC的IP 地址:10.10.10.2
3 设置模块 UDP 广播服务的参数 AT+CIPSTART=3,udp_unicast,10.10.10.1,20003,4003\r OK
4 PC起 UDP 客户端并连接 设置目标 Port 端口号:4003,本机端口号:20003 与模块的自动连接成功.+CIPEVENT:2,UDP,CONNECTED
5 AT指令模式下,模块通过串口向 UDP 服务器端发数据 AT+CIPSEND=2,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,UDP 客户端向模块串口发数据 1. 发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 UDP 服务器发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端 UDP 客户端接收到:abcdefghijklmn
8 透传模式下,UDP 客户端发送数据至模块串口 UDP 客户端发送区输入数据:1234567890 模块串口接收到:1234567890

PC端创建 UDP 单播连接如下:

ap_pc_udpunicast

PC端TCP/UDP测试软件数据收发工作区:

ap_pc_udpunicast

串口调试软件数据收发工作区:

ap_udpunicast_log

2.STATION模式下的UDP单播

在WiFi AT指令模式下,STATION 模式下建立一个UDP客户端,模块发 UDP 单播信息。具体步骤如下(以链接 1 为例,链接 2 方法相同):

序号 步骤 发送指令(或操作) 返回(或现象)
1 设置并开启STATION模式,等待连接成功 AT+WJAP=MX,88888880\r OK +WEVNET:STATION UP
2 PC连接到 Willam Xu,并获取IP地址 PC端 Wlan 连接至MX; PC端打开cmd.exe,输入指令:ipconfig 成功连接Willam Xu,PC的IP 地址:192.168.100.105
3 设置模块做 UDP 服务器端 的参数 AT+CIPSTART=3,udp_unicast,192.168.100.105,20003,4003\r OK
4 PC起 UDP 客户端并连接 设置目标 port 端口号:4003,本机端口号:20003 与模块的udp client 自动连接成功。+CIPEVENT:3,UDP,CONNECTED
5 AT指令模式下,模块通过串口向 UDP 客户端发数据 AT+CIPSEND=3,5\r12345 TCP客户端接收区收到:12345
6 AT指令模式下,UDP 客户端向模块串口发数据 1. TCP工具发送区发送:1234567890 发送成功
2. 若模块端为非自动接收至串口,即:AT+CIPRECVCFG设置为0,则输入指令:AT+CIPRECV=1\r +CIPRECV:10,1234567890\r\nOK
3. 若模块端为自动接收至串口,即:AT+CIPRECVCFG设置为1,则不需输入指令. 模块串口接收到:1234567890
7 透传模式下,模块通过串口向 UDP 客户端发数据 1. 模块串口输入指令:AT+CIPSENDRAW\r OK
2. 串口输入:abcdefghijklmn PC端 UDP 客户端接收到:abcdefghijklmn
8 透传模式下,UDP 客户端发送数据至模块串口 UDP 客户端发送区输入数据:1234567890 模块串口接收到:1234567890

PC端创建 UDP 单播连接如下:

sta_pc_udpunicast

PC端TCP/UDP测试软件数据收发工作区:

sta_pc_udpunicast

串口调试软件数据收发工作区:

sta_udpunicast_log

Easylink配网

当需要使用 Easylink 为模块配网时,可向模块发送AT指令,启动配网。具体如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 不管模块处于何种工作模式 AT+SMARTSTART=1\r +WEVENT:STATION_DOWN,STATION 断开
2 手机打开 Easylink 配网APP,输入 ssid和key,开始配网 —- +WEVENT:STATION_UP,配网成功

Easylink_APP 扫码下载:

easylink_ios easylink3.2_android.png

Airkiss配网

当需要使用微信公众号的 Airkiss 为模块配网时,可向模块发送AT指令,启动配网。具体如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 仅当发送了该配置指令, Airkiss 配网后,才可发现设备 AT+SMARTCFG=gh_420af5d2de71_9b6ee2f805e286e2,gh_420af5d2de71\r(说明:第一个参数是您的微信公众号的原始ID:original_id,第二个参数是在该公众号下创建了产品后生成的设备ID:device_id) OK
2 启动 Airkiss 配网状态 AT+SMARTSTART=2\r +WEVENT:STATION_DOWN,STATION 断开
3 手机打开您的微信公众号 或 扫描下方配网二维码,进入Airkiss配网页面,输入 ssid和key,开始配网 —- +WEVENT:STATION_UP,配网成功,且APP端列表发现设备:mico鹿

Airkiss 配网 测试二维码:

airkiss_peiwang

获取SNTP时间

当需要模块获取 网络同步时间时,可向模块发送 AT 指令,获取 SNTP 时间。

提示:若要获取网络时间,前提是 模块必须连接上某路由器,要么启用 STATION 模式,要么 Easylink 配网成功,要么 Airkiss 配网成功,即处于 STATION_UP 状态。

具体步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 模块连接路由器 启动STATION工作模式或配网 +WEVENT=STATION_UP
2 配置SNTP时区和服务器域名 AT+SNTPCFG=+8,cn.ntp.org.cn,pool.ntp.org\r OK
3 获取 SNTP 时间 AT+SNTPTIME\r +SNTPTIME:2017-09-05T14:33:05.022320 \r\n OK

获取RTC时间

当需要模块获取模块的 RTC 时间时,可向模块发送 AT 指令,获取 RTC 时间。

具体步骤如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 当未做 SNTP 时间同步时,获取的 RTC 时间是:从 1970年1月1日0时0分0秒开始计时的系统运行时间 AT+RTCGET\r +RTCGET:1970-01-01T00:01:00.028856 \r\n OK
2 当做过 SNTP 时间同步后,获取的 RTC时间是:当前指定时区的标准时间。 AT+RTCGET\r 如: +RTCGET:2017-09-05T14:33:05.022320\r\n OK
3 当系统掉电时,RTC 时间不保存,会恢复至初始时间:1970年1月1日0时0分0秒,直到再次上电时才从该初试时间重新开始计时 AT+RTCGET\r +RTCGET:1970-01-01T00:01:00.090555 \r\n OK

MQTT协议通信用例

1.和庆科Fog云实现mqtt通信

以下讲解如何通过AT指令,实现设备与 Fog 云服务器之间的 MQTT 通信,包括:MQTT 连接建立,订阅主题,与发布数据。

说明: Fog云服务器不需要验证证书,需要 SSL 加密。

序号 步骤 发送指令(或操作)
1 连接路由器 AT+WJAP=ssid,password\r
返回 OK+WEVNET:STATION UP
2 使能事件推送功能 AT+MQTTEVENT=ON\r
返回 OK
3 设置MQTT用户名和密码 AT+MQTTAUTH=6618fdda2a4f11e7a554fa163e876164/77a0853e3a1a11e7a554fa163e876164, ibV/zzpOyHKDUVH4EEXK7RoZtJHp6GTj6fazxst2+k4=\r
返回 OK
4 设置主机和端口号 AT+MQTTSOCK=6618fdda2a4f11e7a554fa163e876164.mqtt.iot.gz.baidubce.com,1884\r
返回 OK
5 关闭MQTT证书验证 AT+MQTTCAVERIFY=OFF,OFF\r
返回 OK
7 使能SSL加密 AT+MQTTSSL=ON\r
返回 OK
8 设置客户端标识符 AT+MQTTCID=77a0853e3a1a11e7a554fa163e876164\r\r
返回 OK
9 设置MQTT心跳周期 AT+MQTTKEEPALIVE=30\r
返回 OK
10 使能MQTT自动重连功能 AT+MQTTRECONN=ON\r
返回 OK
11 使能MQTT上电自动连接功能 AT+MQTTAUTOSTART=ON\r
返回 OK
12 启动MQTT服务 AT+MQTTSTART\r
返回 OK+MQTTEVENT:CONNECT,SUCCESS
13 订阅主题 AT+MQTTSUB=0,6618fdda2a4f11e7a554fa163e876164/df358c1a348611e7a554fa163e876164/77a0853e3a1a11e7a554fa163e876164/status/json,0\r
返回 +MQTTEVENT:0,SUBSCRIBE,SUCCESS
14 发布设置 AAT+MQTTPUB=6618fdda2a4f11e7a554fa163e876164/df358c1a348611e7a554fa163e876164/77a0853e3a1a11e7a554fa163e876164/status/json,0\r
返回 OK
15 发布数据 AT+MQTTSEND=6\r,返回 >后,输入数据:123456
返回 +MQTTEVENT:PUBLISH,SUCCESS, 同时接收到订阅的相同主题返回的数据: +MQTTRECV:0,6,123456
16 取消订阅主题 AT+MQTTUNSUB=0\r
返回 OK+MQTTEVENT:0,UNSUBSCRIBE,SUCCESS
17 关闭MQTT服务 AT+MQTTCLOSE\r
返回 OK+MQTTEVENT:CLOSE,SUCCESS

2.和亚马逊aws云实现mqtt通信

以下讲解如何通过 MQTT 通信 AT指令,实现设备与 AWS 云服务器之间的 MQTT 通信。该服务器要求进行证书验证,因此与 Fog 通信相比,多了 3 个证书验证指令。 具体过程如下,包括:MQTT 连接建立,订阅主题,发布数据。

说明:
1.由于亚马逊提供的是付费服务,这里仅提供完整的使用流程,并不提供真实的用户名、密码及证书。
2.需用户根据具体的产品或项目,在亚马逊上注册服务,获取相关的用户名、密码和证书等。点此进入亚马逊aws官网

3.用户在实际传递证书时,必须在证书的末尾追加Ctrl+Z (ASCII码是0x1A,不属于证书的一部分),作为证书传递结束的标志,此时模块会将证书存入flash。

序号 步骤 发送指令(或操作) 返回(或现象)
1 连接路由器 AT+WJAP=ssid,password\r OK+WEVNET:STATION UP
2 使能事件推送功能 AT+MQTTEVENT=ON\r OK
3 设置MQTT用户名和密码 AT+MQTTAUTH=UserName,PassWord\r OK
4 设置主机和端口号 AT+MQTTSOCK=a1lqshc4oegz64.iot.us-west-2.amazonaws.com,8883\r OK
5 使能MQTT证书验证 AT+MQTTCAVERIFY=ON,ON\r OK
6 传递服务器根证书 AT+SSLCERTSET=0\r OK
7 发送服务器根证书文件内容 服务器根证书文件内容 OK
8 传递客户端证书 AT+SSLCERTSET=1\r OK
9 发送客户端证书文件内容 客户端证书文件内容 OK
10 传递客户端私钥 AT+SSLCERTSET=2\r OK
11 发送客户端私钥文件内容 客户端私钥文件内容 OK
12 使能SSL加密 AT+MQTTSSL=ON\r OK
13 设置客户端标识符 AT+MQTTCID=MiCO\r OK
14 设置MQTT心跳周期 AT+MQTTKEEPALIVE=10\r OK
15 关闭MQTT自动重连功能 AT+MQTTRECONN=OFF\r OK
16 使能MQTT上电自动连接功能 AT+MQTTAUTOSTART=ON\r OK
17 启动MQTT服务 AT+MQTTSTART\r OK+MQTTEVENT:CONNECT,SUCCESS
18 订阅主题0 AT+MQTTSUB=0,$aws/things/myLight/shadow/delete/accepted,1\r OK+MQTTEVENT:0,SUBSCRIBE,SUCCESS
19 订阅主题1 AT+MQTTSUB=1,$aws/things/myLight/shadow/update/delta,0\r OK+MQTTEVENT:1,SUBSCRIBE,SUCCESS
20 订阅主题2 AT+MQTTSUB=2,$aws/things/myLight/shadow/update,0\r OK+MQTTEVENT:2,SUBSCRIBE,SUCCESS
21 发布设置 AT+MQTTPUB=$aws/things/myLight/shadow/update,0\r OK
22 发布数据 AT+MQTTSEND=6\r,返回 >后,输入数据: 123456 +MQTTEVENT:PUBLISH,SUCCESS, 同时接收到订阅的相同主题返回的数据: +MQTTRECV:2,6,123456
23 取消订阅主题1 AT+MQTTUNSUB=1\r OK+MQTTEVENT:1,UNSUBSCRIBE,SUCCESS
24 关闭MQTT服务 AT+MQTTCLOSE\r OK+MQTTEVENT:CLOSE,SUCCESS

BT蓝牙通信实例

当在 EMW3239 模块上实现蓝牙连接与透传功能时,具体指令配置如下:

序号 步骤 发送指令(或操作) 返回(或现象)
1 查询 3239 蓝牙设备名称 AT+BTNAME=?\r +BTNAME:MXCHIP_BT123456 \r\n OK
2 查询 3239 蓝牙配对秘钥 AT+BTPASSKEY=?\r +BTPASSKEY:123456 \r\n OK
3 开启蓝牙可发现可连接模式 AT+BTDISCOVERY=ON\r OK
4 开始监听蓝牙事件 AT+BTEVENT=ON\r OK
5 查询当前蓝牙状态 AT+BTSTATE?\r +BTSTATE:DISCOVERABLE \r\n OK —处于蓝牙待连接状态
5 打开手机蓝牙功能,并与蓝牙设备配对 手机蓝牙设备列表中找到 MXCHIP_123456,点击,输入配对秘钥,开始配对 成功配对
6 连接蓝牙设备 打开手机蓝牙串口 APP, 并连接3239蓝牙设备 +BTEVENT:CONNECTION,ON –处于已连接成功状态
7 AT指令模式下,3239 蓝牙设备与手机APP端通信 设备通过指令发送数据给手机APP端,发送指令: AT+BTSEND=10\r >
返回 > 后, 紧接着1分钟内,发送指定长度的数据内容,如:1234567890 OK
手机蓝牙串口 APP 端,发送数据给 3239 蓝牙设备 ,如:12345 OK
8 BT 透传模式下,3239 蓝牙设备与手机APP端通信 设备由AT指令模式切换至BT透传模式,发送指令: AT+BTSENDRAW\r OK
设备直接发送数据给手机APP:1234567890 APP接收到数据:1234567890
手机APP直接发送数据给设备:12345 APP接收到数据:12345
文本导读目录