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