分享免费的编程资源和教程

网站首页 > 技术教程 正文

如何在ESP32上搭建一个Web服务器 esp32做服务器

goqiw 2024-10-12 19:46:57 技术教程 61 ℃ 0 评论

Web服务器是一种可以通过网络提供网页或其他数据的程序,它可以让用户通过浏览器或其他客户端访问ESP32上的资源。

要在ESP32上搭建一个Web服务器,使用Arduino IDE和ESP32开发板支持包,以及WebServer库。WebServer库是一个基于HTTP协议的轻量级Web服务器库,使用它可以轻松地创建和注册不同的URI处理函数,以及发送和接收HTTP请求和响应。

以下是一个简单的Web服务器的代码示例,它可以实现以下功能:

  1. 连接到指定的WiFi网络,并打印出ESP32的IP地址。
  2. 创建一个WebServer对象,并监听80端口。
  3. 注册一个根目录(“/”)的URI处理函数,当用户访问该URI时,返回一个包含"Hello World!"的网页。
  4. 注册一个"/hello"目录的URI处理函数,当用户访问该URI时,返回一个包含"Hello from ESP32!"的网页。
  5. 注册一个未找到(404)的URI处理函数,当用户访问不存在的URI时,返回一个包含"Page Not Found!"的网页。
  6. 开始运行Web服务器,并等待用户的请求。
#include <WiFi.h>
#include <WebServer.h>

// WiFi网络名称和密码
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

// 创建一个WebServer对象
WebServer server(80);

// 根目录("/")的URI处理函数
void handleRoot() {
  // 发送HTTP响应头,指定内容类型为text/html
  server.sendHeader("Content-Type", "text/html");
  // 发送HTTP响应内容,包含一个简单的HTML网页
  server.send(200, "text/html", "<h1>Hello World!</h1>");
}

// "/hello"目录的URI处理函数
void handleHello() {
  // 发送HTTP响应头,指定内容类型为text/html
  server.sendHeader("Content-Type", "text/html");
  // 发送HTTP响应内容,包含一个简单的HTML网页
  server.send(200, "text/html", "<h1>Hello from ESP32!</h1>");
}

// 未找到(404)的URI处理函数
void handleNotFound() {
  // 发送HTTP响应头,指定内容类型为text/plain
  server.sendHeader("Content-Type", "text/plain");
  // 发送HTTP响应内容,包含一个简单的文本信息
  server.send(404, "text/plain", "Page Not Found!");
}

void setup() {
  // 初始化串口通信,并设置波特率为115200
  Serial.begin(115200);
  // 连接到WiFi网络,并打印出ESP32的IP地址
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  
  // 注册不同的URI处理函数
  server.on("/", handleRoot); // 根目录("/")
  server.on("/hello", handleHello); // "/hello"目录
  server.onNotFound(handleNotFound); // 其他不存在的目录
  
  // 开始运行Web服务器
  server.begin();
}

void loop() {
  // 处理用户的请求
  server.handleClient();
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表