ARDUINO WEB & FM радио на ESP32 (Часть 1. RDA5807М, PCM5102A, BD37534FV, MAX97220)

Поделиться
HTML-код
  • Опубликовано: 21 фев 2023
  • Если Вы радиолюбитель, но не собрали «для себя» хотя бы одно радиоприёмное устройство, это необходимо исправить! Согласитесь, есть некая магия в невидимой передаче и приёме информации на приличные расстояния при помощи нескольких радиодеталей. Кто собирал в детстве детекторные приёмники знает, как мало деталей надо для приёма местных станций. Но время идёт, кардинально изменилась элементная база и на одной микросхеме можно собрать почти всеволновый приёмник. Однако, кроме технологий приёма существенно изменилась и картина радиоэфира в целом. Из былого изобилия станций с разнообразным контентом на «средних» и «коротких» волнах остались немногочисленные и малоинтересные радиовещатели с религиозным или политико-идеологическим контентом. Есть и музыкальные программы, но качество приёма музыки совсем не то к чему нас приучили цифровые технологии (шум всех видов, наслоение одной станции на другую, качество звука как из трубы, думаю вы поняли…).Количество промышленных помех делает приём слабых станций технически нерешаемой в городской черте задачей. Для нормального приёма рецепт один - В деревню к деду, но даже там, что бы следить за работой коротковолновиков-любителей, нужна ТАКАЯ антенна, что проще подключиться к одной из множества SDR ретрансляторов разбросанных по всему миру.
    kiwisdr.com/public/
    Так что же , прощай радио? Нет! Для жителей городов и окрестных деревень работает множество радиостанций в УКВ диапазоне от 64 до 108 MHz. Особенно интересно послушать не федеральные, а местные станции на которых бывают интересные новости, дорожная информация и погода именно вашего города, причём далеко не все дублируют свою работу в Интернете.
    В итоге, я решил сделать некий гибрид из старой и новой технологии.
    Для относительно качественного радиоприёма местных радиостанций, использовать FM диапазон и специализирующуюся на этом микросхему RDA5807М, приобрести которую можно в уже минимальной обвязке в виде модуля с кварцем и парой емкостей за смешные деньги. Отличную библиотеку для управления чипом написал радиолюбитель Ricardo Lima Caratti.
    github.com/pu2clr
    А вместо «дальнего» приёма на СВ и КВ диапазонах использовать потоковые WEB радиостанции, вещающие со всех точек земного шара с вполне приемлемым качеством.
    Обращаю ваше внимание, что функции выбора типа приёма станции и индикатора захвата станции доступны только в модифицированной версии библиотеки для RDA5807М (библиотека лежит в архиве вместе с микропрограммой) ссылка на оригинальную библиотеку:
    github.com/pu2clr/RDA5807
    В целом, я остался доволен функциональностью и качеством работы устройства. Серьёзные радиостанции в FM диапазоне звучат неплохо (хотя технология FM не позволяет передавать сигнал с частотой выше 14 кГц), да и WEB станции с битрейтом 256 kbps или 320 kbps не режут слух ни в наушниках, ни на хорошей акустике (при том, что это априори сигнал с потерей качества, и применён дешёвый ЦАП в виде готового модуля на базе I2S декодера PCM5102A 24-bit аудио до 192KHz).
    Как вы уже поняли, я постарался, сделать устройство максимально бюджетным, чтоб не проделать брешь в Вашем, а заодно и своём кармане, так как я лишился единственного спонсора, теперь на канале будут появляться только бюджетные устройства…
    Поэтому пришлось применить имевшийся у меня LCD 16Х2 экран вместо графического, самый дешёвый ЦАП, собранный ранее коммутатор и регулятор громкости на аудиопроцессоре BD37534FV и усилитель для наушников на MAX97220 от которого я отказаться в пользу более качественного, собранного на 2 ОУ в другом проекте, пригодился в этом.
    Ссылка на библиотеку управления BD37534FV от Александра Лимана github.com/liman324/BD37534FV...
    Вообще все использованные в проекте библиотеки либо лежат в архиве, который вы скачаете вместе с микропрограммой и ссылки на них есть в комментариях самого скетча, либо входят в стандартный набор среды Arduino IDE.
    Самый большие затраты, это как всегда алюминиевый корпус, ЦАП на PCM5102А, усилителя для наушников на MAX97220 и конечно ESP32 под внешнюю антенну, ну и всякая мелочёвка…
    Ориентировочные затраты на компоненты устройства составили около 40USD. Много это или мало для радиоигрушки, решать Вам!
    Вопросы и предложения оставляйте под этим видео, а если вопросов «миллион» то пишите сразу на почту tolikn@yandex.ru
    Понравилась самоделка? Подпишитесь на мой канал, и тогда она точно будет не последняя!
    Фотографии процесса сборки отдельных узлов, блок-схема, монтажные схемы и конечно микропрограмму для ESP32 с подробными комментариями и архивами используемых библиотек вы найдёте по ссылке:
    github.com/AnatolyNevzoroff/W...
    Удачи!
  • НаукаНаука

