TCP-IP AT 示例
本文档主要介绍在 ESP32 设备上运行 TCP/IP AT 命令 命令的详细示例。
ESP32 设备作为 TCP 客户端建立单连接
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接同一个路由。
在 PC 上使用网络调试工具,创建一个 TCP 服务器。例如 TCP 服务器的 IP 地址为
192.168.3.102,端口为8080。ESP32 设备作为客户端通过 TCP 连接到 TCP 服务器,服务器 IP 地址为
192.168.3.102,端口为8080。命令:
AT+CIPSTART="TCP","192.168.3.102",8080
响应:
CONNECT OK
发送 4 字节数据。
命令:
AT+CIPSEND=4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
接收 4 字节数据。
假设 TCP 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,4:test
ESP32 设备作为 TCP 服务器建立多连接
当 ESP32 设备作为 TCP 服务器时,必须通过 AT+CIPMUX=1 命令使能多连接,因为可能有多个 TCP 客户端连接到 ESP32 设备。
以下是 ESP32 设备作为 softAP 建立 TCP 服务器的示例;如果是 ESP32 设备作为 station,可在连接路由器后按照同样方法建立服务器。
设置 Wi-Fi 模式为 softAP。
命令:
AT+CWMODE=2
响应:
OK
使能多连接。
命令:
AT+CIPMUX=1
响应:
OK
设置 softAP。
命令:
AT+CWSAP="ESP32_softAP","1234567890",5,3
响应:
OK
查询 softAP 信息。
命令:
AT+CIPAP?
响应:
AT+CIPAP? +CIPAP:ip:"192.168.4.1" +CIPAP:gateway:"192.168.4.1" +CIPAP:netmask:"255.255.255.0" OK
说明:
您查询到的地址可能与上述响应中的不同。
建立 TCP 服务器,默认端口为
333。命令:
AT+CIPSERVER=1
响应:
OK
PC 连接到 ESP32 设备的 softAP。
在 PC 上使用网络调试工具创建一个 TCP 客户端,连接到 ESP32 设备创建的 TCP 服务器。
发送 4 字节数据到网络连接 ID 为 0 的链路上。
命令:
AT+CIPSEND=0,4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
从网络连接 ID 为 0 的链路上接收 4 字节数据。
假设 TCP 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,0,4:test
关闭 TCP 连接。
命令:
AT+CIPCLOSE=0
响应:
0,CLOSED OK
远端 IP 地址和端口固定的 UDP 通信
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接到同一个路由。
在 PC 上使用网络调试工具,创建一个 UDP 传输。例如 PC 的 IP 地址为
192.168.3.102,端口为8080。使能多连接。
命令:
AT+CIPMUX=1
响应:
OK
创建 UDP 传输。分配网络连接 ID 为 4,远程 IP 地址为
192.168.3.102,远端端口为8080,本地端口为1112,模式为0。重要
AT+CIPSTART命令的参数mode决定了 UDP 通信的远端 IP 地址和端口是否固定。若参数为 0,则代表系统会分配一个特定网络连接 ID,以确保通信过程中远端的 IP 地址和端口不会被改变,且数据发送端和数据接收端不会被其它设备代替。命令:
AT+CIPSTART=4,"UDP","192.168.3.102",8080,1112,0
响应:
4,CONNECT OK
说明:
"192.168.3.102"和8080为 UDP 传输的远端 IP 地址和远端端口,也就是 PC 建立的 UDP 配置。1112为 ESP32 设备的 UDP 本地端口,您可自行设置,如不设置则为随机值。0表示 UDP 远端 IP 地址和端口是固定的,不能更改。比如有另外一台 PC 创建了 UDP 端并且向 ESP32 设备端口 1112 发送数据,ESP32 设备仍然会接收来自 UDP 端口 1112 的数据,如果使用 AT 命令AT+CIPSEND=4,X,那么数据仍然只会发送到第一台 PC 端。但是如果这个参数未设置为0,那么数据将会被发送到新的 PC 端。
发送 7 字节数据到网络连接 ID 为 4 的链路上。
命令:
AT+CIPSEND=4,7
响应:
OK >
输入 7 字节数据,例如输入数据是
abcdefg,之后 AT 将会输出以下信息。Recv 7 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
从网络连接 ID 为 4 的链路上接收 4 字节数据。
假设 PC 发送 4 字节的数据(数据为
test),则系统会提示:+IPD,4,4:test
关闭网络连接 ID 为 4 的 UDP 连接。
命令:
AT+CIPCLOSE=4
响应:
4,CLOSED OK
远端 IP 地址和端口可变的 UDP 通信
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接到同一个路由。
在 PC 上使用网络调试工具,创建一个 UDP 传输。例如 IP 地址为
192.168.3.102,端口为8080。使能单连接。
命令:
AT+CIPMUX=0
响应:
OK
创建 UDP 传输。远程 IP 地址为
192.168.3.102,远端端口为8080,本地端口为1112,模式为2。命令:
AT+CIPSTART="UDP","192.168.3.102",8080,1112,2
响应:
CONNECT OK
说明:
"192.168.3.102"和 8080 为 UDP 传输的远端 IP 地址和远端端口,也就是 PC 建立的 UDP 配置。1112为 ESP32 设备的 UDP 本地端口,您可自行设置,如不设置则为随机值。2表示当前 UDP 传输建立后,UDP 传输远端信息仍然会更改;UDP 传输的远端信息会自动更改为最近一次与 ESP32 设备 UDP 通信的远端 IP 地址和端口。
发送 4 字节数据。
命令:
AT+CIPSEND=4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
发送 UDP 包给其它 UDP 远端。例如发送 4 字节数据,远端主机的 IP 地址为
192.168.3.103,远端端口为1000。若需要发 UDP 包给其它 UDP 远端,只需指定对方 IP 地址和端口即可。
命令:
AT+CIPSEND=4,"192.168.3.103",1000
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
接收 4 字节数据。
假设 PC 发送 4 字节的数据(数据为
test),则系统会提示:+IPD,4:test
关闭 UDP 连接。
命令:
AT+CIPCLOSE
响应:
CLOSED OK
ESP32 设备作为 SSL 客户端建立单连接
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接同一个路由。
在 PC 上使用 OpenSSL 命令,创建一个 SSL 服务器。例如 SSL 服务器的 IP 地址为
192.168.3.102,端口为8070。命令:
openssl s_server -cert /home/esp-at/components/customized_partitions/raw_data/server_cert/server_cert.crt -key /home/esp-at/components/customized_partitions/raw_data/server_key/server.key -port 8070
响应:
ACCEPT
ESP32 设备作为客户端通过 SSL 连接到 SSL 服务器,服务器 IP 地址为
192.168.3.102,端口为8070。命令:
AT+CIPSTART="SSL","192.168.3.102",8070
响应:
CONNECT OK
发送 4 字节数据。
命令:
AT+CIPSEND=4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
接收 4 字节数据。
假设 TCP 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,4:test
ESP32 设备作为 SSL 服务器建立多连接
当 ESP32 设备作为 SSL 服务器时,必须通过 AT+CIPMUX=1 命令使能多连接,因为可能有多个客户端连接到 ESP32 设备。
以下是 ESP32 设备作为 softAP 建立 SSL 服务器的示例;如果是 ESP32 设备作为 station,可在连接路由器后,参照本示例中的建立连接 SSL 服务器的相关步骤。
设置 Wi-Fi 模式为 softAP。
命令:
AT+CWMODE=2
响应:
OK
使能多连接。
命令:
AT+CIPMUX=1
响应:
OK
配置 ESP32 softAP。
命令:
AT+CWSAP="ESP32_softAP","1234567890",5,3
响应:
OK
查询 softAP 信息。
命令:
AT+CIPAP?
响应:
AT+CIPAP? +CIPAP:ip:"192.168.4.1" +CIPAP:gateway:"192.168.4.1" +CIPAP:netmask:"255.255.255.0" OK
说明:
您查询到的地址可能与上述响应中的不同。
建立 SSL 服务器,端口为
8070。命令:
AT+CIPSERVER=1,8070,"SSL"
响应:
OK
PC 连接到 ESP32 设备的 softAP。
在 PC 上使用 OpenSSL 命令,创建一个 SSL 客户端,连接到 ESP32 设备创建的 SSL 服务器。
命令:
openssl s_client -host 192.168.4.1 -port 8070
ESP32 设备上的响应:
CONNECT
发送 4 字节数据到网络连接 ID 为 0 的链路上。
命令:
AT+CIPSEND=0,4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
从网络连接 ID 为 0 的链路上接收 4 字节数据。
假设 SSL 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,0,4:test
关闭 SSL 连接。
命令:
AT+CIPCLOSE=0
响应:
0,CLOSED OK
ESP32 设备作为 SSL 客户端建立双向认证单连接
本示例中使用的证书是 ESP-AT 中默认的证书,您也可以使用自己的证书:
要使用您自己的 SSL 客户端证书,请根据 如何更新 PKI 配置 文档替换默认的证书。
要使用您自己的 SSL 服务器证书,请用您自己的证书路径替换下面的 SSL 服务器证书。
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置 SNTP 服务器。
命令:
AT+CIPSNTPCFG=1,8,"cn.ntp.org.cn","ntp.sjtu.edu.cn"
响应:
OK
说明:
您可以根据自己国家的时区设置 SNTP 服务器。
查询 SNTP 时间。
命令:
AT+CIPSNTPTIME?
响应:
+CIPSNTPTIME:Mon Oct 18 20:12:27 2021 OK
说明:
您可以查询 SNTP 时间与实时时间是否相符来判断您设置的 SNTP 服务器是否生效。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接同一个路由。
在 PC 上使用 OpenSSL 命令,创建一个 SSL 服务器。例如 SSL 服务器的 IP 地址为
192.168.3.102,端口为8070。命令:
openssl s_server -CAfile /home/esp-at/components/customized_partitions/raw_data/server_ca/server_ca.crt -cert /home/esp-at/components/customized_partitions/raw_data/server_cert/server_cert.crt -key /home/esp-at/components/customized_partitions/raw_data/server_key/server.key -port 8070 -verify_return_error -verify_depth 1 -Verify 1
ESP32 设备上的响应:
ACCEPT
说明:
命令中的证书路径可以根据你的证书位置进行调整。
ESP32 设备设置 SSL 客户端双向认证配置。
命令:
AT+CIPSSLCCONF=3,0,0
响应:
OK
ESP32 设备作为客户端通过 SSL 连接到 SSL 服务器,服务器 IP 地址为
192.168.3.102,端口为8070。命令:
AT+CIPSTART="SSL","192.168.3.102",8070
响应:
CONNECT OK
发送 4 字节数据。
命令:
AT+CIPSEND=4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
接收 4 字节数据。
假设 TCP 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,4:test
ESP32 设备作为 SSL 服务器建立双向认证多连接
当 ESP32 设备作为 SSL 服务器时,必须通过 AT+CIPMUX=1 命令使能多连接,因为可能有多个客户端连接到 ESP32 设备。
以下是 ESP32 设备作为 station 建立 SSL 服务器的示例;如果是 ESP32 设备作为 softAP,可参考 ESP32 设备作为 SSL 服务器建立多连接 示例。
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
使能多连接。
命令:
AT+CIPMUX=1
响应:
OK
建立 SSL 服务器,端口为
8070。命令:
AT+CIPSERVER=1,8070,"SSL",1
响应:
OK
PC 与 ESP32 设备连接同一个路由。
在 PC 上使用 OpenSSL 命令,创建一个 SSL 客户端,连接到 ESP32 设备创建的 SSL 服务器。
命令:
openssl s_client -CAfile /home/esp-at/components/customized_partitions/raw_data/client_ca/client_ca_00.crt -cert /home/esp-at/components/customized_partitions/raw_data/client_cert/client_cert_00.crt -key /home/esp-at/components/customized_partitions/raw_data/client_key/client_key_00.key -host 192.168.3.112 -port 8070
ESP32 设备上的响应:
0,CONNECT
发送 4 字节数据到网络连接 ID 为 0 的链路上。
命令:
AT+CIPSEND=0,4
响应:
OK >
输入 4 字节数据,例如输入数据是
test,之后 AT 将会输出以下信息。Recv 4 bytes SEND OK
说明:
若输入的字节数目超过
AT+CIPSEND命令设定的长度 (n),则系统会响应busy p...,并发送数据的前 n 个字节,发送完成后响应SEND OK。
从网络连接 ID 为 0 的链路上接收 4 字节数据。
假设 SSL 服务器发送 4 字节的数据(数据为
test),则系统会提示:+IPD,0,4:test
关闭 SSL 连接。
命令:
AT+CIPCLOSE=0
响应:
0,CLOSED OK
关闭 SSL 服务端。
命令:
AT+CIPSERVER=0
响应:
OK
ESP32 设备作为 TCP 客户端,建立单连接,实现 UART Wi-Fi 透传
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接到同一个路由。
在 PC 上使用网络调试工具,创建一个 TCP 服务器。例如 IP 地址为
192.168.3.102,端口为8080。ESP32 设备作为客户端通过 TCP 连接到 TCP 服务器,服务器 IP 地址为
192.168.3.102,端口为8080。命令:
AT+CIPSTART="TCP","192.168.3.102",8080
响应:
CONNECT OK
进入 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=1
响应:
OK
进入 UART Wi-Fi 透传模式 并发送数据。
命令:
AT+CIPSEND
响应:
OK >
停止发送数据
在透传发送数据过程中,若识别到单独的一包数据
+++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。请注意,如果直接用键盘打字输入+++,有可能因时间太慢而不能被识别为连续的三个+。更多介绍请参考 [仅适用透传模式] +++。退出 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=0
响应:
OK
关闭 TCP 连接。
命令:
AT+CIPCLOSE
响应:
CLOSED OK
ESP32 设备作为 TCP 服务器,实现 UART Wi-Fi 透传
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置多连接模式。
命令:
AT+CIPMUX=1
响应:
OK
说明:
TCP 服务器必须在多连接模式下才能开启。
设置 TCP 服务器最大连接数为 1。
命令:
AT+CIPSERVERMAXCONN=1
响应:
OK
说明:
透传模式是点对点的,因此 TCP 服务器的最大连接数只能是 1。
开启 TCP 服务器。
命令:
AT+CIPSERVER=1,8080
响应:
OK
说明:
设置 TCP 服务器端口为 8080,您也可以设置为其它端口。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 连接到 ESP32 TCP 服务器。
PC 与 ESP32 设备连接到同一个路由。
在 PC 上使用网络调试工具,创建一个 TCP 客户端。连接到 ESP32 的 TCP 服务器。地址为
192.168.3.112,端口为8080。AT 响应:
0,CONNECT
进入 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=1
响应:
OK
进入 UART Wi-Fi 透传模式 并发送数据。
命令:
AT+CIPSEND
响应:
OK >
停止发送数据
在透传发送数据过程中,若识别到单独的一包数据
+++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。请注意,如果直接用键盘打字输入+++,有可能因时间太慢而不能被识别为连续的三个+。更多介绍请参考 [仅适用透传模式] +++。退出 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=0
响应:
OK
关闭 TCP 连接。
命令:
AT+CIPCLOSE
响应:
CLOSED OK
ESP32 设备作为 softAP 在 UDP 传输中实现 UART Wi-Fi 透传
设置 Wi-Fi 模式为 softAP。
命令:
AT+CWMODE=2
响应:
OK
设置 softAP。
命令:
AT+CWSAP="ESP32_softAP","1234567890",5,3
响应:
OK
PC 连接到 ESP32 设备的 softAP。
创建一个 UDP 端点。
在 PC 上使用网络调试助手,创建一个 UDP 传输。例如 PC 端 IP 地址为
192.168.4.2,端口为8080。ESP32 与 PC 对应端口建立固定对端 IP 地址和端口的 UDP 传输。远程 IP 地址为
192.168.4.2,远端端口为8080,本地端口为2233,模式为0。命令:
AT+CIPSTART="UDP","192.168.4.2",8080,2233,0
响应:
CONNECT OK
进入 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=1
响应:
OK
进入 UART Wi-Fi 透传模式 并发送数据。
命令:
AT+CIPSEND
响应:
OK >
停止发送数据
在透传发送数据过程中,若识别到单独的一包数据
+++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。请注意,如果直接用键盘打字输入+++,有可能因时间太慢而不能被识别为连续的三个+。更多介绍请参考 [仅适用透传模式] +++。退出 UART Wi-Fi 透传接收模式。
命令:
AT+CIPMODE=0
响应:
OK
关闭 TCP 连接。
命令:
AT+CIPCLOSE
响应:
CLOSED OK
ESP32 设备获取被动接收模式下的套接字数据
预计设备将接收大量网络数据并且 MCU 端来不及处理时,可以参考该示例,使用被动接收数据模式。
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接到路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
查询 ESP32 设备 IP 地址。
命令:
AT+CIPSTA?
响应:
+CIPSTA:ip:"192.168.3.112" +CIPSTA:gateway:"192.168.3.1" +CIPSTA:netmask:"255.255.255.0" OK
说明:
您的查询结果可能与上述响应中的不同。
PC 与 ESP32 设备连接同一个路由。
在 PC 上使用网络调试工具,创建一个 TCP 服务器。例如 TCP 服务器的 IP 地址为
192.168.3.102,端口为8080。ESP32 设备作为客户端通过 TCP 连接到 TCP 服务器,服务器 IP 地址为
192.168.3.102,端口为8080。命令:
AT+CIPSTART="TCP","192.168.3.102",8080
响应:
CONNECT OK
ESP32 设备设置套接字接收模式为被动模式。
命令:
AT+CIPRECVTYPE=1
响应:
OK
TCP 服务器发送 4 字节的数据(数据为
test)。说明:
此时会回复
+IPD,4,如果后续再接收到服务器数据,是否回复+IPD,,请阅读 AT+CIPRECVTYPE 说明部分。
ESP32 设备查询被动接收模式下套接字数据的长度。
命令:
AT+CIPRECVLEN?
响应:
+CIPRECVLEN:4 OK
ESP32 设备获取被动接收模式下的套接字数据。
命令:
AT+CIPRECVDATA=4
响应:
+CIPRECVDATA:4,test OK