diff --git a/README.md b/README.md index aa2bc96..f0f844a 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ To select the right board use the table below and use the configuration that is | Board | Configuration | Image | CPU | RAM | Camera | Site | |--- |--- |--- |--- |--- |--- |--- | | Espressif ESP32-Wropver CAM | | ![img](assets/boards/esp32-wrover-cam.jpg) | ESP32 | 520KB SRAM 4MB PSRAM | OV2640 | | -| AI-Thinker ESP32-CAM | ai_thinker_esp32cam | ![img](assets/boards/ai-thinker-esp32-cam-ipex.jpg) ![img](assets/boards/ai-thinker-esp32-cam.jpg) | ESP32-S | 520KB SRAM 4MB PSRAM | OV2640 | https://docs.ai-thinker.com/en/esp32-cam | +| AI-Thinker ESP32-CAM | ai_thinker_esp32cam | ![img](assets/boards/ai-thinker-esp32-cam-ipex.jpg) ![img](assets/boards/ai-thinker-esp32-cam.jpg) | ESP32-S | 520KB SRAM 4MB PSRAM | OV2640 | https://docs.ai-thinker.com/esp32-cam | | Espressif ESP-EYE | | ![img](assets/boards/espressif-esp-eye.jpg") | ESP32 | 520KB SRAM 4MB PSRAM | OV2640 | | | Espressif ESP-S3-EYE | | ![img](assets/boards/espressif-esps3-eye.jpg") | ESP32-S3 | 520KB SRAM 4MB PSRAM | OV2640 | https://www.espressif.com/en/products/devkits/esp-eye/overview | | LilyGo camera module | | ![img](assets/boards/lilygo-camera-module.jpg") | ESP32 Wrover | 520KB SRAM 4MB PSRAM | OV2640 / OV5640 | | diff --git a/assets/boards/ai_thinker_esp32-cam.jpg b/assets/boards/ai_thinker_esp32-cam.jpg new file mode 100644 index 0000000..87f9b3f Binary files /dev/null and b/assets/boards/ai_thinker_esp32-cam.jpg differ diff --git a/assets/boards/datasheets/ov2640_ds_1.8_.pdf b/assets/boards/datasheets/ov2640_ds_1.8_.pdf new file mode 100644 index 0000000..3281d2d Binary files /dev/null and b/assets/boards/datasheets/ov2640_ds_1.8_.pdf differ diff --git a/assets/boards/schematics/ai_thinker_esp32cam.pdf b/assets/boards/schematics/ai_thinker_esp32cam.pdf new file mode 100644 index 0000000..e24574b Binary files /dev/null and b/assets/boards/schematics/ai_thinker_esp32cam.pdf differ diff --git a/boards/esp32cam_aithinker.json b/boards/esp32cam_ai_thinker.json similarity index 91% rename from boards/esp32cam_aithinker.json rename to boards/esp32cam_ai_thinker.json index 87e13eb..7e2d1b4 100644 --- a/boards/esp32cam_aithinker.json +++ b/boards/esp32cam_ai_thinker.json @@ -6,7 +6,7 @@ }, "core": "esp32", "extra_flags": [ - "'-D ESP32CAM_AITHINKER'", + "'-D ESP32CAM_AI_THINKER'", "'-D BOARD_HAS_PSRAM'", "'-mfix-esp32-psram-cache-issue'", "'-D LED_BUILTIN=33'", @@ -51,7 +51,7 @@ "arduino", "espidf" ], - "name": "ESP32-CAM AI Thinker", + "name": "ESP32CAM AI Thinker", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, @@ -59,6 +59,6 @@ "require_upload_port": true, "speed": 460800 }, - "url": "https://wiki.ai-thinker.com/esp32-cam", - "vendor": "AI Thinker" + "url": "https://docs.ai-thinker.com/esp32-cam", + "vendor": "Anxinke" } diff --git a/boards/esp32cam_esp32s3_cam_lcd.json b/boards/esp32cam_espressif_esp32s3_cam_lcd.json similarity index 83% rename from boards/esp32cam_esp32s3_cam_lcd.json rename to boards/esp32cam_espressif_esp32s3_cam_lcd.json index ae9ee87..a847749 100644 --- a/boards/esp32cam_esp32s3_cam_lcd.json +++ b/boards/esp32cam_espressif_esp32s3_cam_lcd.json @@ -3,7 +3,7 @@ "arduino": { "ldscript": "esp32s3_out.ld", "partitions": "default_8MB.csv", - "memory_type": "qio_opi" + "memory_type": "opi_opi" }, "core": "esp32", "extra_flags": [ @@ -13,7 +13,6 @@ "'-D ARDUINO_USB_CDC_ON_BOOT=1'", "'-D ARDUINO_RUNNING_CORE=1'", "'-D ARDUINO_EVENT_RUNNING_CORE=1'", - "'-D LED_BUILTIN=33'", "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", "'-D CAMERA_CONFIG_PIN_XCLK=40'", @@ -35,23 +34,18 @@ "'-D CAMERA_CONFIG_LEDC_CHANNEL=LEDC_CHANNEL_0'", "'-D CAMERA_CONFIG_FB_COUNT=2'", "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'" - ], "f_cpu": "240000000L", "f_flash": "80000000L", - "flash_mode": "qio", + "flash_mode": "dout", "hwids": [ - [ - "0x2886", - "0x0056" + [ + "0X303A", + "0x1001" + ] ], - [ - "0x2886", - "0x8056" - ] - ], "mcu": "esp32s3", - "variant": "XIAO_ESP32S3" + "variant": "esp32s3camlcd" }, "connectivity": [ "bluetooth", @@ -64,7 +58,7 @@ "arduino", "espidf" ], - "name": "Seeed Studio XIAO ESP32S3", + "name": "ESP32S3-CAM LCD", "upload": { "flash_size": "8MB", "maximum_ram_size": 327680, @@ -72,6 +66,6 @@ "require_upload_port": true, "speed": 460800 }, - "url": "https://www.seeedstudio.com/XIAO-ESP32S3-p-5627.html", - "vendor": "Seeed Studio" + "url": "https://www.espressif.com/en/news/Maple_Eye_ESP32-S3", + "vendor": "Espressif" } diff --git a/boards/esp32cam_espressif_esp32s3_eye.json b/boards/esp32cam_espressif_esp32s3_eye.json new file mode 100644 index 0000000..1a0d352 --- /dev/null +++ b/boards/esp32cam_espressif_esp32s3_eye.json @@ -0,0 +1,75 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32s3_out.ld", + "partitions": "default_8MB.csv", + "memory_type": "qio_opi" + }, + "core": "esp32", + "extra_flags": [ + "'-D ESP32CAM_SEEED_XIAO_ESP32S3'", + "'-D BOARD_HAS_PSRAM'", + "'-D ARDUINO_USB_MODE=1'", + "'-D ARDUINO_USB_CDC_ON_BOOT=1'", + "'-D ARDUINO_RUNNING_CORE=1'", + "'-D ARDUINO_EVENT_RUNNING_CORE=1'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=15'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=4'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=5'", + "'-D CAMERA_CONFIG_PIN_Y9=16'", + "'-D CAMERA_CONFIG_PIN_Y8=17'", + "'-D CAMERA_CONFIG_PIN_Y7=18'", + "'-D CAMERA_CONFIG_PIN_Y6=12'", + "'-D CAMERA_CONFIG_PIN_Y5=10'", + "'-D CAMERA_CONFIG_PIN_Y4=8'", + "'-D CAMERA_CONFIG_PIN_Y3=9'", + "'-D CAMERA_CONFIG_PIN_Y2=11'", + "'-D CAMERA_CONFIG_PIN_VSYNC=6'", + "'-D CAMERA_CONFIG_PIN_HREF=7'", + "'-D CAMERA_CONFIG_PIN_PCLK=13'", + "'-D CAMERA_CONFIG_CLK_FREQ_HZ=20000000'", + "'-D CAMERA_CONFIG_LEDC_TIMER=LEDC_TIMER_0'", + "'-D CAMERA_CONFIG_LEDC_CHANNEL=LEDC_CHANNEL_0'", + "'-D CAMERA_CONFIG_FB_COUNT=2'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "hwids": [ + [ + "0x2886", + "0x0056" + ], + [ + "0x2886", + "0x8056" + ] + ], + "mcu": "esp32s3", + "variant": "esp32s3" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32S3_EYE", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.espressif.com/en/products/devkits/esp-eye/overview", + "vendor": "Espressif" +} diff --git a/boards/esp32cam_esp_eye.json b/boards/esp32cam_espressif_esp_eye.json similarity index 97% rename from boards/esp32cam_esp_eye.json rename to boards/esp32cam_espressif_esp_eye.json index b02e3fb..7ed1d29 100644 --- a/boards/esp32cam_esp_eye.json +++ b/boards/esp32cam_espressif_esp_eye.json @@ -6,7 +6,7 @@ }, "core": "esp32", "extra_flags": [ - "'-D ESP32CAM_ESP_EYE'", + "'-D ESP32CAM_ESPRESSIF_ESP_EYE'", "'-D BOARD_HAS_PSRAM'", "'-mfix-esp32-psram-cache-issue'", "'-D LED_BUILTIN=14'", diff --git a/boards/esp32cam_wrover_kit.json b/boards/esp32cam_freenove_wrover_kit.json similarity index 95% rename from boards/esp32cam_wrover_kit.json rename to boards/esp32cam_freenove_wrover_kit.json index 97e6cba..1a258b0 100644 --- a/boards/esp32cam_wrover_kit.json +++ b/boards/esp32cam_freenove_wrover_kit.json @@ -59,6 +59,6 @@ "require_upload_port": true, "speed": 460800 }, - "url": "https://wiki.ai-thinker.com/esp32-cam", - "vendor": "AI Thinker" + "url": "https://www.aliexpress.com/item/1005004960637276.html", + "vendor": "Freenove" } diff --git a/boards/esp32cam_m5stack_v2.json b/boards/esp32cam_m5stack_psram.json similarity index 95% rename from boards/esp32cam_m5stack_v2.json rename to boards/esp32cam_m5stack_psram.json index 0dcfb7c..b3e3eaa 100644 --- a/boards/esp32cam_m5stack_v2.json +++ b/boards/esp32cam_m5stack_psram.json @@ -6,7 +6,7 @@ }, "core": "esp32", "extra_flags": [ - "'-D ESP32CAM_M5STACK_V2'", + "'-D ESP32CAM_M5STACK_PSRAM'", "'-D BOARD_HAS_PSRAM'", "'-mfix-esp32-psram-cache-issue'", "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", @@ -22,7 +22,7 @@ "'-D CAMERA_CONFIG_PIN_Y4=34'", "'-D CAMERA_CONFIG_PIN_Y3=35'", "'-D CAMERA_CONFIG_PIN_Y2=32'", - "'-D CAMERA_CONFIG_PIN_VSYNC=25'", + "'-D CAMERA_CONFIG_PIN_VSYNC=22'", "'-D CAMERA_CONFIG_PIN_HREF=26'", "'-D CAMERA_CONFIG_PIN_PCLK=21'", "'-D CAMERA_CONFIG_CLK_FREQ_HZ=20000000'", diff --git a/boards/esp32cam_m5stack_v2_psram.json b/boards/esp32cam_m5stack_v2_psram.json new file mode 100644 index 0000000..9806e6e --- /dev/null +++ b/boards/esp32cam_m5stack_v2_psram.json @@ -0,0 +1,63 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ESP32CAM_M5STACK_V2_PSRAM'", + "'-D BOARD_HAS_PSRAM'", + "'-mfix-esp32-psram-cache-issue'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=15'", + "'-D CAMERA_CONFIG_PIN_XCLK=27'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=22'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=23'", + "'-D CAMERA_CONFIG_PIN_Y9=19'", + "'-D CAMERA_CONFIG_PIN_Y8=36'", + "'-D CAMERA_CONFIG_PIN_Y7=18'", + "'-D CAMERA_CONFIG_PIN_Y6=39'", + "'-D CAMERA_CONFIG_PIN_Y5=5'", + "'-D CAMERA_CONFIG_PIN_Y4=34'", + "'-D CAMERA_CONFIG_PIN_Y3=35'", + "'-D CAMERA_CONFIG_PIN_Y2=32'", + "'-D CAMERA_CONFIG_PIN_VSYNC=25'", + "'-D CAMERA_CONFIG_PIN_HREF=26'", + "'-D CAMERA_CONFIG_PIN_PCLK=21'", + "'-D CAMERA_CONFIG_CLK_FREQ_HZ=20000000'", + "'-D CAMERA_CONFIG_LEDC_TIMER=LEDC_TIMER_0'", + "'-D CAMERA_CONFIG_LEDC_CHANNEL=LEDC_CHANNEL_0'", + "'-D CAMERA_CONFIG_FB_COUNT=2'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32-CAM M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_m5stack_wide.json b/boards/esp32cam_m5stack_wide.json index 9f8c04b..df425dd 100644 --- a/boards/esp32cam_m5stack_wide.json +++ b/boards/esp32cam_m5stack_wide.json @@ -9,7 +9,6 @@ "'-D ESP32CAM_M5STACK_WIDE'", "'-D BOARD_HAS_PSRAM'", "'-mfix-esp32-psram-cache-issue'", - "'-D LED_BUILTIN=2'", "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", "'-D CAMERA_CONFIG_PIN_RESET=15'", "'-D CAMERA_CONFIG_PIN_XCLK=27'", @@ -51,7 +50,7 @@ "arduino", "espidf" ], - "name": "ESP32-CAM M5 STACK", + "name": "ESP32-CAM M5 STACK WIDE", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, diff --git a/boards/esp32cam_xiao_esp32s3.json b/boards/esp32cam_seeed_xiao_esp32s3_sense.json similarity index 95% rename from boards/esp32cam_xiao_esp32s3.json rename to boards/esp32cam_seeed_xiao_esp32s3_sense.json index 15b2ea8..6db9457 100644 --- a/boards/esp32cam_xiao_esp32s3.json +++ b/boards/esp32cam_seeed_xiao_esp32s3_sense.json @@ -7,13 +7,12 @@ }, "core": "esp32", "extra_flags": [ - "'-D ESP32CAM_XIAO_ESP32S3'", + "'-D ESP32CAM_SEEED_XIAO_ESP32S3_SENSE'", "'-D BOARD_HAS_PSRAM'", "'-D ARDUINO_USB_MODE=1'", "'-D ARDUINO_USB_CDC_ON_BOOT=1'", "'-D ARDUINO_RUNNING_CORE=1'", "'-D ARDUINO_EVENT_RUNNING_CORE=1'", - "'-D LED_BUILTIN=33'", "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", "'-D CAMERA_CONFIG_PIN_XCLK=10'", @@ -35,7 +34,6 @@ "'-D CAMERA_CONFIG_LEDC_CHANNEL=LEDC_CHANNEL_0'", "'-D CAMERA_CONFIG_FB_COUNT=2'", "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'" - ], "f_cpu": "240000000L", "f_flash": "80000000L", @@ -51,7 +49,7 @@ ] ], "mcu": "esp32s3", - "variant": "XIAO_ESP32S3" + "variant": "xiao_esp32s3" }, "connectivity": [ "bluetooth", diff --git a/boards/esp32cam_ttgo_t_journal.json b/boards/esp32cam_ttgo_t_journal.json index 3b163f5..885d5c0 100644 --- a/boards/esp32cam_ttgo_t_journal.json +++ b/boards/esp32cam_ttgo_t_journal.json @@ -6,7 +6,7 @@ }, "core": "esp32", "extra_flags": [ - "'-D ESP32CAM_TTGO_T_JORNAL'", + "'-D ESP32CAM_TTGO_T_JOURNAL'", "'-D CAMERA_CONFIG_PIN_PWDN=0'", "'-D CAMERA_CONFIG_PIN_RESET=15'", "'-D CAMERA_CONFIG_PIN_XCLK=27'", @@ -48,7 +48,7 @@ "arduino", "espidf" ], - "name": "ESP32-CAM TTGO-T-CAMERA", + "name": "ESP32-CAM TTGO-T-JOURNAL", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, diff --git a/html/index.min.html b/html/index.min.html index b84ac80..e37732a 100644 --- a/html/index.min.html +++ b/html/index.min.html @@ -1 +1 @@ -{{AppTitle}} v{{AppVersion}}

