【ハンズオン】Node-RED入門編

#初めに
Node-REDを始めようとしている方にNode-REDを使った簡単なアプリの開発方法をご紹介いたします。
・Node-RED
 http://nodered.org/
・IBM Bluemix Node-RED Starter
https://console.ng.bluemix.net/catalog/starters/node-red-starter/
・IoT Sensorデモアプリ
https://quickstart.internetofthings.ibmcloud.com/iotsensor/

Node-REDは、オープンソースとして、プログラミングをほとんどいらないく、SNSや外部のAPI&IoT関連のサービスを提供されているGUIでノードを追加し繋ぎ、簡単なプログラミングでアプリケーションの開発が可能になります。
その中、IBM Bluemixには、Node-RED Starterを提供しており、環境の設定（構築）も入らず、すぐNode-REDを活用したアプリの開発が可能です。
その中には、IBM WatsonやIoT、サードパーティー APIなど、IBM Bluemixで提供している様々なノードを使うことができます。

今回のブログでは、下記の三つのサンプルコードを実際に動かしながらIBM Bluemix Node-REDの簡単な使い方をご紹介したいと思います。

・簡単なチャットアプリ
・twitterのデーターをDB（dashDB）に格納
# 事前準備（必ず確認してください。）
・IBM Bluemix アカウント取得。
　http://ibm.biz/bluemixfree
・IBM Bluemixのリージョンや作業スペースを確認
![スクリーンショット 2016-03-25 13.31.59.png](https://qiita-image-store.s3.amazonaws.com/0/29452/724583c9-74c3-f8a6-3327-0a1fe01f8933.png)

今回は不要ですが、Bluemixで開発を行う際に必要ですので、参考として残しておきます。
・CF（Cloud Foundry） CLI Install
　https://github.com/cloudfoundry/cli/releases
・Bluemix CLI Install
　http://clis.ng.bluemix.net/ui/home.html
・CLIを使う際には「pip」のインストールが必要。（Python 2.7）
　https://console.ng.bluemix.net/openwhisk/cli
・pipのインストール
　https://pip.pypa.io/en/stable/

# IBM Bluemix Node-RED開発環境構築
■ IBM Bluemix Node-RED Starter
・Bluemixログイン → カタログ → Node-RED Starter
![スクリーンショット 2016-05-11 17.45.08.png](https://qiita-image-store.s3.amazonaws.com/0/29452/5c1089d7-27f1-6be4-077b-a270bbb5cbcd.png)

・必要な項目入力後、「作成」クリック
![スクリーンショット 2016-05-11 17.47.08.png](https://qiita-image-store.s3.amazonaws.com/0/29452/4a66c656-17b2-4768-1023-4cb470f5d0c1.png)

・アプリが作成されたら、「① 概要」 → 「② 経路のURLをクリック」
![スクリーンショット 2016-05-11 17.59.21.png](https://qiita-image-store.s3.amazonaws.com/0/29452/aead4c3e-c21c-f472-7a36-713d02a89881.png)

・この数分でNode-REDの環境構築終了、IBM Bluemixの強みの一つです。
![スクリーンショット 2016-05-11 18.02.26.png](https://qiita-image-store.s3.amazonaws.com/0/29452/d8ad073d-cfea-e143-de4f-e1c3af8b2ee1.png)

# チャットアプリ

■ サンプルコードの入手
下記のURLに接続します。
https://hub.jazz.net/project/laoqui2/nodechat/overview

① ソースコードをローカルにダウンロードをし、フォルダー内の「nodechat.json」のコードを利用
② ソースコードをダウンロードせず、「nodechat.jso」を選択し、ソースコードを利用

![スクリーンショット 2016-05-11 17.29.55.png](https://qiita-image-store.s3.amazonaws.com/0/29452/66137a3c-2145-b4f1-931b-250ca09ce69d.png)

Node-REDは、「nodechat.json」のコードを利用し、ノードの作成（インポート）することが可能です。
ローカルにダウンロードした方も、「nodechat.json」のコードをNode-REDにインポートしますので、ダウンロードせず画面上でCopyした方が簡単かもしれません。

![スクリーンショット 2016-05-12 10.39.44.png](https://qiita-image-store.s3.amazonaws.com/0/29452/be948cc7-e331-a25c-a00a-63ec960dd952.png)


■ デプロイして、アプリを起動しましょう。
![スクリーンショット 2016-05-11 18.35.44.png](https://qiita-image-store.s3.amazonaws.com/0/29452/845d0d1f-afd2-0831-9da7-ad8bbd50f29c.png)

# twitterのデーターをDBに格納
twitterから収集されたデーターをdashDBに格納してみましょう。

■ Node-REDアプリに「dashDB」をバインディングする
![スクリーンショット 2016-05-13 10.55.47.png](https://qiita-image-store.s3.amazonaws.com/0/29452/4bf9e7a9-78d1-1b3f-53aa-ebb0922b12a5.png)

■ dashDB Table追加

```sql:CreateTable
CREATE TABLE "TWEETS" 
(
  "TWEETID" VARCHAR(50),
  "SENTIMENT" INT 
);
```

![スクリーンショット 2016-05-13 11.08.17.png](https://qiita-image-store.s3.amazonaws.com/0/29452/b6d60b78-5def-c6f0-17c3-b628118d38d1.png)

■ ノードを追加

![スクリーンショット 2016-05-13 17.16.03.png](https://qiita-image-store.s3.amazonaws.com/0/29452/f074c252-d492-68a5-6fd7-bc363c6d3746.png)

# 最後に

・今回のハンズオン資料は、こちらからダウンロードできます。
[Node-REDハンズオン資料のダウンロード](https://www.ibm.com/developerworks/community/wikis/home?lang=ja#!/wiki/Wdec01e50fbfa_493c_8a88_6dd85c4d983f/page/IBM%20Bluemix%20%E3%81%AE%20Node-RED%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%B0%A1%E5%8D%98%E3%82%A2%E3%83%97%E3%83%AA%E4%BD%9C%E6%88%90%E3%82%92%E4%BD%93%E9%A8%93%E3%81%99%E3%82%8B)

■ 「Bluemix」の「今」をフォローしましょう！
・Facebook ： [Bluemixユーザーグループ](https://facebook.com/groups/bmxug)
・Qiita ： [Bluemix Qiitaページ](http://qiita.com/tags/Bluemix)
・Doorkeeper：[Doorkeeperコミュニティ](https://bmxug.doorkeeper.jp/)
・Slack ： [Bluemix User Group(BMXUG)の交流用](http://bit.ly/1QzOgiC)
・stackoverflow ： [stackoverflow（コミュニティQ&A）](http://ja.stackoverflow.com/questions/tagged/bluemix)
・Twitter ： #bmxug