Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
... -..- -.--
arduino-esp32
提交
ba68f318
A
arduino-esp32
项目概览
... -..- -.--
/
arduino-esp32
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
arduino-esp32
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
ba68f318
编写于
12月 08, 2022
作者:
J
Jan Procházka
提交者:
GitHub
12月 08, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated camera example (#7533)
上级
dbeae948
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
74 addition
and
51 deletion
+74
-51
libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino
...ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino
+8
-2
libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp
...aries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp
+60
-49
libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h
...aries/ESP32/examples/Camera/CameraWebServer/camera_pins.h
+6
-0
未找到文件。
libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino
浏览文件 @
ba68f318
...
...
@@ -14,14 +14,14 @@
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//
#define CAMERA_MODEL_ESP_EYE // Has PSRAM
#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
...
...
@@ -37,6 +37,7 @@ const char* ssid = "**********";
const
char
*
password
=
"**********"
;
void
startCameraServer
();
void
setupLedFlash
(
int
pin
);
void
setup
()
{
Serial
.
begin
(
115200
);
...
...
@@ -124,6 +125,11 @@ void setup() {
s
->
set_vflip
(
s
,
1
);
#endif
// Setup LED FLash if LED pin is defined in camera_pins.h
#if defined(LED_GPIO_NUM)
setupLedFlash
(
LED_GPIO_NUM
);
#endif
WiFi
.
begin
(
ssid
,
password
);
WiFi
.
setSleep
(
false
);
...
...
libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp
浏览文件 @
ba68f318
...
...
@@ -16,16 +16,12 @@
#include "esp_camera.h"
#include "img_converters.h"
#include "fb_gfx.h"
#include "
driver/
ledc.h"
#include "
esp32-hal-
ledc.h"
#include "sdkconfig.h"
#include "camera_index.h"
#if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG)
#include "esp32-hal-log.h"
#define TAG ""
#else
#include "esp_log.h"
static
const
char
*
TAG
=
"camera_httpd"
;
#endif
// Face Detection will not work on boards without (or with disabled) PSRAM
...
...
@@ -72,14 +68,18 @@ static const char *TAG = "camera_httpd";
#define FACE_COLOR_PURPLE (FACE_COLOR_BLUE | FACE_COLOR_RED)
#endif
#ifdef CONFIG_LED_ILLUMINATOR_ENABLED
// Enable LED FLASH setting
#define CONFIG_LED_ILLUMINATOR_ENABLED 1
// LED FLASH setup
#if CONFIG_LED_ILLUMINATOR_ENABLED
#define LED_LEDC_CHANNEL 2 //Using different ledc channel/timer than camera
#define CONFIG_LED_MAX_INTENSITY 255
int
led_duty
=
0
;
bool
isStreaming
=
false
;
#ifdef CONFIG_LED_LEDC_LOW_SPEED_MODE
#define CONFIG_LED_LEDC_SPEED_MODE LEDC_LOW_SPEED_MODE
#else
#define CONFIG_LED_LEDC_SPEED_MODE LEDC_HIGH_SPEED_MODE
#endif
#endif
typedef
struct
...
...
@@ -263,7 +263,7 @@ static int run_face_recognition(fb_data_t *fb, std::list<dl::detect::result_t> *
if
(
enrolled_count
<
FACE_ID_SAVE_NUMBER
&&
is_enrolling
){
id
=
recognizer
.
enroll_id
(
tensor
,
landmarks
,
""
,
true
);
ESP_LOGI
(
TAG
,
"Enrolled ID: %d"
,
id
);
log_i
(
"Enrolled ID: %d"
,
id
);
rgb_printf
(
fb
,
FACE_COLOR_CYAN
,
"ID[%u]"
,
id
);
}
...
...
@@ -278,7 +278,7 @@ static int run_face_recognition(fb_data_t *fb, std::list<dl::detect::result_t> *
#endif
#endif
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
void
enable_led
(
bool
en
)
{
// Turn LED On or Off
int
duty
=
en
?
led_duty
:
0
;
...
...
@@ -286,9 +286,10 @@ void enable_led(bool en)
{
duty
=
CONFIG_LED_MAX_INTENSITY
;
}
ledc_set_duty
(
CONFIG_LED_LEDC_SPEED_MODE
,
CONFIG_LED_LEDC_CHANNEL
,
duty
);
ledc_update_duty
(
CONFIG_LED_LEDC_SPEED_MODE
,
CONFIG_LED_LEDC_CHANNEL
);
ESP_LOGI
(
TAG
,
"Set LED intensity to %d"
,
duty
);
ledcWrite
(
LED_LEDC_CHANNEL
,
duty
);
//ledc_set_duty(CONFIG_LED_LEDC_SPEED_MODE, CONFIG_LED_LEDC_CHANNEL, duty);
//ledc_update_duty(CONFIG_LED_LEDC_SPEED_MODE, CONFIG_LED_LEDC_CHANNEL);
log_i
(
"Set LED intensity to %d"
,
duty
);
}
#endif
...
...
@@ -302,7 +303,7 @@ static esp_err_t bmp_handler(httpd_req_t *req)
fb
=
esp_camera_fb_get
();
if
(
!
fb
)
{
ESP_LOGE
(
TAG
,
"Camera capture failed"
);
log_e
(
"Camera capture failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
...
...
@@ -321,7 +322,7 @@ static esp_err_t bmp_handler(httpd_req_t *req)
bool
converted
=
frame2bmp
(
fb
,
&
buf
,
&
buf_len
);
esp_camera_fb_return
(
fb
);
if
(
!
converted
){
ESP_LOGE
(
TAG
,
"BMP Conversion failed"
);
log_e
(
"BMP Conversion failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
...
...
@@ -330,7 +331,7 @@ static esp_err_t bmp_handler(httpd_req_t *req)
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
uint64_t
fr_end
=
esp_timer_get_time
();
#endif
ESP_LOGI
(
TAG
,
"BMP: %llums, %uB"
,
(
uint64_t
)((
fr_end
-
fr_start
)
/
1000
),
buf_len
);
log_i
(
"BMP: %llums, %uB"
,
(
uint64_t
)((
fr_end
-
fr_start
)
/
1000
),
buf_len
);
return
res
;
}
...
...
@@ -357,7 +358,7 @@ static esp_err_t capture_handler(httpd_req_t *req)
int64_t
fr_start
=
esp_timer_get_time
();
#endif
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
enable_led
(
true
);
vTaskDelay
(
150
/
portTICK_PERIOD_MS
);
// The LED needs to be turned on ~150ms before the call to esp_camera_fb_get()
fb
=
esp_camera_fb_get
();
// or it won't be visible in the frame. A better way to do this is needed.
...
...
@@ -368,7 +369,7 @@ static esp_err_t capture_handler(httpd_req_t *req)
if
(
!
fb
)
{
ESP_LOGE
(
TAG
,
"Camera capture failed"
);
log_e
(
"Camera capture failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
...
...
@@ -415,7 +416,7 @@ static esp_err_t capture_handler(httpd_req_t *req)
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
int64_t
fr_end
=
esp_timer_get_time
();
#endif
ESP_LOGI
(
TAG
,
"JPG: %uB %ums"
,
(
uint32_t
)(
fb_len
),
(
uint32_t
)((
fr_end
-
fr_start
)
/
1000
));
log_i
(
"JPG: %uB %ums"
,
(
uint32_t
)(
fb_len
),
(
uint32_t
)((
fr_end
-
fr_start
)
/
1000
));
return
res
;
#if CONFIG_ESP_FACE_DETECT_ENABLED
}
...
...
@@ -457,7 +458,7 @@ static esp_err_t capture_handler(httpd_req_t *req)
out_height
=
fb
->
height
;
out_buf
=
(
uint8_t
*
)
malloc
(
out_len
);
if
(
!
out_buf
)
{
ESP_LOGE
(
TAG
,
"out_buf malloc failed"
);
log_e
(
"out_buf malloc failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
...
...
@@ -465,7 +466,7 @@ static esp_err_t capture_handler(httpd_req_t *req)
esp_camera_fb_return
(
fb
);
if
(
!
s
)
{
free
(
out_buf
);
ESP_LOGE
(
TAG
,
"t
o rgb888 failed"
);
log_e
(
"T
o rgb888 failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
...
...
@@ -504,14 +505,14 @@ static esp_err_t capture_handler(httpd_req_t *req)
}
if
(
!
s
)
{
ESP_LOGE
(
TAG
,
"JPEG compression failed"
);
log_e
(
"JPEG compression failed"
);
httpd_resp_send_500
(
req
);
return
ESP_FAIL
;
}
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
int64_t
fr_end
=
esp_timer_get_time
();
#endif
ESP_LOGI
(
TAG
,
"FACE: %uB %ums %s%d"
,
(
uint32_t
)(
jchunk
.
len
),
(
uint32_t
)((
fr_end
-
fr_start
)
/
1000
),
detected
?
"DETECTED "
:
""
,
face_id
);
log_i
(
"FACE: %uB %ums %s%d"
,
(
uint32_t
)(
jchunk
.
len
),
(
uint32_t
)((
fr_end
-
fr_start
)
/
1000
),
detected
?
"DETECTED "
:
""
,
face_id
);
return
res
;
#endif
}
...
...
@@ -560,7 +561,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
httpd_resp_set_hdr
(
req
,
"Access-Control-Allow-Origin"
,
"*"
);
httpd_resp_set_hdr
(
req
,
"X-Framerate"
,
"60"
);
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
enable_led
(
true
);
isStreaming
=
true
;
#endif
...
...
@@ -577,7 +578,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
fb
=
esp_camera_fb_get
();
if
(
!
fb
)
{
ESP_LOGE
(
TAG
,
"Camera capture failed"
);
log_e
(
"Camera capture failed"
);
res
=
ESP_FAIL
;
}
else
...
...
@@ -602,7 +603,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
fb
=
NULL
;
if
(
!
jpeg_converted
)
{
ESP_LOGE
(
TAG
,
"JPEG compression failed"
);
log_e
(
"JPEG compression failed"
);
res
=
ESP_FAIL
;
}
}
...
...
@@ -649,7 +650,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
esp_camera_fb_return
(
fb
);
fb
=
NULL
;
if
(
!
s
)
{
ESP_LOGE
(
TAG
,
"fmt2jpg failed"
);
log_e
(
"fmt2jpg failed"
);
res
=
ESP_FAIL
;
}
#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
...
...
@@ -662,7 +663,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
out_height
=
fb
->
height
;
out_buf
=
(
uint8_t
*
)
malloc
(
out_len
);
if
(
!
out_buf
)
{
ESP_LOGE
(
TAG
,
"out_buf malloc failed"
);
log_e
(
"out_buf malloc failed"
);
res
=
ESP_FAIL
;
}
else
{
s
=
fmt2rgb888
(
fb
->
buf
,
fb
->
len
,
fb
->
format
,
out_buf
);
...
...
@@ -670,7 +671,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
fb
=
NULL
;
if
(
!
s
)
{
free
(
out_buf
);
ESP_LOGE
(
TAG
,
"t
o rgb888 failed"
);
log_e
(
"T
o rgb888 failed"
);
res
=
ESP_FAIL
;
}
else
{
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
...
...
@@ -713,7 +714,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
s
=
fmt2jpg
(
out_buf
,
out_len
,
out_width
,
out_height
,
PIXFORMAT_RGB888
,
90
,
&
_jpg_buf
,
&
_jpg_buf_len
);
free
(
out_buf
);
if
(
!
s
)
{
ESP_LOGE
(
TAG
,
"fmt2jpg failed"
);
log_e
(
"fmt2jpg failed"
);
res
=
ESP_FAIL
;
}
#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
...
...
@@ -751,7 +752,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
}
if
(
res
!=
ESP_OK
)
{
ESP_LOGE
(
TAG
,
"send frame failed
failed"
);
log_e
(
"Send frame
failed"
);
break
;
}
int64_t
fr_end
=
esp_timer_get_time
();
...
...
@@ -769,7 +770,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
uint32_t
avg_frame_time
=
ra_filter_run
(
&
ra_filter
,
frame_time
);
#endif
ESP_LOGI
(
TAG
,
"MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)"
log_i
(
"MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)"
#if CONFIG_ESP_FACE_DETECT_ENABLED
", %u+%u+%u+%u=%u %s%d"
#endif
...
...
@@ -785,7 +786,7 @@ static esp_err_t stream_handler(httpd_req_t *req)
);
}
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
isStreaming
=
false
;
enable_led
(
false
);
#endif
...
...
@@ -833,7 +834,7 @@ static esp_err_t cmd_handler(httpd_req_t *req)
free
(
buf
);
int
val
=
atoi
(
value
);
ESP_LOGI
(
TAG
,
"%s = %d"
,
variable
,
val
);
log_i
(
"%s = %d"
,
variable
,
val
);
sensor_t
*
s
=
esp_camera_sensor_get
();
int
res
=
0
;
...
...
@@ -888,7 +889,7 @@ static esp_err_t cmd_handler(httpd_req_t *req)
res
=
s
->
set_wb_mode
(
s
,
val
);
else
if
(
!
strcmp
(
variable
,
"ae_level"
))
res
=
s
->
set_ae_level
(
s
,
val
);
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
else
if
(
!
strcmp
(
variable
,
"led_intensity"
))
{
led_duty
=
val
;
if
(
isStreaming
)
...
...
@@ -908,7 +909,7 @@ static esp_err_t cmd_handler(httpd_req_t *req)
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
else
if
(
!
strcmp
(
variable
,
"face_enroll"
)){
is_enrolling
=
!
is_enrolling
;
ESP_LOGI
(
TAG
,
"Enrolling: %s"
,
is_enrolling
?
"true"
:
"false"
);
log_i
(
"Enrolling: %s"
,
is_enrolling
?
"true"
:
"false"
);
}
else
if
(
!
strcmp
(
variable
,
"face_recognize"
))
{
recognition_enabled
=
val
;
...
...
@@ -919,7 +920,7 @@ static esp_err_t cmd_handler(httpd_req_t *req)
#endif
#endif
else
{
ESP_LOGI
(
TAG
,
"Unknown command: %s"
,
variable
);
log_i
(
"Unknown command: %s"
,
variable
);
res
=
-
1
;
}
...
...
@@ -998,7 +999,7 @@ static esp_err_t status_handler(httpd_req_t *req)
p
+=
sprintf
(
p
,
"
\"
hmirror
\"
:%u,"
,
s
->
status
.
hmirror
);
p
+=
sprintf
(
p
,
"
\"
dcw
\"
:%u,"
,
s
->
status
.
dcw
);
p
+=
sprintf
(
p
,
"
\"
colorbar
\"
:%u"
,
s
->
status
.
colorbar
);
#if
def
CONFIG_LED_ILLUMINATOR_ENABLED
#if CONFIG_LED_ILLUMINATOR_ENABLED
p
+=
sprintf
(
p
,
",
\"
led_intensity
\"
:%u"
,
led_duty
);
#else
p
+=
sprintf
(
p
,
",
\"
led_intensity
\"
:%d"
,
-
1
);
...
...
@@ -1033,7 +1034,7 @@ static esp_err_t xclk_handler(httpd_req_t *req)
free
(
buf
);
int
xclk
=
atoi
(
_xclk
);
ESP_LOGI
(
TAG
,
"Set XCLK: %d MHz"
,
xclk
);
log_i
(
"Set XCLK: %d MHz"
,
xclk
);
sensor_t
*
s
=
esp_camera_sensor_get
();
int
res
=
s
->
set_xclk
(
s
,
LEDC_TIMER_0
,
xclk
);
...
...
@@ -1067,7 +1068,7 @@ static esp_err_t reg_handler(httpd_req_t *req)
int
reg
=
atoi
(
_reg
);
int
mask
=
atoi
(
_mask
);
int
val
=
atoi
(
_val
);
ESP_LOGI
(
TAG
,
"Set Register: reg: 0x%02x, mask: 0x%02x, value: 0x%02x"
,
reg
,
mask
,
val
);
log_i
(
"Set Register: reg: 0x%02x, mask: 0x%02x, value: 0x%02x"
,
reg
,
mask
,
val
);
sensor_t
*
s
=
esp_camera_sensor_get
();
int
res
=
s
->
set_reg
(
s
,
reg
,
mask
,
val
);
...
...
@@ -1103,7 +1104,7 @@ static esp_err_t greg_handler(httpd_req_t *req)
if
(
res
<
0
)
{
return
httpd_resp_send_500
(
req
);
}
ESP_LOGI
(
TAG
,
"Get Register: reg: 0x%02x, mask: 0x%02x, value: 0x%02x"
,
reg
,
mask
,
res
);
log_i
(
"Get Register: reg: 0x%02x, mask: 0x%02x, value: 0x%02x"
,
reg
,
mask
,
res
);
char
buffer
[
20
];
const
char
*
val
=
itoa
(
res
,
buffer
,
10
);
...
...
@@ -1138,7 +1139,7 @@ static esp_err_t pll_handler(httpd_req_t *req)
int
pclk
=
parse_get_var
(
buf
,
"pclk"
,
0
);
free
(
buf
);
ESP_LOGI
(
TAG
,
"Set Pll: bypass: %d, mul: %d, sys: %d, root: %d, pre: %d, seld5: %d, pclken: %d, pclk: %d"
,
bypass
,
mul
,
sys
,
root
,
pre
,
seld5
,
pclken
,
pclk
);
log_i
(
"Set Pll: bypass: %d, mul: %d, sys: %d, root: %d, pre: %d, seld5: %d, pclken: %d, pclk: %d"
,
bypass
,
mul
,
sys
,
root
,
pre
,
seld5
,
pclken
,
pclk
);
sensor_t
*
s
=
esp_camera_sensor_get
();
int
res
=
s
->
set_pll
(
s
,
bypass
,
mul
,
sys
,
root
,
pre
,
seld5
,
pclken
,
pclk
);
if
(
res
)
{
...
...
@@ -1171,7 +1172,7 @@ static esp_err_t win_handler(httpd_req_t *req)
bool
binning
=
parse_get_var
(
buf
,
"binning"
,
0
)
==
1
;
free
(
buf
);
ESP_LOGI
(
TAG
,
"Set Window: Start: %d %d, End: %d %d, Offset: %d %d, Total: %d %d, Output: %d %d, Scale: %u, Binning: %u"
,
startX
,
startY
,
endX
,
endY
,
offsetX
,
offsetY
,
totalX
,
totalY
,
outputX
,
outputY
,
scale
,
binning
);
log_i
(
"Set Window: Start: %d %d, End: %d %d, Offset: %d %d, Total: %d %d, Output: %d %d, Scale: %u, Binning: %u"
,
startX
,
startY
,
endX
,
endY
,
offsetX
,
offsetY
,
totalX
,
totalY
,
outputX
,
outputY
,
scale
,
binning
);
sensor_t
*
s
=
esp_camera_sensor_get
();
int
res
=
s
->
set_res_raw
(
s
,
startX
,
startY
,
endX
,
endY
,
offsetX
,
offsetY
,
totalX
,
totalY
,
outputX
,
outputY
,
scale
,
binning
);
if
(
res
)
{
...
...
@@ -1196,7 +1197,7 @@ static esp_err_t index_handler(httpd_req_t *req)
return
httpd_resp_send
(
req
,
(
const
char
*
)
index_ov2640_html_gz
,
index_ov2640_html_gz_len
);
}
}
else
{
ESP_LOGE
(
TAG
,
"Camera sensor not found"
);
log_e
(
"Camera sensor not found"
);
return
httpd_resp_send_500
(
req
);
}
}
...
...
@@ -1357,7 +1358,7 @@ void startCameraServer()
// load ids from flash partition
recognizer
.
set_ids_from_flash
();
#endif
ESP_LOGI
(
TAG
,
"Starting web server on port: '%d'"
,
config
.
server_port
);
log_i
(
"Starting web server on port: '%d'"
,
config
.
server_port
);
if
(
httpd_start
(
&
camera_httpd
,
&
config
)
==
ESP_OK
)
{
httpd_register_uri_handler
(
camera_httpd
,
&
index_uri
);
...
...
@@ -1375,9 +1376,19 @@ void startCameraServer()
config
.
server_port
+=
1
;
config
.
ctrl_port
+=
1
;
ESP_LOGI
(
TAG
,
"Starting stream server on port: '%d'"
,
config
.
server_port
);
log_i
(
"Starting stream server on port: '%d'"
,
config
.
server_port
);
if
(
httpd_start
(
&
stream_httpd
,
&
config
)
==
ESP_OK
)
{
httpd_register_uri_handler
(
stream_httpd
,
&
stream_uri
);
}
}
void
setupLedFlash
(
int
pin
)
{
#if CONFIG_LED_ILLUMINATOR_ENABLED
ledcSetup
(
LED_LEDC_CHANNEL
,
5000
,
8
);
ledcAttachPin
(
pin
,
LED_LEDC_CHANNEL
);
#else
log_i
(
"LED flash is disabled -> CONFIG_LED_ILLUMINATOR_ENABLED = 0"
);
#endif
}
libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h
浏览文件 @
ba68f318
...
...
@@ -37,6 +37,8 @@
#define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25
#define LED_GPIO_NUM 22
#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15
...
...
@@ -94,6 +96,8 @@
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
#define LED_GPIO_NUM 2
#elif defined(CAMERA_MODEL_M5STACK_ESP32CAM)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15
...
...
@@ -151,6 +155,8 @@
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
#define LED_GPIO_NUM 33
#elif defined(CAMERA_MODEL_TTGO_T_JOURNAL)
#define PWDN_GPIO_NUM 0
#define RESET_GPIO_NUM 15
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录