本日は各OSごとのBLE対応状況についてご説明します。(BLE = Bluetooth Low Energy, Bluetooth Smart:以下、BLEと表記します。)
無線化.comオリジナルUSBドングルと外付け用シリアルアダプタのご紹介
対Windows、組込みモジュール同士でBLE通信が可能に!セントラル版BLEモジュールZEAL-LE0-Cが登場
EPL登録不要!Windows環境に振り回されるのはもう勘弁!無線化.comオリジナルBluetoothドングル
このページの目次
通信相手デバイスがBluetooth4.0(BLE)に対応していても、ユーザが自由にBLE通信できるとは限りません。
『BLEモジュールを使って、スマートフォンやパソコンとBLE通信させたい。』
というエンジニアの方が増えています。無線化.comでもBLEモジュールZEAL-LE0をご提供しておりますが、通信相手選びには少し注意が必要です。
Windows, iOS, Android - 各OSごとにBLEの対応状況は異なり、対応デバイスも様々です。通信させたい相手デバイスがBLE通信を行えるのか、事前にしっかりと確認、把握しておくことが重要です。ここでは各OSごとのBLE対応状況と注意点について解説していきます。

BLE通信を行うのはGATTプロファイル。重要なのはGATT APIが利用できること
BLE通信は、GATT(Generic ATTribute)というプロファイルを使用します。当社のZEAL-LE0も当然GATTを搭載していますし、通信相手デバイスもGATTを搭載していることが必須条件となります。
ただ、相手デバイスにGATTが載っていればOKかというと、それだけでは十分ではありません。
ユーザ(メーカーエンジニア)がBLE通信のデータにアクセスするためには、OSレベルでGATTのAPIが用意されている必要があります。
※意味合い的には「Bluetooth(BLE)ドライバが用意されている」と置き換えても結構です。
つまり、仮にWindowsPCやスマートフォンにBLE(GATT)が搭載されていても、OSにGATT APIが用意されていなければ、ユーザが自作アプリ内で自由にBLEデータを扱うことはできません。
各OSごとのBLE対応状況
各OSのGATT API対応状況は下記の通りです。
iOS:iOS6以降
Android:Android4.4以降(注:正式には4.3以降だが、4.3は不具合あり)
iOS
もし安定したBLE通信を望むのであれば、真っ先に候補として挙がるのがiOSです。Apple自身がBLEの活用に積極的であり、BLEへの対応が一番進んでいます。(※AppleがBluetoothに力を入れていることは、昨年、Bluetooth SIGのプロモーターメンバーに参画したことからもわかります)
OSとしてはiOS6以降でGATT API(CoreBluetooth)が本格採用され、特に目立った不具合も聞かれません。
また、デバイス(ハードウェア)としてもiPhone4S以降でBLEに対応していることから、現在、国内で利用されている多くのiOSデバイス(iPhone、iPad)がBLEに対応していると考えられ、安心して利用できる通信デバイスと言えます。
ZEAL-LE0の製品紹介はこちら
iOSの注意点
- iOSアプリの開発には、Appleの Apple Developer Program 契約とMac本体が必要。
- iOSアプリの配信にはAppStoreへの登録審査が必要。
Android
AndoridはAndroid4.3からOSレベルでGATT APIに正式対応していますが、4.3では不具合があり、実質、Android4.4以降と考えて良さそうです。AndroidもBLEへの対応が進められていますが、iOSに比べると、機種によって動作が不安定な場合があり、その点がネックと言えます。利用機種を指定できる案件であればさほど問題にはなりませんが、多機種への対応が必要な案件であれば、BLE非対応機種が多いAndroidは大変かもしれません。
もし対AndroidでBLE通信を行う場合には、Googleがリリースしている「Nexusシリーズ」がおすすめです。Nexusシリーズはキャリアやメーカー独自のアプリがインストールされていないため、「混じりけのないAndroidOS」として扱うことができ、トラブルも少ないです。当社でもNexus6やNexus5, Nexus7を用いて動作確認を行っております。
AndroidでのBLE利用につきましては、下記サイトのようにかなり詳しく解説しているページがございますのでそちらをご参考ください。
http://mslgt.hatenablog.com/entry/2015/05/17/212257
http://qiita.com/HideMatsu/items/6a6758eca86500881126
http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-android.html
Androidの注意点
- 対応機種が限られているため、機種選定に制約がある。
- しかもAndroidは各メーカー、各機種ごとに、OSが独自カスタマイズされているため、仮にAndroid4.4以降の端末だとしても、実際に試してみなければBLE通信できるかわからないという懸念材料もある。
Windows
MicrosoftはWindows8.1からGATT APIに正式対応しました。従って、もしWindowsでBLEデータを扱いたければ、必然的にWindows8.1以降縛りということになり、Windows8以前のPCは対象外となります。
しかも、WindowsのGATT APIは不安定との情報が多く、まだ実用レベルに達していないとの見方が強いです。Microsoftが作るBluetoothドライバは、Windows Mobileの時代から不安定ということもあって、当社も極力利用を避けてきました。そう言った経緯もあることから、Windows OSで安心してBLE通信が行えるようになるまでには、まだまだ時間を要するかもしれません(今後、改善されていくことも間違いないと思いますが・・・)。
よくある誤解!Bluetooth4.0対応の市販USBドングルを使えばBLE通信できる?
Windows PCでBluetooth通信を行う場合、市販のUSBドングルを利用されている方も多いと思います。しかし、BLE通信において特にご注意いただきたいのが市販USBドングルの存在です。
市販されているUSBドングルの中には、Bluetooth4.0(GATT)に対応した製品もありますが、ドングル付属のBluetoothドライバはGATT APIを用意しているわけではないため、ユーザが自由にBLEモジュールと通信を行えるわけではありません(ZEAL-LE0に限らず、一般的なBLEモジュールでも通信できません)。例えばキーボードやマウスのような、ドングルが用意した使い方に限り、BLE通信ができるような仕組みになっています。このため、現状、対Windows PCでBLE通信を行いたい場合は、Windows8.1以降で、且つ非常に不安定なBluetoothドライバを用いるしかないというのが実情です。
解決策は、OSに依存しない無線化.comオリジナルドングルを利用すること
無線化.comオリジナルBLEドングルこのような状況を受け、当社ではZEAL-LE0と通信可能な「セントラル専用モジュールZEAL-LE0-C」と「専用USBドングル」をご提供しています。
市販USBドングルと比べるととても高価なものになってしまいますが、ドングル内部にGATTプロファイル内蔵のBLEモジュールを組み込むことで、従来のSPP同様、COMポートでBLEデータを受けられるというメリットがあります。
しかも、Windows側に必要なのはFTDIのUSBドライバだけになりますので、Windows OSのバージョンや環境変化に影響されないという大きなメリットが生まれます。エンドユーザ様から『Windowsのバージョンを上げたら、動いてたアプリが動かなくなった』というご経験があるメーカー様なら、このメリットはご納得いただけるのではないでしょうか。

この記事を書いた人
-
Bluetooth業界に足を踏み入れてから早10年。
初心者がイチから学んだ知識とノウハウを、初心者の方でもわかりやすいようにお伝えすることを心がけています。















