Sunton / GUITION ESP32 TFT 2,4–4,0″ · семейство сенсорных плат

Shenzhen Jingcai Intelligent / GUITION; семейство также известно как Sunton · Семейство ESP32-2432S024 / 2432S028 / JC2432W328 / 2432S032 / 3248S035 / JC3248W535 / 4848S040

Сенсорные платы ESP32 и ESP32-S3 для графических интерфейсов.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает Семейство ESP32-2432S024 / 2432S028 / JC2432W328 / 2432S032 / 3248S035 / JC3248W535 / 4848S040

Это одна справочная карточка родственных компактных плат Sunton / GUITION с ESP32 и встроенным TFT-экраном. Они подходят для домашних панелей, погодных станций, меню приборов и сетевых индикаторов. Отдельный Arduino для управления экраном не нужен: приложение работает на установленном ESP32.

Классическая 2,8″ ESP32-2432S028R известна как Cheap Yellow Display (CYD). Здесь она служит подробно разобранным стартовым вариантом. Остальные исполнения объединены для удобства выбора; общая диагональ или похожая жёлтая плата не означают одинаковые MCU, разъёмы, драйверы и прошивки. Номер ревизии будущего экземпляра по рекламному снимку не определяется.

Какие исполнения входят

ИсполнениеMCU и памятьЭкран и touch
ESP32-2432S024 N/R/C · 2,4″ESP32, 4 МБ Flash, без PSRAM240×320; ILI9341 / SPI; R: XPT2046 / SPI, C: CST820 / I²C, N: без touch
ESP32-2432S028R · исходный CYD 2,8″ESP32-WROOM-32, 4 МБ Flash, без PSRAM240×320; ILI9341 / SPI; XPT2046 / отдельная SPI-разводка
JC2432W328 N/R/C · 2,8″ESP32, 4 МБ Flash, без PSRAM240×320; ST7789 / SPI; R: резистивный, C: ёмкостный I²C, N: без touch
ESP32-2432S032 N_I/R_I/C_I · 3,2″ESP32-WROOM-32, 4 МБ Flash, без PSRAM240×320 IPS; ST7789 / SPI; R: XPT2046 / SPI, C: GT911 / I²C
ESP32-3248S035 R/C · 3,5″ESP32-WROOM-32, 4 МБ Flash, без PSRAM320×480; ST7796 / SPI; R: XPT2046 / SPI, C: GT911 / I²C
JC3248W535C_I_Y · 3,5″ESP32-S3, 16 МБ Flash, 8 МБ PSRAM320×480 IPS; AXS15231B / QSPI; ёмкостный AXS15231B / I²C
ESP32-4848S040C_I, C_I_Y_1, C_I_Y_3 · 4,0″ESP32-S3, 16 МБ Flash, 8 МБ PSRAM480×480 IPS; ST7701 / RGB + SPI-инициализация; GT911 / I²C

Память указана для документированных штатных исполнений. Контроллеры touch дополнительно сверены по исходникам работающих портов, перечисленным ниже. Это разные варианты одной справочной подборки, а не обещание совместимости кода.

  • 2,4″ ESP32-2432S024. Производитель, точные GPIO-профили R и C. Подсветка GPIO27; в R экран и touch делят SPI13/12/14. В C физический CST820 может обслуживаться CST816S-совместимым драйвером, но это не название установленной микросхемы; встречается расхождение INT21/22, поэтому нужна проверка ревизии. USB-C и батарейная цепь относятся к описанному исполнению, не ко всем внешне похожим платам.
  • 2,8″ исходный ESP32-2432S028R. Спецификация, распиновка CYD. Micro-USB/CH340C, подсветка GPIO21; пример ниже относится только к этому варианту. Существуют платы с такой же надписью и двумя USB, для которых Larry Bank документирует ST7789; число USB не является универсальным способом распознать драйвер. У исследованного CYD2USB также описана проблема питания кабелем USB-C—USB-C.
  • 2,8″ JC2432W328. Спецификация N/R/C, отдельный профиль C. Драйвер ST7789 и подсветка GPIO27 отличаются от исходного CYD. Профиль C использует I²C-touch с CST816S-совместимым драйвером; физический IC своего экземпляра уточните. Для R не переносите C-touch конфигурацию. Производитель описывает аккумуляторную цепь; параметры батареи и полярность проверяются отдельно.
  • 3,2″ ESP32-2432S032. Спецификация, профили R и C. В иллюстрации производителя указан Type-C; есть отдельный BAT-разъём. ST7789-профиль использует SPI mode 3 и подсветку GPIO27. R-touch делит SPI экрана; C-touch GT911 использует I²C33/32. Это не увеличенный CYD с теми же touch-контактами.
  • 3,5″ ESP32-3248S035. Спецификация, профили R и C. Старое документированное исполнение — Micro-USB, ST7796, подсветка GPIO27. Наличие зарядки аккумулятора для него не подтверждено. Ошибка 240×320 во вводном абзаце PDF не используется: таблица параметров, модельный ряд и профиль согласуются на 320×480.
  • 3,5″ JC3248W535C_I_Y. Спецификация, авторский порт с LCD, touch и GPIO. Это уже ESP32-S3 с QSPI и PSRAM, USB-C и отдельной батарейной цепью. QSPI: CS45/CLK47/D0=21/D1=48/D2=40/D3=39; BL1. Touch I²C: SDA4/SCL8, адрес 0x3B в этом порте. Не путайте с 3248S035 или с определением W535N без touch.
  • 4,0″ ESP32-4848S040. Спецификация, отдельные профили C_I_Y_1 и C_I_Y_3. RGB-пиксели и отдельная 3-wire SPI-инициализация ST7701; подсветка GPIO38, GT911 I²C19/45. USB-C. Y_1/Y_3 — версии настенного исполнения с одним/тремя реле; их сетевое основание не является обычным входом 5 В платы. Для знакомства работайте с низковольтной логической частью по документации. У этих версий релейные и аудиолинии пересекаются. Опечатка S043 на обложке PDF не меняет указанную в таблице модель S040 с 480×480.

