Как я делал передачу звука на Raspberry Pi

Привет!

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

Шаг 0. Подготовка

Нам нужно:

  • Прямые руки;
  • Raspberry Pi(Если Raspberry Pi без wi-fi или bluetooth докупаем нужное);
  • 5V 2A зарядное устройство для питания Raspberry Pi;
  • SD-карта на 8Гб минимум.

Шаг 1. Установка

1. Идём в раздел загрузок на сайте малинки и скачиваем Raspbian(Не Lite)

2. Распаковываем архив

3. Отформатировать SD-карту:

  • Удалить все разделы(Mac — Дисковая утилита, Windows — Создание и форматирование, Linux — gparted);
  • Создать 1 основной раздел.

4.1 Записываем на флешку(Windows):

  • Скачиваем программу Win32DiskImager;
  • Открываем образ Raspbian в Win32DiskImager;
  • Выбираем букву носителя;
  • Нажимаем Write.

4.2 Записываем на флешку(Mac/Linux):

  • Скачиваем программу Etcher;
  • Открываем образ Raspbian в Etcher;
  • Выбираем носитель;
  • Нажимаем Flash.

5. Вытаскиваем и вставляем SD-карту в компьютер и открываем единственный раздел(должен называтся BOOT). Создаём там файл ssh.

6. Вставляем SD-карту в Raspberry Pi

Шаг 2. Настройка

1. Узнаем IP-адрес нашего Raspberry Pi

2. Подключаемся к нему по SSH. Я предпочитаю PuTTY

3. Логинимся, логин: pi, пароль: raspberry

4. Прописываем в консоль вот это

sudo apt-get upgrade

sudo apt-get install bluez pulseaudio-module-bluetooth python-gobject python-gobject-2 bluez-tools

sudo usermod -a -G lp имяпользователя(если не меняли - pi)

5. Прописываем вот это

sudo nano /etc/bluetooth/audio.conf

и попадаем в текстовый редактор. Под надписью [General] добавляем вот это

Enable=Source,Sink,Media,Socket

Жмякаем Ctrl+O, Ctrl+X.

6. Далее прописываем:

sudo nano /etc/pulse/daemon.conf

здесь ищем строку «resample-method = speex-float-3». Если в начале этой строки не стоит; — добавляем его.

После этого вписываем

 resample-method = trivial

Снова тыкаем Ctrl+O Ctrl+X

7. И снова прописываем:

sudo nano /etc/bluetooth/main.conf

Тут можем изменить имя устройства на любое другое путём редактирования строки «Name» если перед этой строкой стоит # убираем её и редактируем имя на которое хотим, выглядеть должно примерно вот так "Name=ТутИмяНаАнглийском".

Дальше ищем строку "Class" и если перед ней стоит # убираем, делаем чтобы было вот так

Class=0x20041C

8. Автозапуск

1. Создайте в /etc/init.d/ файл OnBluetooth(sudo nano /etc/init.d/OnBluetooth). В него
впишите это:


#!/bin/bash

#Start systemctl service
sudo systemctl start bluetooth

sleep 1

#Start bluetoothctl with discoverable and pairable options
echo -e 'power on\ndiscoverable on\npairable on \t \nquit' | bluetoothctl

2. Напишите в коносль

 chmod 755 /etc/init.d/OnBluetooth

3. Напишите в консоль

 update-rc.d OnBluetooth enable

9. Выбираем куда будет выводится аудио. Для этого прописываем sudo raspi-config, там переходим в Advanced дальше Sound и выбираем какой нам надо. После этого жмём finish. Готово!

Шаг 3. Подключение

Подключение по bluetooth работает уже сразу, теперь пришло время настроить подключение по интернету.

Для Windows:

Скачиваем и распаковываем архив в удобное нам место
● Редактируем файл audio.bat:

  1. Ваш_IP меняем на ip вашей малинки
  2. Имя_Пользователя меняем на логин от raspberry pi
  3. Пароль меняем на пароль от логина raspberry pi

● Запускаем

Шаг 4. Проверка.

  • Включаем Raspberry PI
  • Подключаем нашу аудиосистему или наушники к порту который мы выбрали в raspi-config.
  • Включаем bluetooth на телефоне или открываем файл на компьютере
  • Включаем музыку
  • Радуемся

Заключение


