前言
ESP32 内置了 Wi-Fi 功能,能够作为网页服务器(Web Server)向网络中的其他设备提供服务。通过在 ESP32 上运行网页服务器,可以创建基于浏览器的用户界面,用于监控传感器数据或控制设备状态,是实现物联网(IoT)应用的基础功能之一。
WebServer 库简介
Arduino-ESP32 核心库内置了 WebServer.h,它提供了一套简洁的 API 来快速构建 Web Server 轻量级的 HTTP 服务器。通过注册路由(URL 路径)及回调函数,实现请求分发与应答。适用于绝大多数典型 IOT 项目的本地网页交互。
选择建议
使用同步 WebServer 当: 轻量级,入门和资源受限场景,无需额外安装; 项目简单,只有一个用户; 请求处理非常快速(<100ms); 不需要同时处理其他重要任务; 内存资源非常有限;
使用异步 WebServer 当: 对大流量/高并发等复杂场景,需要高性能,服务多个用户; 有耗时操作(文件操作、网络请求); 需要实时功能(WebSocket); 需要处理上传/下载; 系统有其他重要任务需要及时响应;
同步阻塞模型,服务器一次只能处理一个客户端请求,必须等待当前请求完全处理完成后,才能处理下一个请求。
基础网页服务 (STA 模式)
在 STA 模式下创建一个基础的网页服务器,用于显示一个包含"Hello World!"的静态页面。
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "Maker"; // 替换为你的 Wi-Fi 名称
const char* password = "12345678"; // 替换为你的 Wi-Fi 密码
WebServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
// 连接 WiFi 网络
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
// 等待连接成功
while(WiFi.status() != WL_CONNECTED) {
delay();
Serial.();
}
Serial.();
Serial.();
Serial.();
Serial.(WiFi.());
server.(, handleRoot);
server.();
}
{
server.();
}
{
server.(, , ());
}
{
String htmlContent = ;
htmlContent += ;
htmlContent += ;
htmlContent += ;
htmlContent += ;
htmlContent += ;
htmlContent += ;
htmlContent += ;
htmlContent;
}


