АУДИО Интернет-радио microMedia на ESP32-S3

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
Интернет-радио + аудиоплеер + часы-будильник с боем и курантами на ESP32-S3

Версия 2.56 от 02.10.2025

radio0.jpg

Устройство предназначено для высококачественного воспроизведения звука потоковой трансляции станций интернет-вещания, а так же для воспроизведения звуковых файлов формата wav и mp3 с носителя в виде sd-карты, вставляемой в устройство. Кроме того, устройство выполняет функции часов с курантами и будильником.

Устройство обладает следующим функционалом:
  1. Может работать с практически неограниченным списком радиостанций. Причём переключение между станциями происходит мгновенно.
  2. Управление радио осуществляется и элементами управления на самом радио, и через web-интерфейс, и через ИК-пульт.
  3. Точно так же как и в смартфоне (планшете) организовано подключение радио по wi-fi к интернету. Сохраняются все ранее использованные точки доступа и при повторном попадании прибора в зону их действия соединение с интернетом не требует повторной авторизации.
  4. Радио имеет три режима работы: интернет-радио, часы, музыкальный проигрыватель.
  5. В режиме музыкального проигрывателя осуществляется воспроизведение звуковых файлов с sd-карты. Пока реализована вложенность папок с аудио-файлами равная единице.
  6. В режиме интернет-радио можно фильтровать весь список радиостанций по двум параметрам: жанр (20 жанров) и локация (6 локаций).
  7. И в режиме радио, и в режиме проигрывателя поддерживается дополнительный маркер "избранное".
  8. Реализована очень полезная функция - автоматический уровень громкости, которая выравнивает громкость звучания разных интернет-станций.
  9. В web-интерфейс встроен простой редактор списка радиостанций, который позволяет управлять списками станций в самом устройстве.
  10. Проверен и введен по умолчанию список из более 4 000 интернет-станций с указанием их жанра и локации.
  11. Разработано и вшито в прошивку 7 цветовых схем интерфейса экрана интернет-радио.
  12. Реализовано управление яркостью экрана интернет-радио.
  13. Реализован режим энергосбережения (выключения подсветки экрана).
  14. Реализованы функции выключения и включения по заданному времени.
  15. Реализованы куранты часов (каждый час, каждые полчаса, каждые 15 и 45 минут). Можно установить один из 7 типов звучания курантов или выставить озвучивание текущего времени голосом.
  16. Для людей с плохим зрением реализовано озвучивание меню управления интернет-радио голосом.
  17. В режиме радио реализована функция анализа качества связи с интернет-станцией и восстановление соединения при критичном ухудшении или потере связи с сайтом радиостанции.
  18. Реализована блокировка/снятие блокировки нажатия кнопок и вращения энкодера - полезная опция для интернет-радио в карманном исполнении.
  19. Реализованы функции "случайная радио-станция" для режима радио и "случайная композиция" для режима аудиопроигрывателя.
  20. На дисплее устройства и в его web-интерфейсе реализовано отображение состояние заряда питающего аккумулятора.
  21. В web-интерфейсе реализован постраничный просмотр списков станций интернет-вещания с возможностью перехода на выбранную из списка станцию.
  22. В web-интерфейсе реализован поиск станций интернет-вещания по их названию.
  23. По просьбам пользователей предусмотрен выбор способа переключения со станции на станцию при помощи поворотов ручки энкодера: мгновенный (поворот - переключение) или с предпросмотром (повороты энкодера для пролистывания станций в списке; нажатие кнопки энкодера - загрузка выбранной станции; нажатие кнопки - отмена выбора и возвращение на экран "Радио").

Компоненты, необходимые для сборки:
  1. Модуль ESP32-S3 (обязательный элемент). Тестировалось на модуле ESP32-S3 Dual USB разработки AITEXM ROBOT.
  2. Модуль DAC PCM5102 (обязательный элемент).
  3. Дисплей 1.8 TFT SPI 128x160 with sd-card reader - ST7735 TFT (обязательный элемент).
  4. Энкодер с кнопкой (обязательный элемент).
  5. Модуль усилителя НЧ LM4881 или любой подходящий аналог (факультативный элемент).
  6. Инфракрасный беспроводной модуль дистанционного управления HX1838 (TL1838) с пультом (факультативный элемент).
  7. Транзистор 2N3906 или аналог (если хотите регулировать яркость дисплея).
  8. Три резистора 1кОм.
  9. Выключатель питания.
  10. Разъём внешнего питания type-c (мама).
  11. Один - два аудио-разъёма 3.5 стерео (мама).
  12. sd-карта не более 32 Гб.

