D-Link DAP-1350 компактный роутер, занимающий очень мало места и имеющий usb разъем. Давайте сделаем из него станцию для прослушивания интернет радио.
Далее по пунктам:
- Прошиваем роутер через стандартный веб интерфейс (192.168.0.50) прошивку: отсюда.
- Подключаемся кабелем и входим в настройки по адресу 192.168.1.1
- Далее следуем инструкции по этой ссылке.
Для того чтобы работали светодиоды на кнопке 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 102
|
#1 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
здраствуйте форумчяни.Столкнулся с такой бедой и прошу помощи у знающих людей.Так вот был у меня роутер Dir300 b7.Служыл верой и правдой ровно 1год но 1месяц назад была сильная гроза и роутер несмог её пережыть(умерло 2 порта wan и 1lan) так вобшем в остальном осталса цел.Но тогда я незнал об openwrt и об переназначении портов роутера короче на его место пришол новый dir 615 e4e(в котором щяс крутитса openwrt).Позавчера я собиралса быбросить Свой полужевой Dir300 b7 но наткнулся на етот форум и решыл попробовать из обычного Dir300 b7 зделать DIR-320 rev.B1 (оно же DIR-320NRU).при помоши гугла я узнал что для Dir300 b7 нет openwrt но он есть для DIR-320 rev.B1 (оно же DIR-320NRU) ети два роутера впринцепи идентичны за исключением spi flash в 300 25l32, в 320 25l64.Короче тирять было нечего и я решыл произвести замену SPI.В городе нашол 25L6406E.Слил дамп(при помощи spipgm) с 25l32 и залил в 25L6406E, впаял 25L6406E в роутер и он завелса.Затем прошыл в Openwrt от DIR-320 rev.B1 попробовал включить и он у меня завёлса как полноценный 320.Теперь я хочу сделать из него интернетрадиоприёмни к (как сдесь http://cyber-place.ru/showthread.php?t=363&page=4 пост #34)но собирать прошывки я неумею(в линуксе полный 0 ).Пакеты на роутер устанавливаютса Но когда я начинаю доустанавливать нужные мне пакеты для радио роутер ругаетса на нехватку памити.Помогите мне с скомпилированой прошывкой(просто скокораз пыталса вечно какаято ошибка у линукса и нехочет грузить исходники).И у вас будет практика и я буду щяслев прослушевая роутер которий месяц назад собирался выбросить.Просто ваша вся робота(я так думаю но могу и ошыбатса поскоку в линуксе полный 0 )будет состоять в том что собрать прошивку(тем болие вы уже ето делали с огромным успехом)с минемальным набором пакетов нетак как в версии для роутера (исключить либо все в данном случаи ненужные пакеты либо так чтоб осталось место и взамен их установить те которые нужны радиоприёмнику)Готов быть тестером вашых прошывок для dir320nru собраных на openwrt.Спасибо .жду вашых ответов ищё раз спасибо.просто уже так далеко дошол кстати запустил и usb оказалось он у них распаян просто нехватало преда по питанию .Запаял пред,гнездо и порт заработал openwrt опознал флеху. характеристики вот как я писал теперь у меня DIR-320 rev.B1 (оно же DIR-320NRU). http://wiki.openwrt.org/toh/d-link/dir-320_revb1 |
|
|
|
#2 |
Administrator
|
Какой у вашего роутепа объем оперативной памяти |
|
|
|
#3 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
CPU: RaLink RT5350 SoC (MIPS 24K V4.12 model «RT5350F» 360 Mhz) |
|
|
|
#4 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
Цитата:
Сообщение от Admin …объем оперативной памяти… озушку нетрогал осталась заводская 32 mb |
|
|
|
#5 |
Administrator
|
Должно было хватить для веб радио. Может что то лишнего установили? |
|
|
|
#6 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
Ну можно и так сказать дело в том что прошывку брал ос сюда http://ne-ne-ne.ru/openwrt/openwrt-b…320nru-v3.html а она там напичкана подзавязку(принт сервер,веб сервер…) .Свою собрать немогу(неумею, было много попыток в игоге 0 успехов из за отсутствия знаний линукса).мне нужна голая(наскоко ето возможно для старта и роботы роутера ) готовая прошывка чтоб я смог доустановить пакеты которые мне мужны для радио.а так поскоку та прошывка которая у меня есть небита всем под самый самый у SPI неостаётса места под мои пакеты.Удалить я их тоже немогу(они то удаляютса но обём памети всёравно занимают) чтоб поставить нужное мне.Спасибо. |
|
|
|
#7 |
Administrator
|
А если usb hub и флешку использовать? |
|
|
|
#8 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
Чесно непробовал но втаком случяе цена устройства возрастает на флеха+хаб.И ктомуже там останутса пакеты которые для радио ненужны.А вы можете помочь с прошывкой? |
|
|
|
#9 |
Senior Member Регистрация: 19.07.2014 Сообщений: 117 Вес репутации: 0 |
ребята пытаюсь подключить usb звуковуху в ответ |
|
|
|
#10 |
Administrator
|
Версия ядра прошивки, не соответствует этой версии репозитория |
|
|
Нам понадобится:
- Любой роутер с 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:
Также обновим 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 интернет-радиоприёмник из роутера с возможностью переключения станций. (С разрешения администраторов Хабрахабра.)
Зовут меня Владимир и я являюсь инженерно-техническим работником строительной фирмы, а конкретно вело-мото-теле-фото-бензо-радио-монтер. Ну а хобби –радиолюбитель, прожжённый такой, не мало транзисторов сожженных на моем счету.
Я люблю слушать музыку, вернее просто музыкальный фон во время работы. И вот однажды насмотревшись интернету решил сделать Wi-Fi радио приемник своими руками. Слушаю я в основном радио и почти всегда через интернет, музыкальные предпочтения довольно обширны. Как и во всех делах по работе, так и в хобби начинаем с начала, то есть с постановки технического задания:
- Простой в изготовлении вай-фай приемник с питанием от батареи/сети
- Малый вес и габариты
- Использование доступных компонентов
- Индикация текущей станции, трека
- Бюджет до 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
и тишина.
А вообще я ссылки подсмотрел здесь
Ну как для первой статьи думаю уже хватит, обязательно будет продолжение и будет управление и корпус, только бы времени хватило
Теги:
Сразу после ремонта было решено – на кухне телевизора не будет! Но аудиовизуальные потребности при приготовлении и поглощении еды удовлетворить иногда хочется. Поэтому был найден выход: установлен аквариум и из ненужного хлама собран интернет-радиоприемник. Аквариум можно видеть , а в этом пойдет речь о радиоприемнике…
Итак, основные компоненты:
1. Универсальный ПДУ с buyincoins.com ()
2. LCD-дисплей c подсветкой c buyincoins.com ()
3. Материнская плата S370 с интегрированным видеоадаптером и звуком
4. Процессор Intel Pentium III
5. RAM — 192 Mb
6. PCI Ethernet-адаптер
7. HDD 20 Gb
8. БП 300 Вт (upd: реальное потребление около 30 Вт)
9. Фотоприемник от TV-тюнера Beholder 407
10. Активная акустическая система 2.0 (куплена новая, с достаточно хорошим качество звучания)
11. Два куска витой пары длиной 1.5-2 м для выноса дисплея с кнопкой включения
12. Остатки ламината от ремонта;-)
Итог нескольких вечеров работы:
Для CD-привода, естественно, места не нашлось, да он и не нужен, подключал его только при установке системы. Внутри достаточно компактно размещено:
Вид задней стенки:
Вынесенная панель с кнопкой включения и дисплеем (отображается название радиостанции и погода за бортом):
Название радиостанции и время (прошлогодний снимок):
Изначально собирался отказаться от Windows в пользу Linux или QNX, собирался написать свой софт, но из-за нехватки времени пошел по простейшему пути. Итак, программная часть:
1. OC Windows XP SP2
3. WinLIRC. Обрабатывает команды от фотоприемника, который я присоединил к COM-порту.
4. LCD Smartie. Выводит на дисплей имя проигрываемого трека/радиостанции, текущее временя и погоду за бортом. С погодой пришлось повозиться, в результате нашел RSS-ленту для Ростова-на-Дону на латинице. Там же есть и схемы подключения дисплея.
5. IR Tricker. Использовал только для того, чтобы сделать возможным выключение с ПДУ. По сути, по нажатию кнопки запускает “shutdown.exe -s -t 0”. Как потом оказалось, управление питанием на этой материнке не работает, поэтому завершение работы происходит, а выключение питания – нет.
Для настройки (например, смены плейлиста) использую удаленный доступ с ноутбука или основного домашнего компьютера.
Кнопку включения-выключения вынес на панель с LCD-дисплеем. Включается приблизительно за 30-40 секунд. С пульта можно менять громкость и проигрываемый трек-радиостанцию (в плейлисте вбито несколько сотен самых различных радиостанций). Приемник вместе с колонками стоит под потолком, на дисплей с кнопкой включения отведен вниз.
Теперь впечатления от ПДУ.
Плюсы:
— Цена
— Размеры
— Универсальность — можно выставить любой из распространенных наборов команд (я настраивал на телевизоре Philips).
Минусы:
— Заказывал два, один пришел нерабочий. Батарейки в комплекте мертвые, пришлось заменить
— Мало кнопок
О дисплее:
Плюсы:
— Цена
— Стандартный интерфейс, совместимый с интерфейсом контроллера hd44780, годится для использования в поделках на Arduino
— Относительная простота подключения к LPT-порту, легко нагуглить схему подключения;
— Обилие программного обеспечения, поддерживающего этот дисплей и Winamp одновременно
— Подсветка яркая, приятная на глаз
— Контрастные символы
Минусы
— Небольшая неравномерность подсветки;
— Неточность маркировки выводов (в обсуждениях на БИКе пишут, как правильно припаяться);
— Нет кириллицы. Только латиница и “китаица”. Читал, что можно программировать начертания символов, и, таким образом, получить кириллицу, но мне это и не нужно.
— Инертность. При быстром скроллировании текста слегка смазываются надписи (видно на снимках).
Скриншоты удаленного рабочего стола:
Радиоприемник в интерьере:
Загрузка:
Фото дисплея с обратной стороны:
Вопросы?
Планирую купить
+23
Добавить в избранное
Обзор понравился
+54
+99
Зовут меня Владимир и я являюсь инженерно-техническим работником строительной фирмы, а конкретно вело-мото-теле-фото-бензо-радио-монтер. Ну а хобби –радиолюбитель, прожжённый такой, не мало транзисторов сожженных на моем счету.
Я люблю слушать музыку, вернее просто музыкальный фон во время работы. И вот однажды насмотревшись интернету решил сделать Wi-Fi радио приемник
своими руками. Слушаю я в основном радио и почти всегда через интернет, музыкальные предпочтения довольно обширны. Как и во всех делах по работе, так и в хобби начинаем с начала, то есть с постановки технического задания:
- Простой в изготовлении вай-фай приемник с питанием от батареи/сети
- Малый вес и габариты
- Использование доступных компонентов
- Индикация текущей станции, трека
- Бюджет до 50$ (страшная сумма в гривне)
Ну с богом… гугл в помощь, заграница нам поможет…
Качество и цена нормальные (я просто территориально на момент написания статьи был в Чернигове). Далее чтобы общаться с роутером через ком порт нам нужен терминальный клиент, ну тут кому что больше по душе, мне всем хорош PuTTY он даже уже русифицирован для удобства пользования. Скачиваем архив для вашей системы, распаковываем в любую папку на жестком диске, заходим в нее, переходим в подпапку PuTTY, запускаем PuTTY.exe
Выставляем все необходимые параметры: Последовательная линия-СОМ3 (или ваш СОМ порт), скорость- 115200, тип соединения-Serial, жмем «Сохранить» чтобы не вводить каждый раз при запуске параметры соединения, жмем «Соединиться». Я подразумеваю что у Вас как и у меня USB-FTDI преобразователь подключен к ноутбуку и установлены драйвера. И ничего, просто черная консоль…
Чтоб понять что все у нас работает надо найти документацию к своему девайсу и определить распиновку. Вот мой пример
В данный момент нам необходимо соединить пины «TXD
» и «RXD
» перемычкой, для совсем слабаков как я и хуже поясняю: мы соединяем вход и выход данных чтоб получилось набирать текст в терминале (отправлять данные TXD
) и видеть его моментальное отображение (принимать данные RXD
).
Вот так. И теперь когда мы набираем в терминале с клавиатуры бред, то он отображается в консоли а лампочки на моем устройстве весело моргают в такт импульсам.
Если ничего не происходит внимательно посмотрите документацию и все у Вас получится там не может быть проблем в 5 пинах, хотя может быть и драйвер кривой но его всегда можно скачать с сайта производителя вашего преобразователя. Кстати о перемычках, я считаю что каждый уважающий себя радиолюбитель должен иметь подобный набор на все случаи жизни
Я брал их давно по 1 штуке мама-мама, мама-папа, папа-папа и до сих пор их есть у меня. Брал . Все теперь откладываем наши переходники, преобразователи, перемычки в сторону и берем в руки роутер и отвертку. На дне роутера есть 4 ЧЕТЫРЕ винта. Два видимые и два под резиновыми ножками, потайные.
Удаляем резиновые ножки пинцетом или какой либо ковырялкой, выкручиваем и удаляем винты, аккуратно разделяем верхнюю и нижнюю части скорлупки роутера и извлекаем плату. Все вроде и хорошо вздутых кондеров нет (если есть, обязательно заменяем на новые тех же номиналов). Но есть четыре не запаянных контакта
На это место нам нужно впаять контактный разъем типа PLS (штырьки такие с шагом 2,54мм) чтобы в конечном итоге получилось вот так
Можно и аккуратней, но у меня не было под рукой олово-отсоса, а вот первый самый не аккуратный пин был соединен с земляным полигон и чтобы его впаять нужно было нагреть весь полигон, остальные три вошли как по маслу.
Раз пошла такая пляска то проверю выходное напряжение, так для уверенности
Отлично 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 ([email protected])
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) дополнительных пакетов слепить все это до кучи и заставить работать, при этом нужно будет танцевать с бубном вокруг компа и периодически обкуривать его канифольным дымом. Путь второй стянуть с сайта Джефа (заграница нам помогла) готовую скомпилированную прошивку со всеми прелестями и радоваться тому что не пришлось покупать бубен.
Теперь нам нужно запихнуть прошивку в роутер, Джеф нам друг но истина дороже. Он там у себя предлагает долбить консоль в OS_X на MacBook. Если бы у меня были деньги на макбук то я не писал бы сейчас эту статью. Короче нам не нужны танцы с бубном. Просто берем установочный диск из коробки ASUS и ставим ASUS WL-520GU Wireless Router Utilites. Не ищите там нету для Windows7 ставим в режиме совместимости с Windows XP. Если есть комп с Windows XP то ставим через него. Но предварительно нужно установить статический IP адрес в настройках сетевой карты. Я использовал 192.168.1.201
Запускаем и эту программу в режиме совместимости с 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. Двоеточие обязательно, вводить только на английской раскладке клавиатуры.
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
демон нам показал режим работы
но она давно уже протухла как и весь буржуазный строй (короче битая ссылка)
и тут нам заграница уже не поможет, но мы и сами могем. Хотя как оказалось найти ссылки на именно стрим радиостанции тяжеловато, они все сейчас во флеш плеерах играют, а их у меня поддержки нет. Ну ничего, прорвемся…
в консоли вводим
Root@OpenWrt:~# mpc add http://stream.mjoy.ua:8000/radio-z-kryjivky
выскочит строка о добавлении нового объекта
Root@OpenWrt:~# mpc play
и понеслись байты по волнам…
остановить эти вопли можно командой root@OpenWrt:~# mpc stop
Ну как для первой статьи думаю уже хватит, обязательно будет продолжение и будет управление и корпус, только бы времени хватило
Как сделать самодельное wi-fi интернет радио aslan
wrote in April 27th, 2017
Все началось с того, что жена попросила радио на кухню. Вообще многие истории начинаются с того, что жена что-то попросила. Я подумал, зачем мне обычное радио, если есть куча интернет радиостанций? И тут меня понесло… О том что получилось читайте дальше.
Так как я по профессии инженер-электронщик, то решил подойти к делу серьезно. Сначала решил прикинуть как оно будет выглядеть. Нарисовал примерную 3D модель. После этого решил разрисовать что и как внутри будет располагаться. Прикинул примерно каких размеров должен быть динамик и где какие органы управления на плате.
Создал принципиальную электрическую схему и развел под нее плату. Об этом писать подробно не буду, это большая тема, которая заслуживает отдельной статьи. Скажу только, что это моя работа и для меня это не так сложно. Примерно месяц ушел на изготовление платы в производстве. В итоге получилась вот такая платка. Первое фото до запайки- в таком виде она приходит с производства. Второе и третье фото уже с запаянными компонентами.
Проверив, что плата не содержит ошибок, я начал потихоньку писать прошивку. Это долгое занятие, поэтому параллельно я стал заниматься корпусом. Нашел тех, кто согласился изготовить все по моим чертежам. В итоге получился вот такой набор деталек.
К этому времени я как раз написал более-менее рабочую версию прошивки. Теперь можно все собирать.
Несущая панель крепится на саморезы, так как на ней будет держаться тяжелый динамик. Задняя панель так же крепится на саморезы, но в самом конце.
После этого монтируем проводку внутри корпуса.
Остается только закрепить декоративную панель, и ручки. Можно включать и проверять!
Получился вот такой приемник, который сначала радовал основного заказчика — мою жену. Ну и нас с дочкой. Постепенно интерес со стороны знакомых стал расти. Я сделал приемники родственникам и друзьям. Они давали советы и замечания. Примерно за полгода тестовой эксплуатации я понял, какие еще могут быть фишки, а каких не должно быть) Ведь одно дело делать для себя, а другое, когда приемником пользуется мама, которая в гаджетах особо понимает.
Жми на кнопку, чтобы подписаться на «Как это сделано»!
Если у вас есть производство или сервис, о котором вы хотите рассказать нашим читателям, пишите Аслану ([email protected]
) и мы сделаем самый лучший репортаж, который увидят не только читатели сообщества, но и сайта Как это сделано
Подписывайтесь также на наши группы в фейсбуке, вконтакте,
одноклассниках, в ютюбе и инстаграме
, где будут выкладываться самое интересное из сообщества, плюс видео о том, как это сделано, устроено и работает.
Жми на иконку и подписывайся!
- Интернет радиоприемник на ESP8266 Ардуино open source:
- Включается / выключается с помощью света. Как только свет в ванной включается начинает играть.
- Таймер для отключения на ночь. Синхронизация времени по NTP-серверу
- Начинает воспроизводить музыку моментально, благодаря постоянной готовности
- Органы управления: 2 кнопки 1 регулятор громкости
- Низкое энергопотребление по сравнению с Raspberry Pi
- 3 модуля ESP8266, VS1053B, PAM8403
- Бюджет 11,58€ (Aliexpress).
- Исходный код на Arduino
- Может проигрывать 101.ru онлайн радио
Я хотел бы представить свой проект WiFi интернет радиоприемник для ванной комнаты
Программное обеспечение для ESP8266 Arduino было разработано Edzelf и было взято из .
Я всего лишь изменил концепцию управления и адаптировал радио для работы в ванной комнате. Включение выключение интернет радиоприемника зависит от освещенности в комнате. То есть я установил сенсор освещенности — фоторезистор. Также добавил синхронизацию времени по ntp и возможность воспроизведения интернет радиостанции 101.ru
Когда я захожу в ванную комнату должна начинать играть легкая музыка. Когда я выхожу из ванной музыка должна автоматически выключаться. Эту идею я подсмотрел в одном отеле в Болгарии.
В качестве элементов управления мне понадобится регулятор громкости и две кнопки для переключения между интернет-радиостанциями.
LDR (датчик освещенности) обнаруживает, когда я вхожу в ванную комнату. Ах да, еще нужно ночное отключение, если я пойду в туалет ночью, музыка не должна включаться.
В отличие от проектов интернет радио плееров с Raspberry Pi (малинкой), этот самодельный Wi-Fi радиоприемник намного дешевле. Стоимость компонентов составляет всего 11,58 € (с Aliexpress).
И, конечно же есть преимущество в том, что вам не нужен Linux, только с помощью знаний Arduino вы можете вносить свои изменения.
Кроме того, такое ESP-радио потребляет намного меньше электроэнергии, чем Raspberry Pi радиоприемник, а также он запускается намного быстрее. В этом интернет радиоприемнике ESP8266 всегда готов к работе и подключен к Wi-Fi и начинает воспроизводить онлайн-радио, моментально после включения лампы в ванной комнате.
Потребляемая мощность в режиме ожидания составляет 130 мА. С wi-fi интернет радио на Raspberry Pi, это было бы проблематично, потому что, либо Raspberry Pi полностью загружен операционной системий и использует много энергии, либо выключен, но тогда загрузка занимает довольно много времени.
Принципиальная электрическая схема цифровая часть
Регулятор громкости
В качестве регулятора громкости может быть использован любой потенциометр в диапазоне 1 k… 100 k. Он подключается между между питанием 3,3 V и масой.
Напряжение с потенциометра считывается преобразователем AD-преобразователем (контакт A0). Чтобы значение не прыгало назад и вперед, в программу введён гистерезис 5.
Практика показала, что по-прежнему необходим электронный фильтр. Самый простой способ для меня — припаять SMD конденсатор 200 нФ непосредственно к плате D1 mini WEMOS.
Конденсатор припаивается прямо поверх резистора напротив ножки D0. Если вы не хотите этого делать, вы можете также присоединить такой RC-фильтр, между входом A0 и массой конденсатор 1 мкФ, и резистор 10 кОм между потенциометром и входом А0.
LDR — Датчик света
LDR подключен настолько странно по той причине, что порт D8 должен иметь обязательно низкий уровень во время загрузки модуля ESP. Схема LDR работает следующим образом: D8 переключается как выход и выдает 3,3 В, конденсатор заряжается, затем D8 переключается как вход и проверяет, остается ли напряжение на конденсаторе. Чем больше света попадает на LDR, тем быстрее разряжается конденсатор.
Отключение звука
Для меня было очень важно, чтобы не было слышно ни малейшего шума, пока WiFi интернет радиоприемник для ванной находится в режиме ожидания.
Все усилители создают немного фонового шума при отсутствии сигнала. Единственный способ избавиться от этого шума — отключить усилитель.
Для этого нам нужен сигнал. Но все GPIO в ESP8266 заняты. На D1 mini WeMos NodeMcu установлен ESP8266-12F, и у него еще есть дополнительные GPIO. Мне удалось использовать GPIO10 для этой функции.
Я прочитал в Интернете, что некоторые ESP8266-12F (в зависимости от производителя) сбрасываются при переключении GPIO10. Если у вас так происходит, отключите эту функцию в строке 21.
Принципиальная электрическая схема аналоговая часть
Кстати, радиолюбители конструирующиe интернет-радиоприемник на VS1053 скрывают огромную проблему подключения усилителя к модулю VS1053B.
Все подключают наушники или усилители с отдельным источником питания и довольны этим.
Проблема в том, что как только вы подключите усилитель с общей массой к модулю VS1053, вы услышите очень сильный цифровой шум, который даже заглушает полезный сигнал. Контакт массы гнезда для наушников (GBUF) в соответствии с техническим паспортом не должны быть подключены к массе остальной цепи.
Два часа я пробовал с различными фильтрами в аналоговый части и на линиях питания. Никакие фильтры не позволяют избавиться от этого шума. Наконец, я нашел правильное ключевое слово в Интернете — «дифференциальные входы». Если подключить дифференциальный входной усилитель (например, TDA8932) к модулю VS1053, то цифровой шум исчезает полностю.
Секрет массы гнезда для наушников GBUF заключается в том, что он также передает шум с одинаковой полярностью. Таким образом, контакт массы гнезда для наушников GBUF должен быть соеденён с отрицательным входом усилителя, а звуковой сигнал должен быть соеденён с положительным входом усилителя. Я нашел окончательное решение проблемы цифрового шума .
GBUF можно подключить к выходу VREF ножка 8 усилителя PAM8403. После этого цифровой шум полностью исчез. Когда это получилось я чуть не закричал Эврика. Усилитель меньшей фонет если GBUF и VREF соединять не на прямую а через конденсатор 25 мкФ…100 мкФ.
Припяйте тонкий провод ко входу VREF ножка 8 микросхемы PAM8403. Эту ножку не надо отпаивать от платы.
А вот ножка 5 MUTE должена быть отсоединена от платы и поднята вверх.
R1, R3 и R2, R4 образуют делитель напряжения, который делит аудиосигнал на 2. Если максимального уровни громкости недостаточно, то удалите R3 и R4 (фон во время пауз также усилится).
Конденсатор C4 470 мкФ должен быть установлен как можно ближе к модулю PAM8403, чтобы обеспечить максимальный ток для баса.
Требования к источнику питания
Мои измерения показали, что при максимальной громкости при использовании динамика на 120 Вт потребляется 500 мА. Поэтому 5 В USB зарядка должна быть рассчитана на 1 А.
Пожалуйста не заводите питание через через гнездо micro USB модуля WeMos. Он не может проводить столько мощности, и усилитель звука получает меньше напряжения из-за потерь микро-USB и зарядном кабеле.
Управление
Управление осуществляется с помощью двух кнопок и регулятора громкости. Кнопка 1 — следующая радиостанция, кнопка 2 — предыдущая радиостанция.
Удерживя кнопку «следующая радиостанция» в течение 2 секунд вы выключите самодельный интернет радио плеер. Если wifi интернет радио выключено то его можно снова включить любой кнопкой.
Я сконструировал это интернет-радио для использования в ванной комнате. Для этой цели ESP радиоприемник включается и выключается с помощью светочувствительного датчика LDR. Когда вы войдете в ванную комнату и включите свет, ESP8266 Интернет Радио включиться, а когда вы выключите свет, интернет-радио на ESP8266 снова выключиться.
У вас также есть возможность автоматически отключать управление светом на ночь. Настройка времени, когда интернет-радио управляется светом, создается в файле «radio.ini». В переменных «ldr_on_at = 8:00», «ldr_off_at = 21:30». Вы можете изменить файл «radio.ini» через веб-интерфейс Ардуино радиоприемника ESP8266 или же редактировать его на своем компьютере, а затем загрузить его через веб-интерфейс.
Веб-интерфейс
Чтобы добраться до веб-интерфейса WiFi радиоприемника для ванной, вы должны сначала узнать IP-адрес интернет радиоприемника для ванной. Вы можете это сделать, открыв веб-страницу своего маршрутизатора и ищите WiFi-клиентов. Там вы найдете WiFi-устройство под названием «Esp-radio».
Лучше всего настроить маршрутизатор так, чтобы он всегда назначал один и тот же IP-адрес для «Esp radio». Теперь вы можете вызвать веб-сайт интернет- радиоприемника на ПК, планшет или мобильный телефон по IP-адресу.
Через веб-интерфейс на странице „Control“ вы можете управлять веб радио плеером. Вы можете попробовать новые интернет-радиостанции в строке над кнопкой «Play». Там вы можете указать ссылку на потоковое вещание (streaming link), ссылку на MP3 фаил, ссылку на плейлист, имя станции iHeartRadio или номер станции 101.ru онлайн-радио.
На вкладке „Config“ вы можете отредактировать файл конфигурации «radio.ini» или загрузить его с ПК. Здесь вы можете также загрузить любой файл в SPIFF (файловая система ESP8266). Могут быть загружены не только «radio.ini», но и небольшие MP3-файлы.
Здесь также перечислены доступные сети Wi-Fi.
Если ESP8266 не сможет подключиться к Wi-Fi сети, ESP8266 стартует как WiFi Точка доступа
с именем „Esp Radio“, и вам нужно будет подключиться к этой точке доступа.
Пароль — «Esp-Radio». Затем можно связатся с ESP8266 Arduino радиоприемником по адресу
Если вы еще не загрузили «radio.ini», вы можете сделать это через загрузку файла на странице „Control“.
Файл настроек
Файл конфигурации «radio.ini» находится в папке проекта в каталоге „data“.
Этот файл должен быть загружен в SPIFF (файловая система ESP8266), либо через Arduino IDE и ,
или если вы уже загружаете скомпилированную прошивку с использованием пакетного файла (Batch-file), «radio.ini» будет автоматически преобразовываться в SPIFF и также загружаться.
В этом файле делаются все настройки. Там вы можете ввести несколько названий Wi Fi сетей и пароли, с которыми может связыватся самодельное wi-fi интернет радио: wifi_00, wifi_01, wifi_02.
В строке 4 «debug = 1» вы можете включать и отключать режим отладки „debug = 1“.
В режиме отладки выдаются сообщения о состоянии и событиях проишодящих в Интернет-радио через последовательный интерфейс.
В строках с параметрами «ldr_on_at» и «ldr_off_at» вы можете установить время начала и окончания управления радиоприемником через освещение (LDR). Там вы можете настроить когда будет работать автоматическое включение интернет-радио.
Есть елементарный эквалайзер. Вы можете настроить его здесь:
Регулировка усиления высоты
Установка частоты высоты
Настройка усиления басов
Настройка частоты басов
Лучше сначала попробовать различные настройки через веб-интерфейс, как только вы найдете оптимальные значения, введите их в файл конфигурации.
В части конфигурационного файла «Presets» вы можете сохранить онлаин радиостанции и ссылки на MP3 / Ogg файлы для воспроизведения. Можно сохранить до 100 станций.
Возможны следующие форматы:
:23490/stream — Ссылка на потоковое радио
87.98.217.63:23490/stream — Ссылка на поток без «http»
— Ссылка на плейлист
— Ссылка на MP3 файл
ihr/IHR_IEDM — iHeartRadio-вебрадио
101/7 — 101.ru онлайн радио — число после косой черты — номер радиостанции.
Скачать Скомпилированную программу — готовая прошивка
Может быть напрямую загружена в микроконтроллер без Arduino IDE и знаний в области программирования.
Вам нужен только кабель от сотового телефона. Tool для загрузки находится в ZIP-файле.
-инструмент для загрузки прошивки и инструкция находятся в архиве.
(Скомпилиеровано в Arduino версии 1.8.5, ESP8266 библиотека версии. 2.3.0).
Вы можете установить предварительные настройки для WiFi интернет радиоприемника для ванной в data / radio.ini. Например, введите данные доступа для вашей сети WiFi.
Скачать исходный код ардуино проект (скетч)
В ZIP-файле находится полный проект Arduino и необходимые библиотеки.
Библиотеки должны быть скопированы в «папка с Arduino sketch/ libraries».
-Sketch для ардуино, требуется библиотека
Особенности при компиляции
Установите скорость процессора 160 МГц
ВАЖНО, пожалуйста, используйте только библиотеку Arduino ESP8266 Версии 2.3.0
. Компиляция с версией 2.4.0 приводит к постоянной перезагрузке(надеюсь когда нибудь билиотеку исправят).
101.ru
Если вы нашли интересное веб-радио на 101.ru, найдите номер радиостанции, ( New Age). 120 — это номер станции.
С помощью записи 101/120 в разделе „Presets“ INI-файла вы можете сохранить эту радиостанцию, или через веб-интерфейс самодельного радиоприемника на вкладке „Control“ можете задать и послушать эту радиостанцию.
Команды управления
Команды управления могут быть отправлены через последовательный интерфейс RS232 (TTL).
Команды управления могут быть отправлены через веб-браузер в следующем формате: =
(http://192.168.2.13/?upvolume=2)
preset = 12 Select start preset to con
uppreset = 1 Select next preset or play
downpreset = 1 Select previous preset or
preset_00 = Specify station for a pres
volume = 95 Percentage between 0 and 1
upvolume = 2 Add percentage to current
downvolume = 2 Subtract percentage from c
toneha = Setting treble gain
tonehf = Setting treble frequency
tonela = Setting bass gain
tonelf = Setting treble frequency
station = Select new station (will n
station = .mp3 Play standalone .mp3 file
station = .m3u Select playlist (will not
xml = Select iHeartRadio station
mute Mute the music
unmute Unmute the music
stop Stop player
resume Resume player
wifi_00 = mySSID/mypassword Set WiFi SSID and password
status Show current URL to play
test For test purposes
debug = 0 or 1 Switch debugging on or off
reset Restart the ESP8266
analog Show current analog input
Планирую купить
+245
Добавить в избранное
Обзор понравился
+219
+399
Эта статья посвящена практическим аспектам изготовления недорогого WiFi радио на основе OpenWrt роутера под управлением микроконтроллера Stellaris .
Цели и обоснование выбора компонентов
Основной целью
было изготовить устройство для обеспечения фоновой музыкой кухню, с максимально простым и наглядным интерфейсом пригодным к использованию домашними.
Второстепенные цели
:
- исправить неработающую магнитолу
- пристроить неисправный роутер и заказанную в припадке шопоголизма отладочную плату Stellaris
- оценить удобство работы с микроконтроллером Stellaris
Выбор остальных компонент схемы несущесвеннен.
Корпус
Обычно этот раздел ставится в конец. Но на мой взгляд. тема достаточно важная, особенно если предстоит эксплуатация устройства в условиях агрессивных сред (я имею ввиду кухню). Jeff сделал корпус из фанеры. Хорошее решение для тех кто хочет нормального звучания и умеет гнуть фанеру. В моем исполнении такой корпус выглядел бы слишком колхозно, поэтому я выбрал отыгравшую свое старую пузатенькую магнитолу с CD диском. Широкое основание CD проигрывателя позволяет разместить наиболее габаритный элемент конструкции -плату роутера, динамики дают основу аудио тракта, а ручка для переноски необходимую мобильность. Кроме того, есть шанс использовать органы управления магнитолы.
Интерфейс
Одним из факторов тормозящих применение новых технологий является небходимость смены пользовательского интерфейса. Поэтому было решено остановится на наиболее простом варианте: большой экран для отображение номера станции, 2 кнопки следующая/предыдущая станция, 2 кнопки контроля громкости и кнопка старт/стоп проигрывания. Для практического использования устройства оказалось важным помнить последний установленный уровень звука и выбранную станцию.
Конструкция
В качестве основы была выбрана инструкция 4х летней давности с сайта MightyOhm . Она достаточно подробно описана и я не вижу смысла воспроизводить ее тут целиком. Остановлюсь только на отличиях.
При построении радио по такой схеме существует дилемма разделения управления между линуксом и микроконтролером. Я остановился на варианте когда большая часть логики управления расположена на МК из за нелюбви и отсутствии большого опыта линукс администрирования а так же желания поиграться с МК. Кроме того, меня смущает проблема необходимости повторения процедуры настройки при перепрошивке роутера.
Поэтому, со стороны опенврт я добавил только
- скрипт начала проигрывания с обновлением плей листа из интернет
- скрипт отображения статуса плеера
- метку окончания загрузки роутера
Программное обеспечение
Stellaris это вам не ардуина, одних только UART портов, свободно работающих на 115200 у него 6 штук, что позволяет при отладке использовать два из них в качестве переходника USB — UART для ПК. Первая
задача выполняемая ПО МК это проброс информации между UART1 подключенного к роутеру и UART0, который может быть подключен к ПК. Вторая
— анализ проходящей информации и посылка событий в конечный автомат включая информацию об изменении состояния кнопок. Третья
— реализация конечного автомата с анализом входящих сообщений и изменении информации на устройствах отображения
После старта, МК ожидает сигнала окончания загрузки роутера, обновляет плей лист из интернет (я использую DropBox для хранения плейлиста), восстанавливает уровень звука и станцию, и посылает команду на начало проигрывания.
Предложенные схема и рабочие, но создавались по кусочкам в течении полугода, как следствие, получились достаточно сумбурными и ценны только как рабочее демо.
Изготовление
Донор, неведомое чудо китайской промышленности начала века.
Со старой магнитолы снимается все оборудование кроме динамиков и платы с кнопками. Можно попробовать сберечь аудио усилитель и питание если у вас есть время и вдохновение.
Потрошение.
После соответствующей доработки корпуса он фаршируется новым оборудованием:
Фаршировка.
Платой роутера (1)
Мне достался знаменитый Asus WL-500gP V2 , достался за пиво в связи с проблемами по WAN порту, которые не влияли на работу в качестве WiFi хоста. Теоретически роутер должен подойти любой с возможностью установки OpenWrt и USB портом.
USB звуковой картой (5)
Я заказал такую, как показана на картинке и она работает, кроме того, была успешно опробована Asus Xonar U3 , но она не дала ожидаемого улучшения качества звучания. Я подозреваю в связи с низкими битрейтом и качеством аудио тракта. Еще одна опробованная китайская USB звуковая карта, в прозрачном корпусе без кнопок, работать отказалась, при том что на ПК все было в порядке, причина неизвестна.
Аудио усилителем (4)
Я заказал его на EBay по принципу «шо подешевле». Не могу рекомендовать из за сильных высокочастотных шумов, хотя включенные последовательно с динамиками резисторы помогли их уменьшить до приемлемого уровня с сохранением достаточного уровня громкости.
Устройствами индикации
При построении радио по такой схеме достаточно использовать пару светодиодов для индикации состояния либо ориентироваться по светодиодам роутера, но чтобы ресурсы МК не простаивали я заказал вот такой OLED экранчик (3)
. Экран замечательный — компактный и контрастный, но слишком мелкий, особенно если предполагается эксплуатация радио людьми со слабым зрением. Поэтому в конструкцию был добавлен семисегментный индикатор с контроллером (6)
показывающий наиболее важную на мой взгляд информацию — номер выбранной станции.
Материнской платой
МК (2)
, память (7)
и разъемы на периферийные устройства я скоммутировал на макетке. Основанием для выбора внешней памяти стало сообщение о баге с флеш памятью в ранних версиях стелларис значительно снижающем количество циклов перезаписи. Без микросхемы памяти можно обойтись или же использовать внутренний флеш МК, но это потребует доработки ПО.
Питанием (8)
Роутер требует 5в 2а, усилитель 12в <1а я заказал два отдельных блока питания. подозреваю что есть более аккуратное решение и с удовольствием с ним познакомлюсь в комментариях.
Устройствами управления (кнопками)
Конструкция моей магнитолы позволила использовать после соответствующей модификации родную плату с кнопками. Надеюсь вам повезет также.
Готово
Бухгалтерия
1 | ASUS WL-500g Premium V2 | $10 (дохлый WAN порт) |
2 | EK-LM4F120XL Stellaris LM4F120 LaunchPad Evaluation Board | $7.99 (сейчас) |
3 | New 3.3V 0.96″ 128X64 OLED LCD LED Display Module Shield white Color SSD1306 | $8.74 |
4 | 10W Mini HIFI 12V Digital power amplifier Stereo High power amplifier Board | $4.99 |
5 | USB2.0 To 3.5mm Audio Microphone Speaker Port Adapter 7.1 Channel 3D Sound Track | $2.08 |
6 | 0.56″ LED 7 Segment 4 Digit Common cathode MAX7219 arduino Blue White Green | $3.68 |
MAX7219 | $0.45 | |
7 | AT25040A | ~$1 |
8 | Switch Power Supply Driver for LED Strip Light AC 110/220V 5V 2A 10W | $8.16 |
12V 1A 12W DC Switch Power Supply Driver | $4.99 |
Stellaris
Стелларис порадовал, широкими возможностями и хорошей документацией, но осталось впечатление что продукт сыроват. Как со стороны железа, что возможно связано с тем что я использовал плату из предзаказа, так и со стороны ПО. При этом комьюнити не слишком большое, по сравнению с той же ардуиной, что приводит к тому, что сделав шаг в сторону от предложенных TI примеров вы оказываетесь на минном поле из загадок и багов вооруженные только документацией и исходниками.
Так например, оказывается, что использование UART выше 2 требует внесения изменений в код библиотеки. На моей плате оказались закорочены PB7 и PD1 пины, хотя возможно это следствие моих не слишком корректных экспериментов. Не удалось заставить нормально работать пользовательские кнопки и другие не критичные но досадные мелочи.
Что осталось нереализованым:
- Прикрутить управление через ИК пульт, благо пинов и вычислительных мощностей МК хватает.
- Завести через реле на МК управление питанием роутера что позволит реализовать «спящий» режим и при необходимости резетить роутер.
- Наладить NTP и отображать точное время.
- Реализовать таймер автоматического выключения радио после 4-5 часов проигрывания
- Добавить в конструкцию жесткий диск с коллекцией музыки и возможность использования его при отсутствии интернета.
- Добавить возможность использования нескольких плейлистов и кнопку переключения между ними.
- Заменить кнопки громкости и выбора станции поворотными переключателями из старых мышек.
Выводы
Все поставленные основные и второстепенные цели достигнуты. Успешный опыт эксплуатации устройства в течении нескольких месяцев доказывает правильность выбранных решений.