top of page

The ESP32-CAM is a low-cost development board based on the ESP32-S module, which includes Wi-Fi + Bluetooth and an integrated OV2640 camera module. It’s widely used for IoT, surveillance, image recognition, and AI projects.

 

Key Features

  • Microcontroller: ESP32-S (dual-core, 32-bit, up to 240MHz)

  • Wi-Fi: 802.11 b/g/n

  • Bluetooth: BLE + Classic

  • Flash Memory: 4MB

  • SRAM: 520KB (plus external PSRAM up to 4MB)

  • Camera: OV2640 (2MP, 1600×1200 resolution)

  • MicroSD Slot: Supports up to 4GB (for image/video storage)

  • GPIO Pins: Limited (used mostly for camera and microSD)

  • UART Interface: For programming and debugging (requires external FTDI programmer)

  • Operating Voltage: 5V (via 5V pin or MicroUSB)

  • Consumption: ~160mA (active)

 

Pinout Overview

Key pins:

  • 3.3V, 5V, GND: Power pins

  • U0R, U0T: UART for programming

  • IO0: Boot mode (must be LOW for flashing)

  • Other GPIOs: Used for camera & MicroSD (some available for external sensors)

 

Programming ESP32-CAM

  • No onboard USB interface → requires an FTDI or CP2102 USB-to-Serial adapter

  • Connections for uploading code:

    • U0R → TX of FTDI

    • U0T → RX of FTDI

    • GND → GND

    • 5V → 5V

    • IO0 → GND (only for flashing mode)

  • Baud rate: 115200

  • Use Arduino IDE with ESP32 board support

 

Applications

  • Wireless Surveillance Camera

  • Face Recognition / Face Detection

  • Home Automation with Video

  • Smart Doorbell

  • IoT Security System

  • License Plate Recognition

  • Pet/Plant Monitoring

 

Sample Code: Camera Web Server

 

 

#include "esp_camera.h"
#include <WiFi.h>

// Replace with your network credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

// Camera configuration for ESP32-CAM (OV2640)
#define PWDN_GPIO_NUM    -1
#define RESET_GPIO_NUM   -1
#define XCLK_GPIO_NUM     0
#define SIOD_GPIO_NUM    26
#define SIOC_GPIO_NUM    27

#define Y9_GPIO_NUM      35
#define Y8_GPIO_NUM      34
#define Y7_GPIO_NUM      39
#define Y6_GPIO_NUM      36
#define Y5_GPIO_NUM      21
#define Y4_GPIO_NUM      19
#define Y3_GPIO_NUM      18
#define Y2_GPIO_NUM       5
#define VSYNC_GPIO_NUM   25
#define HREF_GPIO_NUM    23
#define PCLK_GPIO_NUM    22

void startCameraServer();

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

  // Camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  startCameraServer();
  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  delay(10000);
}
 

ESP32 CAMERA

SKU: MIC104
R₣20,000Price
Quantity
Out of Stock
    No Reviews YetShare your thoughts. Be the first to leave a review.
    bottom of page