ESP-CAM + встроенный WEB сервер
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
Собираю машинку с управлением с веб моды и отображением картинки с камеры.
Должно быть что то подобное:
[spoiler][/spoiler]
Проблема в том что блок esp32-cam поднимает свой вебсервер для трансляции картинки, а веб страница свой.
Помогите объединить блоки в одно целое. Пробовал компилировать проект, но при компиляции менял порт веб сервера камери на 81.
[spoiler][/spoiler]
В таком случае, получаю две веб страницы, но работает только одна из них, первая просто зависает при запуске второй.
Должно быть что то подобное:
[spoiler][/spoiler]
Проблема в том что блок esp32-cam поднимает свой вебсервер для трансляции картинки, а веб страница свой.
Помогите объединить блоки в одно целое. Пробовал компилировать проект, но при компиляции менял порт веб сервера камери на 81.
[spoiler][/spoiler]
В таком случае, получаю две веб страницы, но работает только одна из них, первая просто зависает при запуске второй.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
Здравствуйте, практически получилось скрестить картинку из камеры и кнопок управления в одном окне. Спасибо [ref=#ff8000]aidar_i[/ref], за блоки. Взял за пример viewtopic.php?f=70&t=6677&p=93333&hilit ... era#p93121 и код в IDE https://randomnerdtutorials.com/esp32-c ... eb-server/
Но осталась проблема в браузере есть ошибка GET http://192.168.1.126/3277ca91-0352-46cc ... eb5?page=1 404 что тормозит всю страницу. Понимаю что проблема
в коде инициализации сервера
[spoiler]httpd_uri_t index_uri = {
.uri = "/",
.method = HTTP_GET,
.handler = index_handler,
.user_ctx = NULL
};[/spoiler]
+ функция
[spoiler]static esp_err_t index_handler(httpd_req_t *req){
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, (const char *)INDEX_HTML, strlen(INDEX_HTML));[/spoiler]
+ то что попадает в масив
[spoiler]static const char PROGMEM INDEX_HTML[] = R"rawliteral(
<html>
<head>
<title>ESP32-CAM Robot</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: Arial; text-align: center; margin:0px auto; padding-top: 30px;}
table { margin-left: auto; margin-right: auto; }
td { padding: 8 px; }
.button {
background-color: #2f4468;
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 18px;
margin: 6px 3px;
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
img { width: auto ;
max-width: 100% ;
height: auto ;
}
</style>
</head>
<body>
<h1>ESP32-CAM Robot</h1>
<img src="" id="photo" >
<table>
<tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('forward');" ontouchstart="toggleCheckbox('forward');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Forward</button></td></tr>
<tr><td align="center"><button class="button" onmousedown="toggleCheckbox('left');" ontouchstart="toggleCheckbox('left');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Left</button></td><td align="center"><button class="button" onmousedown="toggleCheckbox('stop');" ontouchstart="toggleCheckbox('stop');">Stop</button></td><td align="center"><button class="button" onmousedown="toggleCheckbox('right');" ontouchstart="toggleCheckbox('right');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Right</button></td></tr>
<tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('backward');" ontouchstart="toggleCheckbox('backward');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Backward</button></td></tr>
</table>
<script>
function toggleCheckbox(x) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "/action?go=" + x, true);
xhr.send();
}
window.onload = document.getElementById("photo").src = window.location.href.slice(0, -1) + ":81/stream";
</script>
</body>
</html>
)rawliteral";[/spoiler]
В примере кода IDE в массиве находиться весь HTML код страницы,что в нашем случае не нужно так как будет своя HTML страница с кнопками.
Подскажите как доработать, а то уже мозги кипят
Но осталась проблема в браузере есть ошибка GET http://192.168.1.126/3277ca91-0352-46cc ... eb5?page=1 404 что тормозит всю страницу. Понимаю что проблема
в коде инициализации сервера
[spoiler]httpd_uri_t index_uri = {
.uri = "/",
.method = HTTP_GET,
.handler = index_handler,
.user_ctx = NULL
};[/spoiler]
+ функция
[spoiler]static esp_err_t index_handler(httpd_req_t *req){
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, (const char *)INDEX_HTML, strlen(INDEX_HTML));[/spoiler]
+ то что попадает в масив
[spoiler]static const char PROGMEM INDEX_HTML[] = R"rawliteral(
<html>
<head>
<title>ESP32-CAM Robot</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: Arial; text-align: center; margin:0px auto; padding-top: 30px;}
table { margin-left: auto; margin-right: auto; }
td { padding: 8 px; }
.button {
background-color: #2f4468;
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 18px;
margin: 6px 3px;
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
img { width: auto ;
max-width: 100% ;
height: auto ;
}
</style>
</head>
<body>
<h1>ESP32-CAM Robot</h1>
<img src="" id="photo" >
<table>
<tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('forward');" ontouchstart="toggleCheckbox('forward');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Forward</button></td></tr>
<tr><td align="center"><button class="button" onmousedown="toggleCheckbox('left');" ontouchstart="toggleCheckbox('left');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Left</button></td><td align="center"><button class="button" onmousedown="toggleCheckbox('stop');" ontouchstart="toggleCheckbox('stop');">Stop</button></td><td align="center"><button class="button" onmousedown="toggleCheckbox('right');" ontouchstart="toggleCheckbox('right');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Right</button></td></tr>
<tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('backward');" ontouchstart="toggleCheckbox('backward');" onmouseup="toggleCheckbox('stop');" ontouchend="toggleCheckbox('stop');">Backward</button></td></tr>
</table>
<script>
function toggleCheckbox(x) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "/action?go=" + x, true);
xhr.send();
}
window.onload = document.getElementById("photo").src = window.location.href.slice(0, -1) + ":81/stream";
</script>
</body>
</html>
)rawliteral";[/spoiler]
В примере кода IDE в массиве находиться весь HTML код страницы,что в нашем случае не нужно так как будет своя HTML страница с кнопками.
Подскажите как доработать, а то уже мозги кипят
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
В GyverPortal есть камера, не пробовали на нем?CraCk писал(а): 21 янв 2024, 17:35 Здравствуйте, практически получилось скрестить картинку из камеры и кнопок управления в одном окне.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
GyverPortal не брал во внимание, так как там нет функции кнопка с удержанием что нужно для управления.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
Есть там такие кнопки, вот попробуйте , для теста выложу пример с камерой и кнопками, не упорядочивал их Камера там работает хорошо.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
Какую версии библиотеки ставить 3.6.5 https://github.com/GyverLibs/GyverPorta ... /tag/3.6.5 или 3.6.6 https://github.com/GyverLibs/GyverPorta ... /tag/3.6.6 ? В проекте материться что нет библиотеки.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
Последнюю с ГитхабаCraCk писал(а): 23 янв 2024, 14:09Какую версии библиотеки ставить 3.6.5 https://github.com/GyverLibs/GyverPorta ... /tag/3.6.5 или 3.6.6 https://github.com/GyverLibs/GyverPorta ... /tag/3.6.6 ? В проекте материться что нет библиотеки.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
[ref=#ff8000]aidar_i[/ref], Спасибо получилось работает хорошо.
Но на телефоне есть проблема, залипает на кнопке когда долго держать. Можно как то это исправить?
Но на телефоне есть проблема, залипает на кнопке когда долго держать. Можно как то это исправить?У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
Да есть такое, не знаю есть настройки такие, чтобы выключить выскакивающие меню в браузере.CraCk писал(а): 23 янв 2024, 15:09 [ref=#ff8000]aidar_i[/ref], Спасибо получилось работает хорошо.Но на телефоне есть проблема, залипает на кнопке когда долго держать. Можно как то это исправить?
Это проблема не портала, а смартфона.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
В браузере телефона при зажатии на кнопке, выделяется как раз текст кнопки, по этому выскакивает меню. Пробовал оставить кнопку без надписи, ставил пробелы, тогда кнопка стает очень узкой.aidar_i писал(а): 23 янв 2024, 15:35 Да есть такое, не знаю есть настройки такие, чтобы выключить выскакивающие меню в браузере.
А как дела обстоят в режиме точки доступа, ничего не изменилось, нужно дальше работать с файловой системой есп?
В проекте Камера кнопки.flp можно брать другие блоки из Вашей темы viewtopic.php?f=71&t=8039&start=320#p125615 ? Или в проекте новая версия блоков?
Такое размещение кнопок с картинкой возможно сделать в GP?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
Кнопки в ранних версиях другие, в них удержания нет.CraCk писал(а): 23 янв 2024, 16:58В браузере телефона при зажатии на кнопке, выделяется как раз текст кнопки, по этому выскакивает меню. Пробовал оставить кнопку без надписи, ставил пробелы, тогда кнопка стает очень узкой.aidar_i писал(а): 23 янв 2024, 15:35 Да есть такое, не знаю есть настройки такие, чтобы выключить выскакивающие меню в браузере.
А как дела обстоят в режиме точки доступа, ничего не изменилось, нужно дальше работать с файловой системой есп?
В проекте Камера кнопки.flp можно брать другие блоки из Вашей темы viewtopic.php?f=71&t=8039&start=320#p125615 ? Или в проекте новая версия блоков?
Такое размещение кнопок с картинкой возможно сделать в GP?
Снимок экрана 2024-01-23 155803.png
Посмотрю что можно сделать.
Кнопки не мини вроде не сужаются.
Режим ТД проблем не было. Да файловая система нужна.
Такое размещение возможно,
И посмотрю в библиотеке, чтобы видео окно не вставало всегда в отдельной строке.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
[spoiler][/spoiler]
Для того, чтобы можно было изменить размеры кнопки, создал другой блок и внес изменения в библиотеке.
Прежний блок кнопки и блок мини кнопки не будут работать. Пример скоро будет.
Текст кнопки лучше не писать, чтобы не залипала.
Можно рядом написать.
Отправлено спустя 11 часов 48 минут 44 секунды:
[spoiler][/spoiler]
Чтобы в кнопки привязать иконки, нужно использовать файловую систему ЕСП32. Папка data с иконками. На всякий случай приложу папку tools для установки файловой системы в Arduino Ide в папку sketchbook [spoiler][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
CraCk
- Капитан
- Сообщения: 721
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 21 раз
- Поблагодарили: 10 раз
ESP-CAM + встроенный WEB сервер
[ref=#ff8000]aidar_i[/ref],
Получилось запустить, работает неплохо.
[spoiler][/spoiler]
Получилось запустить камеру на штатном ВЕБ интерфейсе без ошибок по этому примеру: https://stackoverflow.com/questions/649 ... -esp32-cam
[spoiler][/spoiler]
Получилось запустить, работает неплохо.
Чтоб не использовать файловою систему, можно в адрес кнопки вставить отконвертированную картинку в формате BASE64 https://www.base64-image.deaidar_i писал(а): 25 янв 2024, 12:01 Чтобы в кнопки привязать иконки, нужно использовать файловую систему ЕСП32.
[spoiler][/spoiler]
Получилось запустить камеру на штатном ВЕБ интерфейсе без ошибок по этому примеру: https://stackoverflow.com/questions/649 ... -esp32-cam
[spoiler][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
aidar_i
- Полковник
- Сообщения: 3418
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 151 раз
- Контактная информация:
ESP-CAM + встроенный WEB сервер
Точно я про это уже забылCraCk писал(а): 30 янв 2024, 13:27 Чтоб не использовать файловою систему, можно в адрес кнопки вставить отконвертированную картинку в формате BASE64 https://www.base64-image.de
Кто сейчас на конференции
Сейчас этот форум просматривают: Amazon [Bot] и 1 гость