Интернет радио своими руками из роутера

Уровень сложности
Средний

Время на прочтение
8 мин

Количество просмотров 8.6K

Нам понадобится:

  • Любой роутер с usb портом, на котрый можно установить OpenWRT — ОС Linux ориентированная на встраиваемые системы. Узнать можно ли на Ваш роутер установить OpenWRT можно на странице https://openwrt.org/toh/start.
  • USB Звуковая карта стоимостью $1-$2.
  • Любые пассивные (или активные) звуковые колонки.
  • Два патч-корда — витая пара обжатая разъёмами 8P8C (в народе RJ-45).
  • Персональный компьютер.
  • Выход в сеть Интернет по технологии Ethernet и Wi-Fi (опционально).

Подключаем роутер к сети Интернет

Подключаем роутер, который будет Wi-Fi интернет-радиоприёмником, к роутеру домашней сети патч-кордом. Один конец патч-корда подключаем к гнезду роутера, который будет Wi-Fi интернет-радиоприёмником, с пометкой Internet, другой конец патч-корда подключаем к любому свободному гнезду LAN роутера домашней сети. Имейте ввиду, что часто, последнее (правое гнездо), если смотреть на роутер со стороны на которой расположены гнёзда, зарезервировано провайдером Интернета под IPTV и для такого подключения не предусмотрен выход в сеть Интернет.

Теперь подключаем наш персональный компьютер к роутеру, который будет Wi-Fi интернет-радиоприёмником, вторым патч-кордом, вставив его разъём в свободное гнездо LAN роутера, который будет Wi-Fi интернет-радиоприёмником.

Перепрошиваем роутер

Нам нужно убедиться, что для нашего роутера есть версия прошивки OpenWRT, это можно сделать здесь: https://openwrt.org/toh/start. У меня есть старый роутер TP-LINK TL-WR842N, для него есть прошивка OpenWRT.

Перепрошиваем роутер следуя инструкции на странице прошивки роутера или общей инструкции: https://openwrt.org/ru/docs/guide-user/installation/generic.flashing.

Настройка OpenWRT

1) Подключаемся к роутеру по ssh, для этого в консоли наберите: (пользователи ОС Windows могут воспользоваться коммандой ssh или putty)

ssh root@192.168.1.1

и первым делом обновляем информацию о пакетах в ОС Linux:

opkg update

Если команда выполняется с ошибками, то Вам необходимо прописать DNS. Это можно сделать в web-интерфейсе OpenWRT. К web-интерфейсу OpenWRT можно подключиться зайдя в браузере на страницу:

⠀https://192.168.1.1
⠀http://192.168.1.1, в случае старой версии OpenWRT

Браузер может предупредить нас о самоподписанном сертификате, проигнорируем это, нажав на кнопку Anvanced и согласившись перейти на страницу входа в web-интерфейс OpenWRT. Авторизуемся без пароля.
Для того, чтобы прописать DNS, в разделе верхнего меню:

Network -> DHCP and DNS, на этой странице необходимо удалить записи DNS forwardings и добавить адреса DNS серверов, например адреса DNS серверов Google и OpenDNS: 8.8.8.8, 208.67.222.222, 208.67.220.220, как показано на изображении:

Для старых версий OpenWRT (например, 19.07) и, в некоторых случаях это можно сделать и для новых версий, настройка DNS осуществляется так:
В web-интерфейсе OpenWRT, в разделе верхнего меню: Network -> Interfaces, нажмаем кнопку Edit напротив интефейса WAN, в появившемся диале выбираем вкладку Advanced Setting, снимаем галочку напротив пункта Use DNS servers advertised by peer и также прописываем адреса DNS серверов Google и OpenDNS. То же самое можно сделать и для интерфейса LAN, если Вы хотите чтобы устройства, которые Вы будете подключать к этому роутеру, получили по DHCP адреса DNS серверов Google и OpenDNS.

2) Устанавливаем все пакеты, которые нужны для работы USB звуковой карты, включая madplay, который вместе с wget’ом и будет проигрывать mp3 поток интернет-радиостанции:

opkg install kmod-sound-core kmod-usb-audio kmod-input-core kmod-input-evdev madplay alsa-utils triggerhappy kmod-hid kmod-usb-hid

Мы будем использовать простую USB звуковую карту за $1-$2, например, эту с Aliexpress: USB звуковая карта.
Также обновим wget, это небходимо сделать для старых версий OpenWRT (например, для версий, ранее 19.07), если Вы хотите слушать аудио-потоки, которые передаются по протоколу https:

opkg upgrade wget

3) Если мы хотим, чтобы наш роутер подключался к сети Интернет черз Wi-Fi домашней сети, а не работал по витой паре (Ethernet), то нам необходимо перевести модуль Wi-Fi роутера в режим client. Это можно сделать в web-интерфейсе OpenWRT, в разделе верхнего меню:

Network -> Wireless, далее нажимаем на кнопку Edit, напротив того интерфейса Wi-Fi, с помощью которого мы бы хотели подключаться к домашней Wi-Fi сети.
И переводим этот модуль Wi-Fi в режим client, выбирая из выпадающего списка Mode режим client.

