ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Raspberry Pi(ラズパイ)にBluetoothスピーカーをつないだよ

(2022-01-22 初稿 - 2022-01-24 追記)

(2022-01-24 追記)

Raspberry Piとなかなか接続(Connect)が成功しないスピーカーがあったので、その対策のスクリプトを追記。

(追記終了)

はじめに

先日、Raspberry Pi(ラズパイ)をBGMサーバとラジオをきけるようにした記事をアップした。

自宅にはまだ余っていたラズパイがあったので、各部屋にラズパイを置いてBGMサーバにしようとしたが、部屋によってはラズパイを離れた場所に置かなければならなくて、不便に感じることもあった。

ダイソーに寄ったら、安いBluetooth接続のスピーカーが売っていたので、購入しRaspberry Piに接続してみた。この記事は、Raspberry Piに接続したしたときのメモを残す。

なお、以下のサイトを参考にさせていただいた。多謝。m(__)m

筆者が購入したスピーカーは、ダイソーで700円で売っていたもので、充電式なのでどこにでも置ける。

f:id:hymd3a:20220121190048j:plain

購入したダイソー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 )

f:id:hymd3a:20220122204303p:plain

スピーカーを右クリックして、出力先を確認

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つのスピーカーを買ってしまった。ただし、いずれも安いスピーカーなので音質は期待できないけど…(^^ゞ

関連ページ