WI-FI интернет радио.
- Войдите на сайт для отправки комментариев
Сразу сообщаю, что проект не мой, а досточтимого "JP cocatrix", за что ему огромное спасибо!!!
Я лишь воспользовался его проектом и встроил wi-fi интернет радио в свой старый бум-бокс и находясь в полнейшем восторге решил ознакомить участников форума с ним, может кому-то тоже захочется послушать любимое интернет радио в хорошем качестве.
Итак о проекте.
Сайт проекта https://hackaday.io/project/11570-wifi-webradio-with-esp8266-and-vs1053
Описание:
Приемник по существу состоит из двух готовых модулей: первого - ESP8266 4 Мб ( ESP 8266-12 или ESP 8266-7) и второго - VS1053 соединенных всего 7-ю сигнальными линиями + цепи питания - и больше для минимального варианта не требуется ни чего!!! При этом получаете интернет радио с управлением через WEB интерфейс через браузер.
Есть ли есть потребность и желание, можно дополнительно подключить клавиатуру управления (воспроизведение, стоп, следующая станция, предыдущая станция, громче, тише) и экран, причем их подключение учтено в софте.
Приемник поддерживает три вида управления:
-Web интерфейс работает с браузерами хром и т.п ... Mozilla ( IE 8 не пошел).
Использованные комплектующие:
Модуль имеет на борту все необходимые сопротивления подтяжки, а также стабилизатор 3,3В, что позволило питать оба модуля от одного источника питания 5В. Использовал модуль предварительно выпаяв многоцветный светодиод, фотосопротивление и резистор подтяжки аналогоаого входа ( необходимо для подключения клавиатуры).
Использовал допаяв параллельно конденсаторам С18 и С17 электролиты 100 мкф/16в ( без них иногда модуль зависал). Модуль не имеет конденсаторной развязки по линейному выходу, так что будьте осторожны и при не обходимости ставьте разделительные конденсаторы ( мне не потребовались стоят в бум-боксе).
В качестве модуля питания использовал готовый модуль питания DC-DC step-down на LM2596.
Схема ( использовал без дополнительных выходных усилителей так как подключил напрямую в линейный вход бум-бокса).
ESP8266 ADC : заземлить если клавиатура не используется
D6:GPIO12 -- VS1053 MISO
D7:GPIO13 -- VS1053 MOSI
D1:GPIO05 -- VS1053 XDCS
D2:GPIO04 -- VS1053 DREQ
D3:GPIO00 -- VS1053 XRST
D8:GPIO15 -- VS1053 XCS
Схема клавиатуры ( резистор R1 16 kOm подстроечный многооборотный потребовался для точного попадания в заданные программой диапазоны напряжения, настраивал по срабатыванию нижней по схеме кнопки).
Прошивку для ESP 8266 брать с сайта проекта ( указан выше), там же картинка с адресами заливки блоков прошивки в ESP8266 с использованием ESP Flashdownload Tool v2.3
При первом запуске приемник стартует как точка доступа "WifiWebRadio", дальнейшая настройка через WEB интерфес по адресу 192.164.4.1.
В итоге ( выделено красным).
Вид WEB интерфейса при воспроизведении любимого радио:
Удачи с повторениями, и еще раз спасибо автору JP cocatrix.
ещё бы экран приделать
Так, автор уже сделал.
-LED дисплей:https://hackaday.io/project/11570/gallery#2886678f2d7e42e0c1fb49caeed24dd6
- Дисплей от Nokia:https://hackaday.io/project/11570/gallery#f95c917f5553a1ac4c78a4741d2a412e
Схема соединений:
Автор собирается подключить ещё инфракрасное управление с пульта.
Дополнение к первому сообщению:
Инструкция по сборке минимального проекта:http://www.instructables.com/id/Wifi-Webradio-With-ESP8266-and-VS1053
Исходники, документация, прошивки:https://github.com/karawin/Ka-Radio ( последние версии прошивок лучше брать с сайта автора см. первое сообщение).
Прикольная штука, только я ничего на этом hackday найти не могу. Хотел бы собрать с олед экраном, но там кроме фоток ничего не вижу. Откуда Вы vis22 брали схемы? Где скетч на ардуину? Ну как зашить есп думаю разберусь, хотя до этого с ардуино проги на него только писал. И схема из первого поста есть покачественней? И прошивку, как я понял можно залить любую, она же по OTA обновится сама? Жаль нет управленияя энкодером.
На странице hackday есть раздел DETAILS в нем есть ссылка See Github for sources
Хорошее описание. Спасибо.
Пытаюсь повторить. Всё прошил. В браузер захожу, но если модуль подключается к сети интернет через WIFI то точка доступа в нем становится не активна.
Ещё проблема это список рабочих каналов. Можете поделиться для образца?
Модуль представляется точкой доступа с IP 192.168.4.1 для того , что бы вы зашли на него и через WEB интерфейс прописали SSID и пароль для подключения к вашей сети WI FI имеющей доступ к Интернет( можно прописать до двух сетей).
После нажатия кнопки "Validate" модуль перезагрузится и будет пытаться подключиться к прописанным сетям, в случае если ни к одной из двух сетей подключиться не удастстя тогда модуль возвращается в режим точки доступа с IP 192.168.4.1 ( удобно, если вы перенесли/перевезли в зоны действия других сетей WI FI и необходимо к ним подключиться.
После подключения модуля к вашей сети адрес, его можно найти в ней любой программой сетевого сканера.
Для удобстваможно на WI FI роутере явно прописал статический адрес для MAC адреса модуля ESP8266 ( MAC адрес указан на вкладке SETTING см ниже)), или как вариант можно снять галочку использовать DHCP и явно прописать желаемый IP адрес на вкладке SETTING.
Далее вбивай полученный адрес в адресную строку своего WEB браузера и получай доступ к WEB интерфесу модуля.
Что касается списка рабочих каналов: сделай следующее:
Выгрузи файл WebStations.txt кнопкой "Save Stations from WebRadio"
Замени содержимое файла (Блокнотом) на ниже указанный код, сохранить и загрузить новый файл WebStations.txt WEB интерфейс кнопкой "Save Stations to WebRadio"
Код WebStations.txt
То же самое можно прописать вручную на вкладке STATIONS
А вообще, способ определения настроек на медиапоток WEB радиостанции описан в Интернете напримерhttps://www.youtube.com/watch?v=e0KOJm1kA9s
Удачи.
Вот спасибо! Особено за пример заполнения списка радио. Всё получилось. Только что кирилица не отображается.
Теперь жду когда придет экран для дальнейшего развития.
Здравствуйте, подскажите, пожалуйста, как LCD 1602 подключить. То, что в исходниках нашел - немного не догоняю.
резистор 10К - двумя концами к земле и питанию?
wiper to LCD VO pin (pin 3) - это перемычка? если да, то первый ее конец куда? уже сжег одну ардуинку, блин.
И еще вопрос, буфер как то регулируется? Внешнюю флешку можно еще прикрутить?
по поводу дисплея вроде разобрался, остальные вопросы в силе
Хотя нет, не понимаю от какого пина есп передается информация и на какой пин ардуино она приходит
Я думаю с Tx (D10) на Rx (Pro mini)
glin прав, прикладываю увеличенную схему подключения LCD ( см. линию Тх ESP ---- Rxi Arduino).
Подключение LCD 16x2 ниже. См. подключение резистора регулировки ( это и есть: * 10K resistor:
Замечательный проект. Повторил его с OLED экраном. Мелковато, конечно, но часто смотреть на дисплей не приходится. Управление у меня только через Web интерфейс. При созданиии этого радио пришлось повторно покупать VS1053, так как сначала купил плату с микросхемой VS1003, при этом не будет работать AAC. Другие сложности были, но автор улучшает прошивку. Огромное ему спасибо.
Спасибо
Чтото у меня тоже с дисплеями туго.
На 16x2 дисплее В ардуину Pro mini прошивку залил, приветствие (карадио) на дисплее выводится, за тем загорается надпись IP: и всё. Я так понимаю информация с ECP не идет на ардуинку. Хотя провод Tx-Rx установлен.
0.96" I2C олед дисплей заработал
Пожалуйста, помогите мне из этих деталей собрать интернет радио по примеру вот этого Webradio Плеер.
arduino mega 2560 + esp 8266 01 + vs1053b + 84 * 84 lcd module
Я думаю, чтобы помочь, вам надо написать на каком этапе у вас проблема.
На начальном этапе.
Проблем нет только с усилителем звука. Ну и экран подключал - раболал нормально. Хотя экран не обязателен. Предполагаю использовать для прослушки только одной радиостанции, которая ушла с коротковолнового диапазона в интернет. На Webradio Плеер используют Arduino Pro Mini: и ENC28J60 модуль Ethernet. А у меня Меgа и esp8266. Arduino Mega совместим с большинством плат расширения, разработанных для Arduino. Но,пины разные, названия у них разные. Как всё это соединить и потом учесть в программе?
В общем дело за "малым", начать и законить.
А Ethernet обязателен? В принципе если соединить имеющиеся у вас VS1053 и esp8266 то радио уже будет работать. Только по WIFI. Если добавить 3-х вольтовую атмегу 386 - будет экран .
0.96" I2C олед дисплей заработал
можешь поподробнее .как подключил, какои скетч .просто радио у меня работает уже. но пару вопросов есть всеравно.я например VS1053 подключил на пин 3.3 В на nodeMcu нету пина 5 В на картинке написано 5В то VU а на Nodemcu пин VI ето тоже самое? .потом нужно ли ADC соединять с GND у меня и так работает..еше не пойму через некоторое время радио умолкает ...пока слушал только Ретро FM помогает только выкл /вкл
Проблема в дисплеях получилась из-за разницы напряжения Rx-Tx. На ардуине было 5в, в ESP - 3в. Естественно был спален вывод Tx на ESP. Самое обидное что ардуина и 0.96" I2C олед дисплей отлично работают от 3 вольт и изначально запитывать их так и надо было.
Скетч не заливался из-за отсутствия нужных библиотек IR модуля.
P.S. кстати в ESP есть второй вывод Tx на D4. Может кто знает как его активировать?
gjuscha пишет...
Судя по всему pin VI на Nodemsu это pin для подачи внешнего питания к которому подключён находящийся на борту Nodemsu стабилизатор 3,3V, поэтому если вы запитаете Nodemsu от внешнего источника питания 5V, то от этой же точки можно и запитать esp8266.
Вход ADC используется для подачи команд управления (стоп, воспроизведение, следующая станция, предыдущая и громкость больше и громкость ниже) с использованием внешнего делителя напряжения, поэтому если нет делителя и вывод ADC не заземлён на нем может навестись какое-то напряжение и программа esp8266 его интерпретирует как Команду. Причём команде "Стоп" соответсвует самый минимальный уровень напряжения на входе ADC, что и приводит к остановке приемника.
Esp-01 в этом проекте работать не будет однозначно. Если конечно нет желания под микроскопом припаиваться к ножкам микросхемы, гораздо проще и надежнее купить модуль Wemos d1 mini на базе ESP-12 ибо стоимость его меньше двух сотен рублей.
Для минимального комплекта достаточно Wemos d1 mini + VS1003/1053. Все.
Ардуинка нужна только для того чтобы по Tx вытягивать тэги воспроизводимого контента на экранчик. Использовать для этого Mega2560 глупо, ибо мини про хватит за глаза.
Да важное замечание, чтобы экран заработал надо скорость Uart порта на Esp-12 настроить на 28800.
Судя по всему pin VI на Nodemsu это pin для подачи внешнего питания к которому подключён находящийся на борту Nodemsu стабилизатор 3,3V, поэтому если вы запитаете Nodemsu от внешнего источника питания 5V, то от этой же точки можно и запитать esp8266.
.gjuscha пишет...
вы имеете ввиду запитать vs1053??
а если NOdemcu запитана через microUSB то как тогда ?
c ADC теперь понятно спасибо
Проблема в дисплеях получилась из-за разницы напряжения Rx-Tx. На ардуине было 5в, в ESP - 3в. Естественно был спален вывод Tx на ESP. Самое обидное что ардуина и 0.96" I2C олед дисплей отлично работают от 3 вольт и изначально запитывать их так и надо было.
Скетч не заливался из-за отсутствия нужных библиотек IR модуля.
P.S. кстати в ESP есть второй вывод Tx на D4. Может кто знает как его активировать?
скетчем и библиотеками не можешь поделится?
Скетчи для экранов брал здесь https://github.com/karawin/Ka-Radio/tree/master/Lcd%20%26%20remote
karadioU8glib - длля монохромного OLED.
Библиотек надо три https://github.com/olikraus/u8glib/
https://github.com/shirriff/Arduino-IRremote
https://github.com/cyborg5/IRLib2
В первой надо найти файл U8g.h и раскоментировать строку #define U8G_16BIT 1
спасибо буду пробоватъ
gjuscha пишет...
Да можно запитать vs1053 от пинка vi Nodemsu при питании последнего от usb.
Fehler beim Kompilieren für das Board Arduino Pro or Pro Mini.
выдает ошибку, имя или окончание длинное :(
Приветствую всех! Тоже повторил KaRadio. Несколько слов о стабильности. Поначалу имели место самопроизвольные затыки, перезагрузки и т.д. Соединил все провода, опираясь на информацию из текста с сайта, на резисторы подтяжки плюнул, результат удручающий - нестабильная работа. Только когда посадил ADC на землю (без резистора), СH_PC на +3.3 в (без резистора), GPIO0 на +3.3 в (через 10 к), GPIO2 на +3.3 в (через 1 ком+светодиод), работа стала более-менее стабильной. Использую голый модуль ESP-12E на плате-переходнике. Возможно, если бы сразу использовал NodeMcu (как автор проекта), этих проблем удалось бы избежать. Web интерфейс - да подтормаживает, но это пережить можно. Сейчас жду 23LCV1024, чтобы сделать внешний RAM. О результатах отпишусь. Параллельно слежу за проектом https://github.com/Edzelf/Esp-radio, его тоже повторил. Автор выкроил 20 кБайт под буфер в памяти ESP модуля, но этого маловато, а так вообще его проект тоже заслуживает внимания, хороший, простой интерфейс, работает стабильно. Сейчас он работает над реализацией радио на ESP-32, может быть там у него получится сделать больший буфер.
Также повторил KaRadio - на платформе Wemos D1 mini + LCD Nokia 5500 + arduino mini pro + кнопки. Все работает стабильно, но бывают зависоны редко, пришлось вывести на панель кнопку сброса ESP. Далее из-за дребезга кнопок вместо изменения громкости редко бывает, что переключаются станции. Уже несколько раз подстраивал резистор 16 кОм. Кроме того в проекте не хватает отображения кириллици в тегах.
Да еще, при компиляции скетча выводилось сообщение, что не хватает памяти и типа будет нестабильная работа. Но работает все стабильно, в том числе и регулируется контрастность.
Fehler beim Kompilieren für das Board Arduino Pro or Pro Mini.
выдает ошибку, имя или окончание длинное :(
Наверное вот это в пути лишнее: C:\arduino-1.8.2.
Поробуй переустановить просто в: C:\arduino
.......
Кроме того в проекте не хватает отображения кириллици в тегах.
......
В данном проекте ESP шлет через ком порт мета данные ( названия песни и исполнителя) в кодировке UTF-8, что бы дисплей отображал такие данные кирилицей, надо в скетче arduino предусмотреть замену приходящих UTF-8 символов в кодировку понятную дисплею.
ет уже пробовал .или у меня проблема с библиотеками или надо что то правитъ в скетче
В данном проекте ESP шлет через ком порт мета данные ( названия песни и исполнителя) в кодировке UTF-8, что бы дисплей отображал такие данные кирилицей, надо в скетче arduino предусмотреть замену приходящих UTF-8 символов в кодировку понятную дисплею.
Это будет сложновато, т.к. памяти впритирку. Да и не все мета данные идут в UTF-8, я встречал и СР866, хотя это и экзотика. Но памяти мало - это факт.
Это будет сложновато, т.к. памяти впритирку. Да и не все мета данные идут в UTF-8, я встречал и СР866, хотя это и экзотика. Но памяти мало - это факт.
Если памяти мало, нужно заменить pro mini на Arduino nano v3.0, там памяти вдвое больше при полной совместимости по выводам.
Если памяти мало, нужно заменить pro mini на Arduino nano v3.0, там памяти вдвое больше при полной совместимости по выводам.
Не так все просто. У меня мини про на базе atmega328, а не atmega168. Ардуино нано также построен на базе atmega328. Можно конечно использовать Arduino mega 2560 или 1280, но тут жаба давит.
Да по большому счету не так это и важно и нужно - отображение русских букв. Главное отображается название станции и звук идет хорошо.
Заказал у дядюшки Ляо плату декодера на базе VS1053, взамен Имеющейся VS1003. Можно будет потоки AAC слушать.
а второй tx служебный, в него загрузчик плюётся, как-то наверное переключается, но вроде как после загрузчика это уже не tx.
Мне нужен был ещё один RX - я его сделал с softwareserial, сделайте так же TX на любой контакт.
Проблему с кириллицей частично решил.
Я просто заменил один из шрифтов на кириллический. Большинство тегов отображается нормально. Заметил только, если в web-интерфейсе отображаются кракозябры, то и на дисплее они отображаются, а если в вебе нормально, то и на дисплее нормально. А преобразование в скетче одной кодировки в другую я не осилю.
У меня другая проблема есть. Не заливается патч для воспроизведения AAC. Стоит только обновить по воздуху, как проигрывание AAC исчезает. Команда заливки патча не помогает, хотя пару раз восстанавливал. Пришлось забить на AAC, полно потоков и на mp3.
Проблему с кириллицей частично решил.
Я просто заменил один из шрифтов на кириллический. Большинство тегов отображается нормально. Заметил только, если в web-интерфейсе отображаются кракозябры, то и на дисплее они отображаются, а если в вебе нормально, то и на дисплее нормально. А преобразование в скетче одной кодировки в другую я не осилю.
D
Скетч в студию !
Спасибо за пример. Но код автора закрыт и править не получится. Проблему со сгоревшим Tx решил переходом на другой проект от Edzelf по ссылке выше. Там хоть и послабее интерфейс, но зато TFT экран подключается непосредственно к ESP не нужна ардуина и код открыт для правки.
как это понимать ?
DO NOT connect the Rx pin of the lcd to the Tx pin of the mini Pro
на LCD только пины GNG .VDD. SCK. SDA .
и еще я с временем никак не разберусь .все время показывает 00.01.2000 в скетче уже поменял ТZО ..время
}
loopScroll++;
if ((++loopTime%2400) == 0) itAskTime=true;
на 2400 было 7200.. ничего не изменилось в чем может быть моя ошибка?
Соединил минимальный вариант, по схеме, что в первом посте (ну и в архиве автора), похоже пришёл мне модуль не рабочий, вроде шипит при запуске, при инициализации пропадает шипение, что-то вообщем-то с ним происходит, но музыка через него не играет (хотя монитором через WEB всё в порядке). ESP менял на совершенно другую модель - та же история. И как продавцу доказать, что модуль не рабочий - хз, на фото ведь не снимешь, как и на видео не доказательство. Да и проверить его фиг знает как. Огорчение одно.
В том проекте громкость с кнопок не регулируется?
Использовал допаяв параллельно конденсаторам С18 и С17 электролиты 100 мкф/16в ( без них иногда модуль зависал). Модуль не имеет конденсаторной развязки по линейному выходу, так что будьте осторожны и при не обходимости ставьте разделительные конденсаторы ( мне не потребовались стоят в бум-боксе).
vis22 можно поподробнее ...как правильно припаять ? плюс минус?
сегодня было больше времени послушать радио ...Иногда зависает не поиму из-за чего. Иногда на TFT стоит Stoped..а иногда просто замолкает.
Для djuscha
В том проекте громкость с кнопок не регулируется?
Попробуй допаять конденсаторы как показано выше, если не поможет отсоедини вывод XRST - проверь без него работу.
В проекте Edzelf громкость с кнопок не регулируется.
Я сегодня пропаял весь модуль, о чудо - завёлся, кондёры не паял, вроде и так чистое питание, с виду вроде всё пропаяно было, но не работало.
Ещё одна замутка - схемы не совпадают с реальностью ), например, на схеме в архиве (которая в первом посте ч/б) и на рисунке в цвете (так же как и в надписи соединений в первом посте) местами поменяны XDCS и DREQ. Работает так, как на цветной схеме, и в надписи, но не работает, как нарисовано у автора, что за бред, я не понял, хотя не было важно, тк плата не работала из-за непропая, а после пропайки я и так и так пробовал.
К стати, на схеме 23lcv1024 - это в качестве чего используется? Это буфер? По идее вместо неёможно поставить 23lc1024,они хоть на али есть. Кто-нибудь собирал с ней?
Да, точно! Я совсем забыл. Многие детали на модуле были припаяны только с одной стороны. Я это заметил на этапе сборки и запаял брак.