(2022-01-22 初稿 - 2022-01-24 追記)
(2022-01-24 追記)
Raspberry Pi となかなか接続(Connect)が成功しないスピーカーがあったので、その対策のスクリプト を追記。
(追記終了)
はじめに
先日、Raspberry Pi (ラズパイ)をBGMサーバとラジオをきけるようにした記事をアップした。
自宅にはまだ余っていたラズパイがあったので、各部屋にラズパイを置いてBGMサーバにしようとしたが、部屋によってはラズパイを離れた場所に置かなければならなくて、不便に感じることもあった。
ダイソー に寄ったら、安いBluetooth 接続のスピーカーが売っていたので、購入しRaspberry Pi に接続してみた。この記事は、Raspberry Pi に接続したしたときのメモを残す。
なお、以下のサイトを参考にさせていただいた。多謝。m(__)m
筆者が購入したスピーカーは、ダイソー で700円で売っていたもので、充電式なのでどこにでも置ける。
購入したダイソー のBluetooth 接続のスピーカー
実際に使ってみて、接続ケーブルが無くどこにでも置けるというのが、とても便利なことに気がついた。Buletoothが10m程度まで接続できるとのことなので、普通の部屋ならば便利に使えると思う。
接続の手順
最初は、GUI で接続を試みたが、接続(Connect)のところでうまく行かなくなってしまったので、CUI で設定した。Raspberry Pi にディスプレイをつないでいない場合には参考になるかな…
筆者のRaspberry Pi には既にインストール済みだったが、インストールされていない場合もあるかもしれないので、以下のコマンドでインストールを行う。
$ sudo apt-get install pulseaudio pulseaudio-module-bluetooth
次の操作も必須ではないが、スピーカーの電源ONにしたときつながり易くなるらしいので一応実行する。
pi@hoge :~ $ sudo cp /etc/pulse/default.pa /etc/pulse/default.pa .org
pi@hoge :~ $ sudo vi /etc/pulse/default.pa
ファイルの最後に以下の行を追加する。
# automatically switch to newly-connected devices
load-module module-switch-on-connect
ユーザpiをBluetooth グループに追加して、再起動する。
pi@hoge :~ $ sudo usermod -G bluetooth -a pi
pi@hoge :~ $ sudo reboot
再起動後、piがbluetooth グループに所属していることを確認。
pi@hoge :~ $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev bluetooth lpadmin pulse-access gpio i2c spi
以下は、本当はGUI でやりたかったけど、うまく接続できなかったので、以下のとおりコマンドで接続した。コマンドで行う方が情報が多くて、少なくとも最初は確実なような気がする。
pi@hoge :~ $ bluetoothctl
Agent registered
[bluetooth ]# power on
Changing power on succeeded
[bluetooth ]# scan on
Discovery started
[CHG] Controller DC:A6:32:9D:EE:BB Discovering: yes
[NEW] Device E0:5D:F5:35:B7:F2 SR1323
SR1323というのがBluetooth スピーカーで、E0:5D:F5:35:B7:F2 がID。
続けて、ペアリングを実行する。
[bluetooth ]# pair E0:5D:F5:35:B7:F2
Attempting to pair with E0:5D:F5:35:B7:F2
[CHG] Device E0:5D:F5:35:B7:F2 Connected: yes
[CHG] Device E0:5D:F5:35:B7:F2 Modalias: bluetooth :v05D6p000Ad0240
[CHG] Device E0:5D:F5:35:B7:F2 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device E0:5D:F5:35:B7:F2 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device E0:5D:F5:35:B7:F2 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device E0:5D:F5:35:B7:F2 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device E0:5D:F5:35:B7:F2 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device E0:5D:F5:35:B7:F2 ServicesResolved: yes
[CHG] Device E0:5D:F5:35:B7:F2 Paired: yes
Pairing successful
[CHG] Device E0:5D:F5:35:B7:F2 ServicesResolved: no
[CHG] Device E0:5D:F5:35:B7:F2 Connected: no
無地ペアリングまではできたので、infoで情報を確認する。
[bluetooth ]# info E0:5D:F5:35:B7:F2
Device E0:5D:F5:35:B7:F2 (public)
Name: SR1323
Alias: SR1323
Class: 0x00340404
Icon: audio-card
Paired: yes
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth :v05D6p000Ad0240
ManufacturerData Key: 0x5754
ManufacturerData Value :
53 4d 4f aa 58 SMO.X
RSSI: -71
単なるスピーカーなので、trustにする。
[bluetooth ]# trust E0:5D:F5:35:B7:F2
[bluetooth ]# info E0:5D:F5:35:B7:F2
Trusted: yes
再度iinfoで確認し、TrustedがyesになればOK。
最後に、なぜかGUI ではうまくConnectできなかったけど、CUI ならうまく行った。
[bluetooth ]# connect E0:5D:F5:35:B7:F2
Attempting to connect to E0:5D:F5:35:B7:F2
[CHG] Device E0:5D:F5:35:B7:F2 Connected: yes
Connection successful
[CHG] Device E0:5D:F5:35:B7:F2 ServicesResolved: yes
[NEW] Device D7:C0:DF:31:AE:8A AlterLock
[DEL] Device 77:B8:89:CB:65:2F 77-B8-89-CB-65-2F
[NEW] Device 77:B8:89:CB:65:2F 77-B8-89-CB-65-2F
Connection successfulを確認して、終了。
[SR1323]# quit
適当なmp3等を再生するが、その前に以下の画像のように、スピーカーのマークを右クリックして出力先がBluetooth スピーカーになっていることを確認する。
(画像は、別のダイソー スピーカーになってる。m(__)m )
スピーカーを右クリックして、出力先を確認
vlc (cvlc)またはmplayer 等で、適当なmp3等を再生する。うまくスピーカーから再生されれば成功。
うまく接続(Connect)できないときに(2022-01-24追記)
筆者のRaspberry Pi でも、ペアリングまでは成功しても、接続が成功しない場合がある。そのときには、コマンドで以下の通り接続する。
$ bluetoothctl
# connect E0:5D:F5:35:B7:F2
# quit
毎回、行うのば面倒なので以下のBash スクリプト を作成した。
余談だけど、ヒヤドキュメントってこういう使い方があるんだって初めて知った。
$ cat bin/blule-connect
#/bn/bash
# bluetooth connect
bluetoothctl << EOC
connect E0:5D:F5:35:B7:F2
quit
EOC
(追記終了)
おわりに
充電式のBluetooth スピーカーが、持ち運べて意外に便利だったので、自宅用と職場用と2つのスピーカーを買ってしまった。ただし、いずれも安いスピーカーなので音質は期待できないけど…(^^ゞ
関連ページ