13. WIFI
ESP32-S3 支持 2.4 GHz 的 Wi-Fi 4(802.11n)标准,提供高达 150 Mbps 的数据传输速率。它支持 STA(Station)模式、AP(Access Point)模式和 Wi-Fi 直连(Wi-Fi Direct)模式,可以灵活地连接到其他设备或创建自身的网络。ESP32-S3 还支持硬件加速的 Wi-Fi 加密算法,包括 WPA/WPA2-PSK 和 WPA3-SAE 加密。这使得加密和解密数据的速度更快,提高了系统的整体性能和安全性。
Wi-Fi 库支持配置及监控 ESP32 Wi-Fi 连网功能。
它有三种模式:
- 基站模式(即 STA 模式或 Wi-Fi 客户端模式),此时 ESP32 连接到接入点 (AP)。
- AP 模式(即 Soft-AP 模式或接入点模式),此时基站连接到 ESP32。
- AP-STA 共存模式(ESP32 既是接入点,同时又作为基站连接到另外一个接入点)。
API介绍
下面是一些 ESP32S3 Arduino 库中常用的 Wi-Fi 相关函数的介绍:
WiFi.begin(ssid, password)
该函数用于连接到 Wi-Fi 网络。需要提供要连接的网络的 SSID 和密码作为参数。WiFi.disconnect()
该函数用于断开当前的 Wi-Fi 连接。WiFi.status()
该函数返回当前 Wi-Fi 连接的状态。返回值可能是以下之一:WL_CONNECTED
:已连接到 Wi-Fi 网络。WL_DISCONNECTED
:未连接到 Wi-Fi 网络。WL_IDLE_STATUS
:Wi-Fi 处于空闲状态。WL_NO_SSID_AVAIL
:未找到指定的 Wi-Fi 网络。WiFi.localIP()
该函数返回 ESP32S3 设备在 Wi-Fi 网络中分配的本地 IP 地址。WiFi.macAddress()
该函数返回 ESP32S3 设备的 MAC 地址。WiFi.scanNetworks()
该函数用于扫描周围可用的 Wi-Fi 网络。它返回一个整数,表示扫描到的网络数量。可以使用其他函数(如WiFi.SSID() 和 WiFi.RSSI())来获取每个网络的详细信息。WiFi.SSID(networkIndex)
该函数返回指定索引的扫描到的 Wi-Fi 网络的 SSID。WiFi.RSSI(networkIndex)
该函数返回指定索引的扫描到的 Wi-Fi 网络的信号强度(RSSI)。
STA模式
在 STA 模式下,ESP32-S3会建立 Wi-Fi 连接,连接到一个已经建立好的 Wi-Fi 热点上,通过该热点来访问互联网。STA 模式使用的场景比较多,比如在智能家居、物联网设备以及工业控制等领域中,设备需要通过 Wi-Fi 连接到网络来传递数据。
示例:连接外部WIFI:LCKFB,当连接成功时,通过串口0输出IP地址,板载LED闪烁。
#include <WiFi.h>
#define LED 48
// 定义 要连接的 Wi-Fi 名与密码
const char _ ssid = "LCKFB";
const char _ password = "12345678";
void setup() {
Serial.begin(9600);
// 断开之前的连接
WiFi.disconnect(true);
// 连接 Wi-Fi
WiFi.begin(ssid, password);
Serial.print("正在连接 Wi-Fi");
// 检测是否链接成功
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("连接成功");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// 使用板载 LED 反馈连接成功
pinMode(LED, OUTPUT);
}
void loop() {
//LED闪烁说明连接成功
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
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
39
AP模式
接入点(AP)是一种提供 Wi-Fi 网络访问的设备,并将其连接到有线网络的装置。ESP32S3除了不具有与有线网络的接口外,还可以提供类似的功能。这种操作模式称为软接入点(soft-AP)。可以同时连接到soft-AP的最大站数可以设置4,默认为4。
当ESP32S3单独处于AP模式下时,可以被认为是一个无法访问外网的局域网WiFi路由器节点,它可以接受各类设备的连接请求。并可以和连接设备进行TCP、UDP连接,实现数据流。在局域物联网的设计中可以承担数据收发节点的作用。
示例
连接外部WIFI:LCKFB,当连接成功时,通过串口0输出IP地址,板载LED闪烁。
#include <WiFi.h>
#define LED 48
// 设置要创建的热点名与密码
const char _ ssid = "LCKFB_ESP32";
const char _ password = "12345678";
void setup() {
Serial.begin(9600);
// 创建热点
WiFi.softAP(ssid, password);
// 打印热点 IP
Serial.print("Wi-Fi 接入的 IP:");
Serial.println(WiFi.softAPIP());
// 使用板载 LED 反馈创建成功
pinMode(LED, OUTPUT);
}
void loop() {
//LED闪烁说明创建热点成功
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
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