【花雕学编程】Arduino动手做(230)---WifiCam: 无线网络摄像头HTTP服务器

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
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 帧/秒

在这里插入图片描述

实验模块接线示意图

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

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

在这里插入图片描述

项目实验之十: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();
}

实验串口返回情况

在这里插入图片描述
打开浏览器控制页面:http://192.168.28.223/

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

在这里插入图片描述

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

在这里插入图片描述
第三种是视频流MJPEG格式,这里实验使用800X600格式,可以拍摄21.17fps

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

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

【花雕学编程】Arduino动手做(230)---WIFI无

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值