Cheap Yellow Display (официально ESP32-2432S028R) — это небольшая плата разработки, которая объединяет ESP32 с 2,8-дюймовым сенсорным экраном 320x240, слотом SD-карты, RGB-светодиодом и датчиком света, все за менее чем десять долларов. Она стала популярной в 2024 году, и к 2026 году стала стандартной мишенью для любого энтузиаста, который хочет получить настоящий сенсорный экран на столе, на стене или на передней панели 3D-принтера. Оборудование — это только половина истории. Вторая половина — это настольный набор инструментов, который мы используем для разработки интерфейсов, написания прошивки и загрузки сборок на плату. Ниже представлены семь инструментов, которые мы используем чаще всего при работе над проектом CYD, от первого мигающего пикселя до отполированной умной панели.
На что обращать внимание при выборе инструмента для CYD
CYD имеет свои особенности. Он использует драйвер дисплея ILI9341 через SPI и контроллер сенсорного ввода XPT2046 на отдельной шине SPI, и назначения выводов не совпадают с тем, что предполагают большинство учебников по ESP32. Это означает, что хороший инструмент для работы с CYD имеет несколько специфических характеристик.
- Поддержка LVGL первого класса, так как почти каждый серьёзный проект CYD использует LVGL для графического слоя.
- Готовые к использованию шаблоны драйверов или примеры для ILI9341 и XPT2046, чтобы нам не пришлось угадывать номера выводов.
- Поддержка Wi-Fi OTA, потому что постоянно доставать плату из корпуса для загрузки прошивки быстро надоедает.
- Удобный способ хранить шрифты, изображения и другие ресурсы на SD-карте вместо встроенной памяти.
- Большое сообщество опубликованных примеров CYD, которые мы можем использовать, так как разводка платы немного варьируется между клонами.
Все представленные ниже инструменты хорошо справляются по крайней мере с тремя из этих пяти характеристик.
Быстрое сравнение
| Инструмент | Лучше всего для | Платформы | Бесплатно или платно | Отличительная особенность |
|---|---|---|---|---|
| LVGL | Сам графический слой | Windows, macOS, Linux | Бесплатно, MIT | Запускает одинаковый C-код на CYD и на симуляторе рабочего стола |
| SquareLine Studio | Визуальное проектирование интерфейсов | Windows, macOS, Linux | Бесплатный личный уровень, платный Pro | Экспортирует чистый код проекта LVGL C |
| PlatformIO | Управление сборками и библиотеками | Windows, macOS, Linux | Бесплатное ядро, платные функции Home | Один файл platformio.ini управляет платами, зависимостями и OTA |
| Arduino IDE 2 | Первый проект CYD | Windows, macOS, Linux | Бесплатно | Board Manager находит ядро ESP32 за два клика |
| ESP-IDF | Глубокая работа с прошивкой и низкоуровневое программирование | Windows, macOS, Linux | Бесплатно | Полный доступ к драйверам Espressif и функциям RTOS |
| MicroPython | Быстрое прототипирование на Python | Windows, macOS, Linux | Бесплатно | Живой REPL через USB, без этапа компиляции |
| ESPHome | Панели управления Home Assistant | Windows, macOS, Linux | Бесплатно | Конфигурация YAML компилируется в прошивку без C |
Инструменты
1. LVGL — лучший выбор для графического слоя
LVGL (Light and Versatile Graphics Library) — это то, что делает работу с CYD приятной. Он дает нам кнопки, ползунки, диаграммы, клавиатуры и анимации, которые выглядят современно на экране 320x240, и работает почти на любом микроконтроллере с фреймбуфером. Версия 9 ещё больше уменьшила размер памяти и упростила API драйверов дисплея и входных данных, что важно с учетом ограниченного оперативной памяти ESP32.
Убийственной функцией для начинающих является симулятор рабочего стола: тот же C-код, который управляет CYD, может работать в окне SDL на нашем ноутбуке, поэтому мы можем итерировать макет и взаимодействие без касания платы. Когда мы всё же загружаем код, LVGL аккуратно встраивается в проекты PlatformIO, Arduino и ESP-IDF с одним и тем же файлом lv_conf.h.
Практически любое более сложное, чем двухкнопочная демонстрация, приложение на CYD использует LVGL под капотом.
2. SquareLine Studio — лучший выбор для визуального проектирования интерфейсов
Написание виджетов LVGL вручную подходит для одного-двух экранов. Дальше этого хочется использовать полотно. SquareLine Studio — это редактор пользовательского интерфейса «перетащи-и-отпусти», специально созданный для LVGL: мы разбираемся на экранах, подключаем обработчики событий, выбираем шрифты, бросаем изображения, а затем нажимаем экспорт, чтобы получить полный проект LVGL C, готовый для PlatformIO или Arduino.
Бесплатный личный уровень достаточно щедрый для любительских сборок CYD, и в сообществе есть шаблон CYD, который устанавливает правильное разрешение 320x240 и параметры драйвера ILI9341. Уровень Pro открывает неограниченное количество экранов, пользовательские виджеты и возможность хранения ресурсов на SD-карте, что стоит того, если мы начинаем продавать проекты.
Рабочий процесс, который нам нравится: нарисовать интерфейс в SquareLine, экспортировать, затем вручную отредактировать сгенерированный ui_events.c для подключения логики Wi-Fi, датчиков или MQTT.
Загрузить: Сайт
3. PlatformIO — лучший выбор для управления сборками и библиотеками
После того как проект содержит более одного файла, PlatformIO окупает себя. Он работает как расширение внутри VS Code (и нескольких других редакторов) и заменяет случайные этапы сборки, которые преследуют хобби-разработку ESP32, одним файлом platformio.ini, который объявляет плату, фреймворк, библиотеки и метод загрузки.
Для работы с CYD шаблон следующий: выбери board = esp32dev, добавь LVGL и библиотеку дисплея TFT_eSPI или LovyanGFX как lib_deps, и бросить правильный User_Setup.h в include/, чтобы выводы совпадали с проводкой CYD. Отсюда один клик собирает, загружает и открывает монитор последовательного порта. OTA через Wi-Fi — это однострочное изменение в upload_protocol, что значительно улучшает качество жизни для плат, установленных за безелью.
Версии библиотек закреплены в файле конфигурации, поэтому проект, который собирался в прошлом году, все еще собирается в этом году. Это не то, что мы можем сказать о каждом учебнике по ESP32.
4. Arduino IDE 2 — лучший выбор для первого проекта CYD
Arduino IDE 2 (текущий стабильный выпуск, не старая Java 1.x) — это то, с чего большинство людей начинают с CYD, и нет ничего плохого в том, чтобы остаться. Он обрабатывает пакет платы ESP32 через Board Manager, имеет быстрый редактор на основе Monaco с автодополнением и встроенный монитор последовательного порта и плоттер.
Браузер примеров — это лучший в своем классе инструмент обнаружения для новичка: установи библиотеки TFT_eSPI, XPT2046_Touchscreen и LVGL, и в меню File появятся десятки запускаемых скетчей. Большинство учебников CYD на YouTube и GitHub написаны для Arduino, поэтому следовать инструкциям легко.
Мы выбираем его, когда хотим написать однофайловый скетч, чтобы доказать, что что-то работает на оборудовании, а затем перейти на PlatformIO после того, как проект вырастет.
Загрузить: Сайт
5. ESP-IDF — лучший выбор для глубокой работы с прошивкой
После того как мы перерастаем абстракцию Arduino, собственный SDK Espressif ждёт нас. ESP-IDF дает нам задачи FreeRTOS, полную систему компонентов, глубокое управление питанием, управление двумя ядрами и доступ ко всем периферийным устройствам, которые выставляет ESP32. Это то, что используют доставляемые продукты.
Компромисс — многословность. Мигающий светодиод требует больше кода, чем в Arduino, и драйвер дисплея CYD не встроен, поэтому мы либо берем портированный esp_lcd из LVGL, либо подключаем TFT_eSPI как компонент. Преимущество в том, что как только сантехника будет на месте, мы сможем делать то, что Arduino не может, например двойную буферизацию обновления дисплея с DMA и фреймбуферы с поддержкой PSRAM.
Мы используем его, когда проект CYD включает что-либо с интенсивной сетевой работой (коexistence BLE + Wi-Fi, сетка, TLS), или когда нам важен расход энергии на батарее.
6. MicroPython — лучший выбор для Python-прототипов
MicroPython размещает интерпретатор Python 3 на ESP32 с REPL через USB, и это меняет наш подход к прототипированию. Введи строку, увидишь изменение пикселя на CYD. Нет компиляции, нет цикла загрузки, нет ожидания.
История графики немного более фрагментирована, чем с LVGL C, но сам LVGL поставляется с привязками MicroPython, и кастомизированные сборки lv_micropython для CYD распространяются в сообществе. Для более простых панелей управления достаточно драйверов st7789py и xpt2046, чтобы нарисовать текст, спрайты и области касания в несколько десятков строк.
Мы используем его для преподавания, для одноразовых игрушек и для того рода внутренних инструментов, где мы хотим иметь возможность подключаться по SSH через WebREPL и менять поведение без перестройки.
Загрузить: Сайт
7. ESPHome — лучший выбор для умных панелей управления
Если CYD собирается на стену рядом с установленным Home Assistant, ESPHome — это кратчайший путь к рабочей панели управления. Вместо написания прошивки мы пишем файл YAML, который объявляет дисплей, сенсорный экран, переключатели, датчики и страницы интерфейса. ESPHome компилирует его в двоичный файл прошивки и загружает его, затем автоматически подключает все это обратно к Home Assistant.
CYD имеет поддержку от первого лица в документах ESPHome, включая правильные назначения шин SPI, подсветку PWM и советы по калибровке сенсорного экрана. Конфигурации сообщества охватывают термостаты, контроллеры мультимедиа и панели для многокомнатного освещения, и любую из них можно разветвить и отредактировать в панели управления ESPHome через браузер.
Для всех, кто хочет получить работающую умную панель на выходные, а не проект обучения прошивке, это правильный ответ.
Как выбрать правильный инструмент
Правильный инструмент зависит от того, где собирается быть CYD и как глубоко мы хотим зайти. Тот, кто только что получил плату и хочет увидеть что-то на экране сегодня вечером, должен установить Arduino IDE 2, добавить ядро ESP32 и загрузить пример TFT_eSPI. Это кратчайший путь к работающему пикселю.
Для проекта с настоящим интерфейсом (меню, экраны, анимации, клавиатура), ответ — LVGL для рендеринга, SquareLine Studio для макета и PlatformIO для сборки. Эта тройка — это то, что используют большинство отполированных проектов CYD на GitHub, и это комбинация, которую мы рекомендуем всем, кто серьёзно относится к этой плате.
Разработчики прошивки с намерением отправить продукт должны пропустить Arduino и сразу перейти на ESP-IDF, затем добавить LVGL как компонент. Это больше настройки, но это устраняет потолок.
Хобби-разработчики и преподаватели, ориентированные на Python, выполняют больше работы в MicroPython, особенно для детских мастер-классов или внутренних инструментов.
И если CYD предназначен жить на стене с Home Assistant позади, ESPHome обходит все вышеперечисленное и позволяет нам описать панель управления в YAML за один день.
Часто задаваемые вопросы
Что такое Cheap Yellow Display? Это ESP32-2432S028R, модуль ESP32-WROOM-32, припаянный к плате с 2,8-дюймовым сенсорным экраном 320x240 (драйвер ILI9341, резистивное касание XPT2046), слотом SD-карты, RGB-светодиодом, датчиком света и портом USB. Он продается примерно за 8–12 долларов на большинстве рынков и получил прозвище “Cheap Yellow Display”, потому что ранние партии поставлялись на желтых печатных платах.
Должен ли я использовать LVGL, или есть альтернативы? LVGL — самый популярный выбор, но не единственный. TFT_eSPI и LovyanGFX оба дают нам быстрые примитивы (линии, фигуры, спрайты, текст), если мы хотим нарисовать интерфейс сами. Для простых датчиков и панелей управления этого достаточно. LVGL выигрывает, как только нам нужны виджеты, анимация или клавиатура.
Могу ли я разрабатывать для CYD на macOS или Linux?
Да. Каждый инструмент в этой статье работает нативно на Windows, macOS и Linux. На Linux нам может потребоваться правило udev, чтобы наша учетная запись пользователя могла разговаривать с чипом USB-to-serial CH340 или CP2102 на плате, но это разовый этап настройки.
Как я могу загрузить CYD по Wi-Fi вместо USB? PlatformIO, Arduino IDE 2, ESP-IDF и ESPHome все поддерживают OTA-обновления. Общий шаблон — включить библиотеку OTA или компонент в прошивку, подключить плату к Wi-Fi, а затем установить метод загрузки в инструменте так, чтобы он указывал на IP-адрес платы. Первая загрузка по USB, все остальные могут быть беспроводными.
Бесплатна ли SquareLine Studio для использования в хобби? Личный уровень бесплатен и охватывает большинство хобби-проектов CYD. Это ограничивает такие вещи, как количество экранов и разрешение ресурсов, но экспортированный код LVGL не имеет ограничений во время выполнения. Подписка Pro открывает неограниченное количество экранов, ресурсы с более высоким разрешением и коммерческое использование.