В поле ESSID вводим имя домашней Wi-Fi сети, а во вкладке Wireless security выбираем тип шифрования и вводим пароль домашней Wi-Fi сети.

Нажимаем кнопку Save в правом нижнем углу, затем, после того как диалог Device Configuration изчезнет, на странице нажимаем кнопку Save & Apply в правом нижнем углу.

Теперь Ваш роутер должен подключиться к домашней Wi-Fi сети и выходить в сеть Интернет через неё. Не забудьте оключить патч-корд, соединяющий роутер, который будет Wi-Fi интернет-радиоприёмником, и роутер домашней сети. Вы можете проверить подключение по Wi-Fi выполнив команду:

ping altavista.com

Подключаем USB звуковую карту

Теперь подключаем USB звуковую карту в USB разъём роутера. К выходу звуковой карты подключаем колонки. При необходимости, если колонки активные и питаются от USB, подключаем колонки к USB, для того чтобы напряжение питания поступило на усилитель низкой частоты колонок.

Здесь я использовал USB hub для того, чтобы подключить USB звуковую карту и активные колонки к единственному USB разъёму роутера. Не обошлось и без синей изоленты.

Перезагружаем роутер

Наберите в ssh консоли роутера reboot или перезагрузите роутер через web-интерфейс, на странице:

⠀https://192.168.1.1/cgi-bin/luci/admin/system/reboot
⠀http://192.168.1.1/cgi-bin/luci/admin/system/reboot, в случае старой версии OpenWRT

Первое проигрывание аудио-потока

Подключаемся к роутеру по ssh, как мы это делали ранее и напишем такую команду:

wget --no-check-certificate -q -O - https://mpc1.mediacp.eu:8404/stream | madplay - -Q --no-tty-control

Здесь⠀https://mpc1.mediacp.eu:8404/stream — это URL mp3 аудио-потока интернет-радиостанции.
Приведу ещё два аудио-потока для тестирования:
⠀http://radio.m-1.fm/raduga/high⠀http://i6.streams.ovh:16012/stream

wget подключается к серверу интернет-радиостанции, не проверяя SSL-сертификат (—no-check-certificate), не сообщает о своём статусе в консоли (-q), вывод скачивающегося аудио-потока отправляет в STDOUT (-O -). Далее, через pipe (|), аудио-поток попадает в madplay и он, не сообщая о своём статусе в консоли (-Q) и не реагируя на нажатия кнопок (—no-tty-control) декодирует поток mp3 и данные попадают в USB звуковую карту.
Для того, чтобы остановить воспроизведение дважды нажмите

Ctrl+c

Если мы хотим проигрывать аудио-поток в URL которого входят такие символы как ‘? &! # $ ‘ ( ) * +, /:; = @ [ ]’ (RFC 3986), то этот URL необходимо взять в кавычки ‘ ‘.

Автоматическое подключение к потоку при включении роутера

В Linux есть файл, в который можно добавить команды, которые будут выполняться при старте системы. В OpenWRT и в некоторых других дистрибутивах это файл rc.local, он находится в директории /etc:

/etc/rc.local

Доступ к нему можно получить и в web-интерфейсе OpenWRT:

System -> Startup, вкладка Local Startup

Добавим в этот файл перед строкой exit 0 любую команду и она выполниться при загрузке OpenWRT. Для сохранения файла нажимаем кнопку Save.

Переподключение к аудио-потоку при разрыве соединения и переключение между двумя станциями

Переключение между двумя станциями осущетвляется благодаря тому, что в OpenWRT есть файл, в котором хранится значение яркости светодиода отвечающего за индикацию подключения клиентских устройств к сети LAN. Если мы подключим патч-кордом компьютер к роутеру, например, в гнездо LAN4, то на панели роутера загорится четвёртый светодиод.
Воспользуемся этим, в консоли подключимся к роутеру и посмотрим в директории

cd /sys/devices/platform/leds/leds/имя_модели_роутера:lan/

на файл brightness, в нём-то и хранится значение яркости индикации светодиода LAN, значение от 0 до 255.

Мы можем узанать включён или выключен этот светодиод командой

cat /sys/devices/platform/leds/leds/имя_модели_роутера:lan/brightness

Чтобы посмотреть какие директории есть в каталоге /sys/devices/platform/leds/leds/ перейдите в этот каталог командой

cd /sys/devices/platform/leds/leds/

затем наберите

ls

Теперь мы можем управлять состоянием светодиода и тем значением, которое записано в файле brightness в OpenWRT.

Напишем bash скрипт, который поместим в файл /etc/rc.local, в котором будет осуществляться подключение к аудио-потоку, проигрывание, переподключение, при разрыве соединения и переключение между двумя интернет-радиостанциями.


# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

echo "#!/bin/sh" > /tmp/checkOnline
echo "if ( ! ping -c 8 8.8.8.8 > /dev/null 2>&1 ) ; then echo 'network down'; sh /tmp/killPlayer; else echo 'network up'; fi;" >> /tmp/checkOnline
echo "if ( ! pgrep -x madplay > /dev/null 2>&1 ) ; then echo 'player down'; sh /tmp/killPlayer; else echo 'player up'; fi" >> /tmp/checkOnline
chmod +x /tmp/checkOnline