{{ThingName}}


Press on the button below to change the settings

ESP32

Board type:
{{BoardType}}
SDK Version:
{{SDKVersion}}
CPU model:
{{ChipModel}} rev. {{ChipRevision}}
CPU speed:
{{CpuFreqMHz}} Mhz
CPU cores:
{{CpuCores}}
RAM size:
{{HeapSize}}
PSRAM size:
{{PsRamSize}}
Flash size:
{{FlashSize}}

Diagnostics

Uptime:
{{Uptime}}
RTSP sessions:
{{NumRTSPSessions}}
Free heap:
{{FreeHeap}}
Max free block:
{{MaxAllocHeap}}

Network

Host name:
{{HostName}}
Mac address:
{{MacAddress}}
Wifi mode:
{{WifiMode}}
Access point:
{{AccessPoint}}
Signal strength:
{{SignalStrength}} dbm
IPv4 address:
{{IpV4}}
IPv6 address:
{{IpV6}}
{{#NetworkState.ApMode}}

Not connected to an access point.
Consider configuring the access point.

{{/NetworkState.ApMode}} {{#NetworkState.OnLine}}

Connected to the access point

{{/NetworkState.OnLine}}

Camera

Frame rate:
{{FrameDuration}} ms ({{FrameFrequency}} f/s)
Frame size:
{{FrameSize}}
JPEG quality:
{{JpegQuality}} [1-100]
Brightness:
{{Brightness}} [-2,2]
Contrast:
{{Contrast}} [-2,2]
Saturation:
{{Saturation}} [-2,2]
Special effect:
{{SpecialEffect}}
White balance:
{{#WhiteBal}}Auto{{/WhiteBal}}{{^WhiteBal}}Manual{{/WhiteBal}}
AWB gain:
{{#AwbGain}}Auto{{/AwbGain}}{{^AwbGain}}Manual{{/AwbGain}}
WB mode:
{{WbMode}}
Exposure control:
{{#ExposureCtrl}}Auto{{/ExposureCtrl}}{{^ExposureCtrl}}Manual{{/ExposureCtrl}}
Auto exposure control (dsp):
{{#Aec2}}Enabled{{/Aec2}}{{^Aec2}}Disabled{{/Aec2}}
Auto Exposure level:
{{AeLevel}}
Manual exposure value:
{{AecValue}}
Gain control:
{{#GainCtrl}}Auto{{/GainCtrl}}{{^GainCtrl}}Manual{{/GainCtrl}}
AGC gain:
{{AgcGain}}
Gain ceiling:
{{GainCeiling}}
Black pixel correct:
{{#Bpc}}Auto{{/Bpc}}{{^Bpc}}Manual{{/Bpc}}
White pixel correct:
{{#Wpc}}Auto{{/Wpc}}{{^Wpc}}Manual{{/Wpc}}
Gamma correct:
{{#RawGma}}Enabled{{/RawGma}}{{^RawGma}}Disabled{{/RawGma}}
Lens correction:
{{#Lenc}}Enabled{{/Lenc}}{{^Lenc}}Disabled{{/Lenc}}
Horizontal mirror:
{{#HMirror}}Mirrored{{/HMirror}}{{^HMirror}}Normal{{/HMirror}}
Vertical flip:
{{#VFlip}}Flipped{{/VFlip}}{{^VFlip}}Normal{{/VFlip}}
Downsize enable:
{{#Dcw}}Enabled{{/Dcw}}{{^Dcw}}Disabled{{/Dcw}}
Color bar:
{{#ColorBar}}Enabled{{/ColorBar}}{{^ColorBar}}Camera{{/ColorBar}}
{{#CameraInitialized}}

Camera was initialized successfully!

{{/CameraInitialized}} {{^CameraInitialized}}

Failed to initialize the camera!
Result: {{CameraInitResult}} ({{CameraInitResultText}})
Please check hardware or correct the camera settings and restart.

{{/CameraInitialized}}

Special URLs / API

RTSP camera stream:
rtsp://{{IpV4}}:{{RtspPort}}/mjpeg/1
JPEG Motion stream:
http://{{IpV4}}/stream
Snapshot of the camera:
http://{{IpV4}}/snapshot
\ No newline at end of file +{{AppTitle}} v{{AppVersion}}

{{ThingName}}


Press on the button below to change the settings

ESP32

Board type:
{{BoardType}}
SDK Version:
{{SDKVersion}}
CPU model:
{{ChipModel}} rev. {{ChipRevision}}
CPU speed:
{{CpuFreqMHz}} Mhz
CPU cores:
{{CpuCores}}
RAM size:
{{HeapSize}}
PSRAM size:
{{PsRamSize}}
Flash size:
{{FlashSize}}

Diagnostics

Uptime:
{{Uptime}}
RTSP sessions:
{{NumRTSPSessions}}
Free heap:
{{FreeHeap}}
Max free block:
{{MaxAllocHeap}}

Network

Host name:
{{HostName}}
Mac address:
{{MacAddress}}
Wifi mode:
{{WifiMode}}
Access point:
{{AccessPoint}}
Signal strength:
{{SignalStrength}} dbm
IPv4 address:
{{IPv4}}
IPv6 address:
{{IPv6}}
{{#NetworkState.ApMode}}

Not connected to an access point.
Consider configuring the access point.

{{/NetworkState.ApMode}} {{#NetworkState.OnLine}}

Connected to the access point

{{/NetworkState.OnLine}}

Camera

Frame rate:
{{FrameDuration}} ms ({{FrameFrequency}} f/s)
Frame size:
{{FrameSize}}
JPEG quality:
{{JpegQuality}} [1-100]
Brightness:
{{Brightness}} [-2,2]
Contrast:
{{Contrast}} [-2,2]
Saturation:
{{Saturation}} [-2,2]
Special effect:
{{SpecialEffect}}
White balance:
{{#WhiteBal}}Auto{{/WhiteBal}}{{^WhiteBal}}Manual{{/WhiteBal}}
AWB gain:
{{#AwbGain}}Auto{{/AwbGain}}{{^AwbGain}}Manual{{/AwbGain}}
WB mode:
{{WbMode}}
Exposure control:
{{#ExposureCtrl}}Auto{{/ExposureCtrl}}{{^ExposureCtrl}}Manual{{/ExposureCtrl}}
Auto exposure control (dsp):
{{#Aec2}}Enabled{{/Aec2}}{{^Aec2}}Disabled{{/Aec2}}
Auto Exposure level:
{{AeLevel}}
Manual exposure value:
{{AecValue}}
Gain control:
{{#GainCtrl}}Auto{{/GainCtrl}}{{^GainCtrl}}Manual{{/GainCtrl}}
AGC gain:
{{AgcGain}}
Gain ceiling:
{{GainCeiling}}
Black pixel correct:
{{#Bpc}}Auto{{/Bpc}}{{^Bpc}}Manual{{/Bpc}}
White pixel correct:
{{#Wpc}}Auto{{/Wpc}}{{^Wpc}}Manual{{/Wpc}}
Gamma correct:
{{#RawGma}}Enabled{{/RawGma}}{{^RawGma}}Disabled{{/RawGma}}
Lens correction:
{{#Lenc}}Enabled{{/Lenc}}{{^Lenc}}Disabled{{/Lenc}}
Horizontal mirror:
{{#HMirror}}Mirrored{{/HMirror}}{{^HMirror}}Normal{{/HMirror}}
Vertical flip:
{{#VFlip}}Flipped{{/VFlip}}{{^VFlip}}Normal{{/VFlip}}
Downsize enable:
{{#Dcw}}Enabled{{/Dcw}}{{^Dcw}}Disabled{{/Dcw}}
Color bar:
{{#ColorBar}}Enabled{{/ColorBar}}{{^ColorBar}}Camera{{/ColorBar}}
{{#CameraInitialized}}

Camera was initialized successfully!

{{/CameraInitialized}} {{^CameraInitialized}}

Failed to initialize the camera!
Result: {{CameraInitResult}} ({{CameraInitResultText}})
Please check hardware or correct the camera settings and restart.

{{/CameraInitialized}}

Special URLs / API

RTSP camera stream:
rtsp://{{IpV4}}:{{RtspPort}}/mjpeg/1
JPEG Motion stream:
http://{{IpV4}}/stream
Snapshot of the camera:
http://{{IpV4}}/snapshot
\ No newline at end of file diff --git a/platformio.ini b/platformio.ini index def5d8d..7787084 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,17 +10,19 @@ ############################################################################### [platformio] -#default_envs = esp32cam_aithinker -#default_envs = esp32cam_esp_eye -#default_envs = m5stack_cam -#default_envs = m5stack_esp32cam -#default_envs = m5stack_unitcam +#default_envs = esp32cam_ai_thinker +#default_envs = esp32cam_espressif_esp_eye +#default_envs = esp32cam_espressif_esp32s3_cam_lcd +#default_envs = esp32cam_espressif_esp32s3_eye +#default_envs = esp32cam_m5stack_esp32cam +#default_envs = esp32cam_m5stack_psram +#default_envs = esp32cam_m5stack_unitcam +#default_envs = esp32cam_m5stack_v2_psram +#default_envs = esp32cam_m5stack_wide #default_envs = esp32cam_ttgo_t_camera #default_envs = esp32cam_ttgo_t_journal -#default_envs = esp32cam_wrover_kit - -#default_envs = ttgo-t-beam -#default_envs = seeed_xiao_esp32s3 +#default_envs = esp32cam_freenove_wrover_kit +#default_envs = esp32cam_seeed_xiao_esp32s3_sense [env] platform = espressif32 @@ -39,7 +41,7 @@ monitor_dtr = 0 monitor_filters = log2file, time, default, esp32_exception_decoder build_flags = - -O2 + -Ofast -D 'BOARD_NAME="${this.board}"' -D 'CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE' -D 'IOTWEBCONF_PASSWORD_LEN=64' @@ -52,76 +54,41 @@ lib_deps = geeksville/Micro-RTSP@^0.1.6 rzeldent/micro-moustache@^1.0.1 -[env:esp32cam_aithinker] -board = esp32cam_aithinker +[env:esp32cam_ai_thinker] +board = esp32cam_ai_thinker -[env:esp32cam_esp_eye] -board = esp32cam_esp_eye +[env:esp32cam_espressif_esp_eye] +board = esp32cam_espressif_esp_eye -[env:esp32cam_m5stack_cam] -board = esp32cam_m5stack_cam +[env:esp32cam_espressif_esp32s3_cam_lcd] +board = esp32cam_espressif_esp32s3_cam_lcd + +[env:esp32cam_espressif_esp32s3_eye] +board = esp32cam_espressif_esp32s3_eye + +[env:esp32cam_freenove_wrover_kit] +board = esp32cam_freenove_wrover_kit [env:esp32cam_m5stack_esp32cam] board = esp32cam_m5stack_esp32cam +[env:esp32cam_m5stack_psram] +board = esp32cam_m5stack_psram + [env:esp32cam_m5stack_unitcam] board = esp32cam_m5stack_unitcam +[env:esp32cam_m5stack_v2_psram] +board = esp32cam_m5stack_v2_psram + +[env:esp32cam_m5stack_wide] +board = esp32cam_m5stack_wide + [env:esp32cam_ttgo_t_camera] board = esp32cam_ttgo_t_camera [env:esp32cam_ttgo_t_journal] board = esp32cam_ttgo_t_journal -[env:esp32cam_wrover_kit] -board = esp32cam_wrover_kit - - - - -; [env:esp32cam] -; board = esp32cam -; build_flags = -; -DBOARD_ESP32CAM -; -DLED_BUILTIN=33 - -; [env:ai_thinker_esp32cam] -; board = esp32cam -; build_flags = -; -DBOARD_AITHINKER_ESP32CAM -; -DLED_BUILTIN=33 - -; [env:esp_eye] -; board = esp32cam -; build_flags = -; -DBOARD_ESP_EYE -; -DLED_BUILTIN=33 - -; [env:ttgo_t_camera] -; board = ttgo-t-beam -; build_flags = -; -DBOARD_TTGO_T_CAMERA - -; [env:m5stack_esp32cam] -; board = m5stack-core-esp32 -; build_flags = -; -DBOARD_M5STACK_ESP32CAM -; -DLED_BUILTIN=33 - -; [env:esp32_wrover_cam] -; board = esp-wrover-kit -; build_flags = -; -DBOARD_ESP32_WROVER_CAM -; -DLED_BUILTIN=2 - -; [env:seeed_xiao_esp32s3] -; board = seeed_xiao_esp32s3 -; build_flags = -; -D BOARD_SEEED_XIAO_ESP32S3_SENSE -; -D BOARD_HAS_PSRAM - -; [env:m5stack_unitcams3] -; board = esp32s3box -; build_flags = -; -D BOARD_M5STACK_UNITCAMS3 -; -D BOARD_HAS_PSRAM \ No newline at end of file +[env:esp32cam_seeed_xiao_esp32s3_sense] +board = esp32cam_seeed_xiao_esp32s3_sense \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index aec4641..2f69b75 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -63,16 +63,6 @@ IotWebConf iotWebConf(thingName.c_str(), &dnsServer, &web_server, WIFI_PASSWORD, // Camera initialization result esp_err_t camera_init_result; -void stream_text_file_gzip(const unsigned char *content, size_t length, const char *mime_type) -{ - // Cache for 86400 seconds (one day) - web_server.sendHeader("Cache-Control", "max-age=86400"); - web_server.sendHeader("Content-encoding", "gzip"); - web_server.setContentLength(length); - web_server.send(200, mime_type, ""); - web_server.sendContent(reinterpret_cast(content), length); -} - void handle_root() { log_v("Handle root");