PythonのクライアントではなくBluetoothホストデバイスとしてPiを実行する

Aug 20 2020

他のデバイスがpiを検索してペアリングできるように、piをBluetoothデバイスとして使用するためのサンプルコードを見つけようとしています。具体的には、私が考えているプロジェクトでは、自転車パワーメーターのように動作させたいと考えています。

Googleで検索する正しいキーワードが見つからないようですが、このサイトを見回すと可能であるように見えます(誰かがBluetoothプリンターとして使用しているのを見ました)。

本当に必要な方向性は、図書館や何を検索するかなどです。

回答

2 ukBaz Aug 20 2020 at 15:59

私の想定では、BluetoothSIGで定義されている標準のサイクリングプロファイル/サービスの1つであると考えています。

これらはBluetoothLow Energy(BLE)であり、GATT仕様を使用しています。

Linuxでは、BluetoothスタックはBlueZであり、D-Busを使用してAPIを公開します。たとえば、GATTAPIは次の場所に文書化されています。https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt

お使いのデバイスは、GATTサーバーの作成を意味する周辺機器の役割を果たします。BlueZソースコードにこの例があります。https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

周辺機器もGATTサービスをアドバタイズする必要があります。 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement

デフォルトでは、RPiはBR / EDR(クラシック)とLEBluetoothの両方です。BLEペリフェラルとして機能する場合は、コントローラーをBluetooth Low Energyのみに構成することをお勧めします。Androidフォンに確実に接続するには、これが必要であることがわかっています。この構成変更は/etc/bluetooth/main.confファイルで行われます。次のものが含まれていることを確認してください。

ControllerMode = le