5.6 KiB
5.6 KiB
LVGL HMI Display UI — Кондиционер-доводчик
UI интерфейс для контроллера кондиционера-доводчика (КД) для ИФП СО РАН.
Проект использует LVGL — графическую библиотеку для встраиваемых систем. Код можно запустить на ПК с помощью SDL симулятора, а затем перенести на микроконтроллер.
Возможности
- Главный экран со схематичным отображением модулей установки (клапаны, фильтры, нагреватели, вентилятор и т.д.)
- Drag & Drop модулей для включения/отключения
- Панель состояния системы (режим работы, сезон, мастер/слейв)
- Уставка параметров для рабочего и дежурного режимов
- Журнал аварий
- Настройки с защитой паролем (ПИД-регуляторы, коррекция датчиков)
- Всплывающие окна для показаний датчиков и аварий
Структура проекта
├── src/
│ ├── main_sim.c # Точка входа для симулятора
│ ├── gui_generated.c # Основной код UI
│ └── gui_generated.h # Заголовочный файл UI
├── assets/ # Изображения и шрифты (.c файлы)
├── images/ # Неформатированные изображения
├── ├── example # Примеры работы приложения
├── ├── modules # Исходники изображения модулей
├── lvgl/ # Библиотека LVGL (submodule)
├── lv_drivers/ # Драйверы LVGL
├── FreeRTOS/ # FreeRTOS (опционально)
├── config/ # Конфигурация FreeRTOS
├── lv_conf.h # Конфигурация LVGL
└── CMakeLists.txt # Сборка проекта
Требования
Установка SDL и инструментов сборки
-
Windows (vcpkg):
vcpkg install sdl2Также установите MinGW или другой компилятор и
cmake. -
macOS (Homebrew):
brew install sdl2 cmake make -
Linux (Debian/Ubuntu):
sudo apt install build-essential cmake libsdl2-dev -
Linux (Arch):
sudo pacman -S base-devel cmake sdl2 -
Linux (Fedora):
sudo dnf install @development-tools cmake SDL2-devel
Проверка установки
sdl2-config --version
cmake --version
gcc --version
g++ --version
Сборка и запуск
git clone https://gitea.e-automatics.ru/Trishkin/lvgl-hmi-display-ui
Через командную строку (CMake)
cd lvgl-hmi-display-ui
mkdir build
cd build
cmake ..
make -j
Запуск симулятора:
../bin/main
Или одной командой:
make run
Через Visual Studio Code
- Убедитесь, что SDL и инструменты сборки установлены
- Откройте проект:
File → Open Workspace from File → simulator.code-workspace - Установите рекомендованные расширения
- Перейдите в
Run and Debug(Ctrl+Shift+D) - Выберите
Debug LVGL demo with gdb - Нажмите F5 для запуска с отладкой
macOS
Apple Clang не поддерживает флаг -fsanitize=leak. Для сборки через Homebrew LLVM:
brew install llvm- Cmd+Shift+P →
CMake: Select a Kit→[Scan for kits] - Cmd+Shift+P →
CMake: Select a Kit→ выберите clang из homebrew - Cmd+Shift+P →
CMake: Configure - Запустите сборку
Конфигурация
Разрешение экрана
В файле lv_conf.h:
#define MY_DISP_HOR_RES 800
#define MY_DISP_VER_RES 480
FreeRTOS (опционально)
Для включения FreeRTOS:
-
В
CMakeLists.txtизмените:option(USE_FREERTOS "Enable FreeRTOS" ON) -
В
lv_conf.hизмените:#define LV_USE_OS LV_OS_FREERTOS
Управление интерфейсом
- Останов — выключает вентилятор и нагреватель, клапаны остаются на позициях
- Дежурный — переключает в дежурный режим с соответствующими уставками
- Рабочий — переключает в рабочий режим
- Меню — переход в меню настроек
- Показания — всплывающее окно с показаниями датчиков
Модули установки
Модули можно перетаскивать:
- Вверх — активировать модуль (на линии воздуховода)
- Вниз — деактивировать модуль
Пароль для настроек
Пароль по умолчанию: 1234
Тестирование
Проект протестирован на:
- macOS (Apple Silicon & Intel)
Лицензия
MIT License