Help us understand the problem. What is going on with this article?

Node-RED事始め

More than 1 year has passed since last update.

Node-REDの基本的な事をまとめます。

概要

Node-REDはIBM英国Hursley研究所のメンバーを中心に開発されていますのでBluemix IBM Cloud(IBM社が提供するPaaS)でしか動かないものだと勘違いされている方もいらっしゃいますが、Node-RED自体はオープンソースソフトウェアであり、Node.jsが動く環境であればどこでも動かせます。

Bluemix IBM Cloudなどのクラウド上で動かすこともできれば、ローカルのPCやRaspberry Piでも動作させることが可能です。後述しますがNode-REDはBLE(Bluetooth Low Energy)や各種センサープロトコルに対応したプラグインが豊富で、よりエッジ側(IoT的に言うとThings、つまりモノに近い方)で動作させるのも面白いです。

インストール

npm install

前述の通りNode.jsが動く環境であれば動作しますので以下のようにインストールして起動できます。

$ npm i node-red
$ node node_modules/node-red/red.js

Bluemix IBM Cloud

Node-REDを生み出したIBMのクラウドサービスであるIBM CloudではNode-REDスターターを利用することで簡単に始められます。
Node-RED を使用してリアルタイムのチャット・アプリケーションを 5 分で作成する

enebular Editor

enebularはIoTデバイスやクラウドのVMやコンテナに任意のファイルをリモートデプロイできるサービスですが、Node-REDのフローもリモートデプロイできます。

そのため、enebularではNode-REDのフローを開発しやすくするためにデスクトップ版のNode-REDフローエディタを開発・メンテナンスしています。
ウフル、Node-REDフローの作成・デプロイを一層簡便にする「enebular editor」の無償提供を開始

enebular Editor はこちらの "How to install" からWindows版とMac版をダウンロードできます。後は、それぞれのOSのインストーラで簡単にインストールできます。

image.png
image.png

Heroku Button

Heroku Buttonもあります。詳細はREADMEにありますが、NODE_RED_USERNAMEとNODE_RED_PASSWORDに任意のユーザ名とパスワードを入力してDeploy to Freeボタンをクリックすると使えます。

Deploy

動かす前に知っておくこと

データの流れ

Node-REDをインストールした環境の外側からINPUTされるデータや環境内や周辺で発生するデータ(ログやセンサーデータなど)と、その環境から外側へのOUTPUTまでのデータの流れをビジュアル的にNode-RED上に表すことができます。

 nodered_overview.png

データの処理

データの流れに条件分岐や繰り返しなどの処理を加えることもできます。

スクリーンショット 2015-10-30 13.48.48.png

HTTPで遊んでみる

まずはHTTPリクエストを受け付けるエンドポイントを作ってみましょう。以下のようにhttp in nodeをドラッグ&ドロップしてワークスペースに配置します。

スクリーンショット 2015-10-30 14.32.26.png

配置したhttp in nodeをダブルクリックするとnodeの設定ダイアログが開きます。

スクリーンショット 2015-10-30 14.37.06.png

URLを設定します。

スクリーンショット 2015-10-30 14.44.36.png

同じ要領でHTTPレスポンスを配置します。

スクリーンショット 2015-10-30 14.52.37.png

配置した2つのnodeをつなぎます。

スクリーンショット 2015-10-30 14.54.47.png

最後にデータを受け取れるかどうか確認するため同じ要領でdebug nodeを配置してhttp in nodeと接続してDeployボタンをクリックします。

スクリーンショット 2015-10-30 14.59.50.png

これで、Node-REDをインストールしたホストに/testというエンドポイントが作られましたのでブラウザの別ウィンドウ(タブ)などでアクセスしてみましょう。

スクリーンショット 2015-10-30 15.19.39.png

HTTPレスポンスで何も返してないので空のJSONが返ってきます。

では、/test?aaa=111というようにパラメータを渡してみましょう。

スクリーンショット 2015-10-30 15.22.11.png

渡したパラメータがレスポンスとしてJSONで返ってきました。

エディタ画面に戻るとdebug nodeによってデバッグ欄に受け取ったパラメータがJSONに変換されて表示されています。

スクリーンショット 2015-10-30 15.24.22.png

つまりhttp in nodeで受け取ったaaa=111というパラメータが{ "aaa": "111" }というJSONに変換されて、http out nodeとdebug nodeの両方へ流れていったということです。

以上、今後も面白い遊び方をこちらに追加していきたいと思います。

Node-REDについてさらに知りたい

Node-RED User Group Japan では本家の英語ドキュメントを @ryoichi_obara を筆頭に鋭意翻訳中です。知りたいことは以下から飛んでみてください。様々な使い方の事例を知りたい場合は Cookbook がオススメ!

最後に

コミュニティの活動に貢献したい方は是非 Node-RED User Group Japan へお越しください!また、コミュニティ活動に寄付したい方は Node-REDのCommunity Bridge で寄付できます。

joeartsea
Chief Technical Officer at Uhuru Corporation. enebular, Milkcocoa, Node-RED
https://about.me/joeartsea
uhuru
株式会社ウフルはインターネットによる革新的なサービスがお客様企業の価値向上につながる事を目指し「テクノロジーと自由な発想で未来を創る」を企業理念に掲げています。エッジとクラウドを “つなぐ” IoTオーケストレーションサービス「enebular®」をベースにIoTやデジタルマーケティングの領域で顧客のビジネスに変革をもたらし続けております。
https://uhuru.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away