Gravity: ESP32-S3 AI Camera Module

SKU: DFR1154

The ESP32-S3 AI CAM is an intelligent camera module designed around the ESP32-S3 chip, tailored for video image processing and voice interaction. It is suitable for AI projects such as video surveillance, edge image recognition, and voice dialogue. The ESP32-S3 supports high-performance neural network computation and signal processing, equipping the device with powerful image recognition and voice interaction capabilities.

Overview of ESP32-S3 AI CAM
  • Docs
  • Tech Specs
  • Tutorials
  • Projects
  • 1. Example Code for Arduino - Getting Started

    The article provides a step-by-step guide for first-time users of the ESP32 development board, detailing how to configure Arduino IDE, select the appropriate board settings, and execute a simple LED blinking program.

    2. Example Code for Arduino - Basic Tutorial

    The ESP32 Arduino Basic Tutorial focuses on the essential ESP32 APIs in the Arduino environment, giving users the core knowledge needed to start developing and debugging basic applications.

    3. Example Code for Arduino - Acquiring Ambient Light Data

    This example allows you to obtain ambient light data and print it via the serial port (baud rate: 115200).

    4. Example Code for Arduino - CameraWebServer

    ESP32-CAM Image Monitoring System: Easy Wi-Fi setup and real-time video streaming via web browser.

    5. Example Code for Arduino - Recording & Playback

    ESP32 Audio Recorder & Playback: One-button operation to automatically record for 5 seconds and playback instantly.

    6. Example Code for Python - Object Classification Based on Computer YOLOv5

    This example demonstrates how to use YOLOv5 on a computer for object classification.

    7. Example Code for ESP-IDF - USBWebCamera

    This code enables the ESP32-S3 to function as a virtual USB webcam, transmitting camera image data to a computer via USB. The computer can receive and display the images by running a Python script.

    8. Example Code for Python - Object Contour Recognition Based on Computer OpenCV

    This example demonstrates how to use OpenCV on a computer to recognize object contours.

    9. Example Code for Arduino - Timed camera

    This example demonstrates using the DFRobot ESP32-S3 AI Camera to take timed photos and save them to an SD card. The default photo interval is set to 25 seconds, which can be modified by adjusting the `TIME_TO_SLEEP` parameter. The LED will turn on when taking photos, and the ESP32-S3 will enter sleep mode after each photo is captured.

    10. Example Code for Arduino - Image Recognition Based on EdgeImpulse

    This example uses the Person_Detection_inferencing model trained on EdgeImpulse for human detection. The recognition results can be viewed via the serial port, and the camera feed can be accessed through a web video stream.

    11. Example Code for Arduino - Play Online Music

    This example demonstrates playing audio files from the network via ESP32-S3. After burning the code, enter the WiFi SSID and Password as prompted by the serial monitor to connect to WiFi. Then enter the network audio address to play the audio.

    12. Example Code for ESP-IDF - Integration with OpenAI RTC

    This example code allows real-time conversation with OpenAI (ChatGPT).

    13. Example Code for Arduino - OpenAI Image Q&A

    This example demonstrates the connection between DFRobot ESP32-S3 AI CAM and OpenAI for voice and image recognition. After burning the code:

    14. Example Code for Arduino - Drive a Display on ESP32-S3

    15. Example Code for Arduino - ESP32-S3 Bluetooth Receive & Transmit

    16. Example Code for Arduino - Control LED via WiFi

    The ESP32-S3 is equipped with WiFi function. The example below creates a WiFi server using ESP32-S3, and then connects a client to this server to control the LED's ON/OFF.

    17. Example Code for Arduino - ESP-NOW Data Transfer

    SP-NOW is a protocol developed by Espressif, which enables multiple devices to communicate with one another without using Wi-Fi. It can be widely used in smart light, remote controlling, sensor, etc.

    18. Example Code for Arduino - Display temperature & humidity on OLED

    Get temperature & humidity information and display them on OLED.

    19. Example Code for Arduino - Obtain Temperature & Humidity

    This example introduces how data transmission works over WiFi in local area network. Users can learn how to access the IP address under the LAN to obtain the SHT30 temperature and humidity sensor status in another place.

    20. Example Code for Arduino - Get Network Time via WiFi

    Get time from network time server and keep time updated using he RTC clock on ESP32.

    21. Example Code for Arduino - Get WiFi Weather Infromation

    This example domenstrates how to get weather information and extract data from information obtained in HTTP through Json, and print it out.

    22. Example Code for Arduino - Smart Config One-click Networking + Auto-Connection

    The demo below allows for one-click networking with Espressif ESP-TOUCH.

    23. Example Code for Arduino - Using With a Camera

    Reference

    Specification

    Basic Parameters

    Parameter Value
    Operating Voltage 3.3V
    Type-C Input Voltage 5V DC
    VIN Input Voltage 3.7-15V DC
    Operating Temperature -10~60°C
    Module Dimensions 42*42mm

    Camera Specifications

    Parameter Value
    Sensor Model OV3660
    Pixel 3 Megapixels
    Sensitivity Visible light, 940nm infrared
    Field of View 160°
    Focal Length 0.95
    Aperture 2.0
    Distortion <8%

    Hardware Information

    Parameter Value
    Processor Xtensa® Dual-core 32-bit LX7 Microprocessor
    Main Frequency 240 MHz
    SRAM 512KB
    ROM 384KB
    Flash 16MB
    PSRAM 8MB
    RTC SRAM 16KB
    USB USB 2.0 OTG Full-Speed Interface
    Wi-Fi
    Parameter Value
    Wi-Fi Protocol IEEE 802.11b/g/n
    Wi-Fi Bandwidth 2.4 GHz band supports 20 MHz and 40 MHz bandwidth
    Wi-Fi Modes Station Mode, SoftAP Mode, SoftAP+Station Mode, and Promiscuous Mode
    Wi-Fi Frequency 2.4GHz
    Frame Aggregation TX/RX A-MPDU, TX/RX A-MSDU
    Bluetooth
    Parameter Value
    Bluetooth Protocol Bluetooth 5, Bluetooth Mesh
    Bluetooth Data Rates 125 Kbps, 500 Kbps, 1 Mbps, 2 Mbps

    Pinout

    On-board Function Diagram

    Pin & Component Description

    Label Description
    OV3660 160° wide-angle infrared camera
    IR Infrared illumination (GPIO47)
    MIC I²S PDM microphone
    LED Onboard LED (GPIO3)
    ALS LTR-308 ambient light sensor
    ESP32-S3 ESP32-S3R8 chip
    SD SD card slot
    Flash 16 MB Flash
    VIN 3.7–15 V DC input
    HM6245 Power management chip
    Type-C USB Type-C interface for power supply and firmware upload
    Gravity (+) V1.0: 3.3–5 V input
    V1.1: 3.3 V output
    Gravity (−) GND
    Gravity 44 GPIO44 (native RX on ESP32-S3)
    Gravity 43 GPIO43 (native TX on ESP32-S3)
    RST Reset button
    BOOT BOOT button (GPIO0)
    SPK MX1.25-2P speaker interface
    MAX98357 I²S audio amplifier chip

    On-board Function Pin Definition

    1. FLASH Download Tool

    This tutorial offers a detailed guide on using Flash Download Tools for firmware burning on ESP32 chips, covering tool download, module connection, controller selection, and bin file burning.

    2. ESP32 Arduino Tutorial

    The ESP32 Arduino General Tutorial helps users master various ESP32 APIs from basic to advanced in the Arduino environment, enabling development and debugging of ESP32 applications.

    3. ESP32 MicroPython Tutorial

    This tutorial offers a comprehensive guide on installing MicroPython on ESP32, including firmware download, board compatibility, and practical coding examples, along with a detailed exploration of LVGL for interactive UI creation.

    4. ESP32 PlatformIO Tutorial

    The tutorial guides you through using PlatformIO with ESP32, covering installation, project setup, and code upload, highlighting its efficiency over Arduino IDE.

    5. ESP32 ESP-IDF Tutorial

    This tutorial provides a detailed guide on using ESP-IDF for ESP32 development, covering installation methods, compiling and flashing projects, and utilizing components and libraries.

    Was this article helpful?

    TOP