Источники программных конфигураций — авторские порты сообщества, а не гарантия совместимости любой партии. Все ссылки R/C нужно выбирать по полному номеру и суффиксу платы. Для внешне похожих ESP32-C3 или иных плат, которых нет в этом перечне, параметры здесь не заданы.

Обозначения N, R и C в этих моделях означают соответственно отсутствие сенсора, резистивный и ёмкостный сенсор. Суффиксы после них и версия PCB также важны. Не выбирайте контроллер по одной букве: проверяйте документацию полного артикула. Размеры 4,3″ и больше в эту подборку не входят.

Как выбрать вариант для проекта

Для первого небольшого интерфейса 2,8″ CYD привлекателен готовым железом и большим числом примеров. Резистивному сенсору нужно нажатие; мелкие элементы интерфейса лучше укрупнить. 3,5″ даёт больше места, но классический ESP32-3248S035 и ESP32-S3-плата JC3248W535 требуют разных драйверов. Квадратный 4″ вариант с RGB-интерфейсом и PSRAM удобнее для насыщенного GUI, однако пример SPI-экрана от CYD к нему не подходит.

У исходного 2,8″ CYD нет PSRAM: 520 КБ SRAM микроконтроллера не равны свободной памяти приложения. Один полный RGB565-буфер 320×240 занимает 153 600 байт, два — 307 200 байт; это арифметический расчёт, а не замер доступной памяти. Для LVGL разумно начинать с небольшого буфера и обновления изменившихся областей. SD-карта хранит файлы и не заменяет оперативную память. Скорость SPI, размер буфера, Wi-Fi и сложность интерфейса влияют на отзывчивость; кадровая частота здесь не обещается.

Обзоры и опыт реальных проектов

  • Brian Lough — Cheap and Easy to Use ESP32 Screen!: исходный обзор 2,8″ CYD и автор проекта сообщества. Удобный вход в тему; его репозиторий содержит отдельные примеры дисплея, touch, SD, подсветки и LED. Описания видео и репозиторий проверены; полного независимого просмотра видео не проводилось.
  • Rui и Sara Santos, Random Nerd Tutorials: практический запуск именно ESP32-2432S028R с фотографиями, настройкой TFT_eSPI и чтением координат. Авторы указывают тестирование своего примера на этой модели. Их численные коэффициенты touch-калибровки нельзя считать универсальными.
  • Larry Bank — More CYDs, Less Frustration, 16.06.2024: разработчик сравнивает реально использованные платы и объясняет различия конфигураций. Особенно полезно сравнение исходного ILI9341 CYD и исследованного им двух-USB варианта со ST7789.
  • Mark Stevens — Cheap Yellow Display SPI, 16.03.2025: опыт создания UART-монитора с ESP-IDF, LVGL, touch и SD. По отдельности узлы работали, а совместный запуск потребовал решения конфликта SPI-контроллеров. Его аппаратная переделка — частное решение, не обязательная операция для всех плат.
  • macsbug — ESP32-2432S028, 17.08.2022, с позднейшими дополнениями: подробное исследование платы, LovyanGFX, ранних аппаратных ревизий и аудиотракта. Материал на японском; версии библиотек и аппаратные доработки относятся к описанным автором экземплярам.

