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

この記事からわかること

  • Bluetoothとは?
  • BLE(Bluetooth Low Energy)とは?
  • セントラルペリフェラルサービスキャラリスティックアドバタイズGATT(ガット)通信ペアリングボンディング意味

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

Wikipedia:Bluetooth

Bluetoothを使用したアプリを開発することがあったのでBluetooth関連の用語や意味を備忘録としてまとめておきます。

Bluetoothとは?

Bluetooth(ブルートゥース)とは無線通信技術の1つであり、中でも比較的短距離(数メートルから約100メートルの範囲)で使用できる通信規格です。Bluetooth以外にも以下のような無線通信が有名どころです。

無線通信技術の種類

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ページくらいあるのでボリュームがすごいですが、ここから得られる知識は数知れませんでした。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index