ARDUINO WEB & FM радио на ESP32 (Часть 1. RDA5807М, PCM5102A, BD37534FV, MAX97220)
HTML-код
- Опубликовано: 2 фев 2025
- Если Вы радиолюбитель, но не собрали «для себя» хотя бы одно радиоприёмное устройство, это необходимо исправить! Согласитесь, есть некая магия в невидимой передаче и приёме информации на приличные расстояния при помощи нескольких радиодеталей. Кто собирал в детстве детекторные приёмники знает, как мало деталей надо для приёма местных станций. Но время идёт, кардинально изменилась элементная база и на одной микросхеме можно собрать почти всеволновый приёмник. Однако, кроме технологий приёма существенно изменилась и картина радиоэфира в целом. Из былого изобилия станций с разнообразным контентом на «средних» и «коротких» волнах остались немногочисленные и малоинтересные радиовещатели с религиозным или политико-идеологическим контентом. Есть и музыкальные программы, но качество приёма музыки совсем не то к чему нас приучили цифровые технологии (шум всех видов, наслоение одной станции на другую, качество звука как из трубы, думаю вы поняли…).Количество промышленных помех делает приём слабых станций технически нерешаемой в городской черте задачей. Для нормального приёма рецепт один - В деревню к деду, но даже там, что бы следить за работой коротковолновиков-любителей, нужна ТАКАЯ антенна, что проще подключиться к одной из множества SDR ретрансляторов разбросанных по всему миру.
kiwisdr.com/pub...
Так что же , прощай радио? Нет! Для жителей городов и окрестных деревень работает множество радиостанций в УКВ диапазоне от 64 до 108 MHz. Особенно интересно послушать не федеральные, а местные станции на которых бывают интересные новости, дорожная информация и погода именно вашего города, причём далеко не все дублируют свою работу в Интернете.
В итоге, я решил сделать некий гибрид из старой и новой технологии.
Для относительно качественного радиоприёма местных радиостанций, использовать FM диапазон и специализирующуюся на этом микросхему RDA5807М, приобрести которую можно в уже минимальной обвязке в виде модуля с кварцем и парой емкостей за смешные деньги. Отличную библиотеку для управления чипом написал радиолюбитель Ricardo Lima Caratti.
github.com/pu2clr
А вместо «дальнего» приёма на СВ и КВ диапазонах использовать потоковые WEB радиостанции, вещающие со всех точек земного шара с вполне приемлемым качеством.
Обращаю ваше внимание, что функции выбора типа приёма станции и индикатора захвата станции доступны только в модифицированной версии библиотеки для RDA5807М (библиотека лежит в архиве вместе с микропрограммой) ссылка на оригинальную библиотеку:
github.com/pu2...
В целом, я остался доволен функциональностью и качеством работы устройства. Серьёзные радиостанции в FM диапазоне звучат неплохо (хотя технология FM не позволяет передавать сигнал с частотой выше 14 кГц), да и WEB станции с битрейтом 256 kbps или 320 kbps не режут слух ни в наушниках, ни на хорошей акустике (при том, что это априори сигнал с потерей качества, и применён дешёвый ЦАП в виде готового модуля на базе I2S декодера PCM5102A 24-bit аудио до 192KHz).
Как вы уже поняли, я постарался, сделать устройство максимально бюджетным, чтоб не проделать брешь в Вашем, а заодно и своём кармане, так как я лишился единственного спонсора, теперь на канале будут появляться только бюджетные устройства…
Поэтому пришлось применить имевшийся у меня LCD 16Х2 экран вместо графического, самый дешёвый ЦАП, собранный ранее коммутатор и регулятор громкости на аудиопроцессоре BD37534FV и усилитель для наушников на MAX97220 от которого я отказаться в пользу более качественного, собранного на 2 ОУ в другом проекте, пригодился в этом.
Ссылка на библиотеку управления BD37534FV от Александра Лимана github.com/lim...
Вообще все использованные в проекте библиотеки либо лежат в архиве, который вы скачаете вместе с микропрограммой и ссылки на них есть в комментариях самого скетча, либо входят в стандартный набор среды Arduino IDE.
Самый большие затраты, это как всегда алюминиевый корпус, ЦАП на PCM5102А, усилителя для наушников на MAX97220 и конечно ESP32 под внешнюю антенну, ну и всякая мелочёвка…
Ориентировочные затраты на компоненты устройства составили около 40USD. Много это или мало для радиоигрушки, решать Вам!
Вопросы и предложения оставляйте под этим видео, а если вопросов «миллион» то пишите сразу на почту tolikn@yandex.ru
Понравилась самоделка? Подпишитесь на мой канал, и тогда она точно будет не последняя!
Фотографии процесса сборки отдельных узлов, блок-схема, монтажные схемы и конечно микропрограмму для ESP32 с подробными комментариями и архивами используемых библиотек вы найдёте по ссылке:
github.com/Ana...
Удачи! - Наука
Отлично! Жду вторую часть.Успехов.
Давно мечтаю себе на кухню такую коробочку))) Ждём продолжения!
Спасибо что радуете подписчиков, проект понравился жду продолжения👍
Идея и исполнение на высоком уровне. Удачи!
Очень понравилось . Жду продолжения .
Будет!
Хорошая идея. Для себя есть над чем подумать...
Обновлённая прошивка для SI4731 уже опубликована. Улучшен алгоритм управления WEB радио, исправлены ошибки.
Поддержка версии для RDA5807М временно приостановлена.
Цветной экран, блютуз и усб и отличный домашний медиацентр получится!
Медиацентр, я бы базировал на Raspberry Pi, + приличный экран, aptX HD Bluetooth, приличный ЦАП, но это совсем иной бюджет...
цветной ?
Добрый день. Хочу повторить ваше радио . Вопросы нужно ли делать согласование уровней I2C между дисплеем (точнее платой конвертера) и остальной схемой? И если отказаться от использования BD37534FV будет ли нормально отрабатывать остальная часть программы? Изменения в скетч вносить пока не планирую, переключение источников на УНЧ через реле с мосфетом с выхода 23. Спасибо.
@@alp71-52RU
1. Нет не нужно, конвертер нормально работает как при +5В так и +3,3В.
2. Можно смело исключить, проверял работоспособность без аудио процессора.
Но у меня в свою очередь, тоже есть вопрос, а чем так не устраивает применение аудио процессора? Если вас волнует проблема питания, то его можно запитать и +5В, звук при работе в качестве коммутатора и регулятора громкости он не портит (с учётом качества источников это совершенно точно). Цена на АлиЭкспресс вполне сносная. Я построил на этом аудио процессоре несколько проектов и ни один меня не разочаровал.
Так почему релейное переключение? В псевдо Hi End хотите поиграть с мр3 источником через простейший ЦАП? Или так важно внешний вход не испортить, ну тогда, я бы лично рассмотрел применение TDA7719 у этого аудио процессора есть сквозной вход без подключения к блоку обработки. Нет, мне и правда интересно, почему. :-))
@@Nevzoroff_ Всё значительно проще! 1)Вся остальная комплектуха уже есть, а его месяц ждать надо. И кстати только у одного продавца, что слегка напрягает.2) Устройство будет подключаться к недорогим активным колонкам( и возможно размещаться в них же) и к этим колонкам подобные технические изыски как горничной бриллианты) Не оценят они их))). В том что аудио процессор хорош ни сколько не сомневаюсь, возможно пригодится в будущем. Но в кухонное радио он явно лишнее.
Кстати отдельное вам спасибо за подробные комментарии в коде👍. Значительно облегчают понимание.
И еще один вопрос. В обсуждениях КаРадио и тп. часто пишут про провалы в воспроизведении. Здесь это тоже актуально? ESP32 будет без доп памяти. Хотя конечно в любом случае интересно попробовать. Концепт 2 в 1 это как раз то что хотел)
@@alp71-52RU
Качество воспроизведения во многом зависит от подключения к провайдеру и количества хостов до станции. Автор библиотеки неохотно отвечает на вопросы, но он вроде постарался установить оптимальные значения для буферизации потока. Кроме того, Я минимизировал загрузку процессора при воспроизведении (не использую циклов, лишних опросов и т.п.). В общем, лично у меня все станции, включая те, что очевидно вещают с североамериканской территории идут без затыков, НО именно с той версией библиотеки audio которая лежит на странице, например с последней версией, Я даже скетч скомпилировать не смог, не говоря про работу устройства. При этом в варианте софта с пультом ДУ подошла другая библиотека. В общем будьте готовы к неожиданностям!
@@Nevzoroff_
Неожиданности начались )) Компиляция не прошла . Ни на 1,8 , ни на 2,3.
Жаль. Будем искать дальше.
@@alp71-52RU
Напишите на почту, вышлю ещё вариант.
Что то у меня при компиляции куча ошибок.... очень много. Все нужные библиотекки присутствуют.
Если другие скетчи для ESP32 компилируются нормально, то вышлите на почту листинг ошибок попробуем разобраться.
@@Nevzoroff_ Остальные нормально. Но часть я вроде поправил.. Но к примеру для void WEBradioPR второй фигурной нет... далее, хотя строки с //, но пока не убрал там в конце \, тоже ошибки... короче поковыряю еще, потом суммарно зашлю. Это то что помню...
@@ВладимирНевзоров-ф2ы
Перед публикацией я компилирую скетч на двух разных ПК один с legacy-версией Arduino IDE 1.8.19 (релиз от 20.12.2021) и на втором с Arduino IDE 2.0.4 ни один ошибок не выдал.
Если вы компилируете в другой среде аккуратнее с "\" в конце строки, Я буду стараться избегать её употребления в будущем.
@@Nevzoroff_ я уже исправил все ошибки... все компилится. Я тут уже писал, но ответ удалился 2 раза. Ошибки давали строки 407-420 в функшион.
А можно как-то заливать URL станций по usb, не перезаливая всю прошивку?
Игорь, интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч. Если очень надо можно записать например не 10, а 50 станций как у радио или больше. Если вы планируете часто менять список станций, можно прикрутить решение от Александра Лимана, там вообще ничего перезаливать не надо. Подробнее прочитайте здесь rcl-radio.ru/?p=120767
Я планирую, организовать доступ к списку в эмулированной под файловую систему памяти ESP32 через WEB интерфейс, но когда это случится, даже загадывать не буду...
От себя отмечу, что с момента публикации последнего видео НИ РАЗУ не менял список. Станций много, а слушать нечего...
Сколько по деньгам обходится такое устройство? Аудиовыход в стерео?
Самый дорогой компонент это корпус, покупал давно чуть меньше 1000 рублей, сейчас наверное дороже. Вся внутрянка менее 2000 рублей. В принципе за такие деньги можно взять готовую китайскую с поддержкой DLNA. Самоделка, как я уже писал неоднократно, это не про экономию.
Выход конечно стерео, и вообще качество сигнала упирается не в приёмную часть, а в технологии его передачи.
@@Nevzoroff_ интересно. Если не сложно дайте пожалуйста название уже готового китайского приёмника или ссылку на него. Он уже со встроенным wi-fi модулем и на него подходят прошивки от проекта ёРадио? Спасибо.
@@Liberty_Europe
Это готовое изделие, цена правда неожиданно сильно подросла за год.
aliexpress.ru/item/1005003874146684.html
Никакого отношения к самоделкам на базе софта ёРадио не имеет.
Зато ничего паять не надо и устройство переносное.
Скажите, а поток AAC Ваш аппарат декодирует?
При попытке подключения к станции вещающей в ААС, у меня ESP уходила в перезагрузку. Причину найти не смог, хотя другие пользователи писали, что у них всё работает, может и у вас проблем не будет, отпишитесь пожалуйста!
Настройка сетевых станций через веб интерфейс?@@Nevzoroff_
Вам наверное уже говорили что голос один в один как у Марка Бартона
Нет, первый раз о нём слышу.
RDS действительно бесполезен, единичные станции передают названия песен, в основном телефон рекламы, дублируют частоту (нафига), и кривое имя станции. RSSI такое себе, может быть >100 если частота на 0.1Mhz от частоты станции, хотя звука почти не будет, или наоборот RSSI низкий, хотя станция принимается отлично по звуку.