Надеюсь что хоть кому-то эта статья была полезной. Спасибо за внимание.
Поделиться публикацией
Комментарии 23
    +3
    Всё отлично, только происхождение вот этих файлов стоит пояснить. Что это, как работает. А вообще тема огонь, запилить воспроизведение звука по wifi с ноута. Ну и вопрос с кодеками конечно остаётся, какие лучше, для чего и т.д.
      +4
      Etcher есть и под Windows. Etcher умеет сразу работать с архивами, распаковывать не надо. Непонятно, зачем форматировать SD-карту, если образ всё равно это форматирование перезапишет.
      Короче, в шаге 1 пункты 2-4 можно было сократить до одного.
        0
        В !windows есть dd.
        Проще один раз разобраться и забыть о всяких гуевых обертках.
          –1
          Вот только с помощью dd, если опечататься, можно диск вместо sd карточки затереть. Так что даже разобравшись с dd, лучше всё равно использовать Etcher.
            +1
            Правильно! Тогда и на сервера лучше иксы с кедами накатить ради этчера )))
              +2
              На сервере обычно не возникает надобности записать образ на флешку.
        0
        Я просто в восторге от этого эффекта хабра!
        Последние 2-3 дня хожу с мыслью сделать себе звук по «воздуху», сперва хотел сделать на Raspberry, но потом лень взяла свое и остановился на обычном bluetooth ресивере.
        Но теперь только Raspberry с куртизанками и преферансом!
        По сути хотелось бы еще вот это добавить: airplay
          0
          Пульсаудио вроде может быть аирплэй приемником. Только включить
            0
            А если добавить snapcast, то получится полноценная мультирум система
              +1
              Вовсе ленивый вариант — Volumio.org. Использовал с бутербродом raspberry pi 2 + hifiberry DAC Pro, а дальше уже было на домашнее аудио. Кстати, с эйрплеем. Воспроизведение flac'ов с nas'а с управлением с телефона, правда, стало основным предназначением.
              0
              А по блютусу можно сделать приём звука с нескольких устройств одновременно?
                0
                Что люди не делают лишь бы не погуглить :)
                Один из примеров что доводилось использовать — www.pimusicbox.com

                • headless
                • с web gui если надо
                • виден как dlna/airplay и т.д.
                • вывод звука куда угодно (встроенное аудио, usb audio, какой-нибудь amplify shield типа www.justboom.co/product/justboom-amp-hat
                +4

                Было бы лучше пояснить каждый шаг, чем просто просить копипастить.


                Почему init.d вместо systemctl? Малинка давно поддерживает.


                Для владельцев Apple продукции, есть shairport-sync. Легко настраивается и довольно стабильно уже год.

                  0

                  Помнится, у меня при попытке такой настройки на 3-ей малине (но еще не B+) возникла проблема с тем, что банально не хватало пропускной способности на работу одновременно с WiFi. В итоге плюнул на это дело, хотя хотелось бы получить более-менее приличный аудиосервер. Кстати, а работу multipoint докрутили? У меня, насколько я помню, не работало почти никак.

                    –1
                    Зачем так сложно? Купил недавно
                    www.ebay.com/itm/3-7V-5V-Mini-Bluetooth-4-1-Audio-Decoder-MP3-Receiver-Lossless-Amplifier-Module/323274236867

                    Интегрировать в муз центр — дело 15 минут…
                      0
                      «Потому что могу!»
                      Ну и вообще всякие pi сейчас в моде.
                      Еще малина может быть медиаприставкой, на которую опционально можно выводить звук с ноутбука или телефона на мощные колонки без проводов…

                      Прочитал заголовок статьи и подумал, что что-то подобное можно сотворить на pulseaudio и bluetooth — через час прочитал статью…
                        0
                        «Почему кот лижет яйца? — Потому что может!»
                        «Наши люди в булочную на такси не ездят »
                      0
                      Кстати, ещё вопрос: а по проводной сети звук гоняется нормально, там узких мест не возникает?
                        0
                        у меня не возникало проблем, всё работает отлично, можно одновременно с нескольких компьютеров запустить клиент и передавать
                          0
                          А схема, я так понимаю 2.0? 5.1 передавать не пробовали?
                            0
                            Да, 2:0, для 5:1 нужно докупать дополнительную звуковую карту для малинки

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

                      Самое читаемое