本文最后更新于:2022年2月25日 凌晨
参考链接
乐鑫ESP-AT
AT指令 AT指令可以通过串口下发相应的指令来控制模块。
模块与串口连接方式 1 2 3 4 5 串口 模块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>]
1 2 3 4 5 6 7 8 9 <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>]
1 2 3 4 5 6 7 8 9 10 11 12 <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 <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">
1 2 3 4 5 6 7 8 9 10 11 12 <”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">]
1 2 3 4 5 6 7 8 <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">]
1 2 3 4 5 6 7 8 9 10 <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">]
1 2 3 4 5 6 <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>
1 2 3 4 <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>]
1 2 3 4 5 6 7 8 9 <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设置步骤: 1 2 3 4 5 6 7 8 9 10 11 AT +CWMODE=2 AT +CIPMUX=1 AT +CWSAP="ESP32_softAP" ,"1234567890" ,5 ,3 AT +CIPAP? AT +CIPSERVER=1 AT +CIPCLOSE=0
模块2设置步骤: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 +++