SHOEISHA iD

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

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

IoTをかじってみよう

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

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

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

 最後にNode-REDでの開発の応用編として、サンプルフローをカスタマイズして別の振る舞いをするアプリケーションに変更してみましょう。

 無人の場所に設置された物体にセンサーを仕掛け、物体が動かされたらTwitterで通知するというシナリオを実現するアプリケーションを作成します。

作成するアプリケーションの概要

  • accelXまたはaccelYの値が-0.1から0.1の間は正常範囲、左記以外を異常とする
  • accelZの値が-1.5から1.5の間は正常範囲、左記以外を異常とする
  • Twitterには同一メッセージの連投制限があるので、毎回メッセージの内容を変化させる
  1. 温度センサーではなく加速度センサーのデータをアプリケーションの入力として利用する
  2. 加速度センサーのX軸、Y軸、Z軸それぞれの閾値を設定し、正常・異常を判定する
  3. 異常時にメッセージをTwitterにつぶやく

作成済みフローの例

 作成済みフローの例は図23のようになります。

図23 作成済みのフロー
図23 作成済みのフロー

アプリケーション作成のための変更ポイント

 それでは、これからアプリケーション作成のための変更ポイントを解説します。

1)温度センサーではなく加速度センサーのデータをアプリケーションの入力として利用する

 mbedクライアント側のプログラムは、Internet of Things Platformサービスへ加速度センサーのデータも送信するため、入力ノード(図23では「IBM IoT App In」)は変更不要です。

 加速度センサーのデータは、accelX、accelY、accelZとして参照することができるため、図24のように定義しましょう。

図24 accelXのみを取り出すファンクション
図24 accelXのみを取り出すファンクション
2)加速度センサーのX軸、Y軸、Z軸それぞれに閾値を設定し、正常・異常を判定する

 このアプリケーションの閾値は、動作確認しやすいように異常値を発生させやすくしています。

 mbedおよびアプリケーションボードを机上などの平面に設置した状態でX~Z軸の値が示す範囲を一定時間観察したうえで、ゆっくり傾けたり動かした時のセンサーの値の変化を確認して閾値を決めました(図25)。

図25 accelXの判定
図25 accelXの判定
3)異常時にメッセージをTwitterにつぶやく

 Twitterに出力するノードは、フロー・エディターの左側ペインの「Social」カテゴリーにあります。鳥のマークが右側に付いたノードを配置しましょう(左側にマークがついたノードは入力ノード、右側にマークがついたノードは出力ノードです)。

 構成ダイアログでは、ご自身がお持ちのTwitterアカウントでAPIを利用するための設定を行います。アプリケーションから自動ツイートするため、テストとして使っても良いTwitterアカウントを設定してください。

 Node-REDからTwitter APIを利用できるようにするための設定手順を図26~29に示します。図27の操作の後、次のメッセージが表示されたらNode-REDのフロー・エディターへ戻って設定を行います。

 「Authorised - you can close this window and return to Node-RED」

 フロー・エディターへ戻ると図28のようにTwitterのIDが構成ダイアログに表示されるため「Add」をクリックします。

図26 Node-RedからのTwitter利用1
図26 Node-RedからのTwitter利用1
図27 Node-RedからのTwitter利用2
図27 Node-RedからのTwitter利用2
図28 Node-RedからのTwitter利用3
図28 Node-RedからのTwitter利用3
図29 Node-RedからのTwitter利用4
図29 Node-RedからのTwitter利用4

 Twitterにつぶやくメッセージの文言は、ファンクションとして定義します。同一文言の連投制限を回避するために毎回メッセージの文言を変えるため、getTimeメソッドの結果をメッセージ文言の先頭に追加しています(図30)。

 テストメッセージの文言はインターネットに公開されるため、この例では、直接的な言い回しは避けました。

図30 メッセージ
図30 メッセージ

 この後の動作確認のため、デバッグログを出力可能とします。図31で印をつけたスイッチをクリックすることにより、デバッグログ出力のオン・オフを切り替えることが可能です。図31のようにスイッチが飛び出て濃い緑色の状態になっていれば、ログが出力されます。

図31 デバッグログのオン
図31 デバッグログのオン

次のページ
動作確認

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

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

もっと読む

この記事の著者

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

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

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

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング