Bluetoothについて調べてみた
はじめに
少しいつもと内容の毛色が違いますが、最近調べていたことをまとめて整理しようと思いました。
そもそもネットワークについて
そもそもネットワークは、コンピューターなどの機器を繋いで情報をやり取りする技術ですが、いくつかの種類に分けられます。
- LAN:限られた範囲内でのネットワーク
a. 有線LAN
b. 無線LAN - WAN:遠い距離を繋ぐネットワーク
- インターネット:世界中のコンピューターやネットワークを繋ぐ
Bluetoothとは
この中で、Bluetooth
は 1-b: 無線LAN
に分類されます。
またWi-fi
も無線LANに該当します。
Bluetooth
もWi-fi
も無線LANでよく使われる「通信の規格」という位置付けです。
そもそもこの規格というのは、IEEE(Institute of Electrical and Electronics Engineers)というアメリカの電気電子学会が定めています。
では比較のためWi-fi
も含めてBluetooth
の特徴を見てみましょう。
-
Wi-fi
- 通信する距離は
50m ~ 100m
を想定 - 通信速度は
~数Gbps
- 通信する距離は
-
Bluetooth
- 通信する距離は
数m ~ 10m
を想定 - 通信速度は
~24Mbps
- 通信する距離は
こうやってみると、Wi-fi
の方が早くて良いじゃん!と思えますが、Bluetooth
には
- 省電力
- 接続が容易
という特徴があります。
ちなみにご自身のWi-fi
の速度がどのくらいなんだろうか?というのを計測するサイトがありますので、イメージのために使ってみると面白いかもしれません。
私は840Mbpsでした!(結構早い、さすがNuro!)
Bluetoothとは
Bluetooth
にはざっくり2種類の規格があります(多分これ以外にもありそうですが...)。
- Bluetooth Classic
- 割と昔から使われていた規格
- 通信速度が速く、送れるデータ容量も比較的大きい
- オーディオ、ファイル転送などに向いている
- ヘッドホンのBluetoothはこれが使われている
- Bluetooth Low Energy
- IoTデバイスが普及したため出てきた新しい規格
- Classicに比べ遅いが、省電力
だいたい調べるとこんな話が書いてあって、わかるようなわからないような...
と思ったあなた向けに(実は自分のこと)、以下でそれぞれの特徴や仕組みを説明します。
Bluetooth Classic
スマートフォンにオーディオデバイスなどにペアリングする用途でよく知られています。
まずは登場人物です。
- クライアント
- 大体の場合スマホだと思ってもらえれば良いです
- サーバー
- オーディオデバイスなどです
では実際にペアリングする状況を考えてみます。
step | わかりやすい言葉 | 一応専門用語 |
---|---|---|
step1 | オーディオデバイスのペアリングボタンを押してペアリングモードにする | アドバタイズ(接続可能なことを周知するためにサーバーが 小さいパケットを送信) |
step2 | スマホ画面上にデバイスが検出される | クライアントがスキャン、受信 |
step3 | スマホで対象デバイスをタップし、ペアリング要求、ペアリング完了 | ピコネットを作成(Bluetooth接続によって作られた 小さなネットワーク) |
もう少し細かく特徴を言うと...
- server同士は直接やりとりできず、必ずclientを通して通信できる
- 最大 3Mbps までデータをストリーム可能(オーディオ、ファイルに向いている)
- 同期できる距離は~20m程度
だそうです。
Bluetooth Low Energy(BLE)
新しいものが出てくるということは、これまでのBluetooth Classicに不満が出てきたということですよね。
BLEが出てきた背景としては、IoT デバイスの普及がトリガーっぽく
- 小さなバッテリーしか搭載されていないことが多い
- スクリーンなどが備わっていないことが多い
- 多くのデバイスは「常に ON」である必要がある
ということで、Bluetooth の海外標準化団体である Bluetooth Special Interest Group(SIG)が新しい規格を作成したという流れだそうです。
さらに重要なのは、オーディオデバイスなどは1対1(1個のオーディオデバイスと1個のスマホ)の通信が前提ですが、IoTデバイスの場合は1対多(1個のIoTデバイスに対して複数のスマホ)の通信が重要になるという点です。
以下ちょっとした具体例です。
- 状況
- スマートライトをBluetoothで接続する場合
- Bluetooth Classisの場合
- 1個のスマホと接続しても別のスマホに発見してもらうまで連続的にアドバタイズし続ける必要があり、エネルギー消費が大きくなりすぎる
- BLEの場合
- 接続されるまで「スリープ状態」にすることが可能で、エネルギーの節約になる
ではBLEの場合、どのようなペアリングの流れとなるか?ですね。
少し登場人物の名前が変わります。
- セントラル
- Classicのクライアント相当のものです
- 大体の場合スマホだと思ってもらえれば良いです
- ペリフェラル
- Classicのオーディオデバイス相当のものです
- 先の例でいうスマートライトです
step | わかりやすい言葉 | 一応専門用語 |
---|---|---|
step1 | オーディオデバイスのペアリングボタンを押してペアリングモードにする | アドバタイズ(通常は省電力で待機、接続時だけ~20回/s の小さなパケットを周知) |
step2 | スマホ画面上にデバイスが検出される | セントラルが受信。受信した電波の強さに関する情報も得られる(受信電波強度: RSSI) |
step2' | - | 接続要求(ペリフェラルが自分に対する接続要求が飛んでこないか待機してセントラルから受信) |
step3 | スマホで対象デバイスをタップし、ペアリング要求、ペアリング完了 | GATT通信(セントラルとペリフェラルで1対1通信を開始) |
さいごに
うーーん、なんか実装してみたい!
reference
Discussion