PRAKTIKA.plyask.in

Генератор HTML-форм и C-обработчиков для встроенного веб-интерфейса ESP32

Создание инструмента, который на входе принимает описание формы (например, в JSON) и автоматически генерирует HTML-страницу и соответствующий обработчик на языке C для ESP32. Это практическая задача, связанная с реальной прошивкой и отладкой на микроконтроллере. Проект требует понимания ограничений embedded-среды, навыков проектирования и генерации кода, а также работы с ESP-IDF или Arduino.

Предоплата 60 000 ₽

При идеальном результате могу вернуть до 100% — 60 000 ₽

Цель и задачи работы

Цель — разработка генератора, упрощающего создание HTML-интерфейсов и C-обработчиков конфигурационных параметров для устройств на базе ESP32. Он должен быть способен по входному описанию (например, JSON-файлу) генерировать HTML-форму и C-код, который:

  • Отображает форму в интерфейсе устройства
  • Обрабатывает данные, полученные через POST/GET
  • Выполняет базовую валидацию значений

Работа позволит участнику прокачать навыки системного программирования, шаблонизации, генерации кода и работы с микроконтроллерами.

содержание работы

  • Провести обзор типовых веб-интерфейсов конфигурации на микроконтроллерах: какие поля используются, какие типы данных, как оформляется отправка и валидация.
  • Учесть ограничения платформы ESP32: ограниченная оперативная память, отсутствие поддержки серверных языков (PHP, Python).
  • Определить структуру входных данных — JSON, YAML или собственный DSL — для описания формы.
  • Спроектировать шаблоны для генерации:
    • HTML-страницы формы
    • Обработчика на C, который будет:
      • Принимать значения
      • Валидировать их (например, диапазоны, строки определённой длины)
      • Сохранять в структуру настроек
  • Реализовать CLI- или Web-интерфейс генератора.
  • Проверить результат на примере конфигурационной формы Wi-Fi-настроек.
  • Собрать прошивку с сгенерированным кодом, загрузить на ESP32, провести базовое тестирование.

Результат и критерии завершения работы

Готовый инструмент (CLI или Web), позволяющий по входному JSON-описанию генерировать:

  • HTML-страницу с формой (input, select, checkbox и т.д.)
  • Код на языке C:
    • Обработку входящих данных (POST)
    • Валидацию значений
    • Сохранение настроек в структуру

Ожидается наличие:

  • Минимум двух примеров (например, Wi-Fi и настройки устройства)
  • Документации по запуску и использованию генератора
  • Чистого и читаемого кода с комментариями

Критерии:

  • Код собирается и работает на ESP32
  • Нет утечек памяти или крэшей
  • Логика валидации и обработки соответствует описанию формы
  • Минимальное ручное вмешательство при добавлении новых форм