Это авторские обзоры, руководства и журналы сборки, а не единый лабораторный тест яркости, надёжности или автономности. Выводы о 2,8″ не перенесены на всё семейство.

Важные ограничения исходного 2,8″ CYD

LCD, XPT2046 и microSD выведены на три разных набора SPI-контактов, а доступных пользовательских аппаратных SPI-контроллеров ESP32 только два. В минимальном примере ниже LCD использует HSPI, touch — VSPI; SD не включена. Для одновременных LCD+touch+SD предусмотрите программный SPI для touch или другую проверенную архитектуру. Простое добавление SD.begin() может перенастроить используемый touch SPI-контроллер.

GPIO21 занят подсветкой, даже когда выведен на разъём P3. GPIO35 — только вход, без внутренней подтяжки. GPIO22 и GPIO27 часто доступны для I²C, но разводка CN1 менялась: на ранней схеме один контакт не подключён. Перед подключением датчика сверяйте свою PCB и шелкографию; не подавайте 5 В на GPIO или 3V3. Фото с подписями «temperature and humidity» показывает разъём, а не встроенный DHT11.

Что проверить до прошивки

  1. Прочитайте полный номер платы, ревизию PCB и маркировку модуля ESP32 на обороте. Уточните ILI9341/ST7789/ST7796/ST7701/AXS15231B и тип touch по документам именно этого исполнения.
  2. Проверьте реальную ёмкость Flash и наличие PSRAM средствами своей среды. Две видимые микросхемы памяти на ранних платах не доказывают доступность 8 МБ Flash.
  3. Подберите готовый пример с совпадающими MCU, LCD, touch и распиновкой. Начните с USB и минимального теста экрана; затем проверьте touch, а уже после — SD, сеть и датчики вместе.
  4. Перед заменой заводской программы сохраните её доступную копию или резервную копию Flash. Загрузка скетча заменяет пользовательскую прошивку; стирать всю Flash для первого теста необязательно.
  5. Для сенсорного GUI проверьте нажатия в четырёх углах и центре при выбранном повороте. Сохраните калибровку своего экземпляра и протестируйте отсутствие ложных нажатий.

Обложка показывает представитель семейства — 2,8″ плату. Схема расположения разъёмов и пример подключения в этой карточке относятся только к обозначенному 2,8″ исполнению. Для других размеров используйте соответствующие ссылки в сравнении и документации.

Характеристики

Область карточки
Родственные Sunton/GUITION 2,4 / 2,8 / 3,2 / 3,5 / 4,0″; варианты перечислены отдельно
Микроконтроллер
Классический ESP32 у SPI-моделей; ESP32-S3 у указанных QSPI/RGB-моделей
Flash по исполнению
4 МБ у перечисленных классических ESP32; 16 МБ у указанных ESP32-S3
PSRAM по исполнению
Нет у перечисленных классических ESP32; 8 МБ у указанных ESP32-S3
Сенсорный ввод
R — резистивный; C — ёмкостный; N — без touch. Контроллер и GPIO смотреть для полного артикула
Интерфейс дисплея
SPI / QSPI / RGB в зависимости от модели; это разные конфигурации
Стартовый вариант примера
ESP32-2432S028R 2,8″, 240×320, ILI9341, XPT2046, исходный Micro-USB
SRAM стартового варианта
520 КБ в ESP32; свободный heap меньше и зависит от прошивки
USB стартового варианта
Micro-USB через CH340C, питание и UART-прошивка; не native USB ESP32-S3
Габариты стартового варианта
86×50 мм; не размеры всего семейства
Интерфейс
SPI, I²C, UART, Wi-Fi, Bluetooth
Питание модуля
Для первого запуска используйте 5 В через USB конкретной платы. GPIO и контакты 3V3 — логика 3,3 В; 5 В на них недопустимы. Наличие BAT-разъёма, зарядки, допустимого аккумулятора и полярность зависят от модели и ревизии. Не переносите питание JC2432W328 или 4″ платы на исходный CYD и не считайте разъём SPEAK батарейным.

ПРАКТИКА

Подключение

