

Есть инструкции на Гитхабе, есть тема на форуме 4PDA, много кто повторял этот проект и публиковал в сети и мне конечно же тоже захотелось повторить :)
Вроде казалось уже почти всё разжёвано - заказывай детальки, соединяй, прошивай и пользуйся. Но как показывает практика - не всегда идёт всё гладко и бывает возникают вопросы именно по той сборке, которую ты выбираешь.
Постараюсь описать именно свою сборку на конкретном примере. Для пробы я сделал самый минимальный вариант ESP32 + ЦАП PCM5102A, совсем "без никто" и подключил к активным колонкам. Да, оно заработало, но местами... Конечно же, этот вариант у меня часто заикался, а хотелось стабильности, удобства и красоты.
Для следующего варианта я подобрал комплектующие уже поинтереснее: ESP-WROVER DevKitC V4, VS1053, модульный дисплей TFT LCD 2.2 SPI ILI922 и энкодер EC11 с кнопкой. С этим вариантом вопросов было уже чуть больше.
Вот для наглядности:

Аудио модуль VS1053 интереснее, с аппаратным декодером, но собирают его кому не лень, на разных платах и с разным качеством. В итоге мне по всей видимости попался как раз неудачный вариант на красной плате, который я так и не смог запустить, сколько бы не мучил ИИ с вопросами :) А вот неоднократно проверенный PCM5102A запустился сразу.
Дальше, подключил экран и застрял на подключении энкодера EC11. Он у меня уже был в наличии без платки, по этому пришлось подтягивающие резисторы на 10kom "колхозить" по месту. Поведение на крутилке неоднозначное - прыжки регулировки громкости в разные стороны со сбросом на ноль. Кнопка так совсем отказывалась реагировать, хотя замыкает на землю всё как положено - сигнала на ESP всё равно нет. Перепробовал подключение на разные пины, программный "антидребезг" и всё без хорошего результата. Купил на всякий случай такой же энкодер уже с платкой с подтягивающими резисторами и сглаживающими конденсаторами - результат тот же :(

"А дело было не в бобине - рас&%#@*яй сидел в кабине" :) Либо нужно экранировать провода идущие к энкодеру и экран сажать на землю еэспехи, либо поставить ферритовое кольцо - и проблема сразу отпала.
Вроде как есть конструктор, но новичку и с ним может быть сложновато. По этому вот рабочая схемка, именно по моим комплектующим. Я художник - я так вижу :) Но по ней всё равно можно разобраться :)

Если сложно разобраться в моих каракулях, то тогда так:
Экран ILI9225
VCC - 3,3V
GND - GND
CLK - GPIO18
SDI - GPIO23
RS - GPIO4
CS - GPIO5
LED - 3,3V через резистор 100-200 Om
PСM5102
SCK - на свой же GND
BCK - GPIO26
DIN - GPIO27
LCK - GPIO25
GND - GND
VIN - 3,3V
Энкодер EC11
5V - 3,3V
KEY - GPIO35
S2 - GPIO34
S1 - GPIO32
GND - GND
В итоге файл myoptions_h вышел таким:
#ifndef myoptions_h
#define myoptions_h
/* Generated by myoptions.h generator - v0.8.1 */
/* https://e2002.github.io/docs/myoptions-generator.html?r=72,2,4,27,41,43,54&i=1,2,3,4,15,16,17,28,29,30&v=4,5,-1,255,27,26,25,36,34,39 */
/* Put this file next to yoRadio.ino and restart Arduino IDE. */
/* !!! Attention !!! */
/* This configuration depends on some additional libraries. Please install them using the library manager: */
/* Adafruit GFX Library, OneButton */
/* !!! Do not be alarmed, all right, the default values are not included in this file !!! */
#define DSP_MODEL DSP_ILI9225
#define BRIGHTNESS_PIN 33
#define ENC_BTNR 32
#define ENC_BTNL 34
#define ENC_BTNB 35
#define ENC_INTERNALPULLUP false
#define ENC_DEBOUNCE_MS 50
#define ENC_PULSES 4
#endif
Ну конечно же мне хотелось подключить новое устройство в Home Assistant и управлять им оттуда тоже. На Гитхабе есть подробная инструкция как это сделать. В общем файл mqttoptions.h стандартный - только нужно заменить IP адрес на свой, на котором сидит HA и дать название в строке MQTT_ROOT_TOPIC. Сам файл разместить рядом с mqttoptions.h
#define MQTT_HOST "192.168.1.20"
#define MQTT_PORT 1883
#define MQTT_USER "myuser"
#define MQTT_PASS "mypassword"
#define MQTT_ROOT_TOPIC "yoradio/Wrover/"
/*
Topics:
MQTT_ROOT_TOPIC/command // Commands
MQTT_ROOT_TOPIC/status // Player status
MQTT_ROOT_TOPIC/playlist // Playlist URL
MQTT_ROOT_TOPIC/volume // Current volume
Commands:
prev // prev station
next // next station
toggle // start/stop playing
stop // stop playing
start, play // start playing
boot, reboot // reboot
vol x // set volume
play x // play station x
*/
Стандартная карточка в HA:

Первичная сборка на столе

Разместил это всё в корпусе взятом отсюда. Эта модель под экран 2,8 дюйма, по этому мне пришлось переделывать прежде всего под свой экран 2,4, плюс заново сделать декоративную рамку, ну и крепления внутренностей. Крутилка тоже не подошла - пришлось заменить. Позже на страшненькие винты добавились колпачки.
Это почти собранный вариант:
