(2022-01-22 初稿 - 2022-01-24 追記)
(2022-01-24 追記)
Raspberry Piとなかなか接続(Connect)が成功しないスピーカーがあったので、その対策のスクリプトを追記。
(追記終了)
はじめに
先日、Raspberry Pi(ラズパイ)をBGMサーバとラジオをきけるようにした記事をアップした。
自宅にはまだ余っていたラズパイがあったので、各部屋にラズパイを置いてBGMサーバにしようとしたが、部屋によってはラズパイを離れた場所に置かなければならなくて、不便に感じることもあった。
ダイソーに寄ったら、安いBluetooth接続のスピーカーが売っていたので、購入しRaspberry Piに接続してみた。この記事は、Raspberry Piに接続したしたときのメモを残す。
なお、以下のサイトを参考にさせていただいた。多謝。m(__)m
筆者が購入したスピーカーは、ダイソーで700円で売っていたもので、充電式なのでどこにでも置ける。
実際に使ってみて、接続ケーブルが無くどこにでも置けるというのが、とても便利なことに気がついた。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つのスピーカーを買ってしまった。ただし、いずれも安いスピーカーなので音質は期待できないけど…(^^ゞ