【花雕学编程】Arduino动手做(230)---ESP32-CAM HTTP服务器
2024-09-221522
AI 快速预览详细
本文介绍了如何使用ESP32-CAM摄像头模块搭建HTTP服务器。ESP32-CAM是一款小型摄像头模块,配备ESP32-S芯片和2MP OV2640摄像头。它支持Wi-Fi(802.11b/g/n)和蓝牙(4.2带BLE),并内置microSD卡读卡器。通过本文,您可以学会从硬件连接到代码实现的全过程,轻松实现无线图像传输。
![]() 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 帧/秒 ![]() |






实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之二十二:设置ESP32-CAM使用WiFi的简单HTTP服务器
实验开源代码
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之二十二:设置ESP32-CAM使用WiFi的简单HTTP服务器
*/
#include
#include
// 替换为您的网络凭据
const char* ssid = "zhz3";
const char* password = "z156721";
// 创建 WebServer 对象,监听 80 端口
WebServer server(80);
// 处理根 URL 请求的函数
void handleRoot() {
String message = "";
message += "
Hello from ESP32-CAM!
";message += "
IP Address: ";
";message += WiFi.localIP().toString();
message += "
server.send(200, "text/html", message);
}
// 处理额外页面请求的函数
void handlePage() {
server.send(200, "text/html", "This is an additional page.");
}
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();
}[/code]