PythonのクライアントではなくBluetoothホストデバイスとしてPiを実行する
他のデバイスがpiを検索してペアリングできるように、piをBluetoothデバイスとして使用するためのサンプルコードを見つけようとしています。具体的には、私が考えているプロジェクトでは、自転車パワーメーターのように動作させたいと考えています。
Googleで検索する正しいキーワードが見つからないようですが、このサイトを見回すと可能であるように見えます(誰かがBluetoothプリンターとして使用しているのを見ました)。
本当に必要な方向性は、図書館や何を検索するかなどです。
回答
私の想定では、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