Итак, читаю я бложик Вастрика про дом-дурачок. На заглавной картинке вижу шикарный дашбор на планшете и хочу себе такой же. Иду на местную барахолку (Стокгольм) и ума не приложу, почему за планшет из 2017 года просят $100 (здесь все плохо с бу электроникой). Откладываю идею в долгий ящик. Спустя какое-то время случайно открываю для себя Cheap Yellow Display(CYD) за $13. Решаю вкатиться в программирование на С (послдений раз делал это лет 15 назад, еще в универе). Не буду томить, в итоге, получаю вот такое:
ESP32
Итак, я даже близко ничего с железками не делал за свою карьеру. Обычный Java разраб, сейчас больше дата-инженер. Про ESP32, в общем что-то слышал, но не особо понимал, что это и как (да и сейчас не могу дать толковое определение). На простом и обывательском уровне, ESP32 - супер дешевый и распространненый микропроцессор (или контроллер?), обвешанный всякими разъемами для DIY движухи и умного дома. К нему можно даже подцепить экран с тач скрином (чувствуете предел моих фантазий на уровне железа)!
Если вы, так же как и я, плохи с железками, то есть вариант купить плату ESP32 с уже установленным дисплеем. Такие "сэндвичи" называют Cheap Yellow Display, так как дешевы и желтят. На борту есть WiFi и Bluetooth. Я решил, что $13 (с какими-то купонами на Aliexpress) не так уж и дорого и покупаю. Мысль была - возьму, а там разберусь! Что я, не программист что ли!
LVGL
По факту доставки, я начинаю постигать основы программирования устройств на уровень ниже, чем я привык. Конечно же, первым делом в поиск относительно готовых фремворков. Нахожу UI библиотеку LVGL.
Минут 20 возни по туторилам и я запускаю демо LVGL на своем свежем CYD. Уже прогресс!
Дальше пару недель в свободное время попытки побороть всякие мелкие проблемы на пути работы с public API погоды и метро. С помощью Stack Overflow и ChatGTP в итоге я могу собирать данные своей локации. Все это криво-косо работает, но падает минут через 5 после запуска.
Еще немного ChatGPT и вопросов на форумах и становится понятно, что не могу "бесплатно" пересоздавать UI элементы каждый раз, когда приходит обновление данных, все таки это не Java! Переходим в эконом режим переиспользования и Memory Leaks устранены.
Дальше нахожу STP файл симпатичного корпуса для CYD и печатаю это все в местной общественной мастерской. В корпус помещаю плату, на двусторонний скотч и на стенку по пути к выходу из квартиры. Получил вастрик стайл дашборд на минималках, не быстро, но дешево и интересно время провел.
Для тех, кто хочет получить что-то подобное, но чуть быстрее, вот мой репо с кодом. Там треш и угар, но пишите если что. Помогу адаптировать под другие города и страны, где у метро есть Public API. Толковый рефакторинг моего копи-паст код на С так же привествуется.
Ссылка на 3D корпус для печати.
На алик ссылку оставлять не буду - смысла нет. Ищите по "CYD ESP32", будет куча ссылок, выбирайте тот, что вам дешевле по доставке и купонам/акциям.
Для примера вот ссылочка на e-ink + ESP32. Вроде как вполне нормального качества, не желтит, судя по видосику.
Update: тупанул, почему-то показалось, что тут про e-ink, а оно вона как, про "обычный" дисплейчик. Не, для такого использования нужна электрическая бумага!
У меня примерно похожий пет-проект (пока в замороженной стадии из-за всякого + лени) на epdiy. Сам ни разу не железячник, поэтому купил готовую плату вот у этого чувака. Подключил к старому экрану от умершего Киндла.
Спасибо, замечательное применение!
Единственное замечание - по "CYD ESP32" его хрен найдёшь, а вот.по "2,8 esp32" - запросто :)
Прекрасное использование дисплейчика! Какой-нибудь режим борьбы с выгоранием дисплея предусмотрен? На статичных картинках они довольно быстро выгорают, особенно если постоянно включены.
Тоже лежит такой, только я не решился в С, хочу его в esphome затолкать