この記事は自分なりの理解をアウトプットとして記載しています。間違っている可能性もあるため、この記事の情報を鵜呑みにはしないでください。
研究室のプロジェクトでbluetoothを扱う機会があったため、アウトプットを兼ねてこの記事を書いていきます。
この記事で記載している内容は以下になっています
・BLEについて
・bluetooth(BLE)の通信方法
・BLEを用いて機器情報を取得するには
BLEについて
BLEの正式名称はBluetooth Low Energyの略称であり、bluetooth通信規格の一種です。BLEの通信規格は現在のbluetoothデバイスに数多く使用されており、BLEの正式名称にもある通り、省電力であることが大きな特徴となっています。
前述したように、この通信規格はbluetoothデバイスに数多く使用されているため、機器情報を取得するにはbluetooth(BLE)についての理解が必要不可欠になります。この記事ではbluetoothU(BLE)の通信方法について、自分なりの理解を共有します。
bluetooth(BLE)の通信方法
bluetoothは通常、放射状に電波を発信しており、接続機器に対して自身の情報を送信しています。ワイヤレスイヤホンやウェアラブル端末等、bluetoothを発信している機器のことをペリフェラル、スマートフォンやPC等、bluetoothを接続し、利用する機器のことをセントラルと呼びます。
ペリフェラルとセントラルの通信にはアドバタイズとGATT通信に分かれています。アドバタイズは上述していますが、ペリフェラルはセントラルに接続するため、放射状に電波を発信しています。セントラルは電波を受信するとUIに接続可能なbluetooth機器が閲覧できるようになります。この放射状に電波を発信し、セントラルに接続しようとする状態がアドバタイズです。
GATT通信はセントラルとペリフェラルが接続された時に行われる通信です。今回の機器情報の取得に必要となる通信はアドバタイズであり、GATT通信はあまり重要で無かったため、説明は省略します(GATT通信やアドバタイズについて詳細を知りたい方は下記の参考URLから)。
BLEを用いて機器情報を取得するには
上述したように、今回はアドバタイズ状態であるbluetoothの機器情報を取得します。アドバタイズ通信は放射状に電波を発信しているため、発信している電波を取得することで機器情報を取得します。
pythonライブラリのbleakはアドバタイズされているBLEを取得できるため、bleakライブラリを用いることで機器情報を取得します。次回はbleakの動作について確認していきたいと思います。