Как подключить bluetooth колонку к raspberry pi4
Notturno Posts: 2 Joined: Sat Aug 04, 2018 10:28 am
Raspberry PI 3 B+ Bluetooth
Ребят, кто знает, как можно передавать аудио с Raspberry PI 3 B+ на Bluetooth колонку?
Установил blueman соединиться удалось, а вот аудио с с плеера не идет. Только через aux разъем в наушники ((
peppy.player Posts: 484 Joined: Mon Mar 07, 2016 6:10 am
Re: Raspberry PI 3 B+ Bluetooth
Недавно добавил информацию о подключении Bluetooth устройств:
https://github.com/project-owner/Peppy. . th-Devices
текст на английском, но легко переводится через https://translate.google.com
Если будут проблемы спрашивайте.
2 posts • Page 1 of 1
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- The MagPi
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Gaming
- Media centres
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Raspberry Pi 400
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Operating system distributions
- Raspberry Pi OS
- Raspberry Pi Desktop for PC and Mac
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion
- Board index
- All times are UTC
- Delete cookies
About Raspberry Pi
- News
- Contact us
- Trademark
- About us
- Our Approved Resellers
- Jobs
- Accessibility
- Site use terms and conditions
- Acceptable use
- Cookies
- Licensing
- Terms and conditions of sale
- Privacy
- Security
- Verify our bank details
- Raspberry Pi for home
- Tutorials
For industry
- Raspberry Pi for industry
- Thin clients
- Raspberry Pi in space
- Powered by Raspberry Pi
- Design partners
- Success stories
- Computers and microcontrollers
- Cameras and displays
- Add-on boards
- Power supplies and cables
- Cases
- Peripherals
- Raspberry Pi OS
- Raspberry Pi Imager
- Raspberry Pi Desktop
Documentation
- All categories
- Product information portal
- Datasheets
Raspberry Pi Store
Вывод аудио на несколько источников на raspberry pi

В статье пойдет речь о том как вывести аудио, проигрываемое на raspberry pi на несколько источников (проигрывателей) одновременно. В частности, аудио будет параллельно транслироваться по hdmi, на audio jack, bluetooth устройство (устройства).
Вопрос прикладной, но в интернете не удалось найти готовое решение, поэтому родился данный короткий пост.
Устанавливаем пакеты
pip3 install pygame==2.1.2 sudo apt-get install python3-sdl2 sudo apt install paprefs sudo apt install pavucontrol
Настраиваем

Заходим в «Pulseaudio Preferences» —
и ставим галочку, перейдя на вкладку «Simultaneous Output» —


Теперь открываем «PulseAudio Volume control» —

и убеждаемся, что там появилось новое устройство вывода среди output devices —
При этом абсолютно неважно, Что у вас выбрано в качестве output устройства в данный момент —
По желанию, можно подключить несколько bluetooth устройств к raspberry —

Небольшой код
Теперь напишем код, который и будет выводить аудио на несколько устройств одновременно.
import pygame._sdl2 as sdl2 from pygame import mixer from time import sleep mixer.init()# Initialize the mixer, this will allow the next command to work print(sdl2.audio.get_audio_device_names(False)) # Returns playback devices, Boolean value determines whether they are Input or Output devices. def output_devices(): #возвращает device, который включает все play devices for i in sdl2.audio.get_audio_device_names(False): if i.startswith ('Simultaneous'): return i else: continue a=output_devices() mixer.quit() #mixer.init(devicename = 'Simultaneous output to Встроенное аудио Digital Stereo, Встроенное аудио Analog Stereo, JBL GO') # Initialize it with the correct device mixer.init(devicename = a) mixer.music.load("english.wav") # Load the mp3 mixer.music.play() # Play it while mixer.music.get_busy(): # wait for music to finish playing sleep(1)
После запуска звук должен политься из всех устройств одновременно.
Суть программы в том, что она перебирает все устройства вывода на raspberry, находит то из них, которое начинается со слова «Simultaneous» и выводит на него звук.
Полностью наименование этого устройства выгладят примерно так: «Simultaneous output to Встроенное аудио Digital Stereo, Встроенное аудио Analog Stereo, JBL GO».

Воспроизведение аудио на несколько источников возможно также задать не только через программу, но и в конфигурации аудио самой raspberry pi, нажав на зеленый кружок:
Pacmd.
Еще один вариант выполнить выбор устройства через код, не прибегая к графическому интерфейсу это воспользоваться возможностями консольной команды pacmd.
После ее выполнения через help доступны ее опции:
Здесь же через опцию list-sinks можно посмотреть доступные «каналы вывода».
Например, так выглядят «наушники»:
Чтобы вывести аудиофайл на них, необходимо выполнить команду:
play-file /home/pi/Desktop/audioplayer/english.wav alsa_output.platform-bcm2835_audio.analog-stereo
где первый аргумент — аудиофайл, второй — имя (name) устройства sink.
Здесь также возможно установить устройство вывода звука по-умолчанию:
set-default-sink combined
*здесь мы установили вывод звука на все доступные аудиоустройства.
В коде python команды pacmd будут выглядеть например так:
change_audio_device = subprocess.run(['pacmd', 'set-default-sink combined'])
Код программы — здесь
Аудио для теста — здесь
Включаем блютуз в HASSOS под управлением Home Assistant.
Мы уже разбирали в данной статье как подключить по блютузу датчики температуры и влажности от компании Xiaomi. Но там способ описан специфический и подходящий только для некоторых устройств, конкретно от фирмы xiaomi.
В данной же статье я расскажу как включить блютуз и отслеживать обычные блютуз устройства, которые не имеют шифрования.
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
На самом деле все довольно просто и включается парой команд. Для этого в Configuration.yaml нужно добавить следующее:
device_tracker: - platform: bluetooth_tracker
Все, после этого необходимо перезапустить север зайдя в Настройки->Сервер->Перезапустить и после перезагрузки начнется сканирование блютуз устройств и записывание их в файл “known_devices.yaml” ( Если конечно же на вашем сервере имеется блютуз. В моем случае HassOS установлена на raspberry pi 4, у нее с этим нет проблем.
Выглядеть файл “known_devices.yaml” будет следующим образом после нахождения неких устройств:
oneplus_5: name: OnePlus 5 mac: BT_94:65:2D:A8:36:27 icon: picture: track: true desktop_820q8e3: name: DESKTOP-820Q8E3 mac: BT_B4:6B:FC:C3:46:56 icon: picture: track: true
В данном случае нашел несколько устройств, а именно мой смартфон и ноутбук. Как видите, здесь указано имя найденного устройства, а также его мак адрес. Эти данные нам могут послужить при добавлении данных устройств.
Например бывают устройства как телевизор Sony Bravia он может управляться в Home Assistant какраз по Bluetooth. И в этом случае нам какраз и понадобится данный способ сканирования устройств.
Raspberry как Bluetooth колонка
Есть Raspberry pi 2 с модулем Bluetooth 4.0 и AUX колонками на борту. Возможно ли сделать так чтобы другие устройства могли проигрывать музыку по Bluetooth через него?
Saltas768
20.08.17 23:25:24 MSK

Раздели теги запятыми и добавь «хочется странного».
Radjah ★★★★★
( 20.08.17 23:34:03 MSK )

ну вообще bluez sink режим вроде как поддерживает. так что если блютуз адаптер тащит a2dp, то можно. с другой стороны это наркомания. купи обычный блютуз стерео модуль за 100р и не еби мозгу с расберями.
vvviperrr ★★★★★
( 20.08.17 23:36:05 MSK )
Последнее исправление: vvviperrr 20.08.17 23:37:19 MSK (всего исправлений: 2)
Несколько месяцев назад я задавал этот вопрос. Посмотри что мне ответили, может там будет что-нибудь полезное. Приём звука по Bluetooth на линуксе
ZenitharChampion ★★★★★
( 21.08.17 06:49:05 MSK )
Ответ на: комментарий от vvviperrr 20.08.17 23:36:05 MSK
Как этот модуль подключается и как он работает?
Saltas768
( 21.08.17 07:07:14 MSK ) автор топика
Ответ на: комментарий от Saltas768 21.08.17 07:07:14 MSK

vvviperrr ★★★★★
( 21.08.17 07:24:20 MSK )
Ответ на: комментарий от vvviperrr 21.08.17 07:24:20 MSK
Спасибо, но желательно если обойдемся силами малинки ибо уже все подключено. Он у меня как DLNA все время работал и с хдд музыку проигрывал на систему 5.1 просто теперь захотелось удобнее слушать музыку. Через тотже синийзуб включать разные приложения.
Saltas768
( 21.08.17 08:28:48 MSK ) автор топика
Есть же модули ценой в пару баксов.
l4gfcm ★★
( 21.08.17 09:07:57 MSK )
Ответ на: комментарий от ZenitharChampion 21.08.17 06:49:05 MSK
Как раз сегодня пробовал это дело. Без пульсы.
Алгоритм по подключению «Audio source» т.е. например с телефона отправить звук на комп.
1. Нужно выполнить connect компа с телефоном (без постоянного connect пока не знаю как). С телефона на комп соединение не выполняется (возможно надо видимость выставить?) в dbus появляются две ветки fd2 и player0 что из них отвечает за прием звука пока не ясно, но fd2 более похоже.
2. нужно запустить bluealsa
3. запускаем bluealsa-aplay xx:xx:xx:xx:xx:xx (или bluealsa-aplay 00:00:00:00:00:00 если не нужна привязка к адресу устройства)
Отправляем с устройства звук и слушаем. И что характерно — оно заработало О_О
irton ★★★★★
( 21.08.17 09:12:33 MSK )
Последнее исправление: irton 21.08.17 09:13:11 MSK (всего исправлений: 1)
Ответ на: Как раз сегодня пробовал это дело. Без пульсы. от irton 21.08.17 09:12:33 MSK
Можно подробную инструкцию? Как я понял с телефона был включён трек в произвольном приложении и заиграло на компе(через синийзуб) верно?
Saltas768
( 21.08.17 12:09:24 MSK ) автор топика
Ответ на: комментарий от Saltas768 21.08.17 12:09:24 MSK
Для начала, давай установим соединение между твоим смартфоном/планшетом и твоим Raspberry Pi 2. Кстати, во второй модели ещё не было Bluetooth-модуля. У тебя отдельный?
Недавно была новость о том, что в Raspbian Linux 3 смогли настроить работу Bluetooth-гарнитур без PulseAudio. Как обстоят дела в Raspbian 2 я не знаю. Либо придётся воспользоваться PulseAudio. Либо «прилетит» обновление.
ZenitharChampion ★★★★★
( 21.08.17 12:19:43 MSK )
Последнее исправление: ZenitharChampion 21.08.17 12:19:50 MSK (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion 21.08.17 12:19:43 MSK

Недавно была новость о том, что в Raspbian Linux 3 смогли настроить работу Bluetooth-гарнитур без PulseAudio
Я там выше уже тебе отписал, что таки работает)
Как обстоят дела в Raspbian 2 я не знаю
Обновиться до stretch — и будет так же работать.
devl547 ★★★★★
( 21.08.17 12:22:25 MSK )
Ответ на: комментарий от ZenitharChampion 21.08.17 12:19:43 MSK
Отдельный usb блютуз модуль воткнут 4.0 сопряжение могу сделать
Saltas768
( 21.08.17 16:15:25 MSK ) автор топика
Ответ на: комментарий от Saltas768 21.08.17 16:15:25 MSK
Отлично! Я сделал apt-get update в своём Raspbian 2. Увы, bluez-alsa нет в репозитории. Что же, будем настраивать с помощью PulseAudio.
apt-cache search bluez | grep bluez bluez - Bluetooth tools and daemons bluez-cups - Bluetooth printer driver for CUPS bluez-dbg - Bluetooth tools and daemons (with debugging symbols) bluez-hcidump - Analyses Bluetooth HCI packets bluez-obexd - bluez obex daemon bluez-test-scripts - BlueZ test scripts bluez-tools - Set of tools to manage Bluetooth devices for linux libbluedevil2 - Qt wrapper for bluez python-bluez - Python wrappers around BlueZ for rapid bluetooth development bluez-firmware - Firmware for Bluetooth devices
Выполни ps -A | grep pulse , чтобы узнать, запущена ли у тебя системная служба PulseAudio. Если нет — будем устанавливать.
ZenitharChampion ★★★★★
( 21.08.17 18:17:37 MSK )
Последнее исправление: ZenitharChampion 21.08.17 18:18:26 MSK (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion 21.08.17 18:17:37 MSK
Saltas768
( 21.08.17 22:48:23 MSK ) автор топика
Ответ на: комментарий от Saltas768 21.08.17 22:48:23 MSK
Отлично, Пульса запущена.
Я не умею ей пользоваться. Извини. Программа для управления звуком называется pavucontrol. Запусти, посмотри что в ней есть. Если не установлена — установи.
Это чтобы выводить через гарнитуру. Чтобы наоборот, надо будет подумать.
ZenitharChampion ★★★★★
( 21.08.17 22:49:00 MSK )
Почему бы просто к колонкам не приделать bluetooth модуль, типа CSR8635?
BceM_IIpuBeT ★★☆☆☆
( 21.08.17 22:52:28 MSK )
Последнее исправление: BceM_IIpuBeT 21.08.17 22:52:35 MSK (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion 21.08.17 22:49:00 MSK
Так по тому же описанию что я читаю получается что там написано как делать так чтобы малинка подсоединялась к BT аппаратуре а мне нужно чтобы сама малинка стала ею.
Saltas768
( 22.08.17 00:27:27 MSK ) автор топика
Ответ на: комментарий от BceM_IIpuBeT 21.08.17 22:52:28 MSK
Можно но лучше ограничиться через Малинку ибо модуль ждать месяц и в силу «рук из того места» я поломаю 2 модуля перед тем как удачно спаяю.
Saltas768
( 22.08.17 00:28:59 MSK ) автор топика
Ответ на: комментарий от Saltas768 22.08.17 00:27:27 MSK

Выше вон пишут что с помощью DBus видно два устройства: player0 и fd0. fd0 это то, что нужно. irton , а как увидеть устройства с помощью DBus?
ZenitharChampion ★★★★★
( 22.08.17 11:59:34 MSK )
Ответ на: комментарий от ZenitharChampion 22.08.17 11:59:34 MSK
Что такое fd0 интересно?
Если чисто дерево увидеть, то я через d-feet смотрю.
Если для использования в скриптах, то
dbus-send --system --print-reply --dest=org.bluez / org.freedesktop.DBus.ObjectManager.GetManagedObjects
irton ★★★★★
( 22.08.17 12:51:36 MSK )
Ничего хорошего не выйдет, ибо любители извращений испоганили bluez всякими dbus’ами и прочими новомодными какашками и превратили набор простых утилиток для работы с сетевым стеком в угрёбищный невменяемый комбайн. Ну это как из ifconfig, iptables и route сделать нечто укушенное по функционалу, конфигурирующееся только через dbus и без документации вообще. Теперь bluez в принципе не может нормально обрабатывать входящий SCO поток (потери пакетов, проблемы с очерёдностью пакетов, невменяемая latency и т.п.) и будет заикаться при любых плясках с бубном.
Как вариант надо найти старый bluez 4 и штуку с названием a2dp-alsa. Потом, надо выключить абсолютно все профили кроме A2DP и всякие *scan, и если очень повезёт с затычкой (Cambridge Silicone Radio с 50% вероятностью будет работать, например), то можно будет услышать относительно нормальный звук без заиканий и хрипов каждую секунду.
Для воспроизведения нормального звука через эфир рекомендую использовать WiFi вместо этой фигни.
Stanson ★★★★★
( 22.08.17 13:09:59 MSK )
Последнее исправление: Stanson 22.08.17 13:12:49 MSK (всего исправлений: 1)
ТС, я заинтересован тем же вопросом, что и ты. Поэтому я попробую сделать это у себя. А потом дам пошаговую инструкцию.