RaspberryPiとのBluetooth接続
Google Home miniとRaspberry Pi 2 Model BをBluetooth接続して、
Raspberry Piの音声出力先をGoogle Home miniにしてみます。
今回はRaspberry Pi 2を使用していますが、Raspberry Pi 3でも同様の手順で可能だと思います。
前提
- Raspbianを最新化しておく。
sudo aptitude update sudo aptitude upgrade
- I-O DATA USB-BT40LEなどの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"をインストールする?)sudo aptitude install bluetooth
- BlueZ(オープンソースのBluetoothプロトコルスタック)をインストールする。
sudo aptitude install bluez
- PulseAudioとそのBluetooth用モジュールをインストールする。
sudo aptitude install pulseaudio pulseaudio-module-bluetooth
- PulseAudioのsystemd Unitファイルを作成する。
sudo vi /etc/systemd/system/pulseaudio.service
[Unit] Description=Pulse Audio [Service] Type=simple ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm [Install] WantedBy=multi-user.target
- 前項で定義したPulseAudioのサービスのポリシーでBlueZとの通信を許可する。
sudo vi /etc/dbus-1/system.d/pulseaudio-bluetooth.conf
<busconfig> <policy user="pulse"> <allow send_destination="org.bluez"/> </policy> </busconfig>
- PulseAudioがBluetooth系モジュールをロードするように設定する。
sudo vi /etc/pulse/system.pa
末尾に以下を追記する。
### 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を起動する。
sudo systemctl start pulseaudio.service
- PulseAudioの状態を確認する。
sudo systemctl status pulseaudio.service
- PulseAudioを有効化する。
sudo systemctl enable pulseaudio.service
- Bluetoothドングルを接続する。
- ドングルが認識されているか確認する。
lsusb
- スマホでGoogle Homeアプリを起動する。
- ハンバーガーアイコンをタップする。
- [デバイス]をタップする。
- 認識されているデバイスの設定アイコンをタップする。
- [設定]をタップする。
- [ペア設定されたBluetoothデバイス]をタップする。
- [ペア設定モードを有効にする]をタップする。
- Raspberry PiとGoogle Homeをペアリングする。
(ZZ:ZZ:ZZ:ZZ:ZZ:ZZ部分は、scan時に表示されたGoogle Homeのアドレスに読み替えてください)sudo bluetoothctl
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 quit
- piユーザーで音を出せるようにグループに所属させる。
sudo usermod -a -G pulse,pulse-access pi
- 下記を実行し、音声出力をテストする。
paplay /usr/share/sounds/alsa/Front_Center.wav