Найти в Дзене
Электроника, ESP32, Arduino

Ленивый 4-х дюймовый дисплей-шилд для ESP32-S3

Примерно с полгода назад делал я проект программируемой сенсорной клавиатуры (аппаратный KeePass). Устройство прижилось у меня на рабочем столе и пользуюсь я им каждый день. Единственная проблема внешний вид, размер и сложность повторения. Устройство специфичное и нужно оно не только лишь всем. Да и выкладывать в общий доступ ключ от квартиры где деньги лежат используемые алгоритмы шифрования мне как то не очень хочется. А вот схемотехникой под используемые библиотеки поделюсь. Все же знают - Ардуино конструктор для домохозяек, берете примеры идущие в комплекте и переписываете их под себя. Библиотек в проекте использовалось 2 TFT_eSPI для отрисовки картинки и TFT_eWidget для работы с сенсорным интерфейсом того же автора. В примерах идущих с библиотекой полно кнопок, скроллбаров и всяких прочих полезностей. Проблема была как это все правильно подключить. В первой версии клавиатуры схема была такая: Собирать такое паяльником на макетке под пайку удовольствие не из приятных - пришлось тра

Примерно с полгода назад делал я проект программируемой сенсорной клавиатуры (аппаратный KeePass).

Устройство прижилось у меня на рабочем столе и пользуюсь я им каждый день. Единственная проблема внешний вид, размер и сложность повторения.

Устройство специфичное и нужно оно не только лишь всем. Да и выкладывать в общий доступ ключ от квартиры где деньги лежат используемые алгоритмы шифрования мне как то не очень хочется. А вот схемотехникой под используемые библиотеки поделюсь.

Все же знают - Ардуино конструктор для домохозяек, берете примеры идущие в комплекте и переписываете их под себя.

Библиотек в проекте использовалось 2

TFT_eSPI для отрисовки картинки

GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips

и TFT_eWidget для работы с сенсорным интерфейсом того же автора.

GitHub - Bodmer/TFT_eWidget: A TFT support GUI library providing button, graph, meter, and slider class functions.

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

В первой версии клавиатуры схема была такая:

-2

Собирать такое паяльником на макетке под пайку удовольствие не из приятных - пришлось травить сложную печатную плату.

-3

Картридер тоже используется отдельный. Такое себе.

Упрощенный вариант, который можно спаять минут за 30 выглядит вот так.

-4
-5

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

С дисплея нужно снять некоторую обвязку:

-6

и закоротить перемычку стабилизатора напряжения (из коробки дисплей рассчитан на напряжение питания 5V):

-7

Поскольку библиотека от Bodmer использует один и тот-же аппаратный SPI для работы и с дисплеем и с тач-скрином, 2-й аппаратный SPI можно смело использовать для работы с картридером (конфликтов библиотек не происходит).

Соответственно в файле User_Setup пишем:

-8

Обратите внимание GPIO 3 физически соединен с GPIO 17. Но GPIO 3 единственный опасный вывод, который учувствует в старте ESP32-S3, поэтому в файле конфигурации, который находится в папке Libraries нужно указать именно его. Все остальные GPIO прекрасно работают в качества "тыквы" не оказывая ни какого влияния на работу остальной схемы.

Картридер будет запускаться таким образом:

-9
-10

Ну и естественно необходимо включить подсветку дисплея

-11

40см монтажного провода и готовая плата готова. Стоить на 03.01.2026 это будет примерно:

-12

1794 рубля.

Такую схему можно использовать как испытательный стенд для изучения программирования TFT дисплеев, а у меня получилось вот такое готовое устройство.

-13
-14
-15

под которое я еще сделал кожух для удобной перевозки.

-16
-17

Травить печатную плату иногда бывает не только полезно, но и вредно. Трудозатраты в данном случае не соизмеримые, а работает оба устройства в рамках данной конкретной задачи абсолютно одинаково. (выполнение по "колхозному" еще и на порядок меньше места занимает).

У меня используется 4-х дюймовик на ST7796, но не сложно найти дисплеи подешевле с меньшей диагональю - расположение выводов на гребенке у них будет такое-же.

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

-18

Набираем что-нибудь циферками, и при нажатии на кнопку Send на флешкарте создается файл (в данном случае 555.txt)

-19

В мониторе порта при этом отображается следующая информация

-20

Дисплей, тачскрин и карта памяти работают. Пример (если вдруг надумаете спаять такую штуковину) можно скачать тут

test_lenivii_displei_shild.zip — Яндекс Диск

Да, так тоже можно было. Оглавление канала доступно тут

Всем удачи!