echo "#!/bin/sh" > /tmp/killPlayer
echo "/usr/bin/killall -9 wget madplay;
sleep 1;
echo 'start playRadio';
sh /tmp/playRadio &" >> /tmp/killPlayer
chmod +x /tmp/killPlayer

echo "#!/bin/sh" > /tmp/switchRadioTimer
echo "while true
do
 STATE=\`cat /sys/devices/platform/leds/leds/tl-wr842n-v5:green:lan/brightness\`
 OLDSTATE=\`cat /etc/oldStationSwitchState\`
 if [ "\$STATE" != "\$OLDSTATE" ] ; then echo \$STATE > /etc/oldStationSwitchState; sh /tmp/killPlayer; fi;
 sleep 1
done" >> /tmp/switchRadioTimer
chmod +x /tmp/switchRadioTimer

echo "#!/bin/sh" > /tmp/playRadio
echo "OLDSTATE=\`cat /etc/oldStationSwitchState\`
URL='http://radio.m-1.fm/raduga/high'
if [[ \$OLDSTATE -gt 0 ]] ; then URL='http://i6.streams.ovh:16012/stream'; fi;
wget --no-check-certificate -q -O - \$URL | madplay - -Q --no-tty-control" >> /tmp/playRadio
chmod +x /tmp/playRadio

echo "#!/bin/sh" > /tmp/checkOnlineTimer
echo "while true
do
 sh /tmp/checkOnline
 sleep 20
done" >> /tmp/checkOnlineTimer
chmod +x /tmp/checkOnlineTimer

sleep 5; /tmp/playRadio &
sleep 5; /tmp/switchRadioTimer &
sleep 5; /tmp/checkOnlineTimer &

exit 0

Здесь, в директории /tmp мы создаём исполняемые файлы скриптов: checkOnline, killPlayer, switchRadioTimer, playRadio, checkOnlineTimer.

checkOnline — скрипт, который проверяет, пингуется ли DNS сервер Google и запущен ли madplay. Если не выполнено хотя бы одно из этих условий, тогда выполняется killPlayer.

killPlayer — завершает выполнение madplay и запускает скрипт playRadio.

playRadio — читает из текстового файла /etc/oldStationSwitchState номер станции, который нужно проигрывать и в зависимости от этого проигрывает либо поток №1, либо поток №2.

switchRadioTimer — скрипт, который в бесконечном цикле, каждую секунду проверяет состояние светодиода LAN4, который загорается при замыкании цепи нашим переключателем — station switch; затем, скрипт стравнивает считанное состояние переключателя со значением, которое хранится в файле /etc/oldStationSwitchState, если это разные значения, то значение состояния переключателя сохраняется в файл /etc/oldStationSwitchState и вызвается killPlayer.

checkOnlineTimer — раз в 20 секунд провереряет работает ли madplay с помощью скрипта checkOnline.

Все файлы скриптов созданы — запустим playRadio, switchRadioTimer и checkOnlineTimer.

После того, как мы сохранили /etc/rc.local необходимо создать файл /etc/oldStationSwitchState с нулевым значением. Это можно сделать в консоли OpenWRT:

echo 0 > /etc/oldStationSwitchState

Поместим всё внутрь копруса роутера. Wi-Fi интернет-радиоприёмник внутри и снаружи

Поместим USB звуковую карту, усилитель низкой частоты, регулятор громкости и переключатели внутрь корпуса Wi-Fi роутера; смонтируем audio jack 3.5 мм на задней панели:

Так выглядит Wi-Fi интернет-радиоприёмник в собранном виде:

Проверим, как работает Wi-Fi интернет-радиоприёмник:

Смотрите, пожалуйста, видео работы Wi-Fi интернет-радиоприёмника (файл mp4). (Пользуюсь старым хаброредактором, не могу встроить видео-файл, тег oembed не поддерживает просто вставку видео-файла.)
Эта моя статья на английском языке на Хабре: Wi-Fi internet radio from a router with station switching capability.
Эта моя статья на моём сайте: Wi-Fi интернет-радиоприёмник из роутера с возможностью переключения станций. (С разрешения администраторов Хабрахабра.)

D-Link DAP-1350 компактный роутер, занимающий очень мало места и имеющий usb разъем. Давайте сделаем из него станцию для прослушивания интернет радио.

Далее по пунктам:

  1. Прошиваем роутер через стандартный веб интерфейс (192.168.0.50) прошивку: отсюда.
  2. Подключаемся кабелем и входим в настройки по адресу 192.168.1.1
  3. Далее следуем инструкции по этой ссылке.

Для того чтобы работали светодиоды на кнопке wps и wifi, в файл etc/config/system допишите следующий код:

config led 'led_usb'
	option name 'USB'
	option trigger 'usbdev'
	option dev '1-1'
	option interval '100'
	option sysfs 'd-link:blue:wps'
	option default '0'

config led
	option default '0'
	option name 'Wifi'
	option sysfs 'rt2800soc-phy0::radio'
	option trigger 'phy0tx'

Просмотров: 5 104

Зовут меня Владимир и я являюсь инженерно-техническим работником строительной фирмы, а конкретно вело-мото-теле-фото-бензо-радио-монтер. Ну а хобби –радиолюбитель, прожжённый такой, не мало транзисторов сожженных на моем счету.

Я люблю слушать музыку, вернее просто музыкальный фон во время работы. И вот однажды насмотревшись интернету решил сделать Wi-Fi радио приемник своими руками. Слушаю я в основном радио и почти всегда через интернет, музыкальные предпочтения довольно обширны. Как и во всех делах по работе, так и в хобби начинаем с начала, то есть с постановки технического задания:

  1. Простой в изготовлении вай-фай приемник с питанием от батареи/сети
  2. Малый вес и габариты
  3. Использование доступных компонентов
  4. Индикация текущей станции, трека
  5. Бюджет до 50$ (страшная сумма в гривне)

Ну с богом… гугл в помощь, заграница нам поможет…

http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/ — чудесный сайт по запросу wi-fi radio, здесь я почерпнул почти все, что было нужно

http://neperesychna.blogspot.com/2014/09/wi-fi-tp-link-tl-mr-3020.html — вот еще пример патриотичной реализации девайса нашими согражданами.

На вкуривание и осмысление ушло два дня и в голове появилась общая картинка картинка будущего устройства.

Далее интернет аукционы и интернет магазины, на http://olx.ua вбил ASUS WL-520GU  и поисковик отобразил что их есть аж 8 штук по цене от 150 до 350 грн (все бу) взял за 200грн но полный комплект с коробкой и всеми потрохами. Прошло 2 дня и он уже был у меня в руках

http://www.ixbt.com/comm/wrls-asus-wl-520gu-p1.shtml вот его детальная анатомия

За эти два дня я обзавелся очень необходимой вещью USB-FTDI преобразователь с уровнями 3.3 Вольта

Вот вид внутри

Реализован данный девайс на чипе CR2103, при подключении к ноуту на Windows7 без особого труда определяется системой и автоматически получает драйвера с сервера microsoft далее система его видит как Silicon Labs CP210x USB to UART Bridge (СОМ3)

Но СОМ3 ето моя система, у вас он может быть каким либо другим, ВАЖНО запомнить номер ком порта.

Как вариант можете приобрести такой:

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

Выставляем все необходимые параметры: Последовательная линия-СОМ3 (или ваш СОМ порт), скорость- 115200, тип соединения-Serial, жмем «Сохранить» чтобы не вводить каждый раз при запуске параметры соединения, жмем «Соединиться». Я подразумеваю что у Вас как и у меня USB-FTDI преобразователь подключен к ноутбуку и установлены драйвера. И ничего, просто черная консоль…

Чтоб понять что все у нас работает надо найти документацию к своему девайсу и определить распиновку. Вот мой пример

В данный момент нам необходимо соединить пины «TXD» и «RXD» перемычкой, для совсем слабаков как я и хуже поясняю: мы соединяем вход и выход данных чтоб получилось набирать текст в терминале (отправлять данные TXD) и видеть его моментальное отображение (принимать данные RXD).

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

Если ничего не происходит внимательно посмотрите документацию и все у Вас получится там не может быть проблем в 5 пинах, хотя может быть и драйвер кривой но его всегда можно скачать с сайта производителя вашего преобразователя. Кстати о перемычках, я считаю что каждый уважающий себя радиолюбитель должен иметь подобный набор на все случаи жизни

Я брал их давно по 1 штуке мама-мама, мама-папа, папа-папа и до сих пор их есть у меня. Брал здесь. Все теперь откладываем наши переходники, преобразователи, перемычки в сторону и берем в руки роутер и отвертку. На дне роутера есть 4 ЧЕТЫРЕ винта. Два видимые и два под резиновыми ножками, потайные.

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

На это место нам нужно впаять контактный разъем типа PLS (штырьки такие с шагом 2,54мм) чтобы в конечном итоге получилось вот так

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

Далее вызваниваем земляные контакты на преобразователе между разъемом USB и пином GND. Нам обязательно нужно знать что земля это земля, СОМ, GND, минус короче называйте как хотите, ну вы меня поняли…

Раз пошла такая пляска то проверю выходное напряжение, так для уверенности

Отлично 3,39 Вольт. Кстати можете проверить свой преобразователь сразу во время покупки, там будет напряжение даже без драйверов.

Теперь проверяем на плате роутера

Все отлично, теория не уходит от практики и это хорошо. Такая на первый взгляд простая проверка очень важна. Если перепутать земляной контакт то ничего не заработает а роутер вообще может сгореть, та же борода будет если туда воткнуть обычный 5 Вольтовый переходник USB-RS232. Есть мнение что могут подойти дата кабели от старых мобил, но их у меня нет и взять на проверку негде.

Ну теперь вроде все переходим к стыковке роутера и переходника. На фото платы роутера я давал распиновку, а описание на ваш переходник у вас и так есть. Если нет то нам важно первой правильно подключить землю. Контакты TX и DX можно будет поменять местами в процессе. Плюс питания 3,3 вольта подключать НЕЛЬЗЯ!  У меня получилось так

Подключаем USB переходник к свободному порту компьютера. Запускаем PuTTY с настройками описанными выше видим черный терминал. Подаем питание на роутер и видим как в терминале побежали строчки кода загрузки.

Decompressing……….done

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)

Build Date: Thu Mar 6 10:05:04 CST 2008 (root@localhost.localdomain)

Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena

Initializing Devices.

Boot partition size = 131072(0x20000)

et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 4.130.31.0

 Если не получилось – отключаем питание роутера и на нем меняем местами пины TX и RX, землю не трогаем. Повторяем включение строчки должны побежать.

Если до этого момента Вам было легко, то дальше начинаем танцы с бубном. Дальше мы будем взламывать роутер ASUS (Hacking ASUS OpenWrt). Хотя там того хакинга и на состав преступления не наберется, но зато звучит здорово, аж чувствуешь себя как ANONIMUS только без маски Гая Фокса. Итак… Нам необходимо перепрошить роутер прошивкой OpenWrt. Есть несколько способов обзавестись оной: первый — нужен компьютер с NIX совместимой системой на борту, нужно загрузить исходный код с субверсией SVN, скомпилировать свое собственное ядро, сделать конфигурацию меню, установить параметры для целевой системы (камень роутера) скачать кучу (4) дополнительных пакетов слепить все это до кучи и заставить работать, при этом нужно будет танцевать с бубном вокруг компа и периодически обкуривать его канифольным дымом. Путь второй стянуть с сайта Джефа (заграница нам помогла) готовую скомпилированную прошивку со всеми прелестями и радоваться тому что не пришлось покупать бубен.

На ссылку нужно нажать ПРАВОЙ кнопкой мышки и выбрать пункт «сохранить объект как», далее указать путь сохранения в корневую папку диска D:\ .

Теперь нам нужно запихнуть прошивку в роутер, Джеф нам друг но истина дороже. Он там у себя предлагает долбить консоль в OS_X на MacBook. Если бы у меня были деньги на макбук то я не писал бы сейчас эту статью. Короче нам не нужны танцы с бубном. Просто берем установочный диск из коробки ASUS и ставим ASUS WL-520GU Wireless Router Utilites. Не ищите там нету для Windows7 ставим в режиме совместимости с Windows XP. Если есть комп с Windows XP то ставим через него. Но предварительно нужно установить статический IP адрес в настройках сетевой карты. Я использовал 192.168.1.201

Далее пуск-ASUS Utility-Firmware Restoration

Запускаем и эту программу в режиме совместимости с WindowsXP. Может ругнуться на брандмауэр, тогда добавляем в список исключений. Жмем обзор и выбираем файл прошивки скачанный с сайта Джефа. Соединяем комп и роутер по LAN кабелю, в роутере нам нужен любой LAN порт, именно он, а не WAN. У вас должно быть подключение через переходник, и запущен PuTTY. Зажимаем маленькую ЧЕРНУЮ кнопку рядом с антенкой, отключаем питание, кнопку держим и через пару секунд подаем питание на роутер, индикатор питания начнет мигать один раз в секунду, а в консоли PuTTY отобразится приглашение

Reading :: TFTP Server.
Failed.: Timeout occured
Reading :: TFTP Server.
Failed.: Timeout occured

Отпускаем черную кнопку.Жмем «Загрузить» в окне Firmware Restoration

В следующие 5 минут нужно ничего не трогать особенно питание роутера иначе есть большой шанс запороть роутер на веки вечные. В консоли побегут строки загрузки

Reading :: TFTP Server.
TFTP_BLKLEN!!
break!! last block!!
Done. 1918724 bytes read
Download of 0x1d4704 bytes completed
Write kernel and filesystem binary to FLASH (0xbfc20000)
Programming...
copysize=1918724, amtcopy=1918724

Ждем…

Ждем пока не появится строка

mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
Далее жмем Enter и вуаля

Поздравляю теперь у Вас есть хакнутый роутер с прошивкой OpenWrt, теперь можете смело идти и покупать бубен, вы в клубе линуксоидов!

Теперь нужно подружить ваш роутер с вашей вай-фай сетью, а ваши руки с бубном.

Итак… в linux все файл и настройки тоже файл, причем текстовый. И редактировать мы будем все текстовым редактором VI (ВИ) через консоль. Удаляем сетевой кабель и прячем с глаз подальше в коробку, перезагружаем роутер передергиванием питания. Смотрим в консоль, когда загрузка зайдет в тупик жмем Enter и видим строку приглашения

В терминале введите
 
root@OpenWrt:~# vi /etc/config/wireless 

жмите Enter. Появится окно настроек

Отредактируйте все строки чтоб было так как у меня, имя сети, тип шифрования, и пароль вводите от СВОЕЙ СЕТИ. И тут рученки к бубну потянулись… в этом редакторе все через консоль, навигация стрелками, для редактирования жмем “ESC” потом“:l” потом Enter.

Для сохранения жмем “ESC” потом“:wq” потом Enter. Двоеточие обязательно, вводить только на английской раскладке клавиатуры.

Далее настроим сервис DHCP, в консоли вводим

root@OpenWrt:~# vi /etc/config/network 

 жмите Enter, в консоли появится текст

отредактируйте строки так как у меня, и сохраните (закомментируйте две последние с помощью символа # -шарпл)

введите в консоли:

root@OpenWrt:~# vi /etc/resolv.conf
и должен быть такой ответ   nameserver 127.0.0.1

если так все отлично продолжаем, если нет – курите бубен (проверьте все строки)

вводим в консоли root@OpenWrt:/# /etc/init.d/network restart

это приведет к перезапуску сетевой системы. Дальше проверим правильность сетевых настроек на практике

вводим root@OpenWrt:/# ping www.google.com 

ответ должен быть таким как на фото

Чтобы прекратить такой бардак в консоли жмем «CTRL» + «X»

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

Продолжаем настройку нашей системы. В данной сборке есть утилита opkg – это установщик пакетов, Мы немного под редактируем его настройки и он будет скачивать установки с сайта Джефа. И таким образом заграница нам снова поможет сама того не желая. Итак

root@OpenWrt:~# vi /etc/opkg.conf
И вводим все как у меня и Джефа

Далее обновляем все пакеты root@OpenWrt:~# opkg update
По словам Джефа ответ будет таким
Downloading http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/Packages.gz
Connecting to mightyohm.com (72.32.209.132:80)
Packages.gz   100% |*******************************| 8326 --:--:-- ETA
Inflating http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/Packages.gz
Updated list of available packages in /var/opkg-lists/snapshots
Signiture check for snapshots skipped because GPG support was not enabled in this build

Ну вроде получилось. Если Вы зашли так далеко – то Вы точно еретик и вас в 16 веке сожгли бы на костре инквизиторы, вместе со мной и Джефом за наши шальные пляски с бубном.

Следующие строки осилят счастливые обладатели USB звуковых карт. Типа свисток

Такая вот у Джефа была, у меня такой не было, но OLX и g00gle Вам в помощь и вы станете счастливым обладателем такого или подобного девайса за ценою около 100грн. Я там в начале говорил что я радиолюбитель, так вот я не врал. Любовь эта у меня класса с 10 или с 8 даже. И за такое время я не мог не затронуть класс устройств USB-audio. Все помнят прекрасную фирму BURR BROWN с ее великолепными звуковыми чипами PCM xxxx которые в минимальной обвязке и с питанием от шины USB (Аудиофилы, да простят меня грешного) звучали на порядок лучше встроенного аудио большинства материнок и ноутов. А всемогущий  APPLE применял их для вывода звука с дорогущих MacBook (что само по себе говорит о великолепном качестве). Так вот было время когда все паяли USB звуковухи и я тоже паял. Паял и продавал, сам бы слушал с удовольствием да деньги были очень нужны. Схема включения из даташита, печаток полно в сети

Так вот я уже тогда шагнул дальше в понимании звуковух, и скурив даташит до скрепок нарисовал схемы и стравил платы, короче родилось управление громкостью и индикация на 16х2 дисплее, а так же кнопки для полного управления аудиоплеером. С программированием МК ATMEL  я и тогда и сейчас не особо знаком, и все работы по написанию и компиляции кода взял на себя Юра (Pegas), у которого я потом взял переходник USB-FTDI и до сих пор не отдаю. Данная звуковуха прошла Крым и Рым и синий дым, и работает исправно, и качеством радует и удобством. Подключалась ко всем версиям Windows начиная с ХР, к макбукам и малинке (RaspberryPi) везде все хорошо работало и я решил что и здесь ей тоже место. Позже напишу по ней отдельную статью.

Вот для таких и им подобных звуковых карт мы и будем ставить драйвера.

К делу, вставляем карту в разьем USB роутера, в консоли пишем

root@OpenWrt:~# opkg install kmod-usb-audio kmod-usb-ohci

эта команда автоматически установит стек USB-AUDIO в нашу систему

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

root@OpenWrt:~# reboot

и внимательно следите за загрузкой, должны добавиться следующие строки

...
usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
usb.c: new USB bus registered, assigned bus number 1
usb.c: registered new driver audio
audio.c: v1.0.0:USB Audio Class driver
usbaudio: device 2 audiocontrol interface 0 has 1 input and 1 output AudioStreaming interfaces
usbaudio: device 2 interface 2 altsetting 1 channels 1 framesize 2 configured
usbaudio: valid input sample rate 48000
usbaudio: valid input sample rate 44100
usbaudio: device 2 interface 2 altsetting 1: format 0x00000010 sratelo 44100 sratehi 48000 attributes 0x01
...
usbaudio: registered dsp 14,3
usbaudio: constructing mixer for Terminal 6 type 0x0301
...

Если есть данные строки то можно воткнуть в разъем звуковухи наушники и послушать наличие легкого шипения. Из ушей наушники удалите при первом запуске звук будет очень громкий и может повредить органы слуха.

Установим плеер MPD

root@OpenWrt:# cd ~
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install mpd mpc   

далее настроим плеер

root@OpenWrt:~# cd ~
root@OpenWrt:~# mkdir .mpd
root@OpenWrt:~# mkdir music
root@OpenWrt:~# mkdir .mpd/playlists
root@OpenWrt:~# vi /etc/mpd.conf

листаем вниз пока не появится строка: An example of an OSS output:

вносим поправки как на фото

Сняв комментарии с этих строк мы включим поддержку нашей звуковой карты в демоне MPD, сохраняем и закрываем. В консоли вводим

root@OpenWrt:~# mpd
root@OpenWrt:~# mpc
ответ будет таким 
volume:100%  repeat: off  random: off

демон нам показал режим работы

момент истины настал…

даем ссылку на стрим радиостанции. Джеф у себя там дает ссылку на http://relay3.slayradio.org

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

и тут нам заграница уже не поможет, но мы и сами могем. Хотя как оказалось найти ссылки на именно стрим радиостанции тяжеловато, они все сейчас во флеш плеерах играют, а их у меня поддержки нет. Ну ничего, прорвемся…

в консоли вводим

root@OpenWrt:~# mpc add http://stream.mjoy.ua:8000/radio-z-kryjivky

выскочит строка о добавлении нового объекта

далее вводим

root@OpenWrt:~# mpc play

и понеслись байты по волнам…

остановить эти вопли можно командой root@OpenWrt:~# mpc stop

и тишина.

А вообще я ссылки подсмотрел здесь

Ну как для первой статьи думаю уже хватит, обязательно будет продолжение и будет управление и корпус, только бы времени хватило

Теги:

Сегодня я расскажу наверное про самый дешевый способ собрать internet radio.

Спасибо за это французскому инженеру на пенсии karaWin и его проекту Ka-Radio. Нам понадобится NodeMCU или Wemos D1 Mini или Wemos LOLIN D1 в количестве одной штуки. Лучше брать с ESP12-S на борту, но и старая ревизия ESP12-F тоже пойдет. У меня была вот такая:


Wemos D1 Mini

Аппаратный кодек VS1053b. Советую брать на красной плате, цепь питания выполнена качественнее чем на синей. Обязательно проверьте кварц, должен быть на 12.288MHz, иначе звук будет немножко растянут. Обязательно заменить стабилизатор 2.5в на 1.8в . Китайцы перепутали VS1053b с VS1003 и влепили не тот. На форуме VLSI Solution пишут, что от такой напруги чип быстро деградирует.


аппаратный кодек VS1053b

Берем провода и соединяем так:


подключение ESP8266 и VS1053b по схеме Ka-Radio

К аналоговому входу A0 подключаются кнопки управления. Если их нет замыкаем контакт на землю, чтобы избежать фантомных нажатий.


управление Ka-Radio без смартфона

Качаем Ka-Radio и Espressif Flash Download Tools. Скомпилированный проект находится в папке ESP8266-Firmware/bin/. Заходим в диспетчер устройств windows и посмотрим какой порт винда назначила вашему USB-COM адаптеру. Мне выдала COM4. Меняем скорость с 9600 на 115200. После этого идём в Flash Download Tools и выбираем свой порт, указываем путь и адреса для *.bin файлов. Пустое поле в DETECTED INFO — это норма. Информация в нем появится во время загрузки кода в ESP8266 — вот такой китайский логика. По умолчанию скорость работы внутренней флешки 40MHz. Можно попробовать увеличить до 80MHz — Ka-Radio будет шустрее. Делать осторожно — некоторые китайские serial flash не работают на таких скоростях. Прошиваем ESP8266 согласно картинке:


настройка Espressif Flash Download Tools для Ka-Radio

Все. Передергиваем питание, подключаемся к открытой точке доступа «WifiKaRadio». Открываем браузер с адресом 192.168.4.1. На странице Settings вводим имя роутера и пароль. Ставим галку напротив «Use DHCP». Если подключение к роутеру прошло успешно «WifiKaRadio» исчезнет. Идем в админку роутера и смотрим IP нашего web radio. Интерфейс очень задумчив — успел заварить и выпить чаю.


интерфейс Ka-Radio


Ka-Radio proof of concept

С подключением VS1053b к усилителю есть нюанс. Напрямую нельзя, можно спалить выходной каскад. Кодек использует виртуальную землю GBUF для выхода на наушники. Надо поставить разделительные конденсаторы С1, С68 на 10мкФ х 10в и подпаяться к GND вместо GBUF. Элементы R8, C5, R7, C4, R6, C3 уже есть на красной плате, а R1, R79, C2, C69, R2 и R80 можно не устанавливать.


схема подключения VS1053b к усилителю

Отличным вариантом оконечного усилителя для дешманского радио является D-class стерео усилитель PAM8403. Две красных можно взять за 99 центов. Выходная мощность 3W x 3W на 4Ом с искажениями THD 10% и КПД 90%. Напряжение питания 2.5в — 5.5в


самая лучшая плата PAM8403

Чтобы усилитель не фонил в эфир, на частоте 1MHz и выше, надо допаять 1000мкФ х 10в. Желательно добавить ферритовые бусины и 220пФ на все четыре провода к динамикам.


выходной фильтр PAM8403 для подавления ВЧ помех

Еще одна неприятная особенность Ka-Radio — цифровые помехи и шумы в паузах. При проигрывании станций их не слышно — они маскируются полезным сигналом. Лечится соединением виртуальной земли GBUF кодека VS1053b с VREF PAM8403 через конденсатор  C3 в 47мФ х 10в.


конденсатор C3 для подавление цифровых помех и шумов в паузах

Второй способ победить помехи — использовать усилитель с дифференциальным входом. Один из дифов подключается к земле и все синфазные помехи вычитаются входным каскадом. Типичный представитель на  Aliexpress — HT6872. Выходная мощность 2.8W на 4Ом с искажениями THD 10% и КПД 90%. Напряжение питания 3.6в — 6.5в. У усилителя есть встроенный фильтр EMI —  не нужны ферритовые бусины и конденсаторы на выходе. По звуку он мне понравился больше чем PAM8403 — высоких богаче и они почище. Так же как и PAM8403 легко работает от плохого блока питания или дохлых батарей.


подключение HT6872

Еще один усилитель AB-class с дифференциальным входом и вольтодобавкой — HT8698. Выходная мощность 4.75W x 4.75W на 4Ом с искажениями THD 10%. Напряжение питания 2.5в — 5.5в. Звук сказка. Есть басы, высокие не каша. Монстры Bose и Harman-Kardon нервно курят. Но есть одно но — очень требователен к питанию. От старой самсунговской зарядки Ka-Radio с ним не завелся. На средней громкости в пиках 1.5А, на максимальной около 2А.


подключение HT8698

Третий способ — развязать земли. Например использовать усилитель с отдельным блоком питания.

В общем я собрал на коленке за полчаса и оно неплохо играет. Получилось в 4-5 раз дешевле чем Orange Pi Zero с LMS.


web radio из проводов и палок

Отличная балалайка для гаража или дачи с доступом к интернету.

UDP: Получил новую «красную» плату VS1053b — качество жесть. Пока не пропаял все детали и чип, радио спотыкалось, шумело или не играло совсем.

Если AutoPlay работает через раз после включения — радио не хватает ампер. Замените блок питания.

Если в Settings убрать галочку с DHCP, web морда становится чуть-чуть быстрее.

Если список радиостанций не обновился или пропал, нажмите Refresh locale list.

UDP: Для эстетов есть двухсторонняя плата от dsaltas.

UDP: О Ka-Radio32 на ESP32 читаем тут.

Привет, дорогой радиолюбитель! Сегодня мы поговорим, о том, как можно полноценно сделать WiFi Radio своими руками. Проблема встала, когда на работе появилась задача – слушать музыку и была возможность подключить по Wi-Fi. На самом деле подобные радиоприёмники продаются в интернете и магазинах. Также есть альтернатива обычного подключения телефона к Bluetooth колонки или к обычной аудио системе – разницы нет.

Ко мне на борт попал старый роутер, у которого перегорело пара портов. Также со старых времен у меня осталась старая могнитола, которую также можно было использовать. Далее из всех контроллеров, который можно использовать – я выбрал именно Stellaris. Почему я выбрал корпус именно от магнитолы? – Дело в том, что большинство делают именно из фанеры. Сразу скажу, что это как хороший, так и ужасный вариант в некоторых условиях.

Например, если вы будете делать подобное устройство на кухню или в место, где есть повышенная влажность, то лучше делать из подобных пластиковых материалов. Фанеру от влаги может повести. Также при нормальной ровности рук, можно использовать кнопки от старого аппарата в действие.

В качестве интерфейса и управления я выбрал именно небольшой экран. Для переключения радиостанции будут две кнопки. Аналогичные будут и для уровня звука. А теперь самое главное – где взять полноценную инструкцию. Я не стал изобретать велосипед и сделал все по канону.

В данной статье я не буду расписывать все по шагам, так как инструкция уже есть тут. Там все по шагам объяснено и достаточно понятно. Кто не знает английского можете воспользоваться переводчиком Google Chrome. В качестве управления я использовал именно микроконтроллер.

Wi-Fi радио с интернетом своими руками: пошаговая инструкция

Содержание

  1. Сборка
  2. Для покупателей
  3. Задать вопрос автору статьи

Сборка

Начнем, наверное, со Stellaris, который нужно связать с компьютером через UART порт. Их всего 6 штук. На нулевой нужно будет пробросить связь с ПК, а вот на 1 UART порт надо будет сделать связь с роутером, который будет у нас связующим с беспроводной сетью. Также вся это конструкция должна хранить полный плей-лист станций внутри памяти. Для этого можно использовать память роутера.

Wi-Fi радио с интернетом своими руками: пошаговая инструкция

Из старой магнитолы вытаскиваем все кроме динамиков. Ну по крайней мере я сделал именно так. Если есть время, то можете сохранить усилитель. Далее я делал все по той же схеме, используя дополнительные детали. Некоторые детали покупал на eBay, а какие-то просто получило от знакомых. В общем аппарат получился по цене примерно на 3000 рублей.

Если брать в магазинах, то подобное радио стоит от 5000 рублей. Достаточно дорого – но тут все связано именно с популярностью. Подобный аудиа-передатчики с Wi-Fi на сегодняшний момент очень непопулярны. Так как большинство людей пользуются именно беспроводными колонками. В некоторых случаях, это удобнее и практичнее.

Wi-Fi радио с интернетом своими руками: пошаговая инструкция

Для покупателей

Если вы прочли все это и поняли, что лучше потратить деньги и купить себе радио с интернетом – то вы можете посмотреть мой обзор самых лучших моделей тут. Там представлено несколько моделей, а также советы по выбору.

  • Интернет флешка для роутера мегафон
  • Интернет работает через провод а через роутер нет
  • Интернет роутеры с wifi ростелеком цена
  • Интернет с флешки через роутер
  • Интернет роутер для ноутбука билайн