目录
softAP
1. 功能概述
SoftAP(软件接入点):该示例展示了如何将ESP32配置为一个Wi-Fi接入点(AP),允许其他设备(如手机、电脑等)连接到它。通过这种方式,ESP32可以作为一个Wi-Fi热点,为连接的设备提供网络服务。
支持PMF(Protected Management Frames):SoftAP支持受保护的管理帧(PMF),这是一种增强Wi-Fi安全性的机制。PMF可以通过配置标志来启用。
2. 如何使用该示例
配置项目:在使用该示例之前,需要通过
idf.py menuconfig
命令进入项目配置菜单:
设置Wi-Fi的SSID(网络名称)。
设置Wi-Fi的密码。
可选:根据需求更改其他配置选项。
编译和烧录:配置完成后,使用
idf.py -p PORT flash monitor
命令编译项目,并将固件烧录到ESP32开发板上。同时该命令还会启动串口监视器用于查看设备的输出信息。退出串口监视器:在串口监视器中,可以通过按下
Ctrl+]
组合键退出。3. 示例输出
当ESP32成功启动并作为SoftAP运行时,串口监视器会输出以下信息:
Wi-Fi初始化完成:显示SoftAP的SSID和密码。
设备连接信息:当有设备连接到ESP32时,会显示设备的MAC地址和分配的IP地址。
例如,
station:70:ef:00:43:96:67 join, AID=1
表示一个设备成功连接,并获得了192.168.4.2
的IP地址。4. 代码实现的功能
Wi-Fi初始化:代码会初始化ESP32的Wi-Fi驱动,并将其配置为SoftAP模式。
SSID和密码设置:用户可以通过配置菜单设置SoftAP的SSID和密码,确保只有知道密码的设备可以连接。
DHCP服务器:ESP32会作为DHCP服务器,为连接的设备自动分配IP地址。
连接管理:代码会监控设备的连接和断开事件,并在串口监视器中输出相关信息。
5. 应用场景
物联网设备配置:在物联网设备中,ESP32可以作为SoftAP,允许用户通过手机或电脑连接到设备并进行配置。
临时网络:在某些场景下,ESP32可以作为临时网络热点,为其他设备提供网络连接。
安全通信:通过启用PMF,可以增强Wi-Fi通信的安全性,防止管理帧被篡改或伪造。
station
1. 功能概述
Wi-Fi Station(工作站):该示例展示了如何将ESP32配置为一个Wi-Fi工作站,使其能够连接到外部的Wi-Fi接入点(AP),从而实现与互联网或其他设备的通信。
连接管理:代码会尝试连接到用户指定的Wi-Fi网络(通过SSID和密码),并处理连接成功或失败的情况。
2. 如何使用该示例
配置项目:在使用该示例之前,需要通过
idf.py menuconfig
命令进入项目配置菜单:
设置目标Wi-Fi网络的SSID(网络名称)。
设置目标Wi-Fi网络的密码。
可选:根据需求更改其他配置选项(如重试次数、连接超时等)。
编译和烧录:配置完成后,使用
idf.py -p PORT flash monitor
命令编译项目,并将固件烧录到ESP32开发板上。同时该命令还会启动串口监视器用于查看设备的输出信息。退出串口监视器:在串口监视器中,可以通过按下
Ctrl+]
组合键退出。3. 示例输出
连接成功时的输出:
当ESP32成功连接到目标Wi-Fi网络时,串口监视器会输出以下信息:
Wi-Fi初始化完成。
连接到的AP的SSID、BSSID(MAC地址)、信道、信号强度(RSSI)等信息。
分配到的IP地址、子网掩码和网关地址。
I (939) wifi: connected with myssid, aid = 1, channel 6, BW20, bssid = ac:9e:17:7e:31:40 I (939) wifi: security type: 3, phy: bgn, rssi: -68 I (2089) esp_netif_handlers: sta ip: 192.168.77.89, mask: 255.255.255.0, gw: 192.168.77.1 I (2089) wifi station: got ip:192.168.77.89
连接失败时的输出:
当ESP32无法连接到目标Wi-Fi网络时,串口监视器会输出以下信息:
连接失败的提示。
重试连接的次数。
最终连接失败的总结。
4. 代码实现的功能
Wi-Fi初始化:代码会初始化ESP32的Wi-Fi驱动,并将其配置为Station模式。
连接目标AP:代码会尝试连接到用户指定的Wi-Fi网络(通过SSID和密码)。
IP地址分配:当连接成功后,ESP32会通过DHCP从AP获取IP地址、子网掩码和网关地址。
连接重试机制:如果连接失败,代码会多次重试,直到达到最大重试次数。
连接状态监控:代码会监控连接状态的变化,并在串口监视器中输出详细的信息。
5. 应用场景
物联网设备联网:在物联网应用中,ESP32可以作为Station连接到家庭路由器或企业Wi-Fi网络,实现与云平台或其他设备的通信。
数据采集与传输:ESP32可以通过Wi-Fi连接到网络,采集传感器数据并上传到服务器。
远程控制:通过Wi-Fi连接,ESP32可以接收远程控制指令,实现对设备的控制。
OTA升级:ESP32可以通过Wi-Fi连接,从服务器下载固件并进行空中升级(OTA)。
nan_console
该示例展示了如何在ESP32上使用**Neighbor Awareness Networking (NAN)**协议,实现设备间的近距离服务发现和通信。NAN(Neighbor Awareness Networking,邻居感知网络)是一种直接设备到设备的通信协议,不需要互联网或接入点(AP)的支持。NAN的核心功能是服务发现和设备间。以下是该示例的详细功能分析:
1. NAN 协议概述
NAN 集群:多个NAN设备在附近时会形成一个NAN集群,集群中的设备可以通过NAN协议进行通信。
服务发现:NAN设备可以发布(Publish)或订阅(Subscribe)服务。服务发现通过服务名称和可选的匹配过滤器来实现。
通信模式:
Publisher(发布者):发布服务,可以选择主动广播(Unsolicited模式)或响应订阅者的请求(Solicited模式)。
Subscriber(订阅者):搜索服务,可以选择被动监听(Passive模式)或主动发送广播帧(Active模式)。
数据路径(Datapath):当服务匹配成功后,设备可以通过**NDP(NAN Datapath)**建立数据路径,并使用IPv6地址进行通信。
2. 示例功能
该示例通过控制台(Console)实现了以下功能:
启动和停止NAN:设备可以加入或退出NAN集群。
发布和订阅服务:设备可以发布服务或订阅其他设备发布的服务。
服务匹配:当订阅者找到匹配的服务时,可以发送Follow-up消息或建立NDP数据路径。
数据通信:通过NDP建立连接后,设备可以使用IPv6地址进行通信(如Ping测试)。
消息传递:设备之间可以发送和接收文本消息。
3. 如何使用示例
示例提供了一个控制台界面,用户可以通过输入命令来配置NAN和进行服务发现。以下是主要命令及其功能:详见ReadME
4. 应用场景
近距离设备发现:在物联网应用中,设备可以通过NAN发现附近的设备和服务。
无网络通信:在无互联网或AP的环境下,设备可以通过NAN直接通信。
动态服务交互:设备可以动态发布和订阅服务,实现灵活的交互(如文件传输、消息传递等)。
nan_publisher
1. 功能概述
NAN Publisher:该示例实现了一个NAN发布者,可以发布服务并与其他NAN设备(订阅者)进行通信。
服务发布:发布者可以发布一个服务,其他设备(订阅者)可以通过服务名称和匹配过滤器来发现该服务。
交互模式:
Follow-up消息交换:当订阅者发现服务后,可以发送Follow-up消息,发布者会回复消息。
Datapath建立:订阅者可以请求与发布者建立Datapath(数据路径),发布者会接受请求并分配IPv6地址,双方可以通过IPv6进行通信。
2. 如何使用该示例
配置服务:在
menuconfig
中配置发布者的服务名称、发布类型(Unsolicited或Solicited)、匹配过滤器和回复消息。运行示例:将代码烧录到ESP32设备上,设备会自动启动NAN并发布服务。
交互测试:在附近运行NAN Subscriber示例的设备可以发现该发布者,并与之进行Follow-up消息交换或建立Datapath。
3. 应用场景
设备发现:发布者可以发布服务,订阅者可以发现并与之交互。
数据共享:通过Datapath,设备之间可以直接共享数据。
无网络通信:在无互联网或AP的环境中,设备可以通过NAN进行通信。
nan_subscriber
1. 功能概述
NAN Subscriber:该示例实现了一个NAN订阅者,可以搜索并订阅发布者发布的服务。
服务订阅:订阅者可以订阅特定名称的服务,并通过匹配过滤器来筛选服务。
交互模式:
Follow-up消息交换:当订阅者发现匹配的服务后,可以发送Follow-up消息,发布者会回复消息。
Datapath建立:订阅者可以请求与发布者建立Datapath(数据路径),并通过IPv6地址进行通信(如Ping测试)。
2. 如何使用该示例
配置服务:在
menuconfig
中配置订阅者要订阅的服务名称、订阅类型(Passive或Active)和匹配过滤器。运行示例:将代码烧录到ESP32设备上,设备会自动启动NAN并订阅服务。
交互测试:在附近运行NAN Publisher示例的设备可以发布服务,订阅者会发现该服务并与之进行Follow-up消息交换或建立Datapath。
5. 应用场景
设备发现:订阅者可以发现发布者发布的服务,并与之交互。
数据共享:通过Datapath,设备之间可以直接共享数据。
无网络通信:在无互联网或AP的环境中,设备可以通过NAN进行通信。
dpp-enrollee
这段代码展示了如何使用Device Provisioning Protocol (DPP),也称为Wi-Fi Easy Connect,将ESP32配置为Enrollee(被配置设备)。DPP提供了一种简单且安全的方式,将设备连接到Wi-Fi网络。以下是代码的详细功能介绍:
1. 功能概述
DPP Enrollee:该示例实现了一个DPP Enrollee,允许ESP32通过DPP协议连接到Wi-Fi网络。
QR码配置:ESP32会生成一个QR码,用户可以使用支持DPP Initiator的设备(如Android 10+手机)扫描该QR码,将ESP32配置到目标Wi-Fi网络。
PSK认证:DPP支持PSK(Pre-Shared Key)认证模式,确保连接的安全性。
2. 如何使用该示例
2.1 准备工作
一个支持DPP Initiator模式的设备(如Android 10+手机)。
目标Wi-Fi网络的SSID和密码。
2.2 运行步骤
编译和烧录:将代码编译并烧录到ESP32设备上。
生成QR码:ESP32启动后,会在串口监视器中显示一个QR码。
扫描QR码:
将手机连接到目标Wi-Fi网络(例如“Example-AP”)。
进入手机的Wi-Fi设置,选择“添加设备”或类似选项。
使用手机的QR码扫描功能扫描ESP32生成的QR码。
自动连接:扫描成功后,ESP32会自动连接到目标Wi-Fi网络。
2.3 可选配置
可以通过
menuconfig
配置QR码的显示方式和其他参数。3. 应用场景
物联网设备配置:在物联网应用中,DPP可以简化设备连接到Wi-Fi网络的过程,尤其是对于没有用户界面的设备(如智能家居设备)。
安全性要求高的场景:DPP提供了更高的安全性,适合需要保护网络凭证的场景。
批量设备配置:DPP可以用于批量配置设备,减少手动输入Wi-Fi密码的工作量。
4. 注意事项
QR码显示:QR码应确保在白色背景上显示为黑色,且没有断线,以确保扫描成功。
设备兼容性:需要使用支持DPP Initiator的设备(如Android 10+手机)来扫描QR码。
网络环境:确保目标Wi-Fi网络信号良好,且ESP32在信号覆盖范围内。
antenna
这段代码展示了如何在ESP32上实现多天线软件切换功能。通过该功能,ESP32可以在多个天线之间动态切换,以优化Wi-Fi信号的接收和发送性能。以下是代码的详细功能介绍:
1. 功能概述
多天线切换:ESP32支持多个天线的配置,可以通过软件动态切换天线,以优化Wi-Fi性能。
天线选择:代码会根据配置选择特定的天线进行信号接收(RX)和发送(TX)。
Wi-Fi连接:ESP32作为Station模式,尝试连接到指定的Wi-Fi网络,并在连接成功后输出天线切换的详细信息。
2. 如何使用该示例
2.1 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration菜单中:
设置Wi-Fi配置(SSID和密码)。
可选:根据需要更改其他配置选项。
2.2 编译和烧录
使用以下命令编译项目并将其烧录到ESP32开发板上:idf.py -p PORT flash monitor
3. 应用场景
信号优化:在信号较弱或不稳定的环境中,通过动态切换天线可以优化Wi-Fi性能。
多天线设备:适用于配备多个天线的ESP32设备,通过软件切换选择最佳天线。
物联网设备:在物联网应用中,通过优化天线配置可以提高设备的通信可靠性。
espnow
ESPNOW是Espressif开发的一种协议,允许设备在没有建立传统Wi-Fi连接的情况下直接发送和接收数据。以下是代码的详细功能介绍:
1. 功能概述
ESPNOW通信:该示例实现了ESPNOW协议,允许两个或多个ESP32设备之间直接发送和接收数据。
广播与单播:设备可以通过广播方式发现其他设备,并通过单播方式进行定向通信。
低功耗:ESPNOW不需要建立完整的Wi-Fi连接,因此具有较低的功耗。
安全性:支持主密钥(Primary Master Key)和本地密钥(Local Master Key)加密,确保通信的安全性。
2. 如何使用该示例
2.1 准备工作
至少两个ESP32设备。
确保设备在同一Wi-Fi信道上,并使用相同的密钥配置。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration菜单中:
设置Wi-Fi模式(Station或SoftAP)。
设置ESPNOW主密钥(Primary Master Key)和本地密钥(Local Master Key)。
设置Wi-Fi信道。
设置发送次数(Send count)、发送延迟(Send delay)和数据长度(Send len)。
可选:启用长距离模式(Enable Long Range),以支持更远距离的通信。
2.3 编译和烧录
3. 应用场景
物联网设备通信:在物联网应用中,ESPNOW可以用于设备间的低功耗通信。
传感器网络:在传感器网络中,ESPNOW可以用于传感器数据的快速传输。
远程控制:在远程控制应用中,ESPNOW可以用于发送控制指令。
长距离通信:启用长距离模式后,ESPNOW可以支持更远距离的通信。
fast_scan
这段代码展示了如何使用ESP32的Wi-Fi驱动实现**快速扫描(Fast Scan)和全信道扫描(All Channel Scan)**功能,并连接到目标Wi-Fi网络。以下是代码的详细功能介绍:
1. 功能概述
Wi-Fi扫描:ESP32支持两种扫描模式:
快速扫描(Fast Scan):在扫描到匹配的AP(接入点)后立即结束扫描,即使未完成所有信道的扫描。
全信道扫描(All Channel Scan):扫描所有信道,并存储最多4个完全匹配的AP信息。
连接AP:扫描完成后,ESP32会尝试连接到信号最强的AP。
过滤条件:可以设置信号强度阈值和认证模式(如Open、WEP、WPA、WPA2),Wi-Fi驱动会忽略不满足条件的AP。
2. 如何使用该示例
2.1 准备工作
一块ESP32开发板(如ESP32-DevKitC)。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration菜单中:
设置Wi-Fi的SSID和密码。
可选:根据需要更改其他配置选项(如扫描模式、信号强度阈值等)。
3. 应用场景
快速连接:在已知目标AP的环境中,使用快速扫描可以快速连接到目标网络。
信号优化:在多个AP的环境中,使用全信道扫描可以找到信号最强的AP并连接到它。
物联网设备:在物联网应用中,ESP32可以通过扫描功能自动连接到最佳的网络。
ftm
这段代码展示了如何使用**Fine Timing Measurement (FTM)**协议,通过Wi-Fi信号测量设备与接入点(AP)之间的距离。FTM是一种基于Wi-Fi Round Trip Time (RTT)的技术,通过计算信号往返时间来确定设备与AP之间的距离。以下是代码的详细功能介绍:
1. 功能概述
FTM协议:FTM协议用于测量Wi-Fi信号的往返时间(RTT),从而计算设备与AP之间的距离。
RTT计算:通过测量信号从设备到AP的发送时间(TOD)和接收时间(TOA),计算RTT并转换为距离。
distance = RTT * c / 2
其中,c
是光速。应用场景:适用于室内定位、距离测量以及基于位置的服务。
2. 如何使用该示例
2.1 准备工作
至少两个支持FTM的ESP32设备。
确保设备在同一Wi-Fi信道上。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Component config -> Wi-Fi中启用FTM功能。
在Station端启用FTM Initiator支持。
在SoftAP端启用FTM Responder支持。
在Example Configuration中启用FTM报告日志(可选)。
2.3 编译和烧录
3. 应用场景
室内定位:在室内环境中,通过FTM测量设备与多个AP的距离,实现精确定位。
距离测量:测量设备与AP之间的实际距离,适用于基于位置的服务。
物联网设备:在物联网应用中,通过FTM实现设备的位置感知和动态路由。
技术 | 精度 | 实现复杂度 | 环境适应性 | 硬件要求 | 时间同步 | 接收端数量 |
---|---|---|---|---|---|---|
RSSI | 低(5-10米) | 简单 | 差 | 无需特殊硬件 | 不需要 | 单AP |
TOA | 中高(米级) | 复杂 | 中 | 需要特殊硬件 | 需要 | 单AP |
TDOA | 中高(米级) | 复杂 | 中 | 需要特殊硬件 | 不需要 | 多AP(≥3) |
FTM | 高(1-3米) | 中等 | 较好 | 需要支持FTM | 不需要 | 单AP |
技术 | 精度 | 覆盖范围 | 硬件要求 | 实现复杂度 | 功耗 | 成本 | 适用场景 |
---|---|---|---|---|---|---|---|
Wi-Fi RSSI | 低(5-10米) | 大 | 无需特殊硬件 | 简单 | 高 | 高 | 大范围覆盖,低精度需求 |
Wi-Fi FTM | 高(1-3米) | 大 | 需要支持FTM | 中等 | 高 | 高 | 大范围覆盖,高精度需求 |
BLE RSSI | 低(2-5米) | 小 | 无需特殊硬件 | 简单 | 低 | 低 | 小范围覆盖,低功耗需求 |
BLE AoA/AoD | 高(0.1-1米) | 小 | 需要支持AoA/AoD | 复杂 | 低 | 低 | 小范围覆盖,高精度需求 |
iperf
Iperf是一种网络性能测试工具,用于测量网络带宽、延迟、丢包等指标。该示例实现了Iperf协议,可以在ESP32设备之间或ESP32与计算机之间进行性能测试。以下是代码的详细功能介绍:
1. 功能概述
性能测试:该示例支持TCP和UDP协议的网络性能测试,包括带宽、延迟和丢包等指标
多种模式:
Station模式:ESP32作为客户端,连接到目标AP并测试与服务器的性能。
SoftAP模式:ESP32作为服务器,测试与客户端的性能。
兼容性:支持与Iperf 2.x版本的兼容性。
2. 如何使用该示例
2.1 准备工作
两个ESP32设备,或一个ESP32设备和一台运行Iperf工具的计算机。
确保设备在同一网络中。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Component config/ESP System Settings/Channel for console output中选择适当的串口输出接口(默认使用UART0)。
使用
sdkconfig.defaults
文件进行性能测试的特定配置。2.3 编译和烧录
3. 应用场景
网络性能测试:用于测量Wi-Fi网络的带宽、延迟和丢包等指标。
设备性能评估:评估ESP32设备的网络性能。
网络优化:通过性能测试结果优化网络配置和参数。
itwt
这段代码展示了如何使用**iTWT(Individual Target Wake Time)**功能,这是一种Wi-Fi 6(802.11ax)引入的节能技术,允许设备与AP协商唤醒时间,从而减少功耗。以下是代码的详细功能介绍:
1. 功能概述
iTWT功能:iTWT允许设备与AP协商特定的唤醒时间,设备在非唤醒时间可以进入低功耗模式,从而节省能量。
工作模式:
Modem Sleep(默认模式):支持iTWT功能,并可以通过控制台命令配置iTWT。
Light Sleep(未来支持):需要系统支持轻睡眠模式,控制台命令在此模式不可用
节能效果:启用iTWT后,设备的典型电流消耗和平均电流显著降低。
2. 如何使用该示例
2.1 准备工作
一个支持iTWT功能的ESP32设备。
一个支持iTWT功能的AP(接入点)。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Component config -> Wi-Fi中启用iTWT功能。
配置Wi-Fi模式为Station模式。
2.3 编译和烧录
3. 应用场景
低功耗设备:适用于需要长时间运行的电池供电设备,如物联网传感器、智能家居设备等。
节能优化:通过iTWT功能优化设备的功耗,延长电池寿命。
Wi-Fi 6网络:适用于支持Wi-Fi 6的网络环境,充分利用iTWT的节能特性。
power_save
这段代码展示了如何使用ESP32的Wi-Fi节能模式(Power Save Mode),通过在不同的睡眠模式下降低功耗,从而延长设备的电池寿命。以下是代码的详细功能介绍:
1. 功能概述
节能模式:ESP32支持多种Wi-Fi节能模式,在Station模式下通过周期性地切换活跃状态和睡眠状态来降低功耗。
工作模式:
无节能模式(默认模式):ESP32以全功率运行,不启用节能功能。
最小Modem Sleep模式:设备在每个DTIM(Delivery Traffic Indication Message)周期唤醒以接收信标(Beacon),广播数据不会丢失。
最大Modem Sleep模式:设备在每个监听间隔(Listen Interval)唤醒以接收信标,广播数据可能会丢失,但功耗更低。
节能效果:启用节能模式后,设备的典型电流消耗和平均电流显著降低。
2. 应用场景
低功耗设备:适用于需要长时间运行的电池供电设备,如物联网传感器、智能家居设备等。
节能优化:通过节能模式优化设备的功耗,延长电池寿命。
Wi-Fi连接保持:在节能模式下,设备可以保持与AP的连接,同时降低功耗。
3. 注意事项
AP配置:DTIM周期和监听间隔由AP决定,影响节能效果。
数据丢失:在最大Modem Sleep模式下,广播数据可能会丢失。
模式选择:根据应用需求选择合适的节能模式,平衡功耗和数据接收。
roaming
这段代码展示了如何使用**802.11k(Radio Resource Measurement)和802.11v(Wireless Network Management)**协议实现Wi-Fi漫游功能。漫游功能允许设备在多个AP之间无缝切换,以保持最佳的网络连接质量。以下是代码的详细功能介绍:
1. 功能概述
漫游功能:通过802.11k和802.11v协议,设备可以在多个AP之间无缝切换,以保持最佳的网络连接质量。
802.11k:提供无线资源测量功能,帮助设备收集周围AP的信息。
802.11v:提供无线网络管理功能,支持BSS(Basic Service Set)过渡管理,允许AP指导设备切换到另一个AP。
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
多个支持802.11k和802.11v的AP。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Component config -> Wi-Fi中启用802.11k和802.11v支持。
配置Wi-Fi模式为Station模式。
3. 应用场景
移动设备:适用于需要在多个AP之间移动的设备,如智能手机、平板电脑等。
无缝漫游:适用于需要无缝漫游的场景,如企业办公、医院、商场等。
网络优化:通过漫游功能优化设备的网络连接质量,提高用户体验。
4. 注意事项
AP支持:确保AP支持802.11k和802.11v协议,否则无法正常使用漫游功能。
信号强度:设备会根据AP的信号强度和质量决定是否切换,确保AP的覆盖范围重叠。
网络配置:确保所有AP使用相同的SSID和安全设置,以实现无缝漫游。
scan
这段代码展示了如何使用ESP32的Wi-Fi驱动进行AP(接入点)扫描,以发现附近的Wi-Fi网络。以下是代码的详细功能介绍:
1. 功能概述
AP扫描:ESP32可以扫描附近的Wi-Fi网络,并获取每个AP的详细信息,包括SSID、RSSI(信号强度)、认证模式、加密方式和信道等。
扫描结果:扫描结果会显示在串口监视器中,用户可以根据需要选择目标网络进行连接。
2. 如何使用该示例
2.1 准备工作
一块ESP32开发板(如ESP32-DevKitC)。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration菜单中:
设置扫描列表的最大大小(Max size of scan list),即最多可以扫描的AP数量。2.3 编译和烧录
3.扫描结果:扫描结果显示每个AP的SSID、RSSI、认证模式、加密方式和信道等信息
I (2783) scan: SSID IoTNetwork I (2783) scan: RSSI -50 I (2783) scan: Authmode WIFI_AUTH_WPA2_PSK I (2783) scan: Pairwise Cipher WIFI_CIPHER_TYPE_CCMP I (2793) scan: Group Cipher WIFI_CIPHER_TYPE_CCMP I (2793) scan: Channel 5
4. 应用场景
网络发现:适用于需要发现附近Wi-Fi网络的应用,如智能家居、物联网设备等。
网络选择:用户可以根据扫描结果选择目标网络进行连接。
网络分析:适用于需要分析Wi-Fi网络环境的场景,如网络优化、故障排查等。
5. 注意事项
扫描范围:ESP32的Wi-Fi扫描范围受限于硬件和信号强度,建议在信号较强的环境下进行扫描。
扫描列表大小:根据需求设置扫描列表的最大大小,以避免内存不足。
功耗:Wi-Fi扫描会消耗一定的电量,建议在电池供电的应用中合理使用。
smart_config
1. 功能概述
SmartConfig功能:通过ESPTOUCH协议,ESP32可以从手机APP获取目标Wi-Fi网络的SSID和密码,并自动连接到该网络。
ESPTOUCH协议:ESPTOUCH是一种基于UDP广播的协议,手机APP将Wi-Fi配置信息通过数据包发送给ESP32设备。
适用场景:适用于需要快速配置设备连接到Wi-Fi的场景,如智能家居、物联网设备等
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
一部安装了ESPTOUCH APP的手机(Android或iOS)。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Component config -> Wi-Fi中启用SmartConfig功能。
2.3 编译和烧录
3. 应用场景
智能家居:适用于智能家居设备的快速Wi-Fi配置,如智能灯泡、智能插座等。
物联网设备:适用于物联网设备的快速联网配置,如传感器、控制器等。
快速部署:适用于需要快速部署大量设备的场景,如商场、酒店等。
softap_sta
这段代码展示了如何使ESP32同时作为**SoftAP(软接入点)和Station(客户端)工作,并支持NAPT(网络地址端口转换)**功能,从而实现Wi-Fi NAT路由器的功能。以下是代码的详细功能介绍:
1. 功能概述
SoftAP模式:ESP32作为接入点,允许其他设备连接到它。
Station模式:ESP32作为客户端,连接到另一个Wi-Fi网络。
NAPT功能:在SoftAP接口上启用NAPT,使连接到SoftAP的设备可以通过Station接口访问外部网络。
应用场景:适用于需要将设备同时作为AP和客户端使用的场景,如Wi-Fi中继器、NAT路由器等。
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
一个外部Wi-Fi网络(用于Station模式连接)。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration中:
设置SoftAP的SSID和密码。
设置Station模式的目标AP的SSID和密码。
可选:根据需要修改其他配置选项。
2.3 编译和烧录
3. 应用场景
Wi-Fi中继器:适用于需要扩展Wi-Fi覆盖范围的场景。
NAT路由器:适用于将本地网络连接到外部网络的场景。
物联网网关:适用于需要将多个设备连接到外部网络的物联网应用。
4. 注意事项
网络配置:确保SoftAP和Station模式的网络配置正确,以避免连接问题。
NAPT性能:NAPT功能可能会影响网络性能,建议在低负载环境下使用。
安全性:确保SoftAP和Station模式的密码设置足够安全,以防止未经授权的访问。
wifi_eap_fast
wifi_enterprise
这段代码展示了如何使用WPA2-Enterprise加密和EAP-FAST方法,使ESP32设备能够连接到支持企业级加密的Wi-Fi网络。以下是代码的详细功能介绍:
1. 功能概述
WPA2-Enterprise加密:WPA2-Enterprise是一种基于802.1X认证的Wi-Fi加密方式,适用于企业级网络。
EAP-FAST方法:EAP-FAST(Extensible Authentication Protocol - Flexible Authentication via Secure Tunneling)是一种基于隧道的认证方法,支持快速重新认证。
认证流程:设备通过EAP-FAST方法与AP进行认证,使用用户名、密码和可选的身份信息(Identity)进行身份验证。
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
一个支持WPA2-Enterprise加密的AP。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration中:
设置目标AP的SSID。
输入EAP-ID、用户名和密码。
启用或禁用服务器验证(Validate Server)选项。
2.3 编译和烧录
3. 应用场景
企业网络:适用于需要高安全性的企业级Wi-Fi网络。
教育机构:适用于学校、大学等教育机构的Wi-Fi网络。
政府机构:适用于政府机构的内部网络,确保数据安全。
wps
这段代码展示了如何使用**WPS(Wi-Fi Protected Setup)**协议,使ESP32设备能够快速连接到Wi-Fi路由器。WPS协议简化了Wi-Fi连接的过程,特别适用于需要简化用户操作的场景。以下是代码的详细功能介绍:
1. 功能概述
WPS协议:WPS是一种简化Wi-Fi网络连接的技术,支持两种模式:
PBC(Push Button Configuration)模式:用户按下路由器上的WPS按钮,ESP32会自动连接到路由器。
PIN(Personal Identification Number)模式:ESP32生成一个PIN码,用户需在路由器上输入该PIN码以完成连接。
适用场景:适用于需要简化Wi-Fi连接流程的场景,如智能家居设备、物联网设备等。
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
一个支持WPS功能的路由器。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration中:
选择WPS模式(PBC或PIN)。
如果是PBC模式,确保路由器支持PBC功能。
如果是PIN模式,ESP32会生成一个PIN码,用户需在路由器上输入该PIN码。
2.3 编译和烧录
3. 应用场景
智能家居设备:适用于需要简化Wi-Fi连接流程的智能家居设备,如智能灯泡、智能插座等。
物联网设备:适用于需要快速连接到Wi-Fi网络的物联网设备,如传感器、控制器等。
用户友好性:适用于需要简化用户操作的场景,如商场、酒店等公共场所的Wi-Fi连接。
4. 注意事项
路由器支持:确保路由器支持WPS功能,并启用WPS模式。
安全性:WPS协议存在一定的安全风险,建议在安全的环境中使用。
PIN码管理:在PIN模式下,确保PIN码的正确性,以避免连接失败。
wps_softap_registrar
这段代码展示了如何使用WPS(Wi-Fi Protected Setup)Registrar模式,使ESP32设备作为软接入点(SoftAP)时,能够通过WPS协议简化客户端设备的连接过程。以下是代码的详细功能介绍:
1. 功能概述
WPS Registrar模式:ESP32作为WPS注册器(Registrar),允许客户端设备通过WPS协议快速连接到SoftAP。
WPS模式:
PBC(Push Button Configuration)模式:用户按下客户端设备上的WPS按钮,ESP32会自动与设备建立连接。
PIN(Personal Identification Number)模式:ESP32生成一个PIN码,用户需在客户端设备上输入该PIN码以完成连接。
适用场景:适用于需要简化客户端设备连接到SoftAP的场景,如智能家居设备、物联网设备等。
2. 如何使用该示例
2.1 准备工作
一个ESP32开发板(如ESP32-DevKitC)。
一个支持WPS功能的客户端设备(如智能手机、平板电脑等)。
一根USB线用于供电和编程。
2.2 配置项目
打开项目配置菜单(
idf.py menuconfig
)。在Example Configuration中:
选择WPS模式(PBC或PIN)。
如果是PBC模式,确保客户端设备支持PBC功能。
如果是PIN模式,ESP32会生成一个PIN码,用户需在客户端设备上输入该PIN码
2.3 编译和烧录
3. 应用场景
智能家居设备:适用于需要简化客户端设备连接到SoftAP的智能家居设备,如智能灯泡、智能插座等。
物联网设备:适用于需要快速连接到SoftAP的物联网设备,如传感器、控制器等。
用户友好性:适用于需要简化用户操作的场景,如商场、酒店等公共场所的Wi-Fi连接。
4. 注意事项
客户端设备支持:确保客户端设备支持WPS功能,并启用WPS模式。
安全性:WPS协议存在一定的安全风险,建议在安全的环境中使用。
PIN码管理:在PIN模式下,确保PIN码的正确性,以避免连接失败。