Интернет радио (обновлено: 23 Oct 2020, 08:17:21)

Интернет радио на ESP32. При использовании встроенного ЦАП для работы радио необходима только сама ESP32 , дополнительных внешних микросхем не требуется ! В Free режиме доступно управление только через GET запрос. Поддерживаются MP3 и частично AAC потоки. Возможно управление через ИК пульт. Доступен вывод названия трека на главной странице, на локальные дисплеи, в MQTT и в Telegram.

На данный момент могут быть проблемы с воспроизведением через встроенный ЦАП.

22.10.2020 - добавлена, но не испытана поддержка работы с памятью PSRAM , что увеличивает буфер до 420кб - это увеличивает стабильность работы радио при не стабильной работе сервера или интернета.


Подключение усилителя/ активных аудио колонок к DAC(ЦАП) чипа: GPIO 25 и 26 (левый и правый канал) ИЛИ к внешнему I2S ЦАП.

Стабильность работы опции зависит от качества интернета и стабильности работы сервера интернет радио.

Ограничения опции интернет радио

1. Загрузка прошивки с опцией радио с включенным кодеком AAC на модулях с 4 мегабайт памяти может не вместится и в этом случае загрузка прошивки возможна только через OTA с использованием патча [IP]/patchpartions для увеличения секции. Подробнее в общей документации по ESP32.

2. Использование интернет радио может сказаться на качестве чтения некоторых датчиков( DHT и DS18B20), а так же на работе других активных функций.

3. При использовании ethernet модуля использование функции интернет радио  используя встроенный DAC невозможно так как выводы DAC там заняты. На внешнем ЦАП этого ограничения нет.

Использование внешних ЦАП

Доступно подключение внешних ЦАП(DAC) через интерфейс I2S. Это отдельная опция в конструкторе.

Использование внешнего ЦАП значительно повышает качество звука и позволяет регулировать громкость программно.

Опция хранения настроек в JSON

Опция включается в дополнительных настройках в конструкторе и позволяет хранить настройки отдельно от остальных в json формате, при этом настройки не сбиваются при ни каких обстоятельствах.

На странице настроек радио можно выгрузить или загрузить список станций в json формате

Список станций так же можно считать в json формате по ссылке  [IP]/configjsonradio , записать через [IP]/configjsonradio?write=строка.

Список станций

На вкладке настроек интернет радио можно указать список станций, адреса станций задаются без http://  ! Максимальное количество станций задается в дополнительных настройках конструктора перед сборкой прошивки.

Текущая станция и имя трека на дисплеях

Используя конструктор строк и метрику _RADIO_ можно вывести имя текущей станции на любой текстовый дисплей.

Так же в выборе строк дисплея можно вывести название станции, а так же имя трека, в том числе имя артиста и имя композиции раздельно на разные строки.

Управление через GET запросы 

Пример включения радио:

URL ссылка: http://[ip_adr]/radio?url=ic4.101.ru:8000/v3_1?setst=-1

Так же можно указать название станции, или её номер, которые присвоены в настройках веб.

Пример выключения радио:  http://[ip_adr]/radio?url=0

Управление через MQTT

Пишем в топик email/hostname/radio номер,url или название станции.

Управление громкостью

На данный момент управление громкостью возможно через поддержку PT2257. Поддерживается подавление щелчков (актуально на встроенном ЦАП).

Программная регулировка без внешних микросхем в прошивке предусмотрена только при использовании внешнего ЦАП. На встроенном 8 битном ЦАП она значительно ухудшает качество звука на малой громкости и по этому смысла не имеет.

Управление через функции модуля

Включать определенные каналы и выключать можно через управление GPIO: 150 - выключение радио. 151-160 - номера каналов. 228 и 229 - переключение каналов по кругу.

Например можно включить радио через планировщик заданий или через IR пульт или даже через touch кнопки используя указанные номера GPIO.

Пример настройки IR приемника, тут же настроено управление громкостью через подопцию ШИМ:


Управление через главную страницу

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