Разработка
CodeX
6592

Делаем AirPlay-станцию из старых колонок

Рассказываем, как мы в CodeX слушаем музыку с телефонов или ноутбуков, не подключая к ним никаких проводов.

В закладки

Конечно, можно просто купить колонку с Bluetooth или AirPlay, но, если у вас есть обычные старые колонки и Raspberry, то можно создать станцию самим. Мы сделали из Raspberry Pi аудио-ресивер и подключили его к локальной сети по Ethernet-кабелю, а колонки к ней — через обычный AUX.

Для настройки станции будем использовать AirPlay-аудиоплеер Shairport Sync.

Подготовка

Самая важная часть системы — одноплатный компьютер Raspberry Pi. В нашем случае Raspberry Pi 2 Model B. Подойдёт и любая другая версия, к которой при необходимости можно будет подключить 3,5 мм разъём, например, с помощью платы расширения.

Raspberry Pi 2 Model B

Для работы самого микрокомпьютера потребуется microSD-карта объемом от 4 ГБ, на которую необходимо установить операционную систему.

Установка ОС

Процесс установки осуществляется с помощью вашего рабочего компьютера — вставляем карту памяти, скачиваем одну из предложенных систем и с помощью программы Etcher загружаем её образ на карту памяти.

Более подробная инструкция по установке ОС на Raspberry — на официальном сайте.

Подключение по SSH

Чтобы иметь возможность подключаться к Raspberry с рабочего компьютера через терминал, после установки системы вам потребуется создать пустой текстовый файл с названием ssh (иногда ssh.txt) в корневой директории карты памяти.

Теперь подключаем Raspberry к локальной сети (вставляем Ethernet-провод) и включаем питание.

Давайте попробуем подключиться к Raspberry через терминал с другого компьютера. Для начала нужно узнать IP-адрес Raspberry, например, в панели администратора роутера — в разделе подключенных к сети устройств (Devices).

Обычно панель администратора роутера доступна по адресу http://192.168.1.1 или http://192.168.0.1, дефолтные логин и пароль указаны на роутере. Спросите параметры подключения к роутеру у вашего системного администратора.

Устройство Raspberry доступно по адресу 192.168.1.100

Для установки SSH-подключения потребуется найти в интернете стандартные логин и пароль для пользователя системы, которую вы установите на Raspberry.

Пусть IP-адрес — 192.168.1.100, а логин и пароль от ОС — pi / raspberry. Тогда подключиться к станции можно с помощью команды

ssh pi@192.168.1.100

Установка

Первым делом рекомендуется обновить список репозиториев пакетов и установить все обновления.

sudo apt-get update sudo apt-get upgrade -y

Теперь активируем обновлённый аудио-драйвер.

printf "\n# Set audio output to headphone jack\naudio_pwm_mode=2\n" | sudo tee -a /boot/config.txt

Устанавливаем зависимости для сборки и установки Shairport Sync.

sudo apt install -y \ build-essential \ git \ xmltoman \ autoconf \ automake \ libtool \ libdaemon-dev \ libpopt-dev \ libconfig-dev \ libasound2-dev \ libpulse-dev \ avahi-daemon \ libavahi-client-dev \ libssl-dev \ libsoxr-dev

Загружаем исходные файлы пакета.

git clone https://github.com/mikebrady/shairport-sync.git

Настраиваем и подготавливаем пакет к сборке.

cd shairport-sync autoreconf -i -f ./configure --sysconfdir=/etc \ --with-alsa \ --with-pa \ --with-pipe \ --with-avahi \ --with-ssl=openssl \ --with-metadata \ --with-soxr \ --with-systemd

Теперь приступим к компиляции и установке пакета.

make sudo make install

Остается только активировать автозагрузку и запустить сервис.

sudo systemctl enable shairport-sync.service sudo service shairport-sync start

Настройки Shairport Sync хранятся в файле /etc/shairport-sync.conf.