Схема подключения
Контакт модуляКонтакт платыНазначение
2,8″ ILI9341 · SCLK / MOSI / MISOGPIO14 / GPIO13 / GPIO12Внутреннее соединение ESP32-2432S028R; HSPI в примере. Не подключать внешнюю плату к этим линиям.
2,8″ ILI9341 · CS / DC / RESETGPIO15 / GPIO2 / TFT_RST=-1Внутренние цепи. RESET экрана отдельно программно не управляется в этом профиле.
2,8″ · подсветка BLGPIO21, активный HIGHУже занята; P3 не делает этот GPIO свободным.
2,8″ XPT2046 · CLK / DIN / DOUTGPIO25 / GPIO32 / GPIO39Отдельная от LCD физическая SPI-разводка; VSPI в примере.
2,8″ XPT2046 · CS / IRQGPIO33 / GPIO36GPIO36 — вход. Координаты требуют индивидуальной калибровки.
2,8″ microSD · SCK / MOSI / MISO / CSGPIO18 / GPIO23 / GPIO19 / GPIO5В примере SD не используется. Одновременная работа SD+touch требует согласованной архитектуры SPI.
2,8″ P3 · входGPIO35Только вход, без внутренних pull-up/pull-down.
2,8″ · возможные внешние I²CGPIO22 / GPIO27Назначайте SDA/SCL явно только после сверки PCB. На ранних CN1 один контакт не был подключён; порядок контактов не считается универсальным.
2,8″ · RGB / LDR / аудиоRGB: 4/16/17; LDR: 34; DAC: 26RGB активен LOW. SPEAK подключён к усилителю, не является GPIO или питанием датчика.
Другие варианты семействаСмотреть схему точного артикулаGPIO выше нельзя переносить на 2,4 / 3,2 / 3,5 / 4,0″ либо другие 2,8″ ревизии.

Подходит для ESP32, Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги спроектировать устройство на одной из плат Sunton/GUITION TFT 2,4–4,0″. Сначала уточни полный артикул и суффикс, ревизию PCB, маркировку MCU, тип LCD и touch, размер Flash/PSRAM, среду и версии библиотек, питание, задачу, SD и внешние датчики. Если есть только рекламная фотография, попроси фото оборота или ссылку на точное исполнение и не выдавай общую распиновку.

Карточка объединяет семейство: ESP32-2432S028R ILI9341 не равен двух-USB ST7789, JC2432W328, ESP32-3248S035, JC3248W535 или ESP32-4848S040. Не переноси GPIO, прошивки, память и аккумуляторные цепи между моделями. Для классического 2,8″ ESP32-2432S028R исходного Micro-USB исполнения доступны LCD HSPI на GPIO14/13/12, CS15/DC2, BL21; XPT2046 на CLK25/DIN32/DOUT39/CS33/IRQ36; SD на 18/23/19/CS5. Три физических набора SPI при двух пользовательских аппаратных SPI требуют отдельного решения, если нужны все три узла.

Сначала предложи минимальный тест экрана и сырых touch-координат без SD и Wi-Fi, затем калибровку и GUI. Дай согласованные подключения, версии зависимостей, конфигурацию драйвера, расчёт буферов, обработку ошибок и критерии проверки. Для RGB/QSPI ESP32-S3 используй пример производителя точного артикула. Не называй код собранным или проверенным на железе без фактического результата.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Область примеров ниже
ТОЛЬКО ESP32-2432S028R 2,8″ ILI9341 + XPT2046, исходная Micro-USB разводка

Это стартовый эталон одного исполнения. Для ST7789, других размеров и ESP32-S3 выберите другой профиль.

Референсная среда
Arduino IDE 2.x; ESP32 Dev Module; Arduino-ESP32 2.0.17

Фиксированная API-основа примера, не заявление о свежести или аппаратном тесте. Flash 4MB; PSRAM Disabled. Начните с Upload Speed 115200 при проблемах связи.

Зависимости первого теста
TFT_eSPI 2.5.33; XPT2046_Touchscreen 1.4

Версии и сигнатуры API сверены с исходниками авторов. SPI/Arduino входят в core. LVGL и SD не нужны для этого теста.

Конфигурация TFT_eSPI
User_Setup.h: ILI9341_2_DRIVER; USE_HSPI_PORT; TFT_BL=21

Примените первый пример в каталоге установленной TFT_eSPI. User_Setup_Select.h должен подключать этот файл; определения только внутри .ino недостаточны. Сохраните конфиг отдельно: обновление библиотеки может заменить его.

Частота LCD SPI
27000000

Консервативная стартовая настройка 27 МГц в примере, не обещание предельной частоты всех панелей.

Touch и поворот
touchSPI.begin(25,39,32,33); touch.begin(touchSPI); rotation=1

Порядок: SCK, MISO, MOSI, CS. Сырые X/Y не являются пикселями. Проверьте ориентацию своего сенсора и калибруйте после выбора rotation.

Одновременные LCD + touch + SD
LCD: HSPI; SD: VSPI; touch: программный SPI