Порядок сборки, прошивки
Внимательность и пошаговое следование нижепредложенной инструкции позволит избежать ошибок и лишних вопросов.
  1. Соберите устройство, согласно приложенной принципиальной схеме.
  2. Скачайте и распакуйте архив скетча. (Избегайте кириллических символов в путях к скетчу и библиотекам).
  3. В Arduino IDE откройте файл InternetRadio.ino.
  4. Установите в настройках Arduino IDE свою плату ESP-32.
  5. Установите в пункте настроек "Partition scheme" опцию "Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)" и остальные параметры, согласно прилагаемому скриншоту:
    ide05.jpg
  6. Перед компиляцией скетча обязательно:
    • в папку библиотек Arduino\libraries\Adafruit_GFX_Library перепишите файл glcdfont.c из архива скетча.
    • туда же обязательно перепишите из архива скетча папку FontsRus, даже если не планируете использовать.
  7. Попробуйте скомпилировать скетч. При отсутствии необходимых библиотек доустановите их из среды Arduino IDE. (Рекомендованные версии библиотек смотрите в отдельном списке ниже данной инструкции).
  8. На предварительно отформатированную в FAT32 sd-карту запишите содержимое архива папки SD-card.
  9. Вставьте sd-карту в слот на модуле дисплея.
  10. Теперь всё готово для заливки прошивки в ESP-32. Загрузите скетч на плату.

Если всё сделано правильно, то:
  1. При включении зажмите и держите зажатой кнопку до появления меню "Loading menu".
  2. При помощи колеса энкодера выберите пункт "New connection".
  3. Один раз нажмите на кнопку энкодера. Далее следуйте инструкции, а именно:
  4. В своём гаджете в настройках интернета по wi-fi найдите и выберите сеть "microMedia".
  5. Подключитесь к этой сети. Пароль: 12345678.
  6. После этого нажмите один раз на кнопку энкодера.
  7. Далее откройте в браузере гаджета адрес 192.168.4.1 и там уже настройте соединение интернет-радио с интернетом. wifi.jpg
  8. Выберите ваш роутер из списка и введите пароль доступа. В случае успеха вы услышите первые звуки интернет-трансляции первой станции из большого списка станций.
  9. После чего для управления интернет-радио через web-интерфейс необходимо узнать ip-адрес самого устройства в сети. Для этого достаточно нажать один раз кнопку BUTTON и в нижней части всплывшего на дисплее окошка с меню посмотреть и вбить в адресную строку web-браузера вашего компьютера (планшета, смартфона) отображаемый ip-адрес.

Для размещения звуковых файлов на sd-карте уже создана отдельная папка Music. Правила размещения в неё wav и mp3 файлов следующие.
  1. В самой папке Music можно создавать до 40 папок (максимальное количество папок задаётся в скетче константой DIR_LIMIT) , названия которых могут быть как на английском, так и на русском языке.
  2. В эти папки можно размещать звуковые файлы в любом количестве.
  3. Не следует создавать в этих папках вложенные папки. Они и их содержимое в актуальной версии прошивки будут игнорироваться.
  4. После любого изменения (добавления/переименовывания/удаления папок и файлов) внутри папки Music необходимо произвести однократную индексацию. Она осуществляется через меню настроек устройства или же через web-интерфейс устройства.
  5. Для этого зайдите в "Настройки - Проигрыватель", нажмите на кнопку "Индексировать" и дождитесь завершения процесса индексации.

Принципиальная схема
schemas.png

(Контроллер зарядки и питания устройства на принципиальной схеме не изображены).

Архив скетча, шрифтов для дисплея и содержимое sd-карты
Версия 2.23 (65.1 Mb в zip-архиве)
Версия 2.44 (65.7 Mb в zip-архиве)
Версия 2.45 (65.8 Mb в zip-архиве)
Версия 2.46 (65.8 Mb в zip-архиве)
Версия 2.47 (65.8 Mb в zip-архиве)
Версия 2.48 (67.2 Mb в zip-архиве)
Версия 2.49 (66.2 Mb в zip-архиве)
Версия 2.50 (66.2 Mb в zip-архиве)
Версия 2.51 (66.3 Mb в zip-архиве)
Версия 2.52 (75.9 Mb в zip-архиве)
Версия 2.53 (66.5 Mb в zip-архиве)
Версия 2.54 (66.6 Mb в zip-архиве)
Версия 2.55 (66.6 Mb в zip-архиве)
Версия 2.56 (66.5 Mb в zip-архве)
(Bin-файлы для прошивки находятся в папках SD-card.)

