Watson IoT Platform - Node-RED - データベースに保存してみる

初めてWatson IoT Platformを使ってみよう、というかたのためのガイドです。
[Watson IoT Platformを使ってみる](http://qiita.com/egplnt/items/af867711a7191923b2ff)でIoTアプリを準備しました。

#非SQLデータベースを用意します
IoTではさまざまなセンサーからのデータなどを扱うため、予めデータ型を厳密に定義しなくても保存できる非SQL型のデータベースに保存するのが便利です。
1. [bluemix.net](bluemix.net)へログイン後、「すべてのカテゴリー」メニュー（見つからない場合は、画面左上の「コンソール」を開いてから「すべてのカテゴリー」メニュー）から、自分が作成したIoTアプリ（例：「super-iot-appl」）が「実行中」であることを確認し、選択します。
![スクリーンショット 2016-05-19 9.07.25.png](https://qiita-image-store.s3.amazonaws.com/0/125842/088cf777-6a3d-e2c9-ec5f-5c697935c91c.png)
停止している場合には、アイコンの右上の三つの点をクリックしてメニューを開き、「アプリの再始動」を選択します。
2. 「概要」の画面をスクロールし、アプリ名の付いたcloudantNoSQLDB（例："super-iot-appl-cloudantNoSQLDB"）のアイコンを確認します。Cloudantは非SQLの強力なデータベースで、ボイラープレートからIoTアプリを作成した際に一緒に用意されました。
![スクリーンショット 2016-05-19 9.10.46.png](https://qiita-image-store.s3.amazonaws.com/0/125842/07b60e6f-9b0d-d764-a31f-70f4fd8b5a39.png)
3. このCloudantNoSQLDBのアイコンをクリックしてCloudantのコンソールを起動します。画面右上に緑色のLaunchボタンが表示されるのでクリックします。
![スクリーンショット 2016-05-19 9.15.40.png](https://qiita-image-store.s3.amazonaws.com/0/125842/0695fc2a-ab10-15c1-c353-48807a519482.png)

4. 最初はNode-REDの定義情報が入っている「nodered」データベースのみ定義されています。
![スクリーンショット 2016-05-19 9.16.51.png](https://qiita-image-store.s3.amazonaws.com/0/125842/9b0bcc00-c64b-ba8d-ed99-d85732f984d6.png)

5. 新たにIoTデータを保存するデータベースを作成していきます。画面右上の「Create Database」ボタンを押し、新たに作成するデータベース名（例：[iotdb]）を指定し、Createを押します。
![スクリーンショット 2016-05-19 9.19.17.png](https://qiita-image-store.s3.amazonaws.com/0/125842/ba3327e7-1a54-42b7-de98-5e3483bc1c42.png)

6. 画面上部にデータベース作成の状況が表示され、しばらくするとデータベースが作成されます。この時点では空っぽです。
![スクリーンショット 2016-05-19 9.19.33.png](https://qiita-image-store.s3.amazonaws.com/0/125842/79778be1-1120-8a08-02be-66534bee8650.png)

#Node-REDからIoTデータを格納します
1. [Watson IoT Platformを使ってみる](http://qiita.com/egplnt/items/af867711a7191923b2ff)で準備したIoTアプリで、[温湿度計のシミュレーターをつないで出力してみる](http://qiita.com/egplnt/items/0e63ee3d5c64ae41713a)の手順で接続した温湿度計シミュレーターの値を使用します。
2. Node-REDのワークプレースを開き、画面左側のパレットをスクロールして「storage」セクションを確認します。
3. 水色の「Cloudant」ノードのうち、ノード左側に白い四角が付いているものを確認し、ドラッグ＆ドロップでワークプレースに置きます。
![スクリーンショット 2016-05-19 9.27.15.png](https://qiita-image-store.s3.amazonaws.com/0/125842/20bb55d0-b39a-e000-4f3f-f8331a885c99.png)
この白い四角は入出力接続を表し、各ノードの左側にこの白い四角が付いていればそのノードへ入力する事ができる事を表し、各ノードの右側にこの白い四角が付いていればそのノードから出力する事ができる事をを表しています。

4. cloudantノードをダブルクリックで開きます。「Service」としてすでにボイラープレートで準備されたcloudantNoSQLDBサービスが選択されている事を確認し、二つ目の赤く囲まれた「Database」の空欄に前項で準備したデータベース（例："iotdb")を指定します。Name欄にはこのノードの表示名を適当に指定します。「OK」を押して保存します。
![スクリーンショット 2016-05-19 9.33.57.png](https://qiita-image-store.s3.amazonaws.com/0/125842/6fbd8742-b464-de75-8119-312b689a3aaa.png)

5. Node-REDのフロー画面で、画面左端の青い「IBM IoT App In」から線を引き出し、Cloudantノード左端の白い四角へ接続します。画面右上の赤い「Deploy」ボタンを押してクラウド上のアプリへ反映します。このDeployが完了した瞬間からIoTデータはCloudantデータベースへ書き込まれはじめます。なお、このまま放置するとずっと温湿度計シミュレーターのデータがCloudantデータベースへ書き込まれ続けてしまうので注意してください。
![スクリーンショット 2016-05-19 9.35.13.png](https://qiita-image-store.s3.amazonaws.com/0/125842/62962482-2229-d122-a6dd-2fdaad105bb9.png)

#データベース内のデータを確認します
1. Cloudantデータベースのコンソールを開きます。画面を閉じてしまった場合には、Bluemix.netのメニュー画面からIoTアプリを選択し、その「接続」の欄からCloudantデータベースのアイコンを選択します。
2. Cloudantコンソールから、IoTデータ格納用に作成したデータベース（例："iotdb"）にデータが格納されている事を確認します。
![スクリーンショット 2016-05-19 9.42.55.png](https://qiita-image-store.s3.amazonaws.com/0/125842/7196829c-6987-3b50-7b4b-62c51238a1fb.png)

3. データベース名をクリックしてデータベースの内容を確認していきます。
![スクリーンショット 2016-05-19 9.44.49.png](https://qiita-image-store.s3.amazonaws.com/0/125842/209c9ddc-5506-a7a6-3c65-f70f0058ba0e.png)

4. 画面右側に表示されたレコード（黒い部分）をダブルクリックするとそのレコードの詳細を確認することができます。
![スクリーンショット 2016-05-19 9.45.42.png](https://qiita-image-store.s3.amazonaws.com/0/125842/a38624fc-88a5-6218-4a4a-184cc2bec760.png)

5. また画面右上の「API」ボタンを押すと、このレコードへアクセスするためのAPIのURLが表示されます。
![スクリーンショット 2016-05-19 9.50.28.png](https://qiita-image-store.s3.amazonaws.com/0/125842/cfbb1e10-9594-6a14-e051-3f37e1d06425.png)

6. ブラウザの別のタブを開き、このAPI URLをコピペすると、当該IoTレコードを入手できる事が確認できます。
![スクリーンショット 2016-05-19 9.52.46.png](https://qiita-image-store.s3.amazonaws.com/0/125842/62a79a8a-7fd3-8395-1d63-bf1e86c13d8b.png)