OpenWRT, TP-Link 1043 - простий інтернет радіо приймач
Продовжуючи експерименти з OpenWrt Attitude додав можливості використовувати Router TP-Link 1043, як Інтренет радіо тюнер.
Навіщо ? По-перше цікаво, в друге іноді включаю радіо на вихідних але комп'ютер принципово не вмикаю - відпочиваю від нього, і по-третє це економія електроенергії, бо мій комп'ютер: CPU Intel i7, RAM 24 GB... використовує електроенергії достатньо.
Як було вказанно у попередній публікації я маю, док сктанцію:
Notebook Dock Model #1500325A, що може через USB - підключати деякі мультимедійні пристрої: LPT (PL-2305H), COM (PL-2303HX), SOUND 5.1 (C-Media Electronics, Inc. Storm HP-USB500 5.1 Headset), Ehternet (ASIX AX88772), USB Hub.
До док станції, на малюнку, підключено USB накопичувач, RS-232 (COM) кабель для MPCS, стерео вихід до аудіо системи, USB кабель CDMA терміналу, підключення до TP-Link 1043 через USB, та блок зовнішнього живлення. Ще також підключається принтер "EPSON R220" за потребою у вільний USB.
Радіо прослуховувати можна такою командою, wget -c -q -O - $url | madplay. Якщо використовується mp3 кодек. Не підтримуються mp4, ogg. Для більшого функціоналу потрібно використовувати пакет MPD.
Я налаштував роутер так що - кнопка роутера WPS може, вмикати радіо якщо утримувати її 5 сек, вимикати радіо якщо утримувати її 10 сек, та переключати послідовно радіостанції з заздалегідь створеного списку (.m3u), якщо утримувати її до 1 сек.
Робоча тека:
/etc/radiotuner
Файли:
playlist.m3u - m3u play list
radio-load.sh - завантажує програвач до фонового програвання
radio-start.sh - відтворює першу радіостанцію зі списку, або бажану, частина назва котрої була передана через параметр.
radio-stop.sh - зупиняє програвач, та поточну радіостанцію.
radio-next-station.sh - зупиняє поточну радіостанцію, і програвач переходить до наступної радіостанції.
/var/run/radiotuner.pid - ідентифікатор запущеного процесу програвача.
Використувується пакет madplay - MAD is an MPEG audio decoder.
Для керування плеєром використовуються можливості клавіші WPS, для її функціювання створимо файл:
/etc/hotplug.d/button/00-button:
/etc/config/system:
Результати роботи протоколюються до лог файлу.
Використана: OpwnWRT ATTITUDE ADJUSTMENT (Bleeding Edge, r33206.
У якості USB Audio вважаю також можуть бути використанні, USB колонки, або USB sound card, наприклад. Що будуть сумусні за Linux DSP.
Додано з форуму: можна використати "curl http://...... | madplay - "
Цікаві посиланя до теми Інтернет радіо:
Продовжуючи експерименти з OpenWrt Attitude додав можливості використовувати Router TP-Link 1043, як Інтренет радіо тюнер.
Навіщо ? По-перше цікаво, в друге іноді включаю радіо на вихідних але комп'ютер принципово не вмикаю - відпочиваю від нього, і по-третє це економія електроенергії, бо мій комп'ютер: CPU Intel i7, RAM 24 GB... використовує електроенергії достатньо.
Як було вказанно у попередній публікації я маю, док сктанцію:
Notebook Dock Model #1500325A, що може через USB - підключати деякі мультимедійні пристрої: LPT (PL-2305H), COM (PL-2303HX), SOUND 5.1 (C-Media Electronics, Inc. Storm HP-USB500 5.1 Headset), Ehternet (ASIX AX88772), USB Hub.
Notebook Dock Model #1500325A |
Notebook Dock Model #1500325A |
Notebook Dock Model #1500325A PL-2303HX. PL-2305H |
Радіо прослуховувати можна такою командою, wget -c -q -O - $url | madplay. Якщо використовується mp3 кодек. Не підтримуються mp4, ogg. Для більшого функціоналу потрібно використовувати пакет MPD.
Я налаштував роутер так що - кнопка роутера WPS може, вмикати радіо якщо утримувати її 5 сек, вимикати радіо якщо утримувати її 10 сек, та переключати послідовно радіостанції з заздалегідь створеного списку (.m3u), якщо утримувати її до 1 сек.
Робоча тека:
/etc/radiotuner
Файли:
playlist.m3u - m3u play list
radio-load.sh - завантажує програвач до фонового програвання
radio-start.sh - відтворює першу радіостанцію зі списку, або бажану, частина назва котрої була передана через параметр.
radio-stop.sh - зупиняє програвач, та поточну радіостанцію.
radio-next-station.sh - зупиняє поточну радіостанцію, і програвач переходить до наступної радіостанції.
/var/run/radiotuner.pid - ідентифікатор запущеного процесу програвача.
Використувується пакет madplay - MAD is an MPEG audio decoder.
#opkg install madplayradio-start.sh:
#!/bin/sh #http://www.lexxai.pp.ua want=$1 pl=/etc/radiotuner/playlist.m3u while true; do cat "$pl" | \ while read url; do \ curr=$url if [ $(echo "$url" | grep -E -v "^#") ]; then name=$(echo "$before"|awk -F , '/^#EXTINF/ {print ($2)}') if [ -z $want ] || [ ! -z $(echo "$name" |grep -oi -e "$want") ] ; then echo "play: $name" |logger -t 'online-radio' wget -c -q -O - $url 2>/dev/null| madplay -q - fi fi before=$curr done doneradio-next-station.sh:
#!/bin/sh killall wgetradio-stop.sh:
#!/bin/sh killall radio-start.sh killall wgetradio-load.sh:
#!/bin/sh ./radio-start.sh $1 &playlist.m3u:
#EXTM3U #EXTINF:0,"eradio.com.ua: E-radio" http://62.149.13.129:8500/eradio_hi #EXTINF:0,"eradio.com.ua: E-radio rock" http://etoradio.cc.colocall.com:8500/e-rock_hi #EXTINF:0,"MFM" http://urg.adamant.net:8080/online128 #EXTINF:0,"uh-radio" http://online.uhradio.com.ua:8001/efir #EXTINF:0,"Radio 24" http://stream1.lux.fm:9010 #EXTINF:0,"Radio Rocks" http://online.radioroks.com.ua:8000/RadioROKS #EXTINF:0,"DJFM" http://media.brg.ua:8010/;stream.nsv #EXTINF:0,"PerecFM" http://radio.stilnoe.fm:8080/radio-stilnoe #EXTINF:0,"Sharmanka" http://217.20.164.163:8006/;
Buttons
Використанні матеріали з [ http://wiki.openwrt.org/doc/howto/hardware.button ]Для керування плеєром використовуються можливості клавіші WPS, для її функціювання створимо файл:
/etc/hotplug.d/button/00-button:
. /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І внесемо параметри для різного функціоналу з залежності від тривалості натискання клавіші WPS.
/etc/config/system:
config button option button 'wps' option action 'released' option handler '/etc/radiotuner/radio-next-station.sh' option min '0' option max '1' config button option button 'wps' option action 'released' option handler '/etc/radiotuner/radio-load.sh' option min '3' option max '8' config button option button 'wps' option action 'released' option handler '/etc/radiotuner/radio-stop.sh' option min '9' option max '14' config button option button 'wps' option action 'released' option handler 'logger wifi, timed pressed: 19-50s' option min '19' option max '50'
Результати роботи протоколюються до лог файлу.
#logread -f Aug 25 03:31:16 OpenWrt user.notice online-radio: next station Aug 25 03:31:25 OpenWrt user.notice online-radio: Loading Aug 25 03:31:25 OpenWrt user.notice online-radio: play: "eradio.com.ua: E-radio" Aug 25 03:31:51 OpenWrt user.notice online-radio: next station Aug 25 03:31:56 OpenWrt user.notice online-radio: play: "eradio.com.ua: E-radio rock" Aug 25 03:32:15 OpenWrt user.notice online-radio: next station Aug 25 03:32:19 OpenWrt user.notice online-radio: play: "MFM" Aug 25 03:32:29 OpenWrt user.notice online-radio: next station Aug 25 03:32:33 OpenWrt user.notice online-radio: play: "uh-radio" Aug 25 03:32:39 OpenWrt user.notice online-radio: next station Aug 25 03:32:43 OpenWrt user.notice online-radio: play: "Radio 24" Aug 25 03:32:51 OpenWrt user.notice online-radio: next station Aug 25 03:33:00 OpenWrt user.notice online-radio: play: "Radio Rocks" Aug 25 03:33:07 OpenWrt user.notice online-radio: next station Aug 25 03:33:11 OpenWrt user.notice online-radio: play: "DJFM" Aug 25 03:33:16 OpenWrt user.notice online-radio: next station Aug 25 03:33:23 OpenWrt user.notice online-radio: play: "PerecFM" Aug 25 03:33:29 OpenWrt user.notice online-radio: next station Aug 25 03:33:33 OpenWrt user.notice online-radio: play: "Sharmanka" Aug 25 03:33:40 OpenWrt user.notice online-radio: next station Aug 25 03:33:48 OpenWrt user.notice online-radio: play: "eradio.com.ua: E-radio" Aug 25 03:33:59 OpenWrt user.notice online-radio: Already started Aug 25 03:34:27 OpenWrt user.notice online-radio: stopping
Використана: OpwnWRT ATTITUDE ADJUSTMENT (Bleeding Edge, r33206.
У якості USB Audio вважаю також можуть бути використанні, USB колонки, або USB sound card, наприклад. Що будуть сумусні за Linux DSP.
Додано з форуму: можна використати "curl http://...... | madplay - "
Цікаві посиланя до теми Інтернет радіо:
- Joseph Innovations: Internet Radio -> Router + USB Sound-card
- Tinkernut.com : How To Make A Cheap WiFi Radio
- klasseonline : Using the Asus WL-500g as Internet Radio Station
- habrahabr : Сделай сам: Wi-Fi-радио своими руками
- MightyOhm : Building a Wifi Radio
- WI-FI радіоприймач власноруч з роутера TP-LINK TL-MR 3020
7 коментарів:
Цікаво зроблено. Особливо скрипт radio-start.sh, але чесно кажучи в цій частині не можу збагнути, що тут робиться:
name=$(echo "$before"|awk -F , '/^#EXTINF/ {print ($2)}')
if [ -z $want ] || [ ! -z $(echo "$name" |grep -oi -e "$want") ] ; then
echo "play: $name" |logger -t 'online-radio'
Не могли б ви пояснити людині-початківцю. І ще думаю як би дописати сюди, щоб після вимкнення або обриву зв'язку завантажувалася та станція, яка була до цього, а не наступна по списку. =)
playlist.m3u:
#EXTINF:0,"eradio.com.ua: E-radio"
http://62.149.13.129:8500/eradio_hi
Скрипт перебирає рядки плейлиста, і шукає рядки, якщо є назва, то запам'ятовує її, так як наступний радок є URL для цієї назви.
name=$(echo "$before"|awk -F , '/^#EXTINF/ {print ($2)}')
Шукаємо рядок що починаєтеся з #EXTINF, і вибираємо другий параметр (кома розподіляє), що вказує на назву радіостанції.
echo "play: $name" |logger -t 'online-radio'
Створити запис у системному "логу", logread -f
if [ -z $want ] || [ ! -z $(echo "$name" |grep -oi -e "$want") ] ; then
-z str1 рядок "str1" не існує (пуста).
$want дорівнює назві радіостанції що передається параметром до скрипта.
Якщо не передано назви, їдемо перебором плейлиста.
Якщо передали назву, то порівнюємо з назвою у "name" інакше пропуск.
Тому якщо вказати назву радіостанції то буде її постійний програш у випадку якщо був розрив.
Дякую, але щось не зрозумів як назва передається до говоруна гугл ?
nameg=$(echo ${name// /%20})
wget -U "Mozilla/5.0" -O /etc/wifiradio/nazva.mp3 "http://translate.google.com/t
добрий день могли б мені допомогти у створенні wifi радіоприймача на основі openwrt 15,05 і роутера asus wl-500g Все роблю за Вашими інструкціями, але не виходить, паку /etc/radiotuner або /etc/wifiradio потрібно самому створювати і вній ті файли скрипти, що в описі, і як тоді воно буде завантажуватись із роутером?
Запуск реалізований через опрацювання натискання кнопки /etc/hotplug.d/button ...
Але спочатку треба перевірити щоб грала музика простим запуском скриптів.
або запуском:
wget -c -q -O - http://62.149.13.129:8500/eradio_hi 2>/dev/null| madplay -q -
Добрий день, прошу ще допомогти у налаштуванні кнопки увімкнення і перемикання каналів. Роблю все відповідно Вашої інструкції і відповідно інструкцій на wiki.openwrt.org щодо налаштування кнопки, знаходжу її через logread -f називається wps бачу дії - натиснуто відпущено, все прописую та скрипт не спрацьовує, і вже не можу зрозуміти чи це той, що у etc/hotplug.d/button/00-button чи параметри для різного функціоналу з залежності від тривалості натискання клавіші WPS /etc/config/system.
Все, вибачте, розібрався, запрацювало, дякую.
Дописати коментар