Модификация версии 2.45 (01.06.2025) от участника форума Sergggg (1.1 Mb в rar-архиве) с будильником по дням и ещё целым рядом дополнений.
Модификация версии 2.47 (22.06.2025) (76.6 Kb в rar-архиве)
Модификация версии 2.50 (08.07.2025) (83.7 Kb в rar-архиве)
Модификация версии 2.56 (15.11.2025) (3.2 Mb в zip-архиве)
Мод на радио Олега Полякова.
ВНИМАНИЕ! Если ставить с версией библиотеки audio 3.0.12, то необходимо заменить файл моим Audio.cpp. В авторской была ошибка.
В моем моде доработано:

Немного переделана схема подключения периферии.
C++:
//Энкодер
#define CLK 41
#define DT 40
#define SW 39
#define PIN 1  // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#define IR_PIN 2  // пин подключения ИК-датчика

// DAC I/O used
#define I2S_DOUT 38  //DIN
#define I2S_BCLK 21  //BSK
#define I2S_LRC 47   //LCK

//SD-card reader
#define SD_CS 11
#define SPI_MOSI 12
#define SPI_MISO 13
#define SPI_SCK 14

//TFT-screen pin for ESP32
#define TFT_CS 3     //case select connect to pin 3
#define TFT_RST 8    //reset connect to pin 8
#define TFT_DC 18    //AO connect to pin 32  (not sure that this is really used)  try pin 18
#define TFT_MOSI 17  //Data = SDA connect to pin 17
#define TFT_SCLK 16  //Clock = SCK connect to pin 16
#define MAX_ALARMS 5
//Пин управления яркостью подсветки дисплея
#define TFT_LED 42
Пин подключения индикатора батареи после делителя: 4
Менять пины не очень хорошо, могут появиться проблемы.

Пульт д.у.- немного переделанный алгоритм управления. Радио запрограммировано на
использование пульта от приставки x96 ( иллюстрация )
Пульт должен быть в кодировке NEC.
Так как пока нет веб для настроек кодировок пульта, пока в случае необходимости придется менять коды в InternetRadio.ino.
Для удобства они вынесены в define.
C++:
#define off 0x40
#define repeat 0x42
#define next 0x50
#define prev 0x51
#define up 0x16
#define down 0x1a
#define swap 0x4c
#define mute 0x5a
#define menus 0x44
#define clocks 0x11
#define fav 0x19
#define randoms 0x13
#define ganr 0x4e
#define ganrall 0x0d
#define ganrp 0x0c
#define lok 0x4a
#define lokall 0x09
#define lokp 0x08
#define next10 0x54
#define prev10 0x55
Здесь для изменения кодов под другой пульт, нужно как-то узнать код необходимой кнопки и внести ее в define.

Вкратце, кнопка "randoms" это ОК, выбирает случайную станцию. Если находиться в меню, то подтверждение.

Кнопка repeat повтор предыдущих трех станций (запоминаются в EEPROM).

menus - главное меню.

Кнопка на радио которая тоже немного изменена: однократное нажатие - это повтор предыдущих.

В индикацию батареи добавил анимацию зарядки, только проверить как работает у меня нет возможности.

Добавил для удобства ОТА, пароль при запросе admin.

По вэб управлению:
В настройках, в подменю "Радио" добавлен переключатель поведения кнопки энкодера - громкость регулируется с нажатием или без.

Добавлены будильники на вкл. и выкл. с регулировкой громкости включения и выбором дней недели срабатывания,
их количество можно установить в #define MAX_ALARMS 5.

Запоминаются все состояния радио, предыдущие станции на момент выключения.

В будильники добавлены меню выбора что запустится: радио или проигрыватель.

При переделке стараюсь делать максимум повторения кода автора.

Полностью побеждены перезагрузки на audio 3.0.12, в стоке они все же были, теперь радио на мертвых и полумертвых станциях будет сначала переключаться на предыдущие, затем просто переключаться на следующую.

Новая фишка: теперь в меню радио есть настройка - удалять нерабочие станции. С этой настройкой спешить с переключением станций не нужно, может иногда стереть и рабочие, нужно все случаи проверять, радио само всё делает. Нужно лишь дождаться конца цикла проверки.

Что еще не указал - спрашивайте на форуме.

Arduino IDE и необходимые библиотеки
Скетч успешно компилировался на Arduino IDE версий 2.0.17 и 2.3.3.

