本文最后更新于:2022年2月25日 凌晨
参考链接
乐鑫ESP-AT
AT指令 AT指令可以通过串口下发相应的指令来控制模块。
模块与串口连接方式 串口 模块3.3 V -> 3.3 V RX -> TX TX -> RX GND -> GND
常用AT指令 进入AT指令模式 - AT AT
查询/设置 Wi-Fi 模式 - AT+CWMODE AT+CWMODE=<mode>[,<auto_connect>]
<mode>:模式 0 : 无 Wi-Fi 模式,并且关闭 Wi-Fi RF 1 : Station 模式 2 : SoftAP 模式 3 : SoftAP+Station 模式 <auto_connect>:切换 ESP 设备的 Wi-Fi 模式时(例如,从 SoftAP 或无 Wi-Fi 模式切换为 Station 模式或 SoftAP+Station 模式),是否启用自动连接 AP 的功能,默认值:1。参数缺省时,使用默认值,也就是能自动连接。 0 : 禁用自动连接 AP 的功能 1 : 启用自动连接 AP 的功能,若之前已经将自动连接 AP 的配置保存到 flash 中,则 ESP 设备将自动连接 AP
示例:AT+CWMODE=1
配置 SoftAP 参数 - AT+CWSAP AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>[,<max conn>][,<ssid hidden>]
<ssid>:字符串参数,接入点名称 <pwd>:字符串参数,密码,范围:8 ~ 63 字节 ASCII <channel>:信道号 <ecn>:加密方式,不支持 WEP 0 : OPEN 2 : WPA_PSK 3 : WPA2_PSK 4 : WPA_WPA2_PSK[<max conn>] :允许连入 ESP SoftAP 的最多 station 数目,取值范围:[1 ,10 ][<ssid hidden>] : 0 : 广播 SSID(默认) 1 : 不广播 SSID
示例:AT+CWSAP=”ESP”,”1234567890”,5,3
扫描当前可用的AP - AT+CWLAP AT+CWLAP=[<ssid>,<mac>,<channel>,<scan_type>,<scan_time_min>,<scan_time_max>]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <ecn>:加密方式 0: OPEN 1: WEP 2: WPA_PSK 3: WPA2_PSK 4: WPA_WPA2_PSK 5: WPA2_ENTERPRISE 6: WPA3_PSK 7: WPA2_WPA3_PSK [ESP32-C3 Only ] 8: WAPI_PSK <ssid>:字符串参数,AP 的 SSID <rssi>:信号强度 <mac>:字符串参数,AP 的 MAC 地址 <channel>:信道号 <scan_type>:Wi-Fi 扫描类型,默认值为:0 0: 主动扫描 1: 被动扫描 <scan_time_min>:每个信道最短扫描时间,单位:毫秒,范围:[0,1500],如果扫描类型为被动扫描,本参数无效 <scan_time_max>:每个信道最长扫描时间,单位:毫秒,范围:[0,1500],如果设为 0 ,固件采用参数默认值,主动扫描为 120 ms,被动扫描为 360 ms <freq_offset>:频偏(保留项目) <freqcal_val>:频率校准值(保留项目) <pairwise_cipher>:成对加密类型 0: None 1: WEP40 2: WEP104 3: TKIP 4: CCMP 5: TKIP and CCMP 6: AES-CMAC-128 7: 未知 <group_cipher>:组加密类型,与 <pairwise_cipher> 参数的枚举值相同 <bgn>:802.11 b/g/n,若 bit 设为 1 ,则表示使能对应模式,若设为 0 ,则表示禁用对应模式 bit 0: 是否使能 802. 11b 模式 bit 1: 是否使能 802. 11g 模式 bit 2: 是否使能 802. 11n 模式 <wps>:wps flag 0: 不支持 WPS 1: 支持 WPS
示例: AT+CWLAP=”Wi-Fi”,”ca:d7:19:d8:a6:44”,6,0,400,1000
AT+CWLAP=”Wi-Fi” #寻找指定 SSID 的 AP
连接AP - AT+CWJAP AT+CWJAP:<ssid>,<bssid>,<channel>,<rssi>,<pci_en>,<reconn_interval>,<listen_interval>,<scan_mode>,<pmf>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <ssid>:目标 AP 的 SSID #如果 SSID 和密码中有 ,、"、\\ 等特殊字符,需转义 <pwd >:密码最长 63 字节 ASCII <bssid>:目标 AP 的 MAC 地址,当多个 AP 有相同的 SSID 时,该参数不可省略 <channel>:信道号 <rssi>:信号强度 <pci_en>:PCI 认证 0: ESP station 可与任何一种加密方式的 AP 连接,包括 OPEN 和 WEP 1: ESP station 可与除 OPEN 和 WEP 之外的任何一种加密方式的 AP 连接 <reconn_interval>:Wi-Fi 重连间隔,单位:秒,默认值:1,最大值:7200 0: 断开连接后,ESP station 不重连 AP [1,7200]: 断开连接后,ESP station 每隔指定的时间与 AP 重连 <listen_interval>:监听 AP beacon 的间隔,单位为 AP beacon 间隔,默认值:3,范围:[1,100] <scan_mode>:扫描模式 0: 快速扫描,找到目标 AP 后终止扫描,ESP station 与第一个扫描到的 AP 连接 1: 全信道扫描,所有信道都扫描后才终止扫描,ESP station 与扫描到的信号最强的 AP 连接 <jap_timeout>:AT+CWJAP 命令超时的最大值,单位:秒,默认值:15,范围:[3,600] <pmf>:PMF(Protected Management Frames,受保护的管理帧),默认值 0 0 表示禁用 PMF bit 0: 具有 PMF 功能,提示支持 PMF,如果其他设备具有 PMF 功能,则 ESP 设备将优先选择以 PMF 模式连接 bit 1: 需要 PMF,提示需要 PMF,设备将不会关联不支持 PMF 功能的设备 <error code>:错误码,仅供参考 1: 连接超时 2: 密码错误 3: 无法找到目标 AP 4: 连接失败 其它值: 发生未知错误
示例:AT+CWJAP=”abc”,”0123456789”
断开与当前AP的连接 -AT+CWQAP AT+CWQAP
查询本地 IP 地址和 MAC 地址 - AT+CIFSR AT+CIFSR:APIP,<"APIP">
AT+CIFSR:APIP6LL,<"APIP6LL">
AT+CIFSR:APIP6GL,<"APIP6GL">
AT+CIFSR:APMAC,<"APMAC">
AT+CIFSR:STAIP,<"STAIP">
AT+CIFSR:STAIP6LL,<"STAIP6LL">
AT+CIFSR:STAIP6GL,<"STAIP6GL">
AT+CIFSR:STAMAC,<"STAMAC">
AT+CIFSR:ETHIP,<"ETHIP">
AT+CIFSR:ETHIP6LL,<"ETHIP6LL">
AT+CIFSR:ETHIP6GL,<"ETHIP6GL">
AT+CIFSR:ETHMAC,<"ETHMAC">
<”APIP”> : ESP SoftAP 的 IPv4 地址<”APIP6LL”> : ESP SoftAP 的 IPv6 本地链路地址<”APIP6GL”> : ESP SoftAP 的 IPv6 全局地址<”APMAC”> : ESP SoftAP 的 MAC 地址<”STAIP”> : ESP station 的 IPv4 地址<”STAIP6LL”> : ESP station 的 IPv6 本地链路地址<”STAIP6GL”> : ESP station 的 IPv6 全局地址<”STAMAC”> : ESP station 的 MAC 地址<”ETHIP”> : ESP ethernet 的 IPv4 地址<”ETHIP6LL”> : ESP ethernet 的 IPv6 本地链路地址<”ETHIP6GL”> : ESP ethernet 的 IPv6 全局地址<”ETHMAC”> : ESP ethernet 的 MAC 地址
断开与 AP 的连接 - AT+CWQAP AT+CWQAP
建立 TCP 连接、UDP 传输或 SSL 连接 - AT+CIPSTART
该功能适用于PC与模块之间进行TCP、UDP、SSL通讯。
1. 建立 TCP 连接 // 单连接 (AT+CIPMUX=0):
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]
// 多连接 (AT+CIPMUX=1):
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]
<link ID> :网络连接 ID (0 ~ 4),用于多连接的情况。该参数范围取决于 menuconfig 中的两个配置项。一个是 AT 组件中的配置项 AT_SOCKET_MAX_CONN_NUM ,默认值为 5。另一个是 LWIP 组件中的配置项 LWIP_MAX_SOCKETS ,默认值为 10。要修改该参数的范围,您需要修改配置项 AT_SOCKET_MAX_CONN_NUM 的值并确保该值不大于 LWIP_MAX_SOCKETS 的值。(请参考 编译 ESP-AT 工程 获取更多信息。)<”type”> :字符串参数,表示网络连接类型,”TCP” 或 “TCPv6”。默认值:”TCP”<”remote host”> :字符串参数,表示远端 IPv4 地址、IPv6 地址,或域名<remote port> :远端端口值<keep alive> :TCP keep-alive 间隔,默认值:0 0: 禁用 TCP keep-alive 功能 1 ~ 7200: 检测间隔,单位:秒<”local IP”> :连接绑定的本机 IPv4 地址或 IPv6 地址,该参数在本地多网络接口时和本地多 IP 地址时非常有用。默认为禁用,如果您想使用,需自行设置,空值也为有效值
示例:AT+CIPSTART=”TCP”,”192.168.101.110”,1000
2. 建立 UDP 传输 // 单连接:(AT+CIPMUX=0)
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
// 多连接:(AT+CIPMUX=1)
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
<link ID> :网络连接 ID (0 ~ 4),用于多连接的情况<”type”> :字符串参数,表示网络连接类型,”UDP” 或 “UDPv6”。默认值:”TCP”<”remote host”> :字符串参数,表示远端 IPv4 地址、IPv6 地址,或域名<remote port> :远端端口值<local port> :ESP 设备的 UDP 端口值<mode> :在 UDP Wi-Fi 透传下,本参数的值必须设为 0 0: 接收到 UDP 数据后,不改变对端 UDP 地址信息(默认) 1: 仅第一次接收到与初始设置不同的对端 UDP 数据时,改变对端 UDP 地址信息为发送数据设备的 IP 地址和端口 2: 每次接收到 UDP 数据时,都改变对端 UDP 地址信息为发送数据的设备的 IP 地址和端口<”local IP”> :连接绑定的本机 IPv4 地址或 IPv6 地址,该参数在本地多网络接口时和本地多 IP 地址时非常有用。默认为禁用,如果您想使用,需自行设置,空值也为有效值
示例:AT+CIPSTART=”UDP”,”192.168.101.110”,1000,1002,2
3. 建立 SSL 连接 / 单连接:(AT+CIPMUX=0)
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<keep alive>,<"local IP">]
// 多连接:(AT+CIPMUX=1)
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep alive>,<"local IP">]
<link ID> :网络连接 ID (0 ~ 4),用于多连接的情况<”type”> :字符串参数,表示网络连接类型,”SSL” 或 “SSLv6”。默认值:”TCP”<”remote host”> :字符串参数,表示远端 IPv4 地址、IPv6 地址,或域名<remote port> :远端端口值<keep alive> :SSL 保留配置,默认值:0<”local IP”> :连接绑定的本机 IPv4 地址或 IPv6 地址,该参数在本地多网络接口时和本地多 IP 地址时非常有用。默认为禁用,如果您想使用,需自行设置,空值也为有效值
示例:AT+CIPSTART=”SSL”,”iot.espressif.cn”,8443
查询/设置传输模式 - AT+CIPMODE AT+CIPMODE=<mode>
<mode> : 0 : 普通传输模式 1 : Wi-Fi 透传接收模式,仅支持 TCP 单连接、UDP 固定通信对端、SSL 单连接的情况
示例:AT+CIPMODE=1
开始透传 - AT+CIPSEND AT+CIPSEND
设置开机 透传模式 信息 - AT+SAVETRANSLINK AT+SAVETRANSLINK=<mode>,<"remote host">,<remote port>[,<"type">,<keep alive>]
<mode> : 0: 关闭 ESP 上电进入 Wi-Fi 透传模式 1: 开启 ESP 上电进入 Wi-Fi 透传模式<”remote host”> :字符串参数,表示远端 IPv4 地址、IPv6 地址,或域名<remote port> :远端端口值<”type”> :字符串参数,表示传输类型:”TCP”,”TCPv6”,”SSL”,或 “SSLv6”。默认值:”TCP”<keep alive> :TCP keep-alive 间隔,默认值:0 0: 禁用 keep-alive 功能 1 ~ 7200: 检测间隔,单位:秒
TCP-IP AT示例 ESP 设备作为 TCP 客户端,建立单连接,实现 UART Wi-Fi 透传
该功能可用于2个WIFI模块之间进行通讯测试。
模块1设置步骤: AT +CWMODE=2 AT +CIPMUX=1 AT +CWSAP="ESP32_softAP" ,"1234567890" ,5 ,3 AT +CIPAP? AT +CIPSERVER=1 AT +CIPCLOSE=0
模块2设置步骤: AT +CWMODE=1 AT +CWJAP="ESP32_softAP" ,"1234567890" AT +CIPSTA? AT +CIPMUX=1 AT +CIPSTART="TCP" ,"192.168.x.xxx" ,333 AT +CIPMODE=1 AT +CIPSEND +++