【iOS】Bluetooth通信について

iOSでは、Bluetoothを利用した通信を行うためのフレームワーク

2種類用意されています。

・「Core Bluetooth

・「Game Kit」

です。

 

今回は、これらのフレームワークがどのような場面で利用されスマートフォンをどのように便利に利用できるようにするか紹介していきたいと思います。

 

まずBluetoothとは・・・

デジタル機器用の近距離無線通信規格の1つである。
数mから数十m程度の距離の情報機器間で、電波を使い簡易な情報のやりとりを行うのに使用される

Bluetoothの最新規格は、2012年12月現在では、4.0(2009年12月17日リリース)が最新です。

Bluetooth4.0では、低消費電力モードに対応する規格である「Bluetooth Low Energy(Blootooth LE)」が採用されており、これは従来のBluetoothとの間に互換性はありません。

 

Bluetooth対応デバイスは現在下記の3つの呼称で分類されています。

    ■[1]Bluetooth Smart

           Bluetooth LEによる低消費電力モードのみで通信を行うデバイスにあたります。

           Bluetooth Smart Readyデバイスとの間でのみ通信が可能です。

    ■[2]Bluetooth Smart Ready

           Bluetooth LEによる低消費電力モードで通信をする子機との通信に対応し、かつ従来のBluetooth機器との通信ができるデバイスにあたります。

    ■[3]Bluetooth

           従来のBluetooth通信のみを行うデバイスにあたります。

 

iOSデバイスのBluetooth対応状況

規格デバイス
Bluetooth4.0(Bluetooth Smart Ready) iPhone 4S 新しいiPad(第3世代)
Bluetooth2.1+EDR iPhone4 iPad2 iPod touch(第4世代)

※EDRとは:容量の大きいデータを通信する際に最大通信速度が3Mbpsの通信に切り替えるEDR (Enhanced Data Rate)

 

プロファイル

    Bluetoothはその特性上、様々なデバイスでの通信に使用されるため、機器の種類ごとに策定されたプロトコルがあり、これをプロファイル と呼び標準化しています。

通信しようとする機器同士が同じプロファイルを持っている場合に限り、そのプロファイルの機能を利用した通信を行うことができます。

 

iosに対応しているプロファイル一覧:http://support.apple.com/kb/HT3647?viewlocale=ja_JP

一般的なBluetoothプロファイル一覧(by wikipedia):http://ja.wikipedia.org/wiki/Bluetooth%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7

 

ちょっとブレイクで・・・

ここでは、Bluetooth smart を採用した機器のiPhoneと連携したデバイスをちょっと紹介します。

 

iPhoneを利用した心拍計

Blue HR for iPhone

 

Bluetooth Watch

 

 ■体温計

・・・ios5のサンプルアプリとして提供されている

f:id:mmmkenmmm:20121216160203p:plain

 

「Game Kit」を使ったBluetooth通信

 「Gmae Kit」フレームワークは、iOSデバイス間のP2P通信を簡単に実現する方法を提供しています。

P2P通信はBluetooth以外にもWiFiによって行うことができます。

Game Kitでは、iOSデバイス以外との通信は行えません。

 

では、以下にGame Kitを利用した実装方法手順を紹介していきます

 

■手順

  1. 接続デバイスの探索
  2. 接続デバイスの発見と接続
  3. データの送信
  4. 接続の切断

といった手順になります。

 

1.接続デバイスの探索

GKPeerPickerControllerクラスを使用します。

GKPeerPickerControllerクラスは、iOSデバイス同士のBluetooth接続に必要な処理とUIを提供しています。

  

 

showメソッドをcallすると以下のような画面が表示され接続するデバイスを探します。

f:id:mmmkenmmm:20121216163028g:plain

 

2.接続デバイスの発見と接続

接続可能デバイスがみつかると、以下の様な画面が表示されます。

f:id:mmmkenmmm:20121216163336g:plain

 

デバイスを選択すると、選択されたデバイス側で接続を許可するかを選択する画面が表示されます

f:id:mmmkenmmm:20121216163427g:plain

 

上記のAcceptを選択すると接続が完了し、

GKPeerPickerControllerDelegateの

peerPickerController:didConnectPeer:toSession:がcallされます

  

 

3.データ送信

 

4.接続の切断

 

Game Kitを利用したiPhoneのアプリ

フーフーミントン

 

また、次回はCore Bluetoothによる通信手順とサンプルを紹介したいと思います。