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

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"として認識されました。

手順

  1. Bluetooth サポートをインストールする。
    (Raspberry Pi 3なら、"bluetooth"の代わりに"pi-bluetooth"をインストールする?)
    sudo aptitude install bluetooth
  2. BlueZ(オープンソースのBluetoothプロトコルスタック)をインストールする。
    sudo aptitude install bluez
  3. PulseAudioとそのBluetooth用モジュールをインストールする。
    sudo aptitude install pulseaudio pulseaudio-module-bluetooth
  4. 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
  5. 前項で定義したPulseAudioのサービスのポリシーでBlueZとの通信を許可する。
    sudo vi /etc/dbus-1/system.d/pulseaudio-bluetooth.conf
    <busconfig>
        <policy user="pulse">
            <allow send_destination="org.bluez"/>
        </policy>
    </busconfig>
  6. 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
  7. PulseAudioを起動する。
    sudo systemctl start pulseaudio.service
  8. PulseAudioの状態を確認する。
    sudo systemctl status pulseaudio.service
  9. PulseAudioを有効化する。
    sudo systemctl enable pulseaudio.service
  10. Bluetoothドングルを接続する。
  11. ドングルが認識されているか確認する。
    lsusb
  12. スマホでGoogle Homeアプリを起動する。
  13. ハンバーガーアイコンをタップする。
  14. [デバイス]をタップする。
  15. 認識されているデバイスの設定アイコンをタップする。
  16. [設定]をタップする。
  17. [ペア設定されたBluetoothデバイス]をタップする。
  18. [ペア設定モードを有効にする]をタップする。
  19. 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
  20. piユーザーで音を出せるようにグループに所属させる。
    sudo usermod -a -G pulse,pulse-access pi
  21. 下記を実行し、音声出力をテストする。
    paplay /usr/share/sounds/alsa/Front_Center.wav

参考

Amazon

楽天アフィリエイト
Google Home mini
差分 一覧