【花雕学编程】Arduino动手做(230)---设置ESP32-CAM使用WiFi的简单HTTP服务器

2024-09-22205
AI 快速预览详细 收起
本教程介绍了如何设置ESP32-CAM使用WiFi的简单HTTP服务器。通过详细的代码示例和实际操作步骤,展示了如何连接WiFi网络并启动HTTP服务器。最终可以在浏览器中输入IP地址查看结果。适合初学者和项目开发者。

00-.jpg

ESP32-CAM 是一款非常小的摄像头模块,配备 ESP32-S 芯片。除了 OV2640 摄像头和几个用于连接外围设备的 GPIO 外,它还具有一个 microSD 卡插槽,可用于存储使用摄像头拍摄的图像或存储文件以提供给客户。包括乐鑫 ESP32-S Wifi + 蓝牙+BLE 芯片、2MP 摄像头模块 OV2640 和带有 CH340 UART 芯片的 USB 编程适配器。

ESP32-Cam 是一款运行在 ESP32-S 芯片上并使用 OV2640 摄像头的小型摄像头模块。ESP32_Cam 也可以 OV7670 摄像头,但 OV2640 更好(更高的分辨率和内置的 JPEG 编码,这消除了 ESP32-S 的处理任务)。

ESP-32 Cam 规格
ESP-32 系列
它支持 Wi-Fi (802.11b/g/n)
支持蓝牙 (4.2 带 BLE)
内置 LED 闪光灯
9 个 IO 端口
支持 UART、SPI、I2C 和 PWM
内置 micro SD 读卡器
输入电源:3.3V / 5V(据报道,5V 供电比 3.3V 更稳定)

OV2640 摄像头
2 百万像素
阵列尺寸:UXGA (1600 x 1200)
镜头尺寸:1/4 英寸(6.35 毫米)
最大图像传输速率:15 帧/秒

 

10.jpg

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
 项目实验之二十二:设置ESP32-CAM使用WiFi的简单HTTP服务器

实验开源代码
 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
  项目实验之二十二:设置ESP32-CAM使用WiFi的简单HTTP服务器
*/

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

// 替换为您的网络凭据
const char* ssid = "zhz3";
const char* password = "z156721";

// 创建 WebServer 对象,监听 80 端口
WebServer server(80);

// 处理根 URL 请求的函数
void handleRoot() {
  String message = "<html><body>";
  message += "<h1>Hello from ESP32-CAM!</h1>";
  message += "<p>IP Address: ";
  message += WiFi.localIP().toString();
  message += "</p></body></html>";
  server.send(200, "text/html", message);
}

// 处理额外页面请求的函数
void handlePage() {
  server.send(200, "text/html", "<html><body>This is an additional page.</body></html>");
}

void setup() {
  Serial.begin(115200);
  Serial.println(" ");
  Serial.println("ESP32-CAM 准备就绪!");

  // 连接到 WiFi 网络
  WiFi.begin(ssid, password);
  Serial.print("连接到WiFi");
  int attempts = 0;
  while (WiFi.status() != WL_CONNECTED && attempts < 20) {
    delay(500);
    Serial.print("...");
    attempts++;
  }
  if (WiFi.status() == WL_CONNECTED) {
    Serial.println("\n已连接到WiFi");
    Serial.print("IP地址: ");
    Serial.println(WiFi.localIP());
  } else {
    Serial.println("\nFailed to connect to WiFi");
    return;
  }

  // 定义根 URL 处理程序
  server.on("/", handleRoot);

  // 定义额外页面的路由处理程序
  server.on("/page", HTTP_GET, handlePage);

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

void loop() {
  // 处理任何收到的请求
  server.handleClient();
}

实验串口返回情况

 

72-7.jpg

在PC端打开浏览器,输入IP地址

 

72-8.jpg

在手机端打开浏览器,输入IP地址

 

72-9.jpg

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -