Build a Powerful Smart Surveillance System with ESP32-CAM

Overview

The open-source project ESP32-CAM_MJPEG2SD provides a powerful ESP32 camera application that supports various functions such as motion detection, scheduled shooting, audio recording, and remote control. It can store captured images as AVI videos on an SD card and stream video in real-time to a browser for viewing. The project supports various extensions, such as controlling a pan-tilt system and integrating various sensors, providing users with a comprehensive smart surveillance system solution.

Main Features

  1. 1. Motion Detection Recording: The application can detect motion through the camera or PIR/radar sensors and automatically start recording AVI video.

  2. The following image illustrates motion detection:

    Build a Powerful Smart Surveillance System with ESP32-CAM

  3. 2. Scheduled Recording: This application also supports scheduled shooting, allowing regular photo captures saved as AVI videos.

  4. 3. Audio Recording: If a microphone is connected, audio in WAV format can be recorded simultaneously with the video and embedded in the AVI file.

  5. 4. Pan-Tilt Control: The application supports connecting servo motors to control the camera’s pan and tilt. It can also control the lighting.

  6. 5. Remote Control: This application supports remote control of devices with the camera installed via a browser, such as controlling vehicles for FPV.

  7. 6. Alarm Notification: Supports sending motion detection alarms via instant messaging software interfaces or email.

    Build a Powerful Smart Surveillance System with ESP32-CAM

  8. 7. Multi-Stream Media: Can simultaneously transmit video streams to both a browser and a remote NVR system.

  9. 8. File Management: Supports uploading/downloading recorded video files via FTP, HTTPS, WebDAV, etc. It can also be downloaded and played directly in the browser.

    Build a Powerful Smart Surveillance System with ESP32-CAM

  10. 9. MQTT Control: Supports remote camera control via the MQTT protocol.

  11. 10. Expandability: Supports connecting servo motors, motor drivers, joysticks, and various sensors. Also provides machine learning interfaces.

Hardware Selection

This project supports two main control chips: ESP32 and ESP32-S3, with the ESP32-S3 having stronger performance, offering better functionality and performance.

Installation and Configuration

  1. 1. Download the project source code from GitHub and compile it using the Arduino IDE. Make sure to select the correct board model and partition scheme.

  2. 2. On first use, the device will enter AP mode, allowing you to connect to 192.168.4.1 to set WiFi and other parameters.

  3. 3. Subsequent upgrades of the application or webpage files can be done via OTA. You can also manage SD card contents using a WebDAV client.

  4. 4. Various parameters such as resolution, frame rate, and image quality can be adjusted on the web configuration interface. You can also configure peripheral devices and sensors.

Performance Data

Using a Sandisk Class 2 4GB SDHC card, the recording performance of ESP32-CAM_MJPEG2SD is as follows:

Resolution Max FPS Actual FPS Detection Delay (ms)
96×96 50 45 15
QQVGA 50 45 20
QCIF 50 45 30
HQVGA 50 45 40
240×240 50 45 55
QVGA 50 40 70
CIF 50 40 110
HVGA 50 40 130
VGA 25 20 80
SVGA 25 20 120
XGA 12.5 5 180
HD 12.5 5 220
SXGA 12.5 5 300
UXGA 12.5 5 450

Using the Freenove ESP32-S3 Cam board (ESP32-S3 N8R8 module), performance is approximately twice that of the ESP32, capable of recording all resolutions including audio at maximum OV2640 frame rates, with only the UXGA resolution limited to 10FPS.

Other Features

  1. 1. WebDAV Service: Built-in WebDAV server allows direct access to SD card contents via clients like Windows Explorer.

  2. 2. Remote Control: Supports remote control of devices with the camera installed via a browser, such as remote vehicles.

  3. 3. Machine Learning: Supports integration of machine learning models based on Edge Impulse for further identification of targets of interest.

  4. 4. Camera Cluster: Supports simultaneous access to the web interface of multiple ESP32-CAM_MJPEG2SD camera devices.

  5. 5. NVR Streaming: Supports separate transmission of video, audio, and subtitle streams to remote NVR systems.

In summary, ESP32-CAM_MJPEG2SD is a feature-rich, high-performance ESP32 camera application that provides users with a versatile smart camera solution. Whether for security monitoring, field observation, or FPV applications, this project can meet various needs. For users with a certain level of hands-on ability, this is undoubtedly an excellent project worth trying.

Project Address: https://github.com/s60sc/ESP32-CAM_MJPEG2SD

For more content, please follow:

Leave a Comment

Your email address will not be published. Required fields are marked *