在掌控板上搭建http服务器

发布于:2024-10-17 ⋅ 阅读:(16) ⋅ 点赞:(0)

在掌控板上搭建http服务器

打开Arduino IDE,并且已经添加了ESP32的支持库。以下是创建一个基本HTTP服务器的步骤:

  1. 包含必要的库

    #include <WiFi.h>
    #include <WebServer.h>
    
  2. 配置WiFi
    替换ssidpassword为你的WiFi网络名称和密码。

    const char* ssid = "your_SSID";
    const char* password = "your_PASSWORD";
    
  3. 初始化Web服务器
    创建一个监听80端口的Web服务器实例。

    WebServer server(80);
    
  4. 定义处理函数
    为不同的URL路径定义处理函数。例如,当用户访问根目录时的处理函数。

    void handleRoot() {
      server.send(200, "text/html", "<h1>Welcome to32 Web Server</h1>");
    }
    
  5. 设置路由
    setup()函数中,设置路由和启动服务器。

    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password);
    
      // 等待WiFi连接
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
    
      // 打印ESP32的IP地址
      Serial.println("");
      Serial.println("WiFi connected.");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    
      // 定义根目录的处理函数
      server.on("/", handleRoot);
    
      // 启动服务器
      server.begin();
      Serial.println("HTTP server started.");
    }
    
  6. 处理客户端请求
    loop()函数中,不断处理客户端的请求。

    void loop() {
      server.handleClient();
    }
    
  7. 上传代码到ESP32
    使用Arduino IDE上传代码到你的ESP32开发板。

  8. 访问HTTP服务器
    打开浏览器,输入ESP32的IP地址(你可以通过串口监视器查看),你将看到由你的HTTP服务器返回的欢迎信息。

  9. 完整的代码如下

    #include <WiFi.h>
    #include <WebServer.h>
    const char* ssid = "your_SSID";   #将your_SSID替换成使用的wifi的SSID
    const char* password = "your_PASSWORD";    #将your_PASSWORD替换成使用的wifi的密码
    WebServer server(80);
    
    void handleRoot() {
      server.send(200, "text/html", "<h1>Welcome to ESP32 Web Server</h1>");
    }
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password);
    
      // 等待WiFi连接
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
    
      // 打印ESP32的IP地址
      Serial.println("");
      Serial.println("WiFi connected.");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    
      // 定义根目录的处理函数
      server.on("/", handleRoot);
    
      // 启动服务器
      server.begin();
      Serial.println("HTTP server started.");
    }
    
    void loop() {
      server.handleClient();
    }
    
    1. 运行结果

    将代码编译上传后,打开Arduino IDE的串口监视器,可以看到连接WiFi的过程,并打印出esp32 http服务器所在的IP地址,如图1所示。
    在这里插入图片描述

    图1 连接wifi的过程

    使用浏览器连接esp32 http服务器,运行结果如下:

    在这里插入图片描述

图2 使用浏览器登陆esp32 http服务器