A network video monitoring system based on ESP32-S3-CAM, supporting real-time video streaming, photo capture, video recording, and more.
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License (CC BY-NC-SA 3.0)
- ❌ No Commercial Use: This project cannot be used for any commercial purposes
- ✅ Non-Commercial Use Allowed: Personal learning, research, education, and other non-commercial purposes
- ✅ Modification and Distribution Allowed: But must use the same license
- ✅ Attribution Required: Must preserve the original author's attribution
For details, please visit: https://creativecommons.org/licenses/by-nc-sa/3.0/
This project is modified from following open-source projects:
- Copyright: Freenove
- Website: www.freenove.com
- License: CC BY-NC-SA 3.0
- Note: The entire project is constrained by this license
- Copyright: Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
- License: Apache License 2.0
- Note: Although this code allows commercial use, the entire project is restricted by CC BY-NC-SA 3.0
- Real-time video streaming on web (MJPEG format)
- Web-based photo capture and save to SD card
- Video recording (AVI format, MJPEG encoding)
- Automatic video segmentation (2 minutes per segment)
- Automatic SD card space cleanup (dynamic threshold, frees 2GB per cleanup)
- HTTP Basic Authentication
- NTP time synchronization
- System uptime display
- Camera parameter adjustment (resolution, quality, brightness, etc.)
- ESP32-S3-CAM(GOOUUU version) development board or ESP32-S3 WROVER Board (Freenove)
- OV5640 camera or other cameras supporting ESP32-S3
- SD card (64GB or larger recommended)
- SG-90 servo (optional, for pan-tilt control)
For Users in China:
- Use ESP32-S3-CAM (GOOUUU version / 果云版)
- Ensure the camera module is properly connected
For International Users:
- Use ESP32-S3 WROVER Board
- Ensure the camera module is properly connected
-
Install Arduino IDE
- Download and install the latest Arduino IDE from https://www.arduino.cc/en/software
-
Install ESP32 Board Package
- Open Arduino IDE
- Go to Tools > Board > Boards Manager
- Search for "esp32" and install "esp32 by Espressif Systems"
-
Select Board
- Go to Tools > Board > esp32
- Select "ESP32S3 Dev Module"
-
Configure Board Settings
- PSRAM: "OPI PSRAM" (for ESP32-S3-CAM with PSRAM)
- Flash Mode: "QIO"
- Flash Size: "8MB (app 3MB OTA 1.9MB)"
- Partition Scheme: "Default 8MB with spiffs (3MB APP/1.5MB SPIFFS)"
- CPU Frequency: "240MHz (WiFi)"
- Upload Speed: "921600"
-
Modify Configuration
- Open
ESP32_S3_Camera_Monitor.ino - Find and modify the following lines:
const char* ssid = "Your_WiFi_Name"; const char* password = "Your_WiFi_Password";
- Open
auth.h - Find and modify the following lines:
#define AUTH_USERNAME "admin" #define AUTH_PASSWORD "password123"
- IMPORTANT: Change the default password to a strong password for security
- For ESP32-S3-CAM (GOOUUU version) or ESP32-S3 WROVER Board (Freenove), ensure:
#define CAMERA_MODEL_ESP32S3_EYE
- Note: Both GOOUUU version and WROVER Board use the same camera model definition
- Open
-
Upload Code
- Connect the board to your computer via USB
- Select the correct COM port in Tools > Port
- Click the Upload button (→) in Arduino IDE
- After successful upload, open the Serial Monitor (Tools > Serial Monitor)
- Set baud rate to 115200
- Wait for the WiFi connection message
- Note the IP address displayed (e.g., "192.168.1.100")
- Open a web browser and navigate to:
http://192.168.1.100 - Login with the username and password configured in Step 5
- View Live Video: Click the "Start Stream" button to load the video stream on main page
- Capture Photo: Click the "Capture Photo" button to save a photo to the SD card
- Adjust Settings: Modify camera parameters (resolution, quality, brightness, etc.) in the settings panel
- View SD Card Info: Monitor SD card usage and system uptime on the dashboard
- Camera not working: 1.Check camera connection and ensure the correct camera model is selected;2.Do not close the tab, restart the board, when the board is restarted, open the video stream again.(The second one is a known issue)
- WiFi not connecting: Verify WiFi credentials and ensure the board is within range
- SD card not detected: Format the SD card as FAT32 and ensure it's properly inserted
- Video stream not loading: Click the "Start Stream" button manually or restart the board.
For detailed documentation, please see the readme directory:
- Tech Stack (English / Chinese)
- Development Documentation (English / Chinese)
- Feature Updates (English / Chinese)
AI-Generated Code Notice
This project's source code was generated with assistance from various AI language models. While the code has been reviewed and tested, users should be aware of the following:
-
No Warranty: This software is provided "as is", without any express or implied warranties. The authors make no representations about the suitability of this software for any purpose.
-
User Responsibility: Users are responsible for:
- Reviewing and testing the code before deployment
- Ensuring the code meets their specific requirements
- Maintaining and updating the code as needed
- Backing up data before using this system
-
Limitations: AI-generated code may contain:
- Undiscovered bugs or edge cases
- Security vulnerabilities that require review
- Performance optimizations that may be needed
-
Recommendations:
- Conduct thorough testing in a controlled environment
- Review security implications, especially for network-connected devices
- Regularly update dependencies and firmware
- Monitor system performance and logs
-
Attribution: This project acknowledges the assistance of AI language models in code generation.
The authors are not liable for any damages arising from the use of this software.
- No Commercial Use: This software cannot be used for any commercial purposes
- Preserve Attribution: When using or modifying this software, you must preserve the original author's attribution
- Share Alike: Any derivative works must be distributed under the CC BY-NC-SA 3.0 license
- License Confirmation: The license for Freenove example code is not explicitly stated in the code. Please confirm before use
基于ESP32-S3-CAM的网络视频监控系统,支持实时视频流、拍照、视频录制等功能。
本项目采用 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License (CC BY-NC-SA 3.0)
- ❌ 禁止商业用途:本项目不能用于任何商业目的
- ✅ 允许非商业用途:个人学习、研究、教育等非商业用途
- ✅ 允许修改和分发:但必须使用相同的许可证
- ✅ 必须署名:必须保留原作者的署名
详情请查看:https://creativecommons.org/licenses/by-nc-sa/3.0/
本项目基于以下开源项目修改而来:
- 版权所有:Freenove
- 网站:www.freenove.com
- 许可证:CC BY-NC-SA 3.0
- 说明:本项目整体受此许可证约束
- 版权:Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
- 许可证:Apache License 2.0
- 说明:虽然此代码允许商业用途,但本项目整体受 CC BY-NC-SA 3.0 限制
- Web端实时视频流显示(MJPEG格式)
- Web端控制拍照并保存到SD卡
- 视频录制功能(AVI格式,MJPEG编码)
- 视频自动分段录制(2分钟一段)
- SD卡空间自动清理(动态阈值,每次清理释放约2GB空间)
- HTTP Basic Authentication认证
- NTP时间同步
- 系统运行时长显示
- 摄像头参数调节(分辨率、质量、亮度等)
- ESP32-S3-CAM开发板
- OV5640摄像头或其他支持ESP32-S3的摄像头
- SD卡(建议64GB或更大)
- SG-90舵机(可选,用于云台控制)
国内用户:
- 使用 ESP32-S3-CAM(果云版)
- 确保摄像头模块正确连接
国外用户:
- 使用 ESP32-S3 WROVER Board
- 确保摄像头模块正确连接
-
安装Arduino IDE
- 从 https://www.arduino.cc/en/software 下载并安装最新的Arduino IDE
-
安装ESP32开发板包
- 打开Arduino IDE
- 进入 Tools > Board > Boards Manager
- 搜索"esp32"并安装"esp32 by Espressif Systems"
-
选择开发板
- 进入 Tools > Board > esp32
- 选择"ESP32S3 Dev Module"
-
配置开发板设置
- PSRAM: "OPI PSRAM"(用于带PSRAM的ESP32-S3-CAM)
- Flash Mode: "QIO"
- Flash Size: "8MB (app 3MB OTA 1.9MB)"
- Partition Scheme: "Default 8MB with spiffs (3MB APP/1.5MB SPIFFS)"
- CPU Frequency: "240MHz (WiFi)"
- Upload Speed: "921600"
-
修改配置
- 打开
ESP32_S3_Camera_Monitor.ino - 找到并修改以下行:
const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码";
- 打开
auth.h - 找到并修改以下行:
#define AUTH_USERNAME "admin" #define AUTH_PASSWORD "password123"
- 重要提示:为了安全起见,请将默认密码更改为强密码
- 对于ESP32-S3-CAM(果云版)或ESP32-S3 WROVER Board(Freenove),确保:
#define CAMERA_MODEL_ESP32S3_EYE
- 注意:果云版和WROVER板都使用相同的摄像头型号定义
- 打开
-
上传代码
- 通过USB将开发板连接到计算机
- 在 Tools > Port 中选择正确的COM端口
- 点击Arduino IDE中的上传按钮(→)
- 上传成功后,打开串口监视器(Tools > Serial Monitor)
- 将波特率设置为115200
- 等待WiFi连接消息
- 记录显示的IP地址(例如:"192.168.1.100")
- 打开Web浏览器并访问:
http://192.168.1.100 - 使用第二步中配置的用户名和密码登录
- 查看实时视频:点击"在新标签页打开视频流"按钮加载视频流(注意:视频流不会自动加载,这是一个已知问题)
- 拍照:点击"拍照"按钮将照片保存到SD卡
- 调整设置:在设置面板中修改摄像头参数(分辨率、质量、亮度等)
- 查看SD卡信息:在仪表板上监控SD卡使用情况和系统运行时长
- 摄像头不工作:1.检查摄像头连接并确保选择了正确的摄像头型号;2.不要关闭页面,重启开发板,重启完了再打开视频流,这是一个已知问题
- WiFi无法连接:验证WiFi凭证并确保开发板在信号范围内
- SD卡未检测到:将SD卡格式化为FAT32并确保正确插入
- 视频流未加载:点击"Start Stream"按钮手动加载视频流(注意:自动加载是一个已知问题,手动加载是必要的)
详细文档请查看 readme 目录:
AI生成代码声明
本项目的源代码在各种AI语言模型的协助下生成。虽然代码已经过审查和测试,但用户应注意以下事项:
-
无保证:本软件按"原样"提供,不提供任何明示或暗示的保证。作者不对本软件适用于任何目的作任何声明。
-
用户责任:用户负责:
- 在部署前审查和测试代码
- 确保代码满足其特定要求
- 根据需要维护和更新代码
- 使用本系统前备份数据
-
局限性:AI生成的代码可能包含:
- 未发现的错误或边缘情况
- 需要审查的安全漏洞
- 可能需要的性能优化
-
建议:
- 在受控环境中进行彻底测试
- 审查安全影响,特别是对于网络连接的设备
- 定期更新依赖项和固件
- 监控系统性能和日志
-
署名:本项目承认AI语言模型在代码生成方面的协助。
作者不对使用本软件造成的任何损害承担责任。
- 禁止商业用途:本软件不能用于任何商业目的
- 保留署名:使用或修改本软件时,必须保留原作者的署名
- 相同方式共享:任何衍生作品必须使用 CC BY-NC-SA 3.0 许可证