• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Есть ли на модулях ESP32+PSRAM нормальный многопользовательский Web со всеми актуальными настройками WiFi?

pvvx

Активный участник сообщества
Прошло более пары лет, как я глубоко не отслеживал, что нового слепили в ESP32.
Сделали или нет на модулях ESP32+PSRAM нормальный многопользовательский Web со всеми актуальными настройками WiFi и быстрой сменой файлов HTML?
Ну типа аналога моей древней web-свалки на ESP8266...
Или оно всё так в Arduino и застряло на уровне мигания светодиодом и проще взять какой другой SoC?

Нужно такое чудо. Кто подскажет что или куда смотреть?
 

pvvx

Активный участник сообщества
Требования к Web не большие, не более чем у реализованных мной ранее у WEB в открытый доступ на RTL8195, но нужно с SSL. Т.е. c HTTPS.
Старые нормы у Web на RTL8195 были такие:
  • Трафик выдачи страниц 1 Мегабайт в сек
  • Кол-во одновременно открытых файлов на внутреннем диске – от дцать штук
  • Кол-во одновременно открытых соединений TCP с WEB – от десятка.
  • Кол-во открытий/закрытий HTTP соединений (аналог DDOS) - от десятков в сек.
 

pvvx

Активный участник сообщества
Там представлена демка (не HTTPS), работающая на STM3220G-EVAL (STM32F207IGH6 и 16-Mbit SRAM)
В принципе нормально отрабатывает в Wireshark и одновременную отдачу нескольких запросов Chrome отдает...
Надо будет более "утонченно" поглядеть... натравить что-то типа apache-jmeter :)
 

pvvx

Активный участник сообщества
Попробуем на вкус без apache-jmeter...

Опрос AJAX в демке xml низкочастотный (200 ms) и если один клиент (одно окно Сhrome):
1606422685097.png
Пинг и транзакция всего 80-90 ms

Если 5 окон (т.е. всего 5 открытых TCP с keep-alive):

1606422887646.png
Пинг и транзакция уже увеличивается на от 100 ms
Т.е. на показанной транзакции ответ тормозит на 110 ms ( не выбирал мин-мах - взял первый попавшийся - на шкале времени есть и сильно больше)...
 

pvvx

Активный участник сообщества
Apache-jmeter в один поток:
1606424343235.png
1606424404257.png
Итого:
1606424355909.png
 

pvvx

Активный участник сообщества
В 5 потоков:
1606424907829.png
1606424913803.png
Имеем падения скорости ответов до 2 сек (1995 ms). Ответы с задержкой чаше в диапазоне 1.5..1.6 сек (вместо 79 ms если всё ok)
Надо проверять в локалке....
5 тредов не дали ускорения в 5 раз как и должно было быть - итог 27.4 транзакции в сек (при keep-alive), а при одном - 11.8 шт в сек.

PS: Nikolz у нас заявляет, что у него сервер отдает сотни тысяч запросов в сек :) :)
 

pvvx

Активный участник сообщества
При 25-ти тредах:
1606426115230.png
имеем ошибки ответов (1.45%)...
Надо глядеть на своем живом и подконтрольном в локалке (сеть теряет или сервер?)... Но это требует портирования и прочего ковыряния - не пять минут...
 

pvvx

Активный участник сообщества
1) Скачал какую-то "Open Source Version", развернул, вышел каталог: "CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0"

2) Загрузил установщик ESP-IDF Tools по этому URL-адресу:
Получил:
1606552487226.png
Соответственно никаких:
Установщик инструментов ESP-IDF создает ярлык в меню «Пуск» для запуска командной строки ESP-IDF.
Источник <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html>

Т.е. как всегда нежданчик от безалаберной Espressif, который нужно разруливать вручную....
 

pvvx

