Top/Devel/電子工作/GoogleHome/RaspberryPiとのBluetooth接続

RaspberryPiとのBluetooth接続 の変更点はてなブックマーク


#author("2018-01-10T23:36:32+09:00","default:admin","admin")
#author("2018-09-02T10:14:51+09:00","default:admin","admin")
[[Google Home>../]] miniと[[Raspberry Pi>../../RaspberryPi]] 2 Model BをBluetooth接続して、~
Raspberry Piの音声出力先をGoogle Home miniにしてみます。

~

今回はRaspberry Pi 2を使用していますが、Raspberry Pi 3でも同様の手順で可能だと思います。

~

#rakuten(https://affiliate.rakuten.co.jp/link/pc/item?me_id=1213310&me_url=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F15182442%2F&me_img_src=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg&goods_name=Google+Home+Mini+チョーク(グーグル+ホーム+ミニ+チョーク)&mitem_flg=1&item_id=18832250&price=6480&tax_flg=0&postage_flg=0&change_flg=0,https://hbb.afl.rakuten.co.jp/hgb/165139a7.32bd5fe9.165139a8.5d71ebc4/?me_id=1213310&item_id=18832250&m=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg%3F_ex%3D80x80&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg%3F_ex%3D240x240&s=240x240&t=picttext,left,)
#amazon(B01CD5VC92,left)

#clear

*前提
-Raspbianを最新化しておく。
#code(,nonumber){{
sudo aptitude update
sudo aptitude upgrade
}}
-[[I-O DATA USB-BT40LE>http://www.amazon.co.jp/exec/obidos/ASIN/B00COU5RP2/cubic9com-22]]などのBluetoothアダプターを用意する。~
初代Raspberry PiやRaspberry Pi 2の場合のみ。Raspberry Pi 3の場合は内蔵されているため不要。~
USB-BT40LEにしたのは、Broadcomが安心という情報を目にしたためです。~
実際に接続したところ、"Broadcom Corp. BCM20702A0 Bluetooth 4.0"として認識されました。

*手順
+Bluetooth サポートをインストールする。~
(Raspberry Pi 3なら、"bluetooth"の代わりに"pi-bluetooth"をインストールする?)
#code(,nonumber){{
sudo aptitude install bluetooth
}}
+[[BlueZ>http://www.bluez.org]](オープンソースのBluetoothプロトコルスタック)をインストールする。
#code(,nonumber){{
sudo aptitude install bluez
}}
+[[PulseAudio>https://www.freedesktop.org/wiki/Software/PulseAudio/]]とそのBluetooth用モジュールをインストールする。
#code(,nonumber){{
sudo aptitude install pulseaudio pulseaudio-module-bluetooth
}}
+PulseAudioのsystemd Unitファイルを作成する。
#code(,nonumber){{
sudo vi /etc/systemd/system/pulseaudio.service
}}
>
#code(,nonumber){{
[Unit]
Description=Pulse Audio

[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm

[Install]
WantedBy=multi-user.target
}}
<
+前項で定義したPulseAudioのサービスのポリシーでBlueZとの通信を許可する。
#code(,nonumber){{
sudo vi /etc/dbus-1/system.d/pulseaudio-bluetooth.conf
}}
>
#code(,nonumber){{
<busconfig>
    <policy user="pulse">
        <allow send_destination="org.bluez"/>
    </policy>
</busconfig>
}}
<
+PulseAudioがBluetooth系モジュールをロードするように設定する。
#code(,nonumber){{
sudo vi /etc/pulse/system.pa
}}
>
末尾に以下を追記する。
#code(,nonumber){{
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
}}
<
+PulseAudioを起動する。
#code(,nonumber){{
sudo systemctl start pulseaudio.service
}}
+PulseAudioの状態を確認する。
#code(,nonumber){{
sudo systemctl status pulseaudio.service
}}
+PulseAudioを有効化する。
#code(,nonumber){{
sudo systemctl enable pulseaudio.service
}}
+Bluetoothドングルを接続する。
+ドングルが認識されているか確認する。
#code(,nonumber){{
lsusb
}}
+スマホでGoogle Homeアプリを起動する。
+ハンバーガーアイコンをタップする。
+[デバイス]をタップする。
+認識されているデバイスの設定アイコンをタップする。
+[設定]をタップする。
+[ペア設定されたBluetoothデバイス]をタップする。
+[ペア設定モードを有効にする]をタップする。
+Raspberry PiとGoogle Homeをペアリングする。~
(ZZ:ZZ:ZZ:ZZ:ZZ:ZZ部分は、scan時に表示されたGoogle Homeのアドレスに読み替えてください)
#code(,nonumber){{
sudo bluetoothctl
}}
>
#code(,nonumber){{
agent on
default-agent
scan on
pair ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
trust ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
connect ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
exit
quit
}}
<
+piユーザーで音を出せるようにグループに所属させる。
#code(,nonumber){{
sudo usermod -a -G pulse,pulse-access pi
}}
+下記を実行し、音声出力をテストする。
#code(,nonumber){{
paplay /usr/share/sounds/alsa/Front_Center.wav
}}

*参考
-[[Bluetoothスピーカーから音を出す - belial6's diary>http://belial6.hateblo.jp/entry/2017/06/30/003546]]

*Amazon
#rakuten(https://affiliate.rakuten.co.jp/link/pc/item?me_id=1213310&me_url=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F15182442%2F&me_img_src=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg&goods_name=Google+Home+Mini+チョーク(グーグル+ホーム+ミニ+チョーク)&mitem_flg=1&item_id=18832250&price=6480&tax_flg=0&postage_flg=0&change_flg=0,https://hbb.afl.rakuten.co.jp/hgb/165139a7.32bd5fe9.165139a8.5d71ebc4/?me_id=1213310&item_id=18832250&m=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg%3F_ex%3D80x80&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F2461%2F0842776102461.jpg%3F_ex%3D240x240&s=240x240&t=picttext,left,Google Home mini)
#amazon(B01CD5VC92,left)
#amazon(B00COU5RP2,left)
差分 一覧