SHOEISHA iD

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

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

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発(AD)

IoTセンサーデータから過去の気象データをもとに体感温度を求めてツイートするアプリケーションをつくる

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発 【第2回】

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

Node-REDの準備

次に、アプリケーションの作成環境の準備を行います。 Bluemixにログインして「ダッシュボード」を開き、画面上部のメニューから「カタログ」をクリックします。

ダッシュボードで「カタログ」をクリック
ダッシュボードで「カタログ」をクリック

「ボイラーテンプレート」の一覧が表示されるので、「Node-RED Starter」を探してクリックします。 このとき、画面左のメニューで表示するサービスなどを絞り込むこともできます。

ボイラーテンプレートの一覧で「Node-RED Starter」をクリック
ボイラーテンプレートの一覧で「Node-RED Starter」をクリック

Node-RED Starterの作成画面が開いたら、アプリケーションを作成する「スペース」を指定し、アプリケーションの「名前」と「ホスト」を入力して「作成」をクリックします。 ホスト名はBluemix全体でユニークである必要があります。

Node-RED Starter作成画面でスペースなどを入力
Node-RED Starter作成画面でスペースなどを入力

Bluemix上で環境構築(アプリケーションのステージング)が始まるので、終わるまでしばらく待ちます。

アプリケーションのステージング
アプリケーションのステージング

環境構築が完了すると「アプリは稼動しています」と表示されます。

アプリケーションのステージング完了
アプリケーションのステージング完了

画面左のメニューから「概要」をクリックし、作成されたアプリケーションを確認します。 上段の名前の下に表示されている「経路」が、今回作成したNode-REDフローエディターへのリンクです。

画面右にはアプリケーションの稼動状況およびログが表示されています。 また、画面下部には現在バインドされているサービスが表示されています。 Node-RED Starterでは、標準で「Cloudant NoSQL DB」がバインドされています。 「サービスまたはAPIの追加」から、その他のサービスを追加することもできます。

概要
概要

では、「経路」のリンクをクリックして、Node-REDフローエディターにアクセスしてみましょう。 リンク先の「Go to your Node-RED flow editor」をクリックします。

Node-RED in Bluemix
Node-RED in Bluemix

Node-REDフローエディター画面が開きます。エディター各部分の意味は表のとおりです。

Node-REDフローエディター
Node-REDフローエディター
Node-REDフローエディター各部分の意味
部分 名称 役割
ノードパレット 分類されたノードの一覧
シート シートごとにフローを作成する。「+」からシートを追加できる
ワークスペース ノードを配置して繋げ、フローを作成する
ノード 機能をカプセル化したモジュール
フロー ノードを繋げて処理の流れを定義したもの
デプロイ 作成したフローをデプロイする
情報またはデバッグコンソール 選択しているノードの情報またはデバッグコンソールを表示する

Node-REDでは、画面左のノードパレットからノードを画面中央のワークスペースに配置し、ノード同士を線で繋いでフロー(処理)を作成します。 処理およびデータは、ノードの左(インプットポート)から入り、右(アウトプットポート)から出て行くイメージです。 ノードによっては、左右両方または片方のポートしかないものがあります。

ノード同士を線で繋いでフローを作成する
ノード同士を線で繋いでフローを作成する

Node-RED Starterには、Bluemixの各種サービス(WatsonやdashDBなど)と連携できるノードがあらかじめ用意されています。

Bluemixの各種サービスと連携できるNode-RED Starterのノード
Bluemixの各種サービスと連携できるNode-RED Starterのノード

Node-REDの使い方

さて、アプリケーションの作成に入る前に、Node-REDに関するいくつかのトピックを紹介しましょう。

ログインユーザー名とパスワードの設定

Node-RED Starterの環境構築直後は、ログインパスワードが設定されていません。 このままの状態では、アプリケーションのURLにアクセスすると誰でもNode-REDフローエディターを利用できてしまいます。 使い始める前にパスワードを設定しておきましょう。 設定方法は、Node-REDフローエディターを開くボタンの下部にある「Learn how to password-protect your instance」に記述されています。

パスワードの設定方法
パスワードの設定方法

説明に従って、Bluemixの「環境変数」から「ユーザー定義」にユーザー名とパスワードを設定します。

環境変数のユーザー定義にユーザー名とパスワードを設定
環境変数のユーザー定義にユーザー名とパスワードを設定

これで、Node-REDフローエディターにアクセスしようとするとユーザー名とパスワードの入力が求められるようになります。

Node-REDへのログイン
Node-REDへのログイン

「Hello World」を書いてみる

それでは、最も簡単な例として、「Hello World」を表示するフローをNode-REDで書いてみましょう。 まず、画面左のノードパレットからInputのInjectノードとOutputのDebugノードをワークスペースにドラッグ&ドロップします。 そして、Injectノードのアウトプットポート(右側)からDebugノードのインプットノード(左側)へマウスをドラッグしてノード同士を繋ぎます。

フローの作成
フローの作成

Injectノードをダブルクリックするとノードの編集画面が開きます。 「Payload」欄のリストから「string」を選択し、“Hello World”と入力します。 入力した文字列は、payloadという名前のキーに格納されて後続のノードに渡されます。 「Name」欄は、ワークスペース上で表示するノードの名称(任意)です。 「Ok」をクリックして画面を閉じます。

ノードの編集画面
ノードの編集画面

画面右上の「Deploy」ボタンをクリックします。

