Как подключить bluetooth колонку к raspberry pi4
Перейти к содержимому

Как подключить bluetooth колонку к raspberry pi4

  • автор:

Как подключить 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)

ТС, я заинтересован тем же вопросом, что и ты. Поэтому я попробую сделать это у себя. А потом дам пошаговую инструкцию.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *