• Система автоматизации с открытым исходным кодом на базе 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
 
Сверху Снизу