Комментарии • 35

  • @braza01mc
    @braza01mc Год назад +2

    Спасибо что радуете подписчиков, проект понравился жду продолжения👍

  • @user-it1pd1xz3y
    @user-it1pd1xz3y Год назад +1

    Отлично! Жду вторую часть.Успехов.

  • @dmitry5171
    @dmitry5171 Год назад +1

    Давно мечтаю себе на кухню такую коробочку))) Ждём продолжения!

  • @user-mo8dy1wb6p
    @user-mo8dy1wb6p Год назад +1

    Идея и исполнение на высоком уровне. Удачи!

  • @user-xz4wg9hq2c
    @user-xz4wg9hq2c Год назад +1

    Очень понравилось . Жду продолжения .

  • @user-nn2tn6sw4m
    @user-nn2tn6sw4m Год назад +1

    Хорошая идея. Для себя есть над чем подумать...

    • @Nevzoroff_
      @Nevzoroff_  9 месяцев назад

      Обновлённая прошивка для SI4731 уже опубликована. Улучшен алгоритм управления WEB радио, исправлены ошибки.
      Поддержка версии для RDA5807М временно приостановлена.

  • @user-wq2sk7uo9j
    @user-wq2sk7uo9j Год назад +1

    Цветной экран, блютуз и усб и отличный домашний медиацентр получится!

    • @Nevzoroff_
      @Nevzoroff_  Год назад

      Медиацентр, я бы базировал на Raspberry Pi, + приличный экран, aptX HD Bluetooth, приличный ЦАП, но это совсем иной бюджет...

    • @wcross09
      @wcross09 8 месяцев назад

      цветной ?

  • @alp71-52RU
    @alp71-52RU 6 дней назад

    Добрый день. Хочу повторить ваше радио . Вопросы нужно ли делать согласование уровней I2C между дисплеем (точнее платой конвертера) и остальной схемой? И если отказаться от использования BD37534FV будет ли нормально отрабатывать остальная часть программы? Изменения в скетч вносить пока не планирую, переключение источников на УНЧ через реле с мосфетом с выхода 23. Спасибо.

    • @Nevzoroff_
      @Nevzoroff_  6 дней назад +1

      @@alp71-52RU
      1. Нет не нужно, конвертер нормально работает как при +5В так и +3,3В.
      2. Можно смело исключить, проверял работоспособность без аудио процессора.
      Но у меня в свою очередь, тоже есть вопрос, а чем так не устраивает применение аудио процессора? Если вас волнует проблема питания, то его можно запитать и +5В, звук при работе в качестве коммутатора и регулятора громкости он не портит (с учётом качества источников это совершенно точно). Цена на АлиЭкспресс вполне сносная. Я построил на этом аудио процессоре несколько проектов и ни один меня не разочаровал.
      Так почему релейное переключение? В псевдо Hi End хотите поиграть с мр3 источником через простейший ЦАП? Или так важно внешний вход не испортить, ну тогда, я бы лично рассмотрел применение TDA7719 у этого аудио процессора есть сквозной вход без подключения к блоку обработки. Нет, мне и правда интересно, почему. :-))

    • @alp71-52RU
      @alp71-52RU 6 дней назад

      @@Nevzoroff_ Всё значительно проще! 1)Вся остальная комплектуха уже есть, а его месяц ждать надо. И кстати только у одного продавца, что слегка напрягает.2) Устройство будет подключаться к недорогим активным колонкам( и возможно размещаться в них же) и к этим колонкам подобные технические изыски как горничной бриллианты) Не оценят они их))). В том что аудио процессор хорош ни сколько не сомневаюсь, возможно пригодится в будущем. Но в кухонное радио он явно лишнее.
      Кстати отдельное вам спасибо за подробные комментарии в коде👍. Значительно облегчают понимание.
      И еще один вопрос. В обсуждениях КаРадио и тп. часто пишут про провалы в воспроизведении. Здесь это тоже актуально? ESP32 будет без доп памяти. Хотя конечно в любом случае интересно попробовать. Концепт 2 в 1 это как раз то что хотел)

    • @Nevzoroff_
      @Nevzoroff_  6 дней назад

      @@alp71-52RU
      Качество воспроизведения во многом зависит от подключения к провайдеру и количества хостов до станции. Автор библиотеки неохотно отвечает на вопросы, но он вроде постарался установить оптимальные значения для буферизации потока. Кроме того, Я минимизировал загрузку процессора при воспроизведении (не использую циклов, лишних опросов и т.п.). В общем, лично у меня все станции, включая те, что очевидно вещают с североамериканской территории идут без затыков, НО именно с той версией библиотеки audio которая лежит на странице, например с последней версией, Я даже скетч скомпилировать не смог, не говоря про работу устройства. При этом в варианте софта с пультом ДУ подошла другая библиотека. В общем будьте готовы к неожиданностям!

    • @alp71-52RU
      @alp71-52RU 6 дней назад

      @@Nevzoroff_
      Неожиданности начались )) Компиляция не прошла . Ни на 1,8 , ни на 2,3.
      Жаль. Будем искать дальше.

    • @Nevzoroff_
      @Nevzoroff_  6 дней назад

      @@alp71-52RU
      Напишите на почту, вышлю ещё вариант.

  • @DREY-D
    @DREY-D 5 месяцев назад

    Вам наверное уже говорили что голос один в один как у Марка Бартона

    • @Nevzoroff_
      @Nevzoroff_  5 месяцев назад

      Нет, первый раз о нём слышу.

  • @igorek63ify
    @igorek63ify 7 месяцев назад

    А можно как-то заливать URL станций по usb, не перезаливая всю прошивку?

    • @Nevzoroff_
      @Nevzoroff_  7 месяцев назад

      Игорь, интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч. Если очень надо можно записать например не 10, а 50 станций как у радио или больше. Если вы планируете часто менять список станций, можно прикрутить решение от Александра Лимана, там вообще ничего перезаливать не надо. Подробнее прочитайте здесь rcl-radio.ru/?p=120767
      Я планирую, организовать доступ к списку в эмулированной под файловую систему памяти ESP32 через WEB интерфейс, но когда это случится, даже загадывать не буду...
      От себя отмечу, что с момента публикации последнего видео НИ РАЗУ не менял список. Станций много, а слушать нечего...

  • @Liberty_Europe
    @Liberty_Europe 3 месяца назад

    Сколько по деньгам обходится такое устройство? Аудиовыход в стерео?

    • @Nevzoroff_
      @Nevzoroff_  3 месяца назад +1

      Самый дорогой компонент это корпус, покупал давно чуть меньше 1000 рублей, сейчас наверное дороже. Вся внутрянка менее 2000 рублей. В принципе за такие деньги можно взять готовую китайскую с поддержкой DLNA. Самоделка, как я уже писал неоднократно, это не про экономию.
      Выход конечно стерео, и вообще качество сигнала упирается не в приёмную часть, а в технологии его передачи.

    • @Liberty_Europe
      @Liberty_Europe 3 месяца назад

      @@Nevzoroff_ интересно. Если не сложно дайте пожалуйста название уже готового китайского приёмника или ссылку на него. Он уже со встроенным wi-fi модулем и на него подходят прошивки от проекта ёРадио? Спасибо.

    • @Nevzoroff_
      @Nevzoroff_  3 месяца назад

      @@Liberty_Europe
      Это готовое изделие, цена правда неожиданно сильно подросла за год.
      aliexpress.ru/item/1005003874146684.html
      Никакого отношения к самоделкам на базе софта ёРадио не имеет.
      Зато ничего паять не надо и устройство переносное.

  • @igorek63ify
    @igorek63ify 7 месяцев назад

    Скажите, а поток AAC Ваш аппарат декодирует?

    • @Nevzoroff_
      @Nevzoroff_  7 месяцев назад

      При попытке подключения к станции вещающей в ААС, у меня ESP уходила в перезагрузку. Причину найти не смог, хотя другие пользователи писали, что у них всё работает, может и у вас проблем не будет, отпишитесь пожалуйста!

    • @igorek63ify
      @igorek63ify 7 месяцев назад

      Настройка сетевых станций через веб интерфейс?@@Nevzoroff_

  • @user-zl3zc8uk8b
    @user-zl3zc8uk8b Год назад +1

    Что то у меня при компиляции куча ошибок.... очень много. Все нужные библиотекки присутствуют.

    • @Nevzoroff_
      @Nevzoroff_  Год назад

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

    • @user-zl3zc8uk8b
      @user-zl3zc8uk8b Год назад

      @@Nevzoroff_ Остальные нормально. Но часть я вроде поправил.. Но к примеру для void WEBradioPR второй фигурной нет... далее, хотя строки с //, но пока не убрал там в конце \, тоже ошибки... короче поковыряю еще, потом суммарно зашлю. Это то что помню...

    • @Nevzoroff_
      @Nevzoroff_  Год назад

      @@user-zl3zc8uk8b
      Перед публикацией я компилирую скетч на двух разных ПК один с legacy-версией Arduino IDE 1.8.19 (релиз от 20.12.2021) и на втором с Arduino IDE 2.0.4 ни один ошибок не выдал.
      Если вы компилируете в другой среде аккуратнее с "\" в конце строки, Я буду стараться избегать её употребления в будущем.

    • @user-zl3zc8uk8b
      @user-zl3zc8uk8b Год назад

      @@Nevzoroff_ я уже исправил все ошибки... все компилится. Я тут уже писал, но ответ удалился 2 раза. Ошибки давали строки 407-420 в функшион.

  • @MisterBigwolf
    @MisterBigwolf Год назад

    RDS действительно бесполезен, единичные станции передают названия песен, в основном телефон рекламы, дублируют частоту (нафига), и кривое имя станции. RSSI такое себе, может быть >100 если частота на 0.1Mhz от частоты станции, хотя звука почти не будет, или наоборот RSSI низкий, хотя станция принимается отлично по звуку.