Это возможная архитектура с XPT2046_Bitbang, отдельная от минимального скетча. Нельзя просто добавить SD.begin() к текущему VSPI-touch без изменения реализации.

Совместимость Arduino и LVGL
Arduino-ESP32 2.x ≠ 3.x; LVGL 8 ≠ LVGL 9

В Arduino 3.x изменены LEDC/I2S API. Для LVGL берите lv_conf.h и пример той же major-версии. Минимальный скетч избегает LEDC и LVGL.

Критерии первого запуска
Текст на LCD; по нажатию меняются raw x/y/z на LCD и Serial 115200

Если только подсветка — проверьте драйвер и реально подключённый TFT_eSPI setup. Если экран есть, но touch не отвечает — проверьте отдельный SPI-профиль. begin() не является надёжной идентификацией физического контроллера.

Только CYD 2,8″ ILI9341 · файл TFT_eSPI User_Setup.h

cpp
// TFT_eSPI 2.5.33: replace the library's User_Setup.h.
// ONLY ESP32-2432S028R, original ILI9341 + XPT2046 wiring.
#define USER_SETUP_INFO "SLDV CYD 2.8 ILI9341 reference"
#define ILI9341_2_DRIVER
#define TFT_MISO 12
#define TFT_MOSI 13
#define TFT_SCLK 14
#define TFT_CS 15
#define TFT_DC 2
#define TFT_RST -1
#define TFT_BL 21
#define TFT_BACKLIGHT_ON HIGH
#define USE_HSPI_PORT
#define LOAD_GLCD
#define LOAD_FONT2
#define SPI_FREQUENCY 27000000
#define SPI_READ_FREQUENCY 16000000
// Do not define TOUCH_CS: touch uses another pin group/library.

Полный минимальный файл конфигурации библиотеки для следующего скетча. Основан на документированной разводке и API TFT_eSPI 2.5.33. Не настройка всего семейства.

Только CYD 2,8″ · экран и сырые координаты XPT2046

cpp
#include <Arduino.h>
#include <SPI.h>
#include <TFT_eSPI.h>
#include <XPT2046_Touchscreen.h>

// ONLY original ESP32-2432S028R, ILI9341 + resistive XPT2046.
// First apply the companion User_Setup.h to TFT_eSPI.
// This test deliberately does not initialize microSD or Wi-Fi.
SPIClass touchSPI(VSPI);
XPT2046_Touchscreen touch(33, 36);
TFT_eSPI display;
bool touchReady = false;
uint32_t lastSample = 0;

void setup() {
  Serial.begin(115200);
  pinMode(5, OUTPUT);     // Keep the unused microSD deselected.
  digitalWrite(5, HIGH);
  const uint8_t rgbPins[] = {4, 16, 17};
  for (uint8_t p : rgbPins) {
    pinMode(p, OUTPUT);
    digitalWrite(p, HIGH);  // RGB LED is active LOW.
  }
  display.init();
  display.setRotation(1);
  pinMode(21, OUTPUT);
  digitalWrite(21, HIGH);  // Backlight; no version-specific LEDC API.
  display.fillScreen(TFT_BLACK);
  display.setTextColor(TFT_WHITE, TFT_BLACK);
  display.drawString("CYD 2.8 / ILI9341", 12, 15, 2);
  display.drawString("Raw touch test", 12, 40, 2);

  touchSPI.begin(25, 39, 32, 33); // SCK, MISO, MOSI, CS
  touchReady = touch.begin(touchSPI);
  touch.setRotation(1);
  if (!touchReady) {
    Serial.println("Touch initialization failed");
    display.drawString("Touch init failed", 12, 70, 2);
  }
}

void loop() {
  if (!touchReady || millis() - lastSample < 50) {
    delay(1);
    return;
  }
  lastSample = millis();
  if (touch.tirqTouched() && touch.touched()) {
    TS_Point point = touch.getPoint();
    char line[72];
    snprintf(line, sizeof(line), "raw x=%d y=%d z=%d",
             point.x, point.y, point.z);
    Serial.println(line);
    display.fillRect(12, 80, 296, 48, TFT_BLACK);
    display.drawString(line, 12, 85, 2);
  }
}

Полный учебный скетч вместе с предыдущим User_Setup.h. API и GPIO сверены по первоисточникам; компиляция и аппаратный запуск в этой работе не выполнялись. Выводятся сырые координаты, поэтому чужие коэффициенты калибровки не зашиты. SD и Wi-Fi намеренно не инициализируются. После теста проверьте четыре угла и центр, вычислите собственное преобразование в 0…319 / 0…239 и отдельно испытайте все нужные подсистемы вместе.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты