Домой / Основные настройки / WiFi радио из старой магнитолы. WiFi интернет радиоприемник для ванной с фоторезистором на ESP8266 и VS1053

WiFi радио из старой магнитолы. WiFi интернет радиоприемник для ванной с фоторезистором на ESP8266 и VS1053

  • Интернет радиоприемник на 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

Сразу после ремонта было решено – на кухне телевизора не будет! Но аудиовизуальные потребности при приготовлении и поглощении еды удовлетворить иногда хочется. Поэтому был найден выход: установлен аквариум и из ненужного хлама собран интернет-радиоприемник. Аквариум можно видеть , а в этом пойдет речь о радиоприемнике…

Итак, основные компоненты:

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 радио приемник своими руками. Слушаю я в основном радио и почти всегда через интернет, музыкальные предпочтения довольно обширны. Как и во всех делах по работе, так и в хобби начинаем с начала, то есть с постановки технического задания:

  1. Простой в изготовлении вай-фай приемник с питанием от батареи/сети
  2. Малый вес и габариты
  3. Использование доступных компонентов
  4. Индикация текущей станции, трека
  5. Бюджет до 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

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

Эта статья посвящена практическим аспектам изготовления недорогого 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 часов проигрывания
  • Добавить в конструкцию жесткий диск с коллекцией музыки и возможность использования его при отсутствии интернета.
  • Добавить возможность использования нескольких плейлистов и кнопку переключения между ними.
  • Заменить кнопки громкости и выбора станции поворотными переключателями из старых мышек.
Выводы
Все поставленные основные и второстепенные цели достигнуты. Успешный опыт эксплуатации устройства в течении нескольких месяцев доказывает правильность выбранных решений.

Здесь я расскажу, как пользоваться приемником. В отличие от эфирного УКВ приемника интернет радио не может само настраиваться на станции. Предварительно нужно создать playlist, в котором будут указаны URL радиостанций.

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

Дело в том, что для станции выгоднее, когда вы ее слушаете с официального сайта, а не через плеер. На сайте ведь можно разместить много дополнительной рекламы. Поэтому, в большинстве случаев станции не дают прямой ссылки на URL потока. Правда, бывают и исключения. Кроме того, часто можно найти ссылку, просматривая исходный html код странички. Как искать, объяснять не буду. Если вы дошли до этого места в настройке приемника, при желании сможете разобраться и с html кодом. Кроме того, есть сайты, с которых можно слушать множество станций, например:

Если кому-то интересны все вышеперечисленные навороты – читайте описание от автора.

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

/etc/mpd.conf – файл конфигурации плеера mpd; /etc/radiod.conf – файл конфигурации PiRadio; /etc/samba/smb.conf – файл конфигурации Samba; /etc/lirc/lircd.conf – файл конфигурации LIRC; /var/log/mpd/mpd.log – лог плеера mpd; /var/log/radio.log – лог загрузки PiRadio; /var/lib/mpd/playlists – плэйлисты для радио; /home/pi/mymusic – папка для музыки mp3 и wma; /home/pi/radio – все файлы программы PiRadio.

Если конструкция вас заинтересовала, внимательно прочитайте первую , вторую и третью часть описания перед тем, как задавать вопросы. Ну и еще раз повторю – читайте авторское описание, там много полезной информации, которой нет на этих страничках.