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

    и тишина.

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

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

    Прикрепленные файлы:

    Добавить комментарий

    Ваш адрес email не будет опубликован.