驴友花雕 发表于 2024-9-7 18:43:31

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头


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 帧/秒



驴友花雕 发表于 2024-9-7 18:51:38

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之十:WifiCam: 无线网络摄像头HTTP服务器

下载esp32cam库
链接:https://github.com/yoursunny/esp32cam?tab=readme-ov-file



驴友花雕 发表于 2024-9-7 19:11:06

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

项目实验之十:WifiCam: 无线网络摄像头HTTP服务器
实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之十:WifiCam: 无线网络摄像头HTTP服务器
*/

// 引入WifiCam库
#include "WifiCam.hpp"
// 引入WiFi库
#include <WiFi.h>

// 定义WiFi的SSID和密码
static const char* WIFI_SSID = "zhz3";
static const char* WIFI_PASS = "z156721";

// 定义初始分辨率
esp32cam::Resolution initialResolution;

// 创建Web服务器,端口号为80
WebServer server(80);

void setup() {
// 初始化串口通信,波特率为115200
Serial.begin(115200);
Serial.println();
delay(1000);

// 设置WiFi模式为STA(Station)
WiFi.persistent(false);
WiFi.mode(WIFI_STA);
// 连接到WiFi网络
WiFi.begin(WIFI_SSID, WIFI_PASS);
// 等待WiFi连接结果
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.printf("WiFi连接失败 %d\n", WiFi.status());
    delay(5000);
    ESP.restart();
}
Serial.println("WiFi连接成功");
delay(1000);

{
    using namespace esp32cam;

    // 设置初始分辨率为1024x768
    initialResolution = Resolution::find(1024, 768);

    // 配置摄像头参数
    Config cfg;
    cfg.setPins(pins::AiThinker);// 设置引脚
    cfg.setResolution(initialResolution);// 设置分辨率
    cfg.setJpeg(80);// 设置JPEG质量

    // 初始化摄像头
    bool ok = Camera.begin(cfg);
    if (!ok) {
      Serial.println("摄像头初始化失败");
      delay(5000);
      ESP.restart();
    }
    Serial.println("摄像头初始化成功");
}

// 输出摄像头启动信息和设备IP地址
Serial.println("摄像头启动中");
Serial.print("http://");
Serial.println(WiFi.localIP());

// 添加请求处理程序
addRequestHandlers();
// 启动Web服务器
server.begin();
}

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

驴友花雕 发表于 2024-9-7 19:15:30

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

实验串口返回情况


驴友花雕 发表于 2024-9-7 19:16:39

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

打开浏览器控制页面:http://192.168.28.223/



驴友花雕 发表于 2024-9-7 19:20:24

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

分成照片格式BMP,不同大小规格供选择,打开后直接在浏览器上显示照片


驴友花雕 发表于 2024-9-7 19:26:33

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

照片格式还有JPG,也是不同大小规格供选择,打开后直接在浏览器上显示照片(晚上灯光环境,拍虚了)



驴友花雕 发表于 2024-9-7 20:59:00

【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头

第三种是视频流MJPEG格式,这里实验使用800X600格式,可以拍摄21.17fps

【【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头】

https://www.bilibili.com/video/BV1ZTp8eFEaU/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987


https://www.bilibili.com/video/BV1ZTp8eFEaU/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987



页: [1]
查看完整版本: 【花雕学编程】Arduino动手做(230)---WIFI无线网络摄像头