Отже, беремо:
- Роутер TL-MR 3020
- USB-аудіо плату
- Колонки
Після перепрошивки мусимо прописати налаштування. Можна прописати їх через Web-інтерфейс зайшовши на роутер за-помовчанням: http://192.168.1.1/, а можна через Telnet.
Якщо ви все ж вирішили прописати мережеві налаштування через telnet то спочатку прописуємо налаштування інтерфейсу мережі vi /etc/config/network
- config interface 'wwan'
- option proto 'static'
- option netmask '255.255.255.0'
- option dns '8.8.8.8'
- option ipaddr '177.77.17.100'
- option gateway '177.77.17.1'
Далі прописуємо налаштування WI-FI мережі: vi /etc/config/wireless
- config wifi-iface
- option device 'radio0'
- option mode 'sta'
- option network 'wwan'
- option ssid 'Fortetsya'
- option key 'Jgtyutqvth'
- option encryption 'psk2+aes'
Далі заходимо на Wi-fi радіоприймач через WI-FI і завантажуємо драйвери для usb-аудиоплати. Якщо у вас прошивка CyberWRT, раджу не вигадувати велотранспорт і зайти через web-інтерфейс і встановити у відповідному розділі
Після цього заходимо в telnet і встановлюємо аудіоплеєр Madplay:
- opkg update
- opkg install madplay
- wget -q -O- http://stream.mjoy.ua:8000/radio-z-kryjivky | madplay - -Q --no-tty-control &
- #!/bin/sh
- killall radio-play.sh
- killall radio-pingme.sh
- killall wget
Після цього створюємо файл vi /etc/wifiradio/playlist.m3u . В ньому буде збережено всі радіостанції та їхні назви.
- #EXTM3U
- #EXTINF:0,"Ukrainian national radio"
- http://nrcu.gov.ua:8000/ur1-mp3
- #EXTINF:0,"Radio from bunker"
- http://stream.mjoy.ua:8000/radio-z-kryjivky
- #EXTINF:0,"E-radio"
- http://62.149.13.129:8500/eradio_hi
- #EXTINF:0,"E-radio rock"
- http://etoradio.cc.colocall.com:8500/e-rock_hi
- #EXTINF:0,"Radio Rocks"
- http://online-radioroks.tavrmedia.ua/RadioROKS
- #EXTINF:0,"Holos Svobody"
- http://holos.fm:8000/holos
- #EXTINF:0,"Ouch-Radio"
- http://online.uhradio.com.ua:8001/efir
- #EXTINF:0, "M Radio"
- http://stream.mjoy.ua:8000/radio-m
- #EXTINF:0, "My Radio"
- http://music.myradio.ua/PopRock_news128.mp3
Після цього створимо файл currstream.m3u з 4-ю в ньому командою: echo "4" > /etc/wifiradio/currstream.m3u . Цей файл потрібен для того, щоб визначити яку радіостанцію треба увімкнути скрипту radio-play.sh.
Після цього створюємо файл vi /etc/wifiradio/radio-play.sh
- #!/bin/sh
- while true; do
- pl=/etc/wifiradio/playlist.m3u
- cur=$(cat "/etc/wifiradio/currstream.m3u")
- curnm=$(($cur - 1))
- name=$(head -n $curnm $pl | tail -n 1 | cut -c 11-)
- nameg=$(echo ${name// /%20})
- wget -U "Mozilla/5.0" -O /etc/wifiradio/nazva.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=Now%20you%20listen%20to%20$nameg"
- madplay /etc/wifiradio/nazva.mp3
- st=$(head -n $cur $pl | tail -n 1)
- wget -c -q -O - $st 2>/dev/null| madplay -q -
- killall wget
- done
Далі створюємо скрипт перемикання з однієї станції на іншу: vi /etc/wifiradio/radio-next-station.sh
- #!/bin/sh
- killall wget
- pl=/etc/wifiradio/playlist.m3u
- max=$(wc -l "$pl")
- cur=$(cat /etc/wifiradio/currstream.m3u)
- maxnumb=$(echo "$max" | cut -c1-2)
- if [ "$cur" -lt "$maxnumb" ]
- then
- nx=$(($cur+3))
- fi
- if [ "$cur" -ge "$maxnumb" ]
- then
- nx=4
- fi
- echo "$nx" > /etc/wifiradio/currstream.m3u
Якщо у вас хоч на деякий час обірветься інтернет, то музика припинить грати, але плеєр не розірве з'єднання, бо потік існує, і так приймач може зависнути на довго, щоб цього не було стуворимо скрипт: vi /etc/wifiradio/radio-pingme.sh
- #!/bin/sh
- while true; do
- sleep 1
- if ! ping -q -c 2 -W 6 google.com.ua > /dev/null; then
- ifdown wan
- sleep 10
- killall wget
- fi
- done
Тепер створимо скрипт який буде стартувати з завантаженням роутера і запускати наші скрипти у фоновому режимі: vi /etc/wifiradio/radio-load.sh
- #!/bin/sh
- killall wget
- killall radio-play.sh
- /etc/wifiradio/radio-play.sh $1 &
- /etc/wifiradio/radio-pingme.sh $1 &
- 1 секунда натиску - перемикає станцію
- 2-4 секунди утримувати кнопку - вмикає радіо
- 5-18 секунд утримувати кнопку - вимикає радіо
- ./etc/functions.sh
- do_button () {
- local button
- local action
- local handler
- local min
- local max
- config_get button $1 button
- config_get action $1 action
- config_get handler $1 handler
- config_get min $1 min
- config_get max $1 max
- [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
- [ -z "$min" -o -z "$max" ] && eval $handler
- [ -n "$min" -a -n "$max" ] && {
- [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
- }
- }
- }
- config_load system
- config_foreach do_button button
- config button
- option button 'wps'
- option action 'released'
- option handler '/etc/wifiradio/radio-next-station.sh'
- option min '0'
- option max '1'
- config button
- option button 'wps'
- option action 'released'
- option handler '/etc/wifiradio/radio-load.sh'
- option min '2'
- option max '4'
- config button
- option button 'wps'
- option action 'released'
- option handler '/etc/wifiradio/radio-stop.sh'
- option min '5'
- option max '18'
- config button
- option button 'wps'
- option action 'released'
- option handler 'logger wifi, timed pressed: 19-50s'
- option min '19'
- option max '50'
- config system
- option hostname 'WIFI-Radio'
- option timezone 'EET-2EEST,M3.5.0/3,M10.5.0/4'
В принципі все.
Ще така деталь, мені було принципово, щоб приймач вмикався о 6й ранку і о 12 ночі сам вимикався, тому я написав кроні розклад crontab -e
- 0 6 */1 * * /etc/wifiradio/radio-load.sh
- 0 0 */1 * * /etc/wifiradio/radio-stop.sh
Автор видалив цей коментар.
ВідповістиВидалитиДякую, що знайшли мою помилку, я не все скопіював з файлу. Тепер там все вірно. Якщо треба детальніше прокоментувати код питайте, я можу від самого початку.
Видалитидобрий день могли б мені допомогти у створенні wifi радіоприймача на основі openwrt 15,05 і роутера asus wl-500g Все роблю за Вашими інструкціями, але не виходить, паку /etc/radiotuner або /etc/wifiradio потрібно самому створювати і вній ті файли скрипти, що в описі, і як тоді воно буде завнтажуватись із роутером?
ВидалитиЗдравствуйте, прочитал вашу статью и решил сделать радио на кухню. Купил роутер TP-LINK TL-MR 3020, звуковая карта была, прошил, поставил плеер, радио заиграло. Делаю все по вашей инструкции, в линуксе чайник чуть запутался, подскажите что надо прописать в файле currstream.m3u? Спасибо.
ВідповістиВидалитиномер радіостанції який буде грати зараз з playlist.m3u, тобто там повинно бути число, наприклад 4.
ВидалитиАвтор видалив цей коментар.
ВідповістиВидалитиПросто одно число?
ВідповістиВидалитиТак.
ВидалитиОсь текст статті:
"Після цього створимо файл currstream.m3u з 4-ю в ньому командою: echo "4" > /etc/wifiradio/currstream.m3u . Цей файл потрібен для того, щоб визначити яку радіостанцію треба увімкнути скрипту radio-play.sh."
echo "4" > /etc/wifiradio/currstream.m3u - вивести 4 на екран і переадресувати результат виводу до файлу.
Тут я запутался в файле прописать (echo "4" >) или просто (4)
ВідповістиВидалити4
ВидалитиПрописал echo "4" перезагружаю тишина, подскажите какой командой посмотреть что скрипты запустились?
ВідповістиВидалитиСпасибо за помощь все заработало, единственное не работает голосовое озвучивание станций ссылка не рабочая, если есть рабочая ссылка поделитесь.
ВідповістиВидалитиДумаю вже не буде працювати, на послання http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=Now%20you%20listen%20to%20UARadio
ВидалитиВи чуєте звук, я - ні. Тому що google захистило введенням коду.
интересно а другие голосовые движки можно прикрутить?
ВідповістиВидалитиШукайте, потрібно мати любий URL щоб генерував mp3.
Видалитидобрий день могли б мені допомогти у створенні wifi радіоприймача на основі openwrt 15,05 і роутера asus wl-500g Все роблю за Вашими інструкціями, але не виходить, паку /etc/radiotuner або /etc/wifiradio потрібно самому створювати і вній ті файли скрипти, що в описі, і як тоді воно буде завнтажуватись із роутером?
ВидалитиЗапуск реалізований через опрацювання натискання кнопки /etc/hotplug.d/button ...
ВидалитиАле спочатку треба перевірити щоб грала музика простим запуском скриптів.
або запуском з публікації автора:
Перевірити що все працює можна такою командою:
1. wget -q -O- http://stream.mjoy.ua:8000/radio-z-kryjivky | madplay - -Q --no-tty-control &
Якщо заграло то у вас все добре і можна продовжувати...
Дякую, зрозумів, тепер буду шукати в цьому напрямку перепрограмування кнопки, бо я неправильно зрозумів, що повинно запускатись із увімкненням роутера, а так радіо через команду працює.
ВидалитиДля того щоб скрипт завантажувався при старті роутера, його повний шлях треба прописати в файл /etc/rc.local
ВидалитиДякую за допомогу, буду пробувати.
ВидалитиЗдравствуйте. Подскажите пожалуйста как организовать переключение радиостанций с помощью телефона на андроиде?
ВідповістиВидалити"якісні українські пісні"- это ты о чем? Такое вообще существуют? Ты ничего не напутал?
ВідповістиВидалитиАндрій,ай шютник...
ВідповістиВидалитиДобрий день, прошу ще допомогти у налаштуванні кнопки увімкнення і перемикання каналів. Роблю все відповідно Вашої інструкції і відповідно інструкцій на wiki.openwrt.org щодо налаштування кнопки, знаходжу її через logread -f називається wps бачу дії - натиснуто відпущено, все прописую та скрипт не спрацьовує, і вже не можу зрозуміти чи це той, що у etc/hotplug.d/button/00-button чи параметри для різного функціоналу з залежності від тривалості натискання клавіші WPS /etc/config/system.
ВідповістиВидалитиВсе, вибачте, запрацювало, дякую.
ВідповістиВидалитиЯк це радіо працює в 2021 році? Є сенс заморочуватись?
ВідповістиВидалитиА чому ні? воно працює собі. Якщо вам хочеться зробити щось власноруч, а не купляти готовий варіант. До того ж це дешевше ніж вже готові аналоги. І на скільки знаю то в Україні продаються здебільшого китайські wi-fi радіоприймачі, які не дуже щоб адаптовані під нашого користувача.
ВидалитиТак, працює все чудово, час від часу потрібно корегувати плейлист, оскільки деякі потоки пропадають.
ВідповістиВидалитиДякую, зроблю цю саморобку.
ВідповістиВидалити