ESP32系列四:搭建HTTP Web Server

随着物联网技术的快速发展,ESP32作为一种强大的WiFi和蓝牙芯片,逐渐成为许多物联网项目的首选方案。本篇文章将介绍如何使用ESP32搭建一个简单的HTTP Web Server,允许用户通过浏览器访问并控制设备。

准备工作

在开始之前,确保你的开发环境已经安装了以下软件: 1. Arduino IDE 2. ESP32开发板的驱动程序 3. ESP32板的支持库(可以通过Arduino IDE的库管理器进行安装)。

硬件连接

ESP32开发板可以直接通过USB连接到电脑,不需要额外的硬件连接。在实际项目中,可能还会连接传感器或其他外设,但这里我们专注于Web服务器的搭建。

代码示例

下面是一个简单的ESP32 HTTP Web Server示例代码。我们将创建一个可以控制GPIO引脚的Web页面。

#include <WiFi.h>
#include <WebServer.h>

// WiFi和服务器设置
const char* ssid = "your_SSID";  // 请替换为你的WiFi SSID
const char* password = "your_PASSWORD";  // 请替换为你的WiFi密码

WebServer server(80);  // 创建HTTP服务器对象

// 当用户访问根目录时的回调函数
void handleRoot() {
  server.send(200, "text/html", 
              "<h1>欢迎来到ESP32 Web Server</h1>"
              "<p><a href=\"/on\">点此打开LED</a></p>"
              "<p><a href=\"/off\">点此关闭LED</a></p>");
}

// 打开LED的回调函数
void handleOn() {
  digitalWrite(LED_BUILTIN, HIGH);  // 打开内置LED
  server.send(200, "text/html", "<h1>LED已打开</h1><p><a href=\"/\">返回</a></p>");
}

// 关闭LED的回调函数
void handleOff() {
  digitalWrite(LED_BUILTIN, LOW);  // 关闭内置LED
  server.send(200, "text/html", "<h1>LED已关闭</h1><p><a href=\"/\">返回</a></p>");
}

// 设置路由
void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);  // 设置内置LED引脚为输出模式

  // 连接WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("连接中...");
  }
  Serial.println("WiFi连接成功");
  Serial.println(WiFi.localIP());  // 打印ESP32的IP地址

  // 配置路由
  server.on("/", handleRoot);      // 访问根目录
  server.on("/on", handleOn);      // 打开LED
  server.on("/off", handleOff);    // 关闭LED

  server.begin();  // 启动服务器
  Serial.println("HTTP服务器已启动");
}

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

代码解析

  1. WiFi连接:通过WiFi.begin(ssid, password)连接WiFi网络,并使用WiFi.status()检查连接状态。

  2. HTTP服务器创建:使用WebServer server(80)创建一个HTTP服务器对象,并指定监听80端口。

  3. 路由设置:通过server.on()设置不同的路由和其相应的处理函数。例如访问根目录时,执行handleRoot(),打开LED时执行handleOn(),关闭LED时执行handleOff()

  4. 启动服务器:调用server.begin()启动服务器,并在loop()中调用server.handleClient()处理 incoming clients。

运行程序

  1. 将代码上传到ESP32开发板上。
  2. 打开串口监视器,查看输出信息,确认ESP32已连接到WiFi并获取到IP地址。
  3. 在浏览器中输入ESP32的IP地址(如http://192.168.1.10),可以看到LED控制的网页。

总结

通过以上简单的步骤,我们成功地搭建了一个ESP32的HTTP Web Server,并可以通过浏览器来控制内置LED的开关。在实际应用中,可以根据需要扩展更多功能,例如读取传感器数据、控制其他外设等。希望这篇文章能对你的ESP32项目有所帮助。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部