A simple camera webserver for the ESP32-S3, built with ESP-IDF. The board connects to your Wi-Fi and serves still images and a live MJPEG stream over HTTP.
- Single JPEG capture at
/jpg - Live MJPEG stream at
/stream - Modular code: Wi-Fi, camera and HTTP server are separate modules
- ESP32-S3 WROOM board with an OV-series camera (e.g. OV2640)
- PSRAM enabled
Other boards (AI-Thinker ESP32-CAM, WROVER-KIT, XIAO ESP32S3) are supported by selecting their pin map in main/camera_pinout.h.
main/
main.c Entry point
wifi_manager.c/.h Wi-Fi station setup
camera_manager.c/.h Camera initialization
http_server.c/.h HTTP endpoints
camera_pinout.h Board pin maps
personal.h Wi-Fi credentials (not tracked)
Requires ESP-IDF v5.x or newer.
-
Clone the repository:
git clone <repo-url> cd esp32_camera_webserver -
Edit
main/personal.hwith your Wi-Fi credentials:#ifndef PERSONAL_H #define PERSONAL_H #define WIFI_SSID "your-ssid" #define WIFI_PASS "your-password" #endif
-
Build and flash:
idf.py set-target esp32s3 idf.py build flash monitor -
Look for the IP address in the serial monitor, then open:
http://<device-ip>/jpg http://<device-ip>/stream
- Default resolution is QVGA. Change
frame_sizeinmain/camera_manager.cfor higher resolutions.

