Посидел еще вечерок с собеседником "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