Arduino :BPI-BIT 配置异步HTTP Web服务器

本文档详细介绍了如何在Arduino ESP32(如BPI-BIT)上配置异步HTTP Web服务器,包括所需库的安装、函数解析、代码示例和实际现象。读者将学习如何处理HTTP GET请求并查看串口监视器获取IP地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

学习如何在 ESP32 开发板运行的 Arduino 核心上配置异步 HTTP Web 服务器。

在学习配置服务器前,因为在下面会涉及到 wifi 方面,所以请先看这篇文章 Arduino: 在 ESP32 上使用 WIFI

操作环境

测试使用的开发板: BPI-UNO32

测试使用的软件:Arduino IDE 1.8.9

为了设置网络服务器,需要安装两个库

  1. ESPAsyncWebServer 该库允许设置异步 HTTP(和Websocket)服务器,这意味着它可以同时处理多个连接

  2. AsyncTCP 该库是 ESP32 开发板的异步 TCP 库,它是 ESPAsyncWebServer 库实现的基础

(可以到 Arduino IDE 的 工具-库管理-搜索库 搜索并进行下载)

函数解析

AsyncWebServer::AsyncWebServer(uint16_t port)创建一个 AsyncWebServer 对象,使用它设置异步 ESP32 HTTP服务器

代码讲解

// 配置服务器将侦听传入HTTP请求的路由以及在该路由上收到请求时将执行的函数
server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "Hello World");
  });

配置服务器将侦听传入HTTP请求的路由以及在该路由上收到请求时将执行的函数

  1. 第一个参数,此方法接收一个字符串,其中包含将要侦听的路径。我们将其设置为侦听"/hello"路由上的请求。
  2. 第二个参数,它接收一个类型为WebRequestMethod(此处定义)的枚举,它指定在该路由上允许哪种类型的HTTP请求。我们将定义仅接收HTTP GET请求,因此我们使用值HTTP_GET。
  3. 第三个参数,它接收一个函数,签名由 ArRequestHandlerFunction 类型定义在这里我们将指定该处理函数必须返回 void ,并作为参数接收指向 AsyncWebServerRequest 类型对象的指针。每个传入的客户端将被封装在此类对象中,并且两者都处于活动状态,直到连接断开

使用示例

将下面代码通过 Arduino IDE 直接上传到 ESP32 中

#include <WiFi.h>
#include <FS.h>
#include <ESPAsyncWebServer.h>


// 记得修改 **** 的内容
const char *ssid = "********";
const char *password = "*******";
AsyncWebServer server(80);  // 默认的端口
void setup()
{
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
  Serial.println(WiFi.localIP());
  server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "Hello World");
  });
  server.begin(); // 开启服务器
}
void loop()
{
}

现象

打开 Arduino IDE-工具-串口监视器,即可发现 IP 地址
[外链图片转存失败(img-qtPIgvH9-1562831688152)(2.png)]

如果 ESP32 连接的是 PC 端的移动热点,则打开 PC 端的浏览器,输入 你的 IP 地址/hello ,进入即可返回以下现象
在这里插入图片描述

参考资料

ESP32 Arduino教程:异步HTTP Web服务器

arduino-esp32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值