MIT APP Inventor2でBluetooth LE通信のスマホアプリ作成方法

Pocket

 MIT APP Inventor2(以下inventor2)のBluetooth LEコンポーネントの使い方を中心にまとめておきます。従来のBluetooth規格(クライアント、サーバ)のコンポーネントは昔からありましたが、いつ頃からかBluetooth LE(Bluetooth Low Energy以下BLE)のコンポーネントが準備されてます。

 

 ただ、BLEコンポーネントに関しては現時点、公式ではなくテスト環境でのみ使用可能な状況となっています。方法は2通りありますが良し悪しが少しあります。また当然ですがスマホがBLEに対応している必要があります。

 

Inventor2でBLEコンポーネントを使用するには(2016/9/24時点)

  • テスト環境のサイトURLを使う方法

作成したアプリをスマホへインストールして問題なく動作します。ただ AI Companionの動きが少しおかしいためデバックは少し面倒です。

  • Extensionで別途BLEコンポーネントをアップロードする方法

Extensionで別途BLEコンポーネントをアップロードして使用します。ただこの場合だと、作成したアプリをスマホへインストールした後の動作がおかしいです。AI Companionでのデバックでは正しく動作します。

 

 検証目的であればExtensionの対応で十分ですが、スマホへインストールを考えているのであれば、テストURLを使用するしかありません。いつかは公式環境でもBLEコンポーネントが配置されると思います。

 

 以下から具体的な使用方法を時系列で説明します。今回は、スマホ側をセントラルとして、アドバタイジングされたペリフェラルを見つけ出し接続します。その後、データの送信、及び受信を行います。

 

BLE機器(ペリフェラル)と接続

089_1
 アドバタイジングされたペリフェラルのスキャンを開始します。ここではアプリを起動したらスキャンを開始してます。

 

089_3
 ペリフェラルを見つけたらListPickerのリストへBLE機器の一覧を格納。

 

089_4
 リストで選択されたペリフェラルのMACアドレス部を抜き取り接続します。BLE接続はこれで完了です。MACアドレスを一度変数へ格納してますが直接指定しても問題ないでしょう。

他にはこういったように
089_5
 周辺にBLE機器が1台しかない場合はこのように直接接続しても問題ないです。複数BLE機器がある場合は、どの機器と接続するかわからないため、前述したListPickerを使用します。

<スポンサーリンク>

 

 

BLE送信

089_6
 ペリフェラルで設定されているサービスのUUIDとキャラクタリスティックのUUIDを指定して、送信するデータをvalueへセットします。データ送信はこれだけで完了です。

 

 ここではボタンがクリックされたら、string型の文字配列を送信してますが、int型やfloat型などのブロックも準備されています。

 

BLE受信

089_7
 送信同様に、ペリフェラルで設定されているサービスのUUIDとキャラクタリスティックのUUIDを指示して一旦データを読み込みます。ここではTimerコンポーネントを使用して定期的にデータの読み込みを行ってます。

 

089_8
そのあと、データが読み込まれた時にテキストボックスに受信したデータを表示しています。ローカル変数が用意されているため、受信データの読み込みはローカル変数から読み込みます。

 

 ここではstring型を例としてますが、読み込むデータの変数型に合わせたブロックを使用します。

 

BLE切断

089_9
 見たままですが、接続中のペリフェラルのMACアドレスを指示してBLE接続を切断します。

 

 基本的な使い方は以上です。一部のブロックの説明でしたがほかにも多くのブロックが準備されてますのでより複雑な処理も可能で、BLEの知識があまり無くても割と簡単に利用できるかと思います。

 

 

Pocket

<スポンサーリンク>


この投稿へのコメント

  1. 匿名 said on 2016-12-14 at 12:55

    テスト環境のサイトURLを使う方法のURLが見つからなかったけど、次のurlですかね?

    http://ble-test.appinventor.mit.edu

    • imo said on 2016-12-14 at 22:31

      しばらくMIT側の確認してませんが更新なければそうです。

  2. rina said on 2017-01-26 at 17:17

    テスト環境のサイトを使うというのは具体的にどう行うのでしょうか…?

    • imo said on 2017-01-26 at 19:32

      http://ble-test.appinventor.mit.edu/
      のURLからログインすればBLEコンポーネントがあるはずです。ここでログインしてアプリを作成します。

      現時点で通常のURLでは未だ正式にリリースされていない機能のようです。http://appinventor.mit.edu/explore/

コメントを残す

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

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL