BLEの基礎知識
iosでbluetoothを使ってIOTデバイスをごにょごにょすることになったのですが、専門知識ばかりで混乱しました。
よく使う知識と処理の流れのまとめです。
BLEとは
BLEとは、Bluetooth Low Energyの略で省電力無線通信技術を実装したデバイスとの通信を行うものです。
BLEはBluetoothの規格4.0以上のものから使えます、使用電力が低いという特徴からIOTなどでよく使われる技術です。
用語
セントラル
セントラルは無線通信を行う上で操作を行うものです。
iosアプリからIOT機器になにかしらの命令を送ったり、状態のデータを受け取る場合iPhoneがセントラルになります。セントラルは操作する側です
ペリフェラル
ペリフェラルは操作される側です、持っている機能は機器により様々です。心拍数を測ったり、気温を測ったりいろいろです
セントラルとペリフェラル
アドバタイズ
アドバタイズを直訳すると広告という意味です。広告とは誰かに知ってもらうために出すものですが、BLEの世界ではペリフェラルがセントラルに見つけてもらうために微弱な電波を出していることを指します。
スキャン
セントラルが接続先のペリフェラルを探すこと
コネクト
セントラルとペリフェラルが接続すること
ボンディング
交換した鍵を保存しておくこと、一度保存した鍵でデータの暗号化を行うことができる。
サービス
サービスはペリフェラルの持っている機能です。機器によって持っている数が違います。
キャラクタリスティック
サービスの中身の細かい機能で、ユーザはキャラクタリスティクスに対して読み込みや書き込みをすることができる機器のアップデートなどをする際などに使う。UUIDというアドレスを指定することで取得することができる
Notification
キャラクタリスティクス内の値が変更された際にセントラルに対して通知を行う機能。ハンドラーのようなもの
パーム
アップデートをする内容、機器の性能にもよるが1度にすべてのアップデート内容を書き込むことは難しいため少しづつデータを送り書き込んでいく
処理の流れ
①スキャン
セントラルがプリフェラルを探す
②コネクト
セントラルとプリフェラルが接続
③ボンディング
暗号化のために鍵交換。しない場合はスルー、iosはコネクト時に自動で行なってくれる、Androidは自分でやらなければならない。
④サービスを取得
ペリフェラルの持っているサービスを取得する、UUIで任意のものを取得
⑤キャラクタリスティクスに書き込み
機器の持っているキャラクタリスティクスに信号を送り内部の値を書き換えることによって、LEDを光らせたり音を鳴らしたりすることができる。