無料ブログはココログ

« 買って良かったキーボードPC(WP004)購入記 | トップページ | [#Node-RED] RedmineのREST API を呼ぶ »

[#Node-RED] Hello World!からNode-REDを知る

Node-REDはIoT向けのビジュアルツールで、データフローを定義することでプログラミングできます。IBMのEmerging Technologyというチームが開発し、オープンソースで公開されているほか、Bluemixでサポートされています。

node.jsが動作する環境で利用することができますが、体験するだけならFREDにアカウントを作れば無料で色々と開発できます。今回はFREDを使って説明します。
(2016/4/18 追記:無料で利用できるのは72時間までになりました)

まずはHello World!

Node-REDはノードと呼ばれるモジュールを組み合わせて、フローと呼ばれるプログラムを構成します。

ノードには標準のものと公開されているもののほか、カスタムノードがあります。独自のロジックを作るには標準のファンクションノードにJavascriptのプログラムを書くか、Javascriptとhtmlでカスタムノードを作ることになります。

最もシンプルなプログラムは、標準ノードを組み合わせて設定するだけでできます。左側にあるノードをドラッグ&ドロップして配置し、各ノードの丸と丸の間をつなぐだけです。いわゆる「Hello World !」は以下の様になります。

20160410_235702_2

図の上部に3つ直線に並んでいるものをノードという基本的な処理で、最初のノードが「http in」というノードでURLとメソッド「GET」を設定しています。中央のチェンジノードはmeg.payloadに「こんにちは」という文字列を設定しています(ダブルクリックで設定できます)。最後の「http response」ノードは受け取ったmeg.payloadを返します。

たったこれだけの設定で右上の[Deploy]ボタンを押すだけでwebアプリを構築でき、設定したURLにブラウザでアクセスすると、「こんにちは」と表示されます。

(FREDはマルチユーザ対応していますのでURLに特別なルールがあります。ユーザ・ドキュメントを確認してください)

どこでもダンプ& 簡単結合

「msg」と表示さているノードはデバッグノードで、右側のdebugタブに設定したオブジェクトが表示されます。設定によってmsgオブジェクトの一部を表示することもできます。

ノード間はmsgオブジェクトが受け渡されますので、 任意のところに接続するとその全てをダンプできます。これは分割して開発している場合にとても便利です。

先行する処理の出力を、後続する処理の入力として「inject」ノードから与えると、別の拠点で開発していても、事前に結合の確認ができます。

インポートで共有

分散開発にはインポート/エクスポートも便利です。プログラムはJSONファイルですので、右上のハンバーガー(三本線メニュー)-> Import -> Clipbord でペーストすると、他の人の開発したプログラムを読み取ることができます。

例えば GUIでカンタン開発!Node-REDでズンドコキヨシ on @Qiita の下の方にあるJSONをコピーし、上記の方法でインポートしてデプロイすると、すぐにズン!ドコ!キヨシ!を実行できます。

人に渡す場合は、対象のノードを選んでおいて、 右上のハンバーガー(三本線メニュー)-> Export -> Clipbordで表示できますので、コピーして利用します。

最初に示したHello World !はこんな感じになります。

これをFREDでインポートして、https://fred.sensetecnic.com/public/<アカウント名>/hello でアクセスすると「こんにちは」と表示されます。

Node-REDでシステムを開発する際に注意すべき汎用性と保守性について説明する予定でしたが、次回以降もRedmineの紹介をもう少しする予定です( [#Node-RED] RedmineのREST API を呼ぶ)。

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

« 買って良かったキーボードPC(WP004)購入記 | トップページ | [#Node-RED] RedmineのREST API を呼ぶ »

Node-RED」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 買って良かったキーボードPC(WP004)購入記 | トップページ | [#Node-RED] RedmineのREST API を呼ぶ »