ESP32开发

目录

1、简介

[1.1 种类](#1.1 种类)

[1.2 特点](#1.2 特点)

[1.3 管脚功能](#1.3 管脚功能)

[1.4 接线方式](#1.4 接线方式)

[1.5 工作模式](#1.5 工作模式)

2、基础AT指令介绍

[2.1 AT指令类型](#2.1 AT指令类型)

[2.2 基础指令及其描述](#2.2 基础指令及其描述)

[2.3 使用AT指令需要注意的事](#2.3 使用AT指令需要注意的事)

3、AT指令分类和提示信息

[3.1 选择是否保存到Flash的区别](#3.1 选择是否保存到Flash的区别)

[3.2 提示信息](#3.2 提示信息)

[3.3 其他会保存到Flash的AT指令](#3.3 其他会保存到Flash的AT指令)

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

[6、AT指令应用示例_单连接 TCP Client](#6、AT指令应用示例_单连接 TCP Client)

[6.1 配置 WiFi 模式](#6.1 配置 WiFi 模式)

[6.2 连接路由器](#6.2 连接路由器)

[6.3 查询 ESP8266 设备的 IP 地址](#6.3 查询 ESP8266 设备的 IP 地址)

[6.4 建立TCP服务器](#6.4 建立TCP服务器)

[6.5 ESP8266设备作为TCP client连接到上述服务器](#6.5 ESP8266设备作为TCP client连接到上述服务器)

[6.6 ESP8266 设备向服务器发送数据](#6.6 ESP8266 设备向服务器发送数据)

[6.7 ESP8266设备接收数据提示信息](#6.7 ESP8266设备接收数据提示信息)

7、AT指令应用示例_UDP传输

[7.1 固定远端的 UDP 通信](#7.1 固定远端的 UDP 通信)

[7.1.1 配置 WiFi 模式](#7.1.1 配置 WiFi 模式)

[7.1.2 连接路由器](#7.1.2 连接路由器)

[7.1.3 查询 ESP8266 设备的 IP 地址](#7.1.3 查询 ESP8266 设备的 IP 地址)

[7.1.4 建立UDP服务器](#7.1.4 建立UDP服务器)

[7.1.5 使能多连接](#7.1.5 使能多连接)

[7.1.6 创建UDP传输](#7.1.6 创建UDP传输)

[7.1.7 发送数据](#7.1.7 发送数据)

[7.1.8 断开UDP传输](#7.1.8 断开UDP传输)

[7.2 远端可变的 UDP 通信](#7.2 远端可变的 UDP 通信)

[7.2.1 配置 WiFi 模式](#7.2.1 配置 WiFi 模式)

[7.2.2 连接路由器](#7.2.2 连接路由器)

[7.2.3 查询 ESP8266 设备的 IP 地址](#7.2.3 查询 ESP8266 设备的 IP 地址)

[7.2.4 建立UDP服务器](#7.2.4 建立UDP服务器)

[7.2.5 使能单连接](#7.2.5 使能单连接)

[7.2.5 创建UDP传输](#7.2.5 创建UDP传输)

[7.2.6 发送数据](#7.2.6 发送数据)

[7.2.7 发送数据到其他指定远端](#7.2.7 发送数据到其他指定远端)

[7.2.8 断开UDP传输](#7.2.8 断开UDP传输)

8、AT指令应用示例_透传

[8.1 TCP Client单连接透传](#8.1 TCP Client单连接透传)

[8.1.1 配置WIFI模式](#8.1.1 配置WIFI模式)

[8.1.2 连接路由器](#8.1.2 连接路由器)

[8.1.3 查询 ESP8266 设备的 IP 地址](#8.1.3 查询 ESP8266 设备的 IP 地址)

[8.1.4 建立TCP服务器](#8.1.4 建立TCP服务器)

[8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器](#8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器)

[8.1.6 使能透传模式](#8.1.6 使能透传模式)

[8.1.7 ESP8266设备向服务器发送数据](#8.1.7 ESP8266设备向服务器发送数据)

[8.1.8 退出发送数据](#8.1.8 退出发送数据)

[8.1.9 退出透传模式](#8.1.9 退出透传模式)

[8.1.10 断开TCP连接](#8.1.10 断开TCP连接)

[8.2 UDP透传](#8.2 UDP透传)

[8.2.1 配置 WiFi 模式](#8.2.1 配置 WiFi 模式)

[8.2.2 连接路由器](#8.2.2 连接路由器)

[8.2.3 查询 ESP8266 设备的 IP 地址](#8.2.3 查询 ESP8266 设备的 IP 地址)

[8.2.4 建立UDP服务器](#8.2.4 建立UDP服务器)

[8.2.5 ESP8266与PC对应端⼝建⽴固定对端的UDP传输](#8.2.5 ESP8266与PC对应端⼝建⽴固定对端的UDP传输)

[8.2.6 使能透传模式](#8.2.6 使能透传模式)

[8.1.7 ESP8266设备向服务器发送数据](#8.1.7 ESP8266设备向服务器发送数据)

[8.1.8 退出发送数据](#8.1.8 退出发送数据)

[8.1.9 退出透传模式](#8.1.9 退出透传模式)

[8.1.10 断开UDP连接](#8.1.10 断开UDP连接)

[9、多连接TCP Server](#9、多连接TCP Server)

[9.1 配置WiFi模式](#9.1 配置WiFi模式)

[9.2 使能多连接](#9.2 使能多连接)

[9.3 建⽴ TCP server](#9.3 建⽴ TCP server)

[9.4 连接路由器](#9.4 连接路由器)

[9.5 在PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266的TCP server(上面设置9090)](#9.5 在PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266的TCP server(上面设置9090))

[9.6 发送数据](#9.6 发送数据)

[9.7 断开TCP连接](#9.7 断开TCP连接)


1、简介

1.1 种类

WIFI模块在PC上做为客户端、服务器,在STM32上做服务器的通讯。在物联网应用开发有重要作用,种类居多,如下图

红色方框的esp8266-01s型号的无限wifi模块就是本章学习的主要对象。

1.2 特点

  • 小巧的尺寸:ESP-01S模块具有紧凑的设计,适用于空间有限的应用。
  • WiFi功能:它支持802.11b/g/n标准,允许设备连接到无线网络。
  • 高度集成:ESP-01S集成了WiFi功能和处理器,减少了外部组件的需求。
  • AT指令支持:通过串口通信,可以使用AT指令进行配置和控制。
  • 低功耗:ESP-01S模块具有低功耗特性,适用于长时间运行的应用。
  • 容易使用:ESP-01S模块易于配置和应用,有许多开发资源和示例代码可用。

1.3 管脚功能

|--------|--------|-----------------------------------|
| Pin脚编号 | Pin脚名称 | 备注 |
| 1 | GND | 接地 |
| 2 | IO2 | GPIO2/UART1 TXD |
| 3 | IO0 | GPI00:下载模式:外部拉低:运行模式:悬空或者外部拉高 |
| 4 | RXD | UARTO RXD/GPIO3 |
| 5 | TXD | UARTO TXD/GPI01 |
| 6 | EN | 芯片使能端,高电平有效 |
| 7 | RST | 复位 |
| 8 | VCC | 3.3V供电(VDD);外部供电电源输出电流建议在500mA 以上 |

1.4 接线方式

1.5 工作模式

ESP8266-01s模块共支持3种工作模式:STA、AP、STA+AP

1、STA模式

在此模式下,模块可连接其他设备提供的无线网络,例如通过 WIFI 连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。

简单来说,此模式下,该模块相当于一个用户,需要链接外部的WIFI(或自己的热点),通过链接的WIFI进行与其他设备的通信;

2、AP

AP 模式为默认的模式,在此模式下,模块将作为热点供其他设备连接, 从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。

简单来说,此模式下,该模块相当于提供一个热点,创建一个小范围的局域网,凡是连接上的设备就能与其进行通信;

3、STA+AP

该模式为 STA 模式与 AP 模式共存的一种模式,模块既能连接至其他 设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换, 方便操作使用。

2、基础AT指令介绍

2.1 AT指令类型

注意:
不是每条 AT 指令都具备上述 4 种类型的命令。
[ ] 括号内为缺省值,不必填写或者可能不显示。
使⽤双引号表示字符串数据 "string" ,例如: AT+CWSAP="ESP756290","21030826",1,4
默认波特率为 115200
AT 指令必须⼤写,并且以回⻋换⾏符结尾( CR LF )。

2.2 基础指令及其描述

使用示例:

AT指令启动调试

AT+RST重启调试

AT+RESTORE恢复出厂设置调试

2.3 使用AT指令需要注意的事

输入AT指令时,所有字母需要为大写形式,否则会报错(返回error),但有个例外:加号前面的可以是小写,但加号后面的必须为大写,这可能是esp8266模块中程序自己做了处理,即AT****无论是大小写都能识别出来。
在等待发送AT指令时,需要回车加换行,即\r\n,否则在串口部分他会以不换行的格式不断发送你输入的AT指令,但这在esp8266模块看来,它未识别到\r\n,所以不会对输入的AT指令进行处理,只有当识别到\r\n时,才会进行处理,所以需要勾选上串口助手的发送新行选项。

3、AT指令分类和提示信息

3.1 选择是否保存到Flash的区别

AT指令主要分类在简介中有写到,但有些指令有无Flash区别很大,在这里做一下解析。

如上图所示,设置当前wifi模式可以选择是否存到Flash,则有不同的AT指令,针对上图做出调试:

1.先进行测试

2.再进行查询

3.最后进行修改并查询

可见此时wifi模式成功修改成Station模式,但此时调用复位AT指令,再次进行查询,其模式还会是修改过后的模式么,如下:

可见修改后的模式并没有存储到Flash中,复位后会发生改变,若想要保存到Flash中,调用上面第二个图片中的AT指令即可,这里就不作演示。

3.2 提示信息

3.3 其他会保存到Flash的AT指令

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

红框的是经常需要用到的,详细概述如下:

**6、AT指令应用示例_**单连接 TCP Client

6.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
(注:此AT指令通过试验会保存到Flash)
响应 :
OK

6.2 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

6.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

可见成功查询到esp8266模块连接wifi的IP

6.4 建立TCP服务器

PC 与 ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。
打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。

此时显示侦听中,可见等待设备连接到该TCP服务器。同时创建的服务器IP为192.168.1.103,端口为8080.

6.5 ESP8266设备作为TCP client连接到上述服务器

AT+CIPSTART="TCP","192.168.1.103 ",8080 //protocol, server IP and port
响应 :
OK

实现本地发送数据至远端。

6.6 ESP8266 设备向服务器发送数据

AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK

可见实现了远端像本地发送数据。

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

可见超过AT指令设置的字节时,本地只能接收到在设置字节范围内的数据,其余数据发送失败。

6.7 ESP8266设备接收数据提示信息

提示信息如下:

+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx

上图IPD比输入数据长度多2是因为网络调试助手中勾选了换行,所以每次发送时串口助手会换行,同时\r\n算两个字符长度,下图不添加换行后,IPD与输入字符长度一样。

7、AT指令应用示例_UDP传输

UDP传输分为固定远端和远端可变,同时他们的前三步与上部分单连接TCP Client相同,所以这里将步骤列出来,不做详细操作演示。

7.1 固定远端的 UDP 通信

7.1.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
(注:此AT指令通过试验会保存到Flash)
响应 :
OK

7.1.2 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

7.1.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

7.1.4 建立UDP服务器

PC 与 ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。

7.1.5 使能多连接

AT+CIPMUX=1
响应 :
OK

7.1.6 创建UDP传输

例如,分配连接号为 4 ,指令如下:
AT+CIPSTART=4,"UDP","192.168.1.103",8080,9090,0
响应 :
4,CONNNECT
OK
说明:
示例指令中的参数说明如下:
• "192.168.1.103", 8080UDP 传输的远端 IP 和端⼝,即前⽂步骤 4PC 建⽴的 UDP 端⼝;(这里的远端IP是相对于esp8266的远端,即网络调试助手中的本地IP
•9090ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
0 表示当前 UDP 传输建⽴后, UDP 远端不会被其他设备更改;即使有其他设备通过 UDP 协议发数据到
ESP8266 UDP 端⼝ 1112ESP8266 的第 4UDP 传输的远端也不会被替换,使⽤指令
"AT+CIPSEND=4, X" 发送数据,仍然是当前固定的 PC 端收到。

可见创建完UDP传输后,网络调试助手成功连接上远端esp8266模块。

7.1.7 发送数据

AT+CIPSEND=4,7 // Send 7 bytes to transmission NO.4
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

7.1.8 断开UDP传输

AT+CIPCLOSE=4(4为一开始分配的连接号)
响应 :
4,CLOSED
OK

可见断开连接后,远端发送数据到esp8266时,并不能接收数据。

7.2 远端可变的 UDP 通信

7.2.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
(注:此AT指令通过试验会保存到Flash)
响应 :
OK

7.2.2 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

7.2.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

7.2.4 建立UDP服务器

PC 与 ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。

7.2.5 使能单连接

AT+CIPMUX=0
响应 :
OK

7.2.5 创建UDP传输

当使⽤ AT+CIPSTART 指令创建 UDP 通信,将最后⼀个参数设置为 2 时, UDP 通信的远端可改变。

AT+CIPSTART="UDP","192.168.1.103",8080,9090,2
响应 :
4,CONNNECT
OK
示例指令中的参数说明如下:
• " 192.168.1.103"", 8080UDP 传输的远端 IP 和端⼝,即前⽂ PC 建⽴的 UDP 端⼝;
• 9090ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
2 表示当前 UDP 传输建⽴后, UDP 传输远端仍然会更改; UDP 传输远端会⾃动更改为最近⼀个与 ESP8266 UDP 通信的远端。

注意:这里设置的是单连接模式,所以在使用此通信方式时,需调用AT+CIPMUX?指令查询是否为0(单连接模式),同时单连接不需要加网络连接ID,与前面的固定远端UDP传输有所不同。

7.2.6 发送数据

AT+CIPSEND=7 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

这里为单连接模式,所以AT指令后面直接加上数据长度即可。

7.2.7 发送数据到其他指定远端

例如,发数据到192.168.1.103, 端⼝ 8081 。
AT+CIPSEND=7,"192.168.1.103",8081 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

最左边的新开的其他远端UDP,通过修改端口号为8081,实现串口助手中发送指定长度的数据到端口号8081的远端。

7.2.8 断开UDP传输

AT+CIPCLOSE
响应 :
CLOSED
OK

上面设置的是单连接模式,所以这里直接执行下图红框内AT指令即可。

8、AT指令应用示例_透传

8.1 TCP Client单连接透传

8.1.1 配置WIFI模式

AT+CWMODE=3 // softAP+station mode
响应 :
OK

8.1.2 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router
响应 :
OK

8.1.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

8.1.4 建立TCP服务器

PC 与 ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。 打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。

8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器

AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
响应 :
OK

8.1.6 使能透传模式

AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据

AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

  • 进⼊透传模式发送数据,每包最⼤ 2048 字 节,或者每包数据以 20 ms 间隔区分。
8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 "+++" ,则退出透传发送。

  • 如果使⽤键盘打字输⼊ "+++" ,可能耗时太⻓,不被认为是连续的三个 "+" ,建议使
    ⽤串⼝⼯具⼀次性发送 "+++" ,并请注意不要携带空格或换⾏符等不可⻅字符。
  • 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
    注意:
    "+++" 退出透传发送数据,回到正常 AT 指令模式。此时, TCP 连接仍然是保持的,可以再发 AT+CIPSEND
    指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式

AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开TCP连接

AT+CIPCLOSE
响应 :
CLOSED
OK

8.2 UDP透传

8.2.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
(注:此AT指令通过试验会保存到Flash)
响应 :
OK

8.2.2 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

8.2.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

8.2.4 建立UDP服务器

PC 与 ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。

8.2.5 ESP8266与PC对应端⼝建⽴固定对端的UDP传输

AT+CIPSTART="UDP","192.168.1.103",8080,9090,2

响应 :
OK

8.2.6 使能透传模式

AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据

AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

  • 进⼊透传模式发送数据,每包最⼤ 2048 字 节,或者每包数据以 20 ms 间隔区分。
8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 "+++" ,则退出透传发送。

  • 如果使⽤键盘打字输⼊ "+++" ,可能耗时太⻓,不被认为是连续的三个 "+" ,建议使
    ⽤串⼝⼯具⼀次性发送 "+++" ,并请注意不要携带空格或换⾏符等不可⻅字符。
  • 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
    注意:
    "+++" 退出透传发送数据,回到正常 AT 指令模式。此时, UDP 连接仍然是保持的,可以再发 AT+CIPSEND
    指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式

AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开UDP连接

AT+CIPCLOSE
响应 :
CLOSED
OK

9、多连接TCP Server

ESP8266 AT 仅⽀持建⽴⼀个 TCP 服务器,且必须使能多连接,即允许连接多个TCP client,虽然这里是TCP Server,但是是多个TCP client,所以网络调试助手端口号选择T CP client。

9.1 配置WiFi模式

AT+CWMODE=3 // softAP+station mode
响应 :
OK

9.2 使能多连接

AT+CIPMUX=1
响应 :
OK

9.3 建⽴ TCP server

AT+CIPSERVER=1 // default port = 333
响应 :
OK

9090端口号是esp8266模块通过我们设定的端口号。

9.4 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

9.5 在PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266的TCP server(上面设置9090)

注意:
ESP8266 作为 TCP server 有超时机制,如果连接建⽴后,⼀段时间内⽆数据来往, ESP8266 TCP server 会 将TCP client 踢掉。因此,请在 PC TCP client 连上 ESP8266 TCP server 后建⽴⼀个 2s 的循环数据发送, ⽤于保持连接。

若超过2s为发送数据,则会自动断开。

9.6 发送数据

// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

  • 进⼊透传模式发送数据,每包最⼤ 2048 字 节,或者每包数据以 20 ms 间隔区分。

这里AT指令中网络连接号为0是默认为0,若有多个TCP Client连接则会增加序号,例如多增加一个TCP Clinet第二个序号为1,如下:

序号0为8080端口号,序号1为8081端口号。

9.7 断开TCP连接

AT+CIPCLOSE=5(关闭所有序号的TCP连接)
响应 :
CLOSED
OK

可以输入对应序号关闭TCP连接,如下:

也可以输入5关闭所有TCP连接,如下:

相关推荐
c10638915142 小时前
STM32外设之LTDC/DMA2D—液晶显示(野火)
stm32·单片机·嵌入式硬件
MGT_97964 小时前
基于51单片机的台灯控制(Proteus仿真)
嵌入式硬件·51单片机·proteus
夜间去看海4 小时前
基于51单片机的倒计时音乐播放系统设计
单片机·嵌入式硬件·51单片机
aqymnkstkw5 小时前
2024年【电气试验】考试题库及电气试验模拟试题
大数据·c语言·人工智能·嵌入式硬件·安全
xxpro6 小时前
S3C2440开发板点亮LED灯+PWM定时器
单片机·嵌入式硬件
百里与司空6 小时前
学习CubeIDE——定时器开发
stm32·单片机·嵌入式硬件·学习
天蓝蓝235287 小时前
嵌入式硬件基础知识
嵌入式硬件
代码总长两年半7 小时前
STM32+FATFS+SD卡+RTC(生成.CSV格式文件)
stm32·嵌入式硬件·实时音视频
honey ball9 小时前
仪表放大器AD620
运维·单片机·嵌入式硬件·物联网·学习
luckyluckypolar9 小时前
STM32 -中断
stm32·单片机·嵌入式硬件·物联网