Для меня Веб как резервное управление, но захотелось красоты и простоты. Чтобы фейс можно было накидать за 5 мин.
Что удалось добиться:
- 0. Авторизация в веб интерфейсе.
1. Мультиязычный интерфейс.
2. "Обновление прошивки" (WebUpdate Firmvare) штатно в прошивке.
3. Динамическое обновление отдельных элементов интерфейса без перерисовки всего документа
4. Настройка WiFi средствами библиотеки либо штатными в flprog.
5. Элементы управления на любой вкус, включая графики.
6. Автопубликация контроллера в локальной сети через mDNS/ZeroConf
7. WiFi Captive Portal detection - при подключении к WiFi AP контроллера устройтсво/браузер покажет всплюывающее окно с предложением открыть страницу CRMui3
8. Выход "EN" в блоках - Встроенный аналог стандартного блока обнаружения изменения. При изменении из веб появится высокий уровень на один цикл.
9. Встроенный UART логгер.
Рекомендую блоки фейса располагать в конце проекта. Блок "настройка ВиФи" должен быть последним в проекте.
Сделал два варианта.
Вариант №1:
Весь функционал flprog работает штатным образом.
Корректно работает с диспетчером ecoins.
Беда варианта №1 - интерфейс формируется не так как стоят блоки на экране, а в порядке нумерации блоков. Рекомендую включать 'Вид - Показывать номера блоков" чтобы убедиться в правильности сборки блоков при компиляции! Если нужно что то добавить, то проще вырезать все нижние блоки, добавить нужное и вставить обратно. Нумерация будет правильной. Блоки веб-интерфейса не обязательно использовать на одной плате. Но важно самому не запутаться в порядке их использования.
Исправления
от 25.02.23
Исправил блок "Значение в виде таблицы". Теперь данные на странице сохраняются.
Исправил баг в кнопках.
Исправил баг с Выходом "EN" в блоках.
Много др. улучшений и оптимизаций...
Очень много улучшений и оптимизации. Код блоков был полностью, вдумчиво переписан.
Из нового:
1. Добавлен выбор на каком ядре ЕСП32 работать вебу. При выборе ядра "0" ресурсы основного ядра "1" не тратятся на Веб. Схема зарекомендовала себя очень хорошо.
2. Навел порядок и систематизировал работу с цветом. Часть элементов имеют внешний вход для изменения цвета текста по условию.
3. Теперь проще работать с иконками.
4. Добавил блок управление сном по внутреннему таймеру.
5. У большинства элементов добавлена возможность выбрать тип входа и ед. измерения.
Добавил icon.pdf с набором иконок. Значок указывается в формате CODE без 0
Пример - 0xe802, указываем xe802
Вариант №2:
Появился благодаря активной поддержке со стороны Phazz.
Интерфейс формируется так как стоят блоки на экране. Стало заметно удобнее сформировать Веб. Не надо следить за нумерации блоков.
Но... в зоне блоков Веба не работают штатные блоки flprog. Работает только конвертация значений по входу блоков.
Т.е. все входящие и исходящие значения в Вебе получаем с помощью переменных или клемм.
ESP8266 - ядро 3.0.2
ESP32 - ядро 1.0.6 , требуется в файле wi-fi.cpp, раскомментировать 13 строку и закомментировать 16 строку.
ESP32 - ядро выше 2.0
Не забудьте в настройках компилятора задействуйте файловую систему и обновление FS и OTA.
Для стабильной работы необходимы библиотеки ArduinoJson, AsyncTCP, ESPAsyncTCP, ESPAsyncWebServer.
Для эстетов - версия ArduinoJson должна быть не больше 6.19.4. Бывают проблемы с ESPAsyncWebServer, надо пробовать.
Для всех остальных проще удалить одноименные библиотеки из каталогов \ideV8\libraries и \ideV8\portable\sketchbook\libraries и разархивировать приложенные библиотеки в каталог \ideV8\libraries. Если не помогает то найти дубликаты с помощью поиска.
Если в процессе работы возникают глюки то необходимо произвести полную отчистку памяти или хотя бы отчистку spiffs