camera settings

This commit is contained in:
cheykrym 2026-01-25 23:08:13 +03:00
parent 61ee8e9423
commit 75c2fbde55

View File

@ -10,6 +10,7 @@ static const char *STREAM_BOUNDARY = "\r\n--frame\r\n";
static const char *STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";
static httpd_handle_t httpd = nullptr;
static httpd_handle_t httpd_stream = nullptr;
static bool cameraPinsOk() {
return CAM_PIN_XCLK != -1 &&
@ -51,7 +52,7 @@ static esp_err_t handleRoot(httpd_req_t *req) {
"label{display:block;margin-top:10px;}"
"</style></head><body>"
"<h2>ESP32 Camera</h2>"
"<img id='stream' src='/stream' />"
"<img id='stream' />"
"<label>Frame size:"
"<select id='fs'>"
"<option value='10'>QVGA</option>"
@ -63,7 +64,9 @@ static esp_err_t handleRoot(httpd_req_t *req) {
"<label>Contrast: <input id='c' type='range' min='-2' max='2' value='0'></label>"
"<label>Saturation: <input id='s' type='range' min='-2' max='2' value='0'></label>"
"<script>"
"const set=(v,val)=>fetch(`/control?var=${v}&val=${val}`);"
"const host=location.hostname;"
"stream.src=`http://${host}:81/stream`;"
"const set=(v,val)=>fetch(`http://${host}/control?var=${v}&val=${val}`);"
"fs.onchange=()=>set('framesize',fs.value);"
"q.oninput=()=>set('quality',q.value);"
"b.oninput=()=>set('brightness',b.value);"
@ -190,13 +193,20 @@ static void startWebServer() {
httpd_uri_t status = { .uri = "/status", .method = HTTP_GET, .handler = handleStatus, .user_ctx = nullptr };
httpd_uri_t control = { .uri = "/control", .method = HTTP_GET, .handler = handleControl, .user_ctx = nullptr };
httpd_uri_t capture = { .uri = "/capture", .method = HTTP_GET, .handler = handleCapture, .user_ctx = nullptr };
httpd_uri_t stream = { .uri = "/stream", .method = HTTP_GET, .handler = handleStream, .user_ctx = nullptr };
httpd_register_uri_handler(httpd, &root);
httpd_register_uri_handler(httpd, &status);
httpd_register_uri_handler(httpd, &control);
httpd_register_uri_handler(httpd, &capture);
httpd_register_uri_handler(httpd, &stream);
config.server_port += 1;
config.ctrl_port += 1;
if (httpd_start(&httpd_stream, &config) != ESP_OK) {
Serial.println("Stream server start failed");
return;
}
httpd_uri_t stream = { .uri = "/stream", .method = HTTP_GET, .handler = handleStream, .user_ctx = nullptr };
httpd_register_uri_handler(httpd_stream, &stream);
}
void setup() {