Активный участник сообщества
3) В общем запустил ярлык "ESP-IDF Command Prompt"
В нем ползем в каталог примеров от Cyclone набивая:
D:\MCU\Espressif\esp-idf>e:
E:\>cd ESP32
E:\ESP32>cd CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0>cd demo
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0\demo>cd espressif
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0\demo\espressif>cd esp32_wrover_kit
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0\demo\espressif\esp32_wrover_kit>cd http_server_demo
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0\demo\espressif\esp32_wrover_kit\http_server_demo>create_project_structure.bat
E:\ESP32\CycloneTCP_SSL_SSH_CRYPTO_Open_2_0_0\demo\espressif\esp32_wrover_kit\http_server_demo>idf.py build
И пошла сборка проекта… завершающаяся:
Код:
../main/cyclone_tcp/core/net.h:89:5: error: #error Before compiling CycloneTCP Open, you must accept the terms of the GPL license
    #error Before compiling CycloneTCP Open, you must accept the terms of the GPL license
     ^~~~~
[834/975] Building C object esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/spiffs/src/spiffs_check.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
:)
Я же маску одел - что ещё надо?
 

sharikov

Active member
Прошло более пары лет, как я глубоко не отслеживал, что нового слепили в ESP32.
Сделали или нет на модулях ESP32+PSRAM нормальный многопользовательский Web со всеми актуальными настройками и застряло на уровне мигания светодиодом и проще взять какой другой SoC?
...
Нужно такое чудо. Кто подскажет что или куда смотреть?
Смотреть в сторону HLK-7688 + Nginx.
На ESP32 + PSRAM многопользовательский Web сделать можно я год или полтора назад даже выкладывал какие то тесты. Не нужно оно никому и низачем.
 

pvvx

Активный участник сообщества
Кароче в CycloneTCP пошутили с ESP32. Ничего не соберется, т.к. всё в IDF давно изменено, а CycloneTCP не собирается исправлять даже простые ошибки в своих исходниках:
error: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Werror=stringop-truncation]
 

pvvx

Активный участник сообщества
Смотреть в сторону HLK-7688 + Nginx.
Там беда с тормозами у межзадачных переключений.
На ESP32 + PSRAM многопользовательский Web сделать можно я год или полтора назад даже выкладывал какие то тесты. Не нужно оно никому и низачем.
Мне нужно.
Пока вижу что это пойдет только на RTL872x c WiFi 2+5 ГГц и одновременно с BT.
 

pvvx

Активный участник сообщества
Ещё причина по чему не соберется CycloneTCP - слишком длинные пути файлов для сборки и не лезут в Win10.
Проект можно размещать только в корневую директорию :) :)
И за это ещё просят бабло...
 

A_D

Active member
Ещё причина по чему не соберется CycloneTCP - слишком длинные пути файлов для сборки и не лезут в Win10.
Проект можно размещать только в корневую директорию :) :)
И за это ещё просят бабло...
Весело... но это, кроме mbed, единственное, что я нагуглил из опенсорса.
 

pvvx

Активный участник сообщества
Смотреть в сторону HLK-7688 + Nginx.
В xxxRTOS при работе WiFi мы теряем всего 10..16 MHz производительности CPU. Переключение между тредами/потоками быстрое, на Cortex M33 есть Float. На MT76xx в linux просто так меж тредами не попрыгать, тем более быстро не позапускать новых процессов - что-то там не так с дескрипторами виртуальной памяти (MMU) и долго это дело - закопировать весь kernel, да нет Float. Проц уже старенький...
 

pvvx

Активный участник сообщества
Весело... но это, кроме mbed, единственное, что я нагуглил из опенсорса.
Дык оно не сочлиняется с ESP32 IDF, а с другим может пойдет.
Длина пути нарушается при выборке из IDF, а не из CycloneTCP.
 

pvvx

Активный участник сообщества
А, т. е. это опять у espressif недочёты вылезли?
Там у обоих...
Вот что делать с :
Код:
In file included from ../main/cyclone_tcp/core/net.h:39,
                 from ../main/cyclone_tcp/http/http_client.c:48:
../main/cyclone_tcp/http/http_client.c: In function 'httpClientFormatHeaderField':
../main/common/os_port.h:189:45: error: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Werror=stringop-truncation]
    #define osStrncpy(s1, s2, length) (void) strncpy(s1, s2, length)
                                             ^~~~~~~~~~~~~~~~~~~~~~~
../main/cyclone_tcp/http/http_client.c:946:4: note: in expansion of macro 'osStrncpy'
    osStrncpy(context->buffer + context->bufferLen + nameLen - 2, ": ", 2);
    ^~~~~~~~~
cc1.exe: some warnings being treated as errors
 
Сверху Снизу