SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoTをかじってみよう

IoTをかじってみよう(6)
~Node-RED for Bluemixによる開発とIoTアプリケーション開発の留意点

  • X ポスト
  • このエントリーをはてなブックマークに追加

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のようになります。

図11 Internet of Things追加後
図11 Internet of Things追加後

Internet of Things Foundationへのmbedデバイスの追加

 Bluemixのダッシュボードで「Internet of Things Platform」サービスのタイルをクリックします。表示されたInternet of Things Platformの初期ページにある「ダッシュボードを起動」をクリックします(図12)。

図12 ダッシュボードを起動
図12 ダッシュボードを起動

 この後、「Internet of Things Platform」のダッシュボード(図13)起動後のmbedデバイス追加手順を、「デバイス・タイプの追加」と「デバイスの追加」に分けて解説します。

 IoTサービスでは通常、大量のデバイス情報を登録・管理する必要があるため、デバイスの種類別に「デバイス・タイプ」という区分を用意しておくことで、デバイス情報の登録・管理の手間を省力化できます。もっとも本手順のデバイスは1台なので、デバイス・タイプは1つだけ定義します(デバイス・タイプは、デバイス定義の際に必ず指定が必要になります)。

デバイス・タイプの追加
  1. ダッシュボードの「DEVICE TYPES」下部の「Add Device」ボタンをクリックする
  2. デバイス・タイプは未作成なので「デバイス・タイプの作成」をクリックする
  3. タイプの作成では「デバイス・タイプの作成」をクリックする
  4. 一般情報の「名前」に任意の値(本手順では「ARM_mbed」)を入力して「次へ」をクリックする(図14)
  5. テンプレートの定義は何も選択せず「次へ」をクリックする
  6. 情報の送信で「次へ」をクリックする
  7. メタデータは空のまま「作成」をクリックする
図13 Internet of Things Foundationのダッシュボード
図13 Internet of Things Foundationのダッシュボード
図14 デバイス・タイプの名前
図14 デバイス・タイプの名前
デバイスの追加
  1. デバイス・タイプの追加手順2の画面へ戻ると、追加したデバイス・タイプ名「ARM_mbed」が設定されているため「次へ」をクリックする
  2. 「デバイスID」として自分のmbedのデバイスID(注1)を入力(図15)する
  3. メタデータは空のまま「次へ」をクリックする
  4. セキュリティーはデフォルトの自動生成認証トークンを使用するため、そのまま「次へ」をクリックする
  5. 要約では内容を確認して「追加」をクリック(図16)する
  6. 追加されたデバイスの資格情報(組織ID、デバイス・タイプ、デバイスID、認証方式、認証トークン)が表示されるため、資格情報をコピーしてテキストエディタなどに控える
  7. デバイス資格情報を閉じる
図15 mbedのデバイスIDの入力
図15 mbedのデバイスIDの入力
図16 要約の確認
図16 要約の確認

注1

 デバイスIDを忘れた場合は、第2回の4ページ目に記載した方法を参照してください。

mbedクライアント側の設定変更

 次に、こちらのレシピを参考にmbedのセンサーデータの送信準備をします。

  1. mbedデベロッパー・サイトを開き、ログインする
  2. mbedのコンパイラーを開く
  3. プログラムワークスペースのマイプログラムから「IBMIoTClientEthernetExample」を選択する
  4. プログラムがワークスペースに存在しない場合は、検索条件にプログラム名「IBMIoTClientEthernetExample」を指定して検索し、インポートする
  5. プログラムをコンパイルしてバイナリファイルをダウンロードする
  6. main.cpp(図17)の38行目?41行目(2016年4月の執筆時点)を表2および図18を参考に変更し、コンパイルしたらバイナリファイルをダウンロードする
  7. プログラム変更後の手順6でダウンロードしたバイナリファイルを作業用PCのOSの操作でMBEDドライブへコピーする
  8. 作業用PCのOSの操作でMBEDドライブを取り外す
  9. mbedのアプリケーション・ボードとルーターをLANケーブルで繋ぎ、mbedのリセットボタンを押す
  10. Internet of Things FoundationのダッシュボードのARM_mbedにデータが送信されることを確認する。Internet of Things Foundationダッシュボードで登録済みのデバイスの行(図19)をクリックすると、イベントやセンサー情報の受信ログを確認できる。図20はイベントの受信ログの例
  11. 送信確認ができたら、いったんmbedからイーサネットケーブルを外してデータ送信を止める
図17 main.cpp
図17 main.cpp
表2 main.cppの変更
変更箇所 変更前 変更後
#define ORG "quickstart" "資格情報の組織ID"
#define ID "" "資格情報のデバイスID"
#define AUTH_TOKEN "" "資格情報の認証トークン"
#define TYPE DEFAULT_TYPE_NAME "ARM_mbed"
図18 変更後ソース
図18 変更後ソース
図19 ダッシュボードでのデバイス
図19 ダッシュボードでのデバイス
図20 イベントの受信
図20 イベントの受信

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
図21 IBM IoT App Inノードの変更
図21 IBM IoT App Inノードの変更
2)デプロイおよびデータ受信確認

 mbedとアプリケーション・ボードをインターネット接続状態にします。

 フロー・エディターのDeployをクリックして変更後のアプリケーションをデプロイすると、センサーデータを受信したことがデバッグログに出力されるはずです(図22)。

図22 デバッグログ
図22 デバッグログ

次のページ
新たなNode-REDアプリケーションを開発する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IoTをかじってみよう連載記事一覧

もっと読む

この記事の著者

谷口 督(日本アイ・ビー・エム株式会社)(タニグチ ススム)

2000年問題対応の時期にIT業界に入り、それ以来UNIX系のインフラ構築を担当。最近の関心事は、そろそろ出てきそうな画期的なテクノロジー探しや世の中が良くなるためのもの作りです。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山崎 まゆみ(日本アイ・ビー・エム株式会社)(ヤマザキ マユミ)

人・技術・本が好きなITエンジニア。公共・金融機関のアプリケーション開発/インフラ構築経験を持つ。プロジェクト現場で日々奮闘中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9396 2016/05/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング