mbedのセンサーデータを入力データにする
以降の手順で、mbedから送信されるセンサーデータをNode-REDのデータフローへ入力できるように、サーバー側およびクライアント側へ変更を加えていきます。
Internet of Things Foundationサービスの追加とアプリケーションのバインド
Bluemixのダッシュボードから「サービス&API」タイルの「サービスまたはAPIの使用」をクリックします。サービスを「モノのインターネット」カテゴリで絞り込み、「Internet Of Things Platform」サービスをクリックしてください。
追加した「Internet Of Things Platform」サービスを、Bluemixの作成済みアプリケーション(本手順では「iotmytestapp」)にバインドします。ここでは「無料」のプランを用います。「作成」をクリックすることにより「IBM Internet of Things」サービスが作成されて「iotmytestapp」アプリケーションにバインドされます。
アプリケーションの再ステージングの確認ダイアログが出たら、再ステージしてください。サービス追加後のダッシュボードは図11のようになります。
Internet of Things Foundationへのmbedデバイスの追加
Bluemixのダッシュボードで「Internet of Things Platform」サービスのタイルをクリックします。表示されたInternet of Things Platformの初期ページにある「ダッシュボードを起動」をクリックします(図12)。
この後、「Internet of Things Platform」のダッシュボード(図13)起動後のmbedデバイス追加手順を、「デバイス・タイプの追加」と「デバイスの追加」に分けて解説します。
IoTサービスでは通常、大量のデバイス情報を登録・管理する必要があるため、デバイスの種類別に「デバイス・タイプ」という区分を用意しておくことで、デバイス情報の登録・管理の手間を省力化できます。もっとも本手順のデバイスは1台なので、デバイス・タイプは1つだけ定義します(デバイス・タイプは、デバイス定義の際に必ず指定が必要になります)。
デバイス・タイプの追加
- ダッシュボードの「DEVICE TYPES」下部の「Add Device」ボタンをクリックする
- デバイス・タイプは未作成なので「デバイス・タイプの作成」をクリックする
- タイプの作成では「デバイス・タイプの作成」をクリックする
- 一般情報の「名前」に任意の値(本手順では「ARM_mbed」)を入力して「次へ」をクリックする(図14)
- テンプレートの定義は何も選択せず「次へ」をクリックする
- 情報の送信で「次へ」をクリックする
- メタデータは空のまま「作成」をクリックする
デバイスの追加
- デバイス・タイプの追加手順2の画面へ戻ると、追加したデバイス・タイプ名「ARM_mbed」が設定されているため「次へ」をクリックする
- 「デバイスID」として自分のmbedのデバイスID(注1)を入力(図15)する
- メタデータは空のまま「次へ」をクリックする
- セキュリティーはデフォルトの自動生成認証トークンを使用するため、そのまま「次へ」をクリックする
- 要約では内容を確認して「追加」をクリック(図16)する
- 追加されたデバイスの資格情報(組織ID、デバイス・タイプ、デバイスID、認証方式、認証トークン)が表示されるため、資格情報をコピーしてテキストエディタなどに控える
- デバイス資格情報を閉じる
注1
デバイスIDを忘れた場合は、第2回の4ページ目に記載した方法を参照してください。
mbedクライアント側の設定変更
次に、こちらのレシピを参考にmbedのセンサーデータの送信準備をします。
- mbedデベロッパー・サイトを開き、ログインする
- mbedのコンパイラーを開く
- プログラムワークスペースのマイプログラムから「IBMIoTClientEthernetExample」を選択する
- プログラムがワークスペースに存在しない場合は、検索条件にプログラム名「IBMIoTClientEthernetExample」を指定して検索し、インポートする
- プログラムをコンパイルしてバイナリファイルをダウンロードする
- main.cpp(図17)の38行目?41行目(2016年4月の執筆時点)を表2および図18を参考に変更し、コンパイルしたらバイナリファイルをダウンロードする
- プログラム変更後の手順6でダウンロードしたバイナリファイルを作業用PCのOSの操作でMBEDドライブへコピーする
- 作業用PCのOSの操作でMBEDドライブを取り外す
- mbedのアプリケーション・ボードとルーターをLANケーブルで繋ぎ、mbedのリセットボタンを押す
- Internet of Things FoundationのダッシュボードのARM_mbedにデータが送信されることを確認する。Internet of Things Foundationダッシュボードで登録済みのデバイスの行(図19)をクリックすると、イベントやセンサー情報の受信ログを確認できる。図20はイベントの受信ログの例
- 送信確認ができたら、いったんmbedからイーサネットケーブルを外してデータ送信を止める
変更箇所 | 変更前 | 変更後 |
---|---|---|
#define ORG | "quickstart" | "資格情報の組織ID" |
#define ID | "" | "資格情報のデバイスID" |
#define AUTH_TOKEN | "" | "資格情報の認証トークン" |
#define TYPE | DEFAULT_TYPE_NAME | "ARM_mbed" |
Node-REDアプリケーションの変更
iotmytestappアプリケーションが稼働中であることを確認し、経路のURLをクリックしてNode-REDのフロー・エディターを開きます。mbedのデータを入力できるようにノードの定義を変更して、動作を確認します。
1)IBM IoT App Inノードの変更
該当のノードをダブルクリックして構成ダイアログを開き、プロパティを以下のとおり変更して「Ok」をクリックします(図21)。
- Authentication:Bluemix Service
- Input Type:Device Event
- Device Type:ARM_mbed
- Device Id:デバイスID
- Event:status
- Format:json
2)デプロイおよびデータ受信確認
mbedとアプリケーション・ボードをインターネット接続状態にします。
フロー・エディターのDeployをクリックして変更後のアプリケーションをデプロイすると、センサーデータを受信したことがデバッグログに出力されるはずです(図22)。