ESP32-audioI2S-master (https://github.com/schreibfaul1/ESP32-audioI2S) - версия 2.0.0 (вот на этих версиях проверено и работает: https://github.com/schreibfaul1/ESP32-audioI2S/releases/tag/3.0.8 и https://github.com/schreibfaul1/ESP32-audioI2S/releases/tag/3.0.7
GyverEncoder (https://github.com/GyverLibs/GyverEncoder) - версия 4.10
GyverButton (https://github.com/GyverLibs/GyverButton) - версия 3.8
IRremote (https://github.com/Arduino-IRremote/Arduino-IRremote) - версия 3.5.0 - критично. На более высоких версиях будут ошибки компиляции.
Adafruit GFX Library (https://github.com/adafruit/Adafruit-GFX-Library) - версия 1.11.9 (Если с этой версией вместо русских букв "козябры", то используйте версию 1.11.0).
Adafruit ST7735 and ST7789 Library (https://github.com/adafruit/Adafruit-ST7735-Library)- версия 1.10.4
GyverPortal (https://github.com/GyverLibs/GyverPortal) - версия 3.6.6
ESP32Time (https://github.com/fbiego/ESP32Time) - версия 2.0.5
NTPClient от Fabrice Weinberg (https://github.com/arduino-libraries/NTPClient) - версия 3.2.1

Устройство может находиться в разных режимах функционирования. И в каждом из них действия с элементами управления могут вызывать разные функции. Поэтому ниже последовательно описано управление устройством для каждого режима.

Служебный режим
Если при включение устройства зажата и не отпускается кнопка на устройстве, то устройство переходит в служебный режим "Loading menu".
В этом режиме перемещение по пунктам меню осуществляется поворотом энкодера по часовой и против часовой стрелки, а выбор - коротким нажатием на кнопку энкодера.

Режим "Радио"
[Поворот энкодера] - переход от текущей станции интернет-трансляции к следующей/предыдущей или предпросмотр станций.
[Одинарное нажатие кнопки] - вызов главного меню.
[Одинарное нажатие кнопки энкодера] - переход из режима "Радио" в режим "Проигрыватель".
[Двойное нажатие кнопки] - переход из режима "Радио" в режим "Часы".
[Тройное нажатие на кнопку] - переход между полным списком станций и списком любимых станций.
[Четырёхкратное нажатие на кнопку] - вызов окна настройки звучания с возможностью регулировки громкости, баланса, уровней низких, средних и высоких частотных полос.
[Пятикратное нажатие на кнопку] - блокировка/разблокирование элементов управления от случайного нажатия.
[Нажатие и длительное удержание кнопки] - выбор случайной станции из текущего списка.
[Нажатие и длительное удержание кнопки энкодера] - включение/выключение звука.
[Нажатие и поворот энкодера] - увеличение/уменьшение громкости.

Режим предпросмотра станций
В устройстве предусмотрено два способа навигации по спискам станций при помощи энкодера: переключение станций поворотом энкодера и навигация от станции к станции с фиксацией выбора станции кнопкой энкодера. Второй способ для краткости назван "Выбор из списка".
В этом режиме навигации:
[Поворот энкодера] - предпросмотр списка от станции к станции.
[Одинарное нажатие кнопки] - выход из режима "Выбор из списка".
[Одинарное нажатие кнопки энкодера] - запуск выбранной станции интернет-трансляции.

Режим "Проигрыватель"
[Поворот энкодера] - переход от текущей музыкальной композиции к следующей/предыдущей.
[Одинарное нажатие кнопки] - вызов главного меню.
[Одинарное нажатие кнопки энкодера] - переход из режима "Проигрыватель" в режим "Радио".
[Двойное нажатие кнопки] - переход из режима "Радио" в режим "Часы".
[Тройное нажатие на кнопку] - переход между текущей музыкальной папкой и списком любимых музыкальных треков.
[Четырёхкратное нажатие на кнопку] - вызов окна настройки звучания с возможностью регулировки громкости, баланса, уровней низких, средних и высоких частотных полос.
[Пятикратное нажатие на кнопку] - блокировка/разблокирование элементов управления от случайного нажатия.
[Нажатие и длительное удержание кнопки] - выбор случайной музыкальной композиции из текущей папки.
[Нажатие и длительное удержание кнопки энкодера] - включение/выключение звука.
[Нажатие и поворот энкодера] - увеличение/уменьшение громкости.

Режим "Часы"
[Поворот энкодера] - переход от текущей музыкальной композиции / станции интернет-вещания к следующей/предыдущей.
[Одинарное нажатие кнопки] - озвучивание голосом текущего времени.
[Одинарное нажатие кнопки энкодера] - смена режима на "Проигрыватель" или "Радио".
[Двойное нажатие кнопки] - озвучивание голосом дня недели числа, месяца и года.
[Тройное нажатие на кнопку] - переход в режим настроек устройства.
[Нажатие и поворот энкодера] - увеличение/уменьшение громкости.

Режим "Настройки"
(описание в работе...)

(вверх)(вниз) - в режимах "Радио", "Проигрыватель" и "Часы" - увеличение / уменьшение громкости; в меню - перемещение курсора по вертикали
(вправо)(влево) - в режимах "Радио", "Проигрыватель" и "Часы" - переключение (или предпросмотр) станций или переключение композиций; в меню - перемещение курсора по горизонтали или включение/выключение опций
(OK) - главное меню и подменю или переключение на выбранную станцию интернет-вещания в режиме предпросмотра станций
(*) - смена режима между "Радио" и "Проигрыватель"
(#) - включение выключение звука или выход из режима предпросмотра станций интернет-вещания
(1) - часы или радио / проигрыватель
(2) - переключение между списками "Избранное" и "Всё" для радио и проигрывателя
(3) - случайная станция радио / случайная композиция проигрывателя
(4) - смена жанра назад
(5) - все жанры
(6) - смена жанра вперёд
(7) - смена локации радиостанции назад
(8) - все страны
(9) - смена локации радиостанции вперёд
(0) - включение / выключение

Версия 2 интернет-радио:
radio01.jpg

Версия 1 интернет-радио:
radio02.jpg

radio03.jpg

Очень интересный компактный вариант от участника форума VILUKAS:
radio04.jpg

web01.jpgweb02.jpgweb03.jpgweb04.jpgweb05.jpgweb07.jpgweb08.jpgweb09.jpg

Обзор 1-й версии интернет-радио

Обзор 2-й версии интернет-радио

Мной были разработаны и собраны два устройства. Ещё одно в рамках тестирования было собрано участником форума samand587.

Версия 1.20. По факту - 2.20. Изначальная версия скетча, опубликованная здесь на форуме.

[Полную историю версий см. в исходных текстах скетча]

Версия 2.56 от 02.10.2025
Исправлена пара минорных ошибок, а именно:
  1. Ошибка случайного выбора станции трансляции при управлении длительным нажатием кнопки радио и через ИК-пульт.
  2. Ошибка с отсутствием звука при попытке проверить доступность станции трансляции из редактора станций в web-интерфейсе.
Улучшения:
  1. Улучшена индикации текущего положения и общей продолжительности текущего музыкального трека Проигрывателя.
  2. В настроечный файл и в основной код добавлена константа SD_SPEED, в которой указывается частота работы с sd-картой. Её значение по умолчанию - 80 Мгц. Для большинства современных sd-карт это допустимая скорость. Если у вас на такой скорости карта не читается, то уменьшите SD_SPEED до 25 Мгц.
Количество станций интернет-трансляций увеличено до символических 5555.

Буду признателен за конструктивную критику, указания на ошибки (куда ж без них!), сообщения об успешных повторах устройства с фотографиями ваших реализаций и прочее. Спасибо за внимание!
 

Вложения

Изменено:

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
1. v2.53 Проигрыватель. В папке Music на SD две папки 1 и 2. В 1 один большой (2ч53мин) mp3 файл, в 2 тринадцать файлов mp3 (от 3 до 5 минут). Играет файл из папки 2. Длительное нажатие энкодера приводит к остановке воспроизведения. Повторное - вновь воспроизведение. Т.е. все ОК.
Теперь играет файл из папки 1. Длительное нажатие энкодера не работает. Файл нельзя остановить и запомнить позицию, т.е. сделать закладку.
Детально разобрался с проблемой.
Она - проблема - в библиотеке Audio. И её признаёт сам автор библиотеки. Для некоторых mp3-файлов крайне затруднительно, как он пишет на одном из форумов, позиционирование по меткам времени воспроизведения.
В качестве временного альтернативного решения я предлагаю для файлов аудио-книг использовать формат wav, с которым описанных вами проблем не возникает. Да, понимаю, что wav требует гораздо больше места для хранения.

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

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
Выложил новую версию 2.56 от 02.10.2025
Исправлена пара минорных ошибок, а именно:
  1. Ошибка случайного выбора станции трансляции при управлении длительным нажатием кнопки радио и через ИК-пульт.
  2. Ошибка с отсутствием звука при попытке проверить доступность станции трансляции из редактора станций в web-интерфейсе.
Улучшения:
  1. Улучшена индикации текущего положения и общей продолжительности текущего музыкального трека Проигрывателя, а именно добавлены 2 разряда цифр для индикации часов.
  2. В настроечный файл и в основной код добавлена константа SD_SPEED, в которой указывается частота работы с sd-картой. Её значение по умолчанию - 80 Мгц. Для большинства современных sd-карт это допустимая скорость. Если у вас на такой скорости карта не читается, то уменьшите SD_SPEED, например до 25 Мгц. На частоте SPI-шины в 80 Мгц работа с sd-картой ускорилась более чем в 2 раза, чем в предыдущих версиях скетча. А следовательно ускорилась навигация по спискам станций, поиск, формирование списков воспроизведения станций и аудиофайлов, индексация тоже ускорилась.
Количество станций интернет-трансляций увеличено до символических 5555.
 

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
Забыл написать, что ошибка с "белым экраном" и перезагрузкой после сброса индексов аудио-файлов на sd-карте тоже в свежей версии исправлена.
 

ovb

✩✩✩✩✩✩✩
26 Сен 2025
3
0
Добрым днем. Реализовал Ваш проект 2.46 с дисплеем ST7796S 4 дюйма. Остальные проекты дают ошибки при компиляции энкодера, кнопок, IK датчика. Посоветуйте, как изображение сделать покрупнее, на 4 дюйма экран. И скажите, перемычку либо резистор на SCK ЦАП ставить надо? С уважением, ovb (Олег).
 

Вложения

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru

@ovb,
Олег, добрый вечер!
По дисплею. Пока поддерживается только тот, что указан в спецификации.
Для иных нужно много времени, чтобы:
1. Переписать отрисовку под другие width и height экрана. (Сейчас где-то у меня учитываются эти физические параметры экрана, а где-то - нет).
2. Создать более крупный спец-шрифт с пиктограммами, которые используются на экране.
3. Подключить более крупные русифицированные шрифты.

В идеале нужно все функции отрисовки на дисплее вынести в отдельный ino-файл и там уже развивать тему с разными дисплеями. Но,
а) это рутина;
б) на неё не хватает свободного времени.

Может быть длинной зимой займусь. У меня, кстати, такой как у вас дисплей есть. Специально покупал, чтобы отлаживать проект радио на нём. Но, пока не дошли руки.

Про перемычку на DAC-е за давностью лет уже не помню. Может кто-нибудь из форумчан подскажет.
 

ovb

✩✩✩✩✩✩✩
26 Сен 2025
3
0
Доброго дня!
Спасибо!
По всей видимости у меня ЦАП с браком, выхода звука нет, при прикладывании пальца начинает работать).
Библиотеки подобрал и на всех версиях скетч конфигурируется.
По дисплею:
переписал с
#include <Adafruit_ST7735.h> на
#include <Adafruit_ST7796S.h> и далее... библиотека Adafruit_ST7735_and_ST7789_Library позволяет работать дисплею ST7796S. цвета не менял. далее изменил
//инициализация tft-дисплея
tft.init(); // Init ST7796S
с командами tft.initR(INIT_BLACKTAB); tft.initR(INIT_REDTAB); tft.initR(INIT_GREENTAB) скетч не компилируется, черный цвет не устанавливается ни по
tft.fillScreen(sys_color[0]) ни по
tft.fillScreen(ST7796S_BLACK); // Заливка экрана черным.
Для приведения изображения к размеру походу дела нужно менять шрифты. И смотреть по заливке экрана.
Спасибо за внимание.
В инете нашел, стоит посмотреть)
 

ovb

✩✩✩✩✩✩✩
26 Сен 2025
3
0
Добрый вечер!
Кто подскажет, что нужно сделать с ЦАП PCM5102 , что бы заставить его работать? Схема собрана как на схеме вверху. Выход с ЦАП идет на вход отдельно стоящего усилителя.
 

михаил2025

✩✩✩✩✩✩✩
19 Июл 2025
29
8
@ovb, У меня PCM5102 также подключен к усилителю с резистором, без него звука нет. И не забудьте про перемычки.
 

Вложения

  • 176.4 KB Просмотры: 23
Изменено:

vglukas

★✩✩✩✩✩✩
5 Мар 2025
78
21
@Олег Поляков,
Ещё одна конструкция на ESP32 S3 UNO, на мой взгляд лучшая из s3, ни с одной не имел проблем и по цене дешевле, а если добавить поддержку vs1053 , то можно вообще без хлопот собрать бутербродом 2 uno.
 

Вложения

  • Лойс +1
Реакции: Олег Поляков

vglukas

★✩✩✩✩✩✩
5 Мар 2025
78
21
@Олег Поляков,
Это был немецкий fm приемник.

Не планируете поддержку Vs 1053? Бутерброд из uno готовое радио с минимум шлейфов, а качество звучания если слушать через наушники значительно лучше.
 
  • Лойс +1
Реакции: Олег Поляков

vglukas

★✩✩✩✩✩✩
5 Мар 2025
78
21
@Олег Поляков,
Не забудьте поменять стабілізатор 2,5 v на 1,8V перед включеним.

Кстати если поставить 2 енкодера на громкость и потоки можно избавится от кнопки.

@Олег Поляков,
И еще прийменник b0505s для питания цифровий части полностью убирает все цифровые помехи, звук чистейший, ну на входе питания желательно поставить электролит на 1000 мкФ и керамику на 0.33 мкФ.
 
  • Лойс +1
Реакции: Олег Поляков

ceckbrb

✩✩✩✩✩✩✩
17 Окт 2025
2
0
Помогите с подключением ESP32-S3 к моему роутеру. контроллер видит сеть, но к ней не хочет подключаться, хотя телефон и ноут подключается на ура.Может есть какие нибудь особенности подключения S3.
 

Vedmed

✩✩✩✩✩✩✩
8 Май 2022
4
1
ceckbrb может дело не в S3, а в настройках руотера? Про пароль и не говорю, хотя часто бывает когда пароль вводят через copy/past лишнние пробелы
 

Balzamalex

✩✩✩✩✩✩✩
9 Ноя 2020
10
3

@Vedmed,
Не, у меня тоже, если радио не прям возле рогтера, то первоночально коннектится фигово. Там же телевизор и телефон ловят нормально.
 

Vedmed

✩✩✩✩✩✩✩
8 Май 2022
4
1
Balzamalex
Читал на одном из форумов про плохие S3. Тоже только рядом с руотером нормально работают. Иногда помогает монетку (батарейку от материнки) приклеить на экран S3
 

macden

✩✩✩✩✩✩✩
6 Янв 2020
4
2
Здравствуйте. У меня получилось! Прикинул к месту установки где у меня стоят часы, ведь эта разработка меня заинтересовала в первую очередь как часы с будильником-радио. Конечно, дисплей маловат. Буду ждать проект с экраном большего размера. Хотя бы раза в 1.5. Еще хотелось бы, что бы в настройках экрана часов был пункт просто часы(одни цифры) и полный набор, как сейчас. Огромное спасибо, получил огромное удовольствие от сборки и борьбы(борьба была долгой). Теперь все это надо окультурить, нарисовать корпус и перевести на аккумулятор. Будет этакий прикроватный будильник. А создадите проект под больший экран, буду делать еще один приемник-часы. Желателен экран как на моих часах.
IMG_20251109_204334.jpgIMG_20251109_202948.jpgIMG_20251109_202849.jpg
И еще одно пожелание, что бы экран часов был основным, и прибор, после некоторого времени возвращался самостоятельно к этому экрану из экранов проигрывателя или радио.
 
Изменено:
  • Лойс +1
Реакции: Олег Поляков

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
@macden, поздравляю с успешным повтором проекта.
Итог года по прошивке - получилась стабильно работающая версия. Получилась во многом благодаря коллективному творчеству участников форума.
Можно двигаться дальше: и дисплей побольше, и переход на более свежие версии библиотеки audio и и.д.

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

Спасибо за отзыв и предложения по улучшению!
 
  • Лойс +1
Реакции: valeriiOVV и Я_свой

macden

✩✩✩✩✩✩✩
6 Янв 2020
4
2
Вот и первая непонятка: не выключается и не включается радио по настройкам в web(и при настройке на самом устройстве).....
Хотелось бы что бы звук выключался и из режима Часы.
Хотелось бы, что бы после проигрывания звукового сигнала времени(курантов) радио и плеер не отключались.
 
Изменено:

Олег Поляков

★★★★✩✩✩
18 Янв 2022
340
246
www.1812.ru
@macden, спасибо за замечание.
Проект большой получился. А в больших проектах в одном месте латаешь - в другом худится. Проверю, исправлю, но не раньше ближайших выходных.
 

macden

✩✩✩✩✩✩✩
6 Янв 2020
4
2
Олег, здравствуйте.
Еще раз хочу поблагодарить Вас за Ваш проект и за то, что Вы его не бросаете.
Хочу этим постом как бы обобщить свои пожелания и замечания по поводу Вашего проекта. Конечно, Ваше право прислушиваться к ним или нет, это сугубо Ваш проект. Но думаю, что если Вы к ним прислушаетесь и сделаете по ним изменения по мере своих сил, думаю Ваш проект далеко обгонит Ё и К радио.
Итак:
После перепрошивки прибора на ядро 2.0.9, а изначально было прошито с ядром 2.0.17, прибор стал выключаться и включаться по установленному времени. Но! Отключается прибор полностью, как будто его отключили от питания. Причем кнопки такого выключения ни в Web"е ни в меню прибора я не нашел. То есть, что бы включить прибор как будильник по запрограммированному времени нужно его сначала выключить по запрограммированному времени. Согласитесь, это не очень удобно. Да и прибор БУДИЛЬНИК подразумевает наличие циферблата, указывающего время. Итак, сделайте, пожалуйста так, что бы по программе включения-отключения включался-отключался только звук.
Теперь по режимам.

Режим РАДИО сделан безупречно. Во всяком случае, я пока не замети каких то упущений, ну единственно, это возвращение к режиму РАДИО после аварийного отключения питания. Но это касается всех режимов. Особенно порадовал список любимых радиостанций. Накидал туда нужных станций и радуйся....

Режим ПЛЕЕР.... Тоже в общем сделан нормально. Есть небольшие неудобства, но они минимальны. Да и сам это режим скорее опциональный и нужен..... В общем мало нужен. Ведь каждый раз вынимать и вставлять карту для добавления треков не очень удобно. Если что и исправлять это память на треке и на месте проигрывания после переключения режимов и аварийного отключения питания.

Режим ЧАСЫ. Дело в том, что я нашел Ваш проект по запросу в Яндексе "Часы с будильником-интернетрадо". Поэтому данный режим меня интересует больше всего. У меня есть заводские часы, но там обычный FM преемник и принимает он в нашем доме очень плохо, да еще при аварийном отключении питания показания время сбиваются даже при наличие специальной, поддерживающей батарейки.

Поэтому:
1. Хотелось бы, что бы была возможность выбора основного режима. Типа - включил я радио и через какое то время экран прибора сам переключился в режим часов. Ну или в тот режим, который был выбран в меню. Как Вы правильно заметил - каждому свое.
2. Хотелось бы, что бы экран часов переключался на только часы, то есть только цифры и на как сейчас, может для этого стоит добавить еще одну кнопку.
3. И самый важный пункт. Как я писал выше - включение и выключение будильника. Пункт выключение вообще можно убрать(вместо него сделать отключение звука по запрограммированному интервалу -10 - 30- 60 минут), а сделать автоматическое отключение звука после срабатывания будильника через какое то время(это время может быть настраиваемо в меню, но это не обязательно), минут 10-15. А так же выключение звука по нажатию какой-нибудь кнопки. Ну...... и так называемый режим Bzzz, это когда проснулся по будильнику, но хочешь еще поспать минут 10-15(эту настройку тоже можно вынести в меню), нажимаешь кнопку, звук выключается, а через назначенное время звук снова включается(но для меня это не совсем важно, так как я встаю при первых сигналах будильника, но это немаловажная опция и я думаю, что она сильно подымет Ваш проект). Все эти действия можно объединить с кнопкой из пункта 2. Например: Короткое нажатие - отключение звука совсем, длинное нажатие - режим Bzzz, двойное нажатие - переключение режима экрана часов(только цифры / весь комплект)
4. Хотелось бы настройку "Курантов" - каждые 15 минут или каждые 30 минут

Вот и все мои пожелания. К сожалению сам я Вам помочь не могу, так как ни черта не понимаю в программировании. Могу только позже написать подробную инструкцию по сборке прошивке, что бы наши(вернее Ваши) последователи не спотыкались при сборке-прошивке-настройке.

Пока писал это сообщение и слушал станцию Nashe Classic(особое Вам спасибо за эту станцию, я такой не знал, столько суперской родной музыки...) звучание радио стало возобновляться после проигрывание "КУРАНТОВ", видимо это все из-за того, что я понизил ядро.

Ну и конечно ждем прошивку под больший экран.

Еще раз СПАСИБО.
С глубоким уважение Макаревич Денис.
PS Nashe Classic это чума, сижу кайфую(почти до слез) Музыка детства-юности.....
 
Изменено:
  • Лойс +1
Реакции: Олег Поляков

Vedmed

✩✩✩✩✩✩✩
8 Май 2022
4
1
PSRAM (Pseudo-Static RAM),
RTC (англ. Real Time Clock) — модуль часов реального времени.

В принципе и гуглится все в момент
 
  • Лойс +1
Реакции: macden