作成したフローのデプロイ
作成したフローのデプロイ

デプロイが成功したら動かしてみましょう。 画面右上にある「debug」タブをクリックして、デバッグコンソールを表示しておきます。 Injectノードの左にあるインジェクトボタンをクリックして、デバッグコンソールに“Hello World”と表示されれば成功です。

Hello Worldの実行
Hello Worldの実行

Debugノードを使用したデバッグ

Debugノードはとてもよく使うノードです。 デフォルト設定では、受け取ったメッセージのpayloadキーの値のみを表示します。 フローで流れているJSON形式のメッセージ全体を表示したい場合には、Debugノードの編集画面の「Output」欄を「complete msg object」に変更します。

Debugノードの設定
Debugノードの設定

先ほどと同様に画面右上の「Deploy」ボタンをクリックして、実行します。 先ほどとは異なり、デバッグコンソールにJSON形式のメッセージ全体が表示されていることが確認できます。

デバッグコンソール
デバッグコンソール

ゴミ箱のアイコンをクリックするとデバッグコンソールをクリアできます。

デバッグコンソールのクリア
デバッグコンソールのクリア

デバッグコンソールへの出力を一時的にオフにしたい場合には、Debugノードの右側のボタンでオフにします。 もう一度クリックするとオンに戻ります。

Debugノードが増えてくるとフローのどの部分の情報なのかが分かりづらくなります。 状況に応じて切り替えると、デバッグ作業がしやすくなります。

デバッグコンソールへの出力ON/OFF
デバッグコンソールへの出力ON/OFF

フローのエクスポート/インポート

作成したフローは、JSON形式でエクスポートまたはインポートできます。

まず、エクスポートの方法です。 エクスポートしたいフローをワークスペース上で選択します。 この時、ドラッグしながら範囲指定すると複数のノードを一括で選択できます。 選択されたノードは淵が橙色で表示されます。 この状態から画面右上のメニューから「Export」-「Clipboard」を選択します。

エクスポート
エクスポート

表示されたテキストをクリップボードにコピーして別途保管します。

クリップボードへコピー
クリップボードへコピー

次に、インポートの方法です。 画面右上のメニューから「Import」-「Clipboard」を選択します。

インポート
インポート

先ほどエクスポートしたテキストを貼り付けてみましょう。

クリップボードからコピー
クリップボードからコピー

ワークスペースにインポートしたフローが追加されます。 ノードによってはインポート後、個別にノードの再設定(各種サービスへの接続情報など)が必要な場合があります。

このように、作成したフローを簡単にエクスポートまたはインポートできます。

Twitterへのツイートを行ってみる

次に、Twitterへツイートするフローを作成してみましょう。 使用可能なTwitterアカウントをお持ちでない方は、事前に登録をお願いします。

最初に、SocialのTwitterノード、Injectノード、Debugノードを配置して、下図のように繋ぎます。

Twitterへツイートするフローの配置
Twitterへツイートするフローの配置

Twitterノードの編集画面を開き、「Twitter ID」欄右端のペンのアイコンをクリックします。

Twitterノードの編集画面でペンのアイコンをクリック
Twitterノードの編集画面でペンのアイコンをクリック

「Click here to authenticate with Twitter.」をクリックします。

「Click here to authenticate with Twitter.」をクリック
「Click here to authenticate with Twitter.」をクリック

連携アプリの認証画面が表示されます。 Twitterへのログイン情報を入力して「連携アプリを認証」をクリックします。

連携アプリを認証
連携アプリを認証

次の表示が出たら認証は完了です。画面を閉じます。

連携アプリの認証が完了
連携アプリの認証が完了

Twitterノードの編集画面に戻ると「Twitter ID」に連携したTwitter IDが表示されます。 「Add」をクリックします。

「Add」をクリック
「Add」をクリック

「Ok」をクリックして編集画面を閉じます。

「Ok」をクリック
「Ok」をクリック

Twitterノードのステータスが青くなっていれば設定は完了です。

Twitterノードのステータスが青くなっていれば設定は完了
Twitterノードのステータスが青くなっていれば設定は完了

インジェクトボタンをクリックして、Twitterにタイムスタンプ値がツイートされていることを確認してください。

Twitterにタイムスタンプ値がツイートされた
Twitterにタイムスタンプ値がツイートされた

IoTを始めたい方も・本格導入を検討中の方も:おすすめソリューションのご紹介

ビジネスのパフォーマンスを高めようとさまざまな業種・企業で、IoT活用を前提とするプロジェクトが動き始めています。ただし、検討を始めて最初に出てくるのは、こんな要望ではないでしょうか。

「最初は実験的にスタートしたいから、小さく簡単に素早く始めたい」
「実運用に移ったときには10万・100万単位のセンサ/デバイスに対応できるスケーラビリティも確保したい」

これにお応えできるサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)

次のページ
IoTセンサーシミュレーターのデータをCloudantへ保存するアプリケーションの作成

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

  • このエントリーをはてなブックマークに追加
Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発連載記事一覧

もっと読む

この記事の著者

吉田 武司(ヨシダ タケシ)

株式会社ソルクシーズ ソリューション部 所属。IBM Notes/Domino 一筋20年。2013年度、2014年度、2015年度IBM Champions for ICS(http://www.ibm.com/developerworks/champion/)に選出される。XPages Extensio...

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9282 2016/04/04 02:08

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング