新ファーム機能!EdisonでBLE機器を制御してみた

前回、EdisonでBLE機器が検索できることを確認したので、Edisonを使ってBLE機器の制御を行ってみたいと思います。

 

環境準備

使用機器


使用したのは、iPhoneや家の鍵などの紛失を防ぐためのキーホルダー型Bluetooth機器です(以下、探せるキーホルダー)。専用アプリを使用してiPhoneからブザーを鳴らしたり、指定した距離を離れた際に、振動して知らせる機能があります。

商品情報では”iPhone専用”となっていますが、Edisonからの制御ができるのか、試してみたいと思います。

imageiBUFFALO Bluetooth4.0+LE対応 iPhone4S専用探せるキーホルダー BSHSBTPT01BK

無線インターフェース:Bluetooth Ver4.0 + LE

対応機器:iPhone4S、iPhone5S、iPhone5C

対応プロファイル:PXP(近接プロファイル)、FMP(Find Meプロファイル) 

 

Edisonへのnobleインストール


nobleは、node.jsを使用してbluetooth制御を行うためのモジュールです。Edisonにも対応しているため、TONGARISMではnobleを使用して、探せるキーホルダーとの通信を行いました。

nobleは、以下のコマンドでインストールすることができます。

npm install noble

 

対応機能を調べてみる

BLEの制御を行うために、まずは探せるキーホルダーがどんな機能に対応しているかを調べてみたいと思います。

BLEの通信仕様では、デバイスの中にServiceと呼ばれる機能のまとまりがあり、さらにその中にCharacteristicと呼ばれる細かい複数の機能が存在します。

使用する機器がどのようなService、Characteristicに対応しているかを知ることで、その機器に対して何ができるのを知ることができます。

 

対応機能取得プログラム


nobleのI/F仕様を参考に、対応しているServiceとCharacteristicを取得するコードを作成しました。

 

取得結果


 取得した結果、探せるキーホルダーは以下のようなService、Characteristicに対応していることがわかりました。 

ServiceCharacteristicアクセス方法概要
Generic AccessDevice Namereadデバイス名
Appearance read製品カテゴリ
Peripheral Preferred Connection Parametersread接続パラメータ
Link LossAlert Levelread/write機器接続が切れた際の動作
Immediate AlertAlert LevelwriteWithoutResponseブザー鳴動などのアラーム動作
Tx PowerTx Power Levelread送信電力
Battery ServiceBattery Levelreadバッテリー残量

 

 

BLE機器の制御

 次に、先ほどの取得結果から

  • デバイス名の取得
  • アラームの鳴動
  • バッテリー残量の取得

を行ってみたいと思います。

 

プログラム


 BLEの制御は、使用したい機能のCharacteristicに対してデータを読み書きすることで行われます。

 

実行結果


デバイス名(BSHSBTPT01BK)・バッテリー残量(100%)の取得、バイブ鳴動を行うことができました!

testtttt 

次回は…

iPhoneアプリのように、離れたらアラームが鳴動する機能を動作させてみたいと思います。

image

Leave a Reply

メールアドレスが公開されることはありません。