BLE(Bluetooth Low Energy)とは?セントラルやペリフェラルの意味と用語集

この記事からわかること
- Bluetoothとは?
- BLE(Bluetooth Low Energy)とは?
- セントラルやペリフェラル、サービス、キャラリスティック、アドバタイズ、GATT(ガット)通信、ペアリング、ボンディングの意味
index
[open]
\ アプリをリリースしました /
Bluetoothを使用したアプリを開発することがあったのでBluetooth関連の用語や意味を備忘録としてまとめておきます。
Bluetoothとは?
Bluetooth(ブルートゥース)とは無線通信技術の1つであり、中でも比較的短距離(数メートルから約100メートルの範囲)で使用できる通信規格です。Bluetooth以外にも以下のような無線通信が有名どころです。
無線通信技術の種類
- Wi-Fi
- NFC (Near Field Communication)
- 赤外線通信
- etc...
おすすめ記事:NFCとは?規格の種類や違い、NDEFの中身について
Bluetoothはモバイル端末やPC、マウス、キーボード、ヘッドフォンなどのデジタル機器同士をリンクさせることで情報のやり取りを可能にしています。やり取りはあらかじめ決められたプロトコルに準じて2.4GHzの無線周波数帯域(簡単にいうと電波)を介して行われます。Wi-Fiも2.4GHzと5GHzに分かれているのは有名ですが、Bluetoothも同じ帯域を使用しています。
BLE(Bluetooth Low Energy)とは?
Bluetooth Low Energy(BLE)はBluetoothの種類の1つでその名前通り低消費電力のBluetooth通信を可能にした規格です。Bluetooth自体もバージョン管理されておりBluetooth4.0から追加になったようです。
PC(WindowsやmacOSなど)やモバイル端末(AndroidやiOS)などは標準でBLEをサポートしているのでアプリ開発などをする際にはBLEに関する技術や知識は必要になってきます。
Bluetoothの基礎
Bluetoothは当然ですがデジタル機器同士でペアリングを行い情報をやり取りするので例えばPCとキーボードといった2つの登場人物が必要になります。この2つの機器同士はやり取りをする情報や状況に応じて変化しますが、機器の機能を使用する親側と機能を提供する子側に分かれます。
Bluetoothの機能を使用する親側を「Central(セントラル)」、機能を提供する子側を「Peripheral(ペリフェラル)」と呼びます。例で言うとPCがセントラル、キーボードがペリフェラルです。
Central(セントラル)
Central(セントラル)は親側の機器の名称でBluetooth通信を主導し情報をリクエストしたりデータを取得したりする側を指します。PCやスマートフォンがセントラル側になることが多いです。
Central側がスキャンを開始して範囲内にあるペリフェラルを検出し接続リクエストを送信します。
ペリフェラル(Peripheral)
ペリフェラル(Peripheral)は子側の機器の名称でセントラルに対して機能や情報を提供する側を指します。キーボードやマウスなどがペリフェラル側になります。
ペリフェラルは1つ以上のサービスと呼ばれる機能のまとまりを保持しています。
サービス
サービスはペリフェラルが提供してる機能や情報(キャラクタリスティック)の集まりのことです。サービスには一意のUUID(Universally Unique Identifier)が割り当てられ、セントラルはこのUUIDを使用して特定のサービスを識別します。
サービスは1つ以上のキャラクタリスティックを保持しています。
キャラリスティック
キャラクタリスティックはサービス内で提供される個々のデータ要素のことです。データ本体や操作方法、設定値などが含まれ「Read」「Write」「Notify」「WriteWithoutResponse」「Indicate」などの属性を持ちます。キャラクタリスティックも一意のUUIDを持ち、セントラルはこれを使用して特定のキャラクタリスティックを識別します。
「Read」「Write」「WriteWithoutResponse」「Notify」「Indicate」の違い
Read
Readは読み取りをするための属性です。
Write
Writeは書き込みをするための属性です。
WriteWithoutResponse
WriteWithoutResponseは書き込みをするための属性です。Writeとは違い応答がありませんがその分高速にデータの書き込みが可能です。
Notify
Notifyは通知をするための属性です。データの変更があった際に通知することができます。
indicate
Indicateは通知を示唆をするための属性です。Notifyと同じくデータの変更があった際に通知が飛びますが、クライアントが通知を受信したことを確認する必要があります。
アドバタイズ
ペリフェラルがセントラルにブロードキャスト通信を送ることです。
GATT(ガット)通信
アドバタイズ後にセントラルから接続要求が届きペリフェラルと行う1対1の接続通信のことです。
ペアリング
セントラルとペリフェラル間のデータ暗号化のための鍵の交換をすることです。
ボンディング
ペアリングで交換した暗号鍵をキャッシュしておき再度同じ相手と接続するときに、ペアリングを省略できる機能のことです。
おすすめ参考書:iOS×BLE Core Bluetoothプログラミング
iOSアプリでBLEを使用した機能を実装したいなら一度は読んでおくことをおすすめする参考書です。iOSでのCore Bluetoothを使用した実装だけでなく、Bluetoothに関する細かい知識やノウハウも詰まっているので網羅的に理解したい方にはバッチリだと思います。
少し古い参考書であり、Objective-CとSwift両方のコードで実装方法が記述されています。Swift UIでの実装方法は載っていませんが、基本的なコードは昔からあまり変わっていないのでつまづくところはなく実装できると思います。
BLEを食材や店員などに例えて解説してくれるので素人でもBLEの概念がつかみやすく記述されています。約500ページくらいあるのでボリュームがすごいですが、ここから得られる知識は数知れませんでした。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。
個人開発に限界を感じたらiOSに特化したプログラミングスクール「iOSアカデミア」も検討してみてください!無料相談可能で「最短・最速」でiOSエンジニアになれるように手助けしてくれます。