// Sample Configuration File for Shairport Sync // Commented out settings are generally the defaults, except where noted. // General Settings general = { // name = "%h"; // This means "Hostname" -- see below. This is the name the service will advertise to iTunes. // The default is "Hostname" -- i.e. the machine's hostname with the first letter capitalised (ASCII only.) // You can use the following substitutions: // %h for the hostname, // %H for the Hostname (i.e. with first letter capitalised (ASCII only)), // %v for the version number, e.g. 3.0 and // %V for the full version string, e.g. 3.0-OpenSSL-Avahi-ALSA-soxr-metadata-sysconfdir:/etc // Overall length can not exceed 50 characters. Example: "Shairport Sync %v on %H". ...

Например, можно задать имя, которое поможет идентифицировать этот ресивер. Для этого нужно раскомментировать строку и заполнить параметр name:

name = "CodeX Speaker";

После внесения правок в конфигурационный файл потребуется перезагрузить сервис Shairport Sync.

sudo service shairport-sync restart

Теперь устройства на iOS или macOS могут увидеть колонку в списке доступных аудиовыходов.

Остаётся подключить к Raspberry колонки и наслаждаться беспроводной трансляцией музыки.

Настройка громкости

Изначально громкость звука на Raspberry установлена не на самый максимум. Кому-то этого может не хватать. Давайте установим громкость ОС на 100%, чтобы управлять громкостью воспроизведения можно было только на телефоне или ноутбуке.

Список интерфейсов можно увидеть, выполнив команду amixer controls:

pi@raspberrypi:~ $ amixer controls numid=3,iface=MIXER,name='PCM Playback Route' numid=2,iface=MIXER,name='PCM Playback Switch' numid=1,iface=MIXER,name='PCM Playback Volume' numid=5,iface=PCM,name='IEC958 Playback Con Mask' numid=4,iface=PCM,name='IEC958 Playback Default'

Нас интересует интерфейс PCM Playback Volume. Задаём ему максимальное значение: amixer cset numid=1 100%

pi@raspberrypi:~ $ amixer cset numid=1 100% numid=1,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0 : values=400 | dBscale-min=-102.39dB,step=0.01dB,mute=1

Теперь максимальная громкость музыки увеличится.

Надеемся, статья будет полезной. Подписаться на нас можно во «ВКонтакте» или Telegram — там мы делимся опытом и пишем небольшие заметки о веб-разработке.

Клуб веб-разработки
{ "author_name": "CodeX", "author_type": "editor", "tags": [], "comments": 12, "likes": 43, "favorites": 50, "is_advertisement": false, "subsite_label": "dev", "id": 68127, "is_wide": true, "is_ugc": false, "date": "Mon, 20 May 2019 16:41:58 +0300", "is_special": false }
0
12 комментариев
Популярные
По порядку
Написать комментарий...
11

vc мимикрирует в habr. Ностальжи..

Ответить
2

Проще Apple TV 3 купить

Ответить
3

Вы не поняли, тут удовольствие от процесса. Купить можно все что угодно как вы помните из одного рекламного лозунга.

Ответить
1

Вот именно! Можно взять старую советскую колонку и сделать эйр плей) вот бы ещё время свободное было на это...

Ответить
0

DIY для тех у кого много свободного времени :)

Ответить
0

Ребят, а Spotify Connect ещё как-то таким способом можно подвязать?

Ответить
3

не пользуюсь spotify, поэтому не могу проверить, но, кажется, это то, что нужно

Ответить
0

Сделал наконец-то, проверил - работает на ура!

Ответить

Комментарий удален

1

sudo amixer cset numid=3 1

Ответить

Комментарий удален

0

Класс! Времени бы еще побольше или прокрастинации поменьше)

Ответить
0

цап встроенный в пи только говно и звук такой же

Ответить
0

Приколько получилось) Спасибо!

А можно сделать как на яблочной колонке, чтобы аудиопоток не переключался, а параллельно играл на ноуте и на малинке ?

Ответить

Комментарии

null