From 0ba76f0a5968df313eb3bdb2c43d3c3abd3e5ffc Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 31 Mar 2020 05:51:25 +0300 Subject: [PATCH] Add local network camera monitor (#138) This feature is located at `http://[camera-ip]/monitor` and gives quick access to up to 5 cameras running the web server example. Features: - Finds up to 5 cameras in the local network through mDNS - Grabs periodicaly and image from each camera (period can be set or turned off) - Cycles the cameras at given period (off when camera is selected manually) - Shows basic info for each camera (model, sensor, resolution) - Allows for easy access to each camer's control panel - Allows change of resolution and XCLK - Can save current snapshot --- .../camera_web_server/main/CMakeLists.txt | 3 +- .../camera_web_server/main/Kconfig.projbuild | 6 + .../camera_web_server/main/app_httpd.c | 23 +- .../camera_web_server/main/app_mdns.c | 17 +- .../camera_web_server/main/component.mk | 1 + .../camera_web_server/main/www/monitor.html | 1012 +++++++++++++++++ .../main/www/monitor.html.gz | Bin 0 -> 37438 bytes 7 files changed, 1054 insertions(+), 8 deletions(-) create mode 100755 examples/single_chip/camera_web_server/main/www/monitor.html create mode 100755 examples/single_chip/camera_web_server/main/www/monitor.html.gz diff --git a/examples/single_chip/camera_web_server/main/CMakeLists.txt b/examples/single_chip/camera_web_server/main/CMakeLists.txt index f196918..1f51609 100644 --- a/examples/single_chip/camera_web_server/main/CMakeLists.txt +++ b/examples/single_chip/camera_web_server/main/CMakeLists.txt @@ -13,6 +13,7 @@ set(COMPONENT_REQUIRES set(COMPONENT_EMBED_FILES "www/index_ov2640.html.gz" "www/index_ov3660.html.gz" - "www/index_ov5640.html.gz") + "www/index_ov5640.html.gz" + "www/monitor.html.gz") register_component() diff --git a/examples/single_chip/camera_web_server/main/Kconfig.projbuild b/examples/single_chip/camera_web_server/main/Kconfig.projbuild index c591426..2a86b44 100644 --- a/examples/single_chip/camera_web_server/main/Kconfig.projbuild +++ b/examples/single_chip/camera_web_server/main/Kconfig.projbuild @@ -1,6 +1,12 @@ menu "Camera Web Server" menu "WiFi Settings" +config ESP_HOST_NAME + string "Camera Host Name" + default "" + help + Hostname that the camera will advertise over mDNS. + config ESP_WIFI_SSID string "WiFi STA SSID" default "" diff --git a/examples/single_chip/camera_web_server/main/app_httpd.c b/examples/single_chip/camera_web_server/main/app_httpd.c index d4d53f4..8c29c06 100644 --- a/examples/single_chip/camera_web_server/main/app_httpd.c +++ b/examples/single_chip/camera_web_server/main/app_httpd.c @@ -21,6 +21,7 @@ //#include "camera_index.h" #include "sdkconfig.h" #include "app_mdns.h" +#include "app_camera.h" #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) #include "esp32-hal-log.h" @@ -840,6 +841,9 @@ static esp_err_t status_handler(httpd_req_t *req) p+=print_reg(p, s, 0x132, 0xFF); } + p += sprintf(p, "\"board\":\"%s\",", CAM_BOARD); + p += sprintf(p, "\"xclk\":%u,", s->xclk_freq_hz / 1000000); + p += sprintf(p, "\"pixformat\":%u,", s->pixformat); p += sprintf(p, "\"framesize\":%u,", s->status.framesize); p += sprintf(p, "\"quality\":%u,", s->status.quality); p += sprintf(p, "\"brightness\":%d,", s->status.brightness); @@ -1086,10 +1090,20 @@ static esp_err_t index_handler(httpd_req_t *req) } } +static esp_err_t monitor_handler(httpd_req_t *req) +{ + extern const unsigned char monitor_html_gz_start[] asm("_binary_monitor_html_gz_start"); + extern const unsigned char monitor_html_gz_end[] asm("_binary_monitor_html_gz_end"); + size_t monitor_html_gz_len = monitor_html_gz_end - monitor_html_gz_start; + httpd_resp_set_type(req, "text/html"); + httpd_resp_set_hdr(req, "Content-Encoding", "gzip"); + return httpd_resp_send(req, (const char *)monitor_html_gz_start, monitor_html_gz_len); +} + void app_httpd_main() { httpd_config_t config = HTTPD_DEFAULT_CONFIG(); - config.max_uri_handlers = 10; + config.max_uri_handlers = 12; httpd_uri_t index_uri = { .uri = "/", @@ -1157,6 +1171,12 @@ void app_httpd_main() .handler = mdns_handler, .user_ctx = NULL}; + httpd_uri_t monitor_uri = { + .uri = "/monitor", + .method = HTTP_GET, + .handler = monitor_handler, + .user_ctx = NULL}; + ra_filter_init(&ra_filter, 20); #if CONFIG_ESP_FACE_DETECT_ENABLED @@ -1201,6 +1221,7 @@ void app_httpd_main() httpd_register_uri_handler(camera_httpd, &win_uri); httpd_register_uri_handler(camera_httpd, &mdns_uri); + httpd_register_uri_handler(camera_httpd, &monitor_uri); } config.server_port += 1; diff --git a/examples/single_chip/camera_web_server/main/app_mdns.c b/examples/single_chip/camera_web_server/main/app_mdns.c index eef7e00..4cdc825 100644 --- a/examples/single_chip/camera_web_server/main/app_mdns.c +++ b/examples/single_chip/camera_web_server/main/app_mdns.c @@ -177,11 +177,6 @@ void app_mdns_main() } xSemaphoreGive(query_lock); - if (esp_read_mac(mac, ESP_MAC_WIFI_STA) != ESP_OK) { - ESP_LOGE(TAG, "esp_read_mac() Failed"); - return; - } - sensor_t * s = esp_camera_sensor_get(); switch(s->id.PID){ case OV2640_PID: model = "OV2640"; break; @@ -190,7 +185,17 @@ void app_mdns_main() case OV7725_PID: model = "OV7725"; break; default: model = "UNKNOWN"; break; } - snprintf(iname, 64, "%s-%s-%02X%02X%02X", CAM_BOARD, model, mac[3], mac[4], mac[5]); + + if (strlen(CONFIG_ESP_HOST_NAME) > 0) { + snprintf(iname, 64, "%s", CONFIG_ESP_HOST_NAME); + } else { + if (esp_read_mac(mac, ESP_MAC_WIFI_STA) != ESP_OK) { + ESP_LOGE(TAG, "esp_read_mac() Failed"); + return; + } + snprintf(iname, 64, "%s-%s-%02X%02X%02X", CAM_BOARD, model, mac[3], mac[4], mac[5]); + } + snprintf(framesize, 4, "%d", s->status.framesize); snprintf(pixformat, 4, "%d", s->pixformat); diff --git a/examples/single_chip/camera_web_server/main/component.mk b/examples/single_chip/camera_web_server/main/component.mk index 0d16c28..5557b3e 100644 --- a/examples/single_chip/camera_web_server/main/component.mk +++ b/examples/single_chip/camera_web_server/main/component.mk @@ -9,3 +9,4 @@ COMPONENT_EMBED_FILES := www/index_ov2640.html.gz COMPONENT_EMBED_FILES += www/index_ov3660.html.gz COMPONENT_EMBED_FILES += www/index_ov5640.html.gz +COMPONENT_EMBED_FILES += www/monitor.html.gz diff --git a/examples/single_chip/camera_web_server/main/www/monitor.html b/examples/single_chip/camera_web_server/main/www/monitor.html new file mode 100755 index 0000000..1b98342 --- /dev/null +++ b/examples/single_chip/camera_web_server/main/www/monitor.html @@ -0,0 +1,1012 @@ + + + + + + + ESP-EYE Monitor + + +
+
+
+
+ + + + + + + + + +
+
+
+
+ + + + + + + + +
+
+
+ +
+
+
+

Console

+
+
+
+
+
+ + diff --git a/examples/single_chip/camera_web_server/main/www/monitor.html.gz b/examples/single_chip/camera_web_server/main/www/monitor.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..ef4a8fccd98983c1db1f949e790969539a53a65e GIT binary patch literal 37438 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 B8?OKW literal 0 HcmV?d00001