BluemixでIoT　温湿度、気圧を収集・蓄積・可視化＋LED制御 その７

##０．はじめに
[前回](http://qiita.com/hino9966/items/a1f3bc7249935ceaccf2)の続きです。今回はMongoDBにデータを蓄積するところを実施します。

##１．必要なもの（今回準備したもの）
|項目|数量|メモ|
|---|:---:|---|

##２．参考にさせていただいたところ

##３．Node-REDでMongoDB蓄積部分を実装
**①Node-REDの左側にあるstorageエリアから下図の赤枠部分にあるmongodbを選択し、右側へドラッグする。**
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/263e2820-cbdf-cf9d-8637-8a5dd4737ca1.png)

**②追加したmongodbノードを設定する。**
　Serviceに、「mongodb-42」を指定する。
　Collectionに、「SenseData」を入力する。
　Operationに、「save」を指定する。
　Only store msg.payload object?に、チェックを入れる。
　Nameに、「DB蓄積」を入力する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/7dc29900-a168-4b6c-4c29-b0582e2ca052.png)

**③mongodbノードとセンサ情報取得ノードを接続する。**
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/63780e21-694b-18f3-bbb8-fa7f52e8dd02.png)

**④mongodb検索用ノードを追加する。**
　①で追加したmongodbノードではなく、下図の赤枠のmongodbノードを選択する。
　　※入力用と出力用に分かれています。(ロゴが左に付いているものが入力用、右に付いているものが出力用。)
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/3c7ae255-2e77-4e4e-55fb-6846b8ac423b.png)

**⑤mongodb検索用ノードを設定する。**
　Serviceに、「mongodb-42」を指定する。
　Collectionに、「SenseData」を入力する。
　Operationに、「find」を指定する。
　Nameに、「DB検索」を入力する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/00215bb1-5e6f-7347-6c38-27c78cb863da.png)

**⑥injectノードを追加する。**
mongodb検索ノードを追加しましたが、実行するトリガーがないため、このままでは動作しません。
そのため、トリガーとなるinjectノードを追加する。
左側のinputエリアからinjectノードを選択する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/f1a65680-e6ba-cfb9-b333-37b75438eebf.png)

**⑦Injectノードを設定する。**
　Payloadを、リストから「String」を選択する。
　Nameを、「DB一覧表示」と入力する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/4db5ed5e-4737-ca65-86ab-a9100a25bfdd.png)

**⑧debugノードを追加する。**
左側のoutputエリアからdebugノードを選択する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/550b438b-b5c3-1057-a7c0-9234dfc777ca.png)

**⑨InjectノードとDB一覧表示ノードとdebugノードを接続する。**
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/bf63e841-a8cc-b815-fa10-ee3983f87693.png)

**⑩右上にあるDeployをクリックし、設定を反映する。**

##４．mongodbへデータを投入##
**①前回作成した、mqtt.jsを使用してデータを投入する。**

```text:コマンド
pi@raspberrypi ~ $ node mqtt.js
```

**②mongodbに蓄積されているか確認する。**
下図の赤枠をクリックする。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/99f354d1-caee-2764-9c82-edd8530adc3b.png)

右側のdebugウィンドウにDB検索結果が表示されていれば、正常に格納されています。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/77451bb7-2d03-5477-bc23-29a317ceb53e.png)

##５．mongodbのデータ（テーブル）を削除##
テストなどで溜まったデータを消したい場合があったので、DB削除用のinjectを作成しました。
**①injectノードを追加・設定する。**
　Payloadを、リストから「String」を選択する。
　Nameを、「DB削除」と入力する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/a72b2028-14a0-38b5-954d-4e08e629e22b.png)

**②DB削除ノードを追加・設定する。**
　Serviceに、「mongodb-42」を指定する。
　Collectionに、「SenseData」を入力する。
　Operationに、「remove」を指定する。
　Nameに、「DB削除」を入力する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/decd8f26-4ff6-0023-6def-40fc19595743.png)

**③injectノードとDB削除ノードを接続し、Deployする。**
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/48a2c5f4-bede-a1f7-6c2e-54f1df346c17.png)

**④DB削除用injectを実行する**
 実行すると、Successfully inject: DB削除　が出力されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/e8fdd782-1322-316e-c042-e7f6b3151ba9.png)


**⑤削除されているか確認する。**
DB一覧表示injectを実行し、debug画面で中身が空になっていることを確認する。
![image](https://qiita-image-store.s3.amazonaws.com/0/113879/35e4fbc6-5da2-78cc-ea0c-37452b6572a5.png)


以上でmongodbの動作確認は完了です。

次回([その８](http://qiita.com/hino9966/items/89c4d52ba90644110a2f))は、Google Gaugeを使って、リアルタイムでの温度・湿度・気圧の可視化を行います。