ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
18 марта
1576534 Топик полностью
Гyдвинволшебник (Вчера, 22:27 - 23:09, просмотров: 42) ответил Гyдвин на Потратил сегодня полдня на разговоры с DeepSeek и добился в итоге того, что хотел !
Посидел еще вечерок с собеседником "ESP32 Developer". В результате родилась довольно полезная, имхо, прошива - скетч для бздюлинки ESP32C3. А именно, вполне полноценная основа WEB сервера. 

Версия докатилась до 7.3 final. Потому как есть некие вещи, в которые прошлось конкретно тткнуть носом. Сам этого сделать он не смог. Например, пришлось объяснить, что создавать основную страницу при первом старте надо динамическую, используя JS. А то дипсик пытался это проделывать со статическим html. Ибо сечас реализованы 2 режима работы wifi - AP и CLI. Если не найдена точка доступа, к которой можно подключиться, то в страницу должна добавляться форма для ввода SSID и пароля. А в режиме wifi CLI этого не надо. Ну и полноценные манипуляции с файловой системой для обеих режимов + OTA. Прикладываю архив, т.к. он реально будет полезен кому - нибудь. Мне точно полезен ;) Есть куча идей по променению этой шняги (например, контактная сварка с web мордой и пр.) Index.html заливается требуемый для конкретной цели. Как и другие необходимые для этого файлы. В архиве приложен образец Index.html, выполняющий мою немного высосанную из пальца ;) задачу, описанную в этом топике + JS для построения графиков. В качестве примера вполне сгодится... Кому не нужна работа с массивом в RAM и temp.log - удалит из кода. Основную же страницу sys.html прошивка создает при первом старте. Т.е. достаточно только залить прошивку в ESP. Вот что выдалось в сопроводиловке по тонкостям работы (что, собственно, и вымучивал ;) >

Основные изменения в версии 7.3:
1. Корневой маршрут "/" теперь показывает index.html
cpp
server.on("/", HTTP_GET, []() {
  Serial.println("GET /");
  
  // Проверяем наличие index.html
  if (LittleFS.exists("/index.html")) {
    Serial.println("  Found index.html, creating temp.log");
    createTempLogFromBuffer();
    handleFileRead("/index.html");
  } else {
    Serial.println("  No index.html, showing sys.html");
    handleFileRead("/sys.html");
  }
});
2. Логика работы страниц:
    / - если есть index.html, показывает его и создает temp.log; иначе показывает sys.html
    /index.html - всегда показывает index.html и создает temp.log
    /sys.html - всегда показывает системную страницу без создания temp.log
3. Обновлены ссылки в интерфейсе
    В заметке о буфере: "Refresh home page" ведет на /
    Кнопка "Home" ведет на /
4. Подробное логирование
При запросе корневого маршрута видно:
    Найден ли index.html
    Что именно отдается пользователю
Теперь все работает как задумано:
    При открытии корневого URL (http://ip/) открывается ваш index.html
    При этом создается temp.log из буфера
    Системная страница всегда доступна по /sys.html