IoT ハッカソン CANDYRED 操作手順 

# はじめに
本コンテンツは、CANDYREDを用いた、新潟IoTハッカソンで使用する技術ハンズオンの資料です。
ネットワーク環境は参加者が自由選択できますので、参考としてご活用ください。

# 概要
本ページでは温湿度センサーから取得した温度値をHTTPを介して転送する例を示します。

# 準備
- RaspberryPi -> CandyPi -> GrovePi+ の順にスタックしてください。
![IMG_4407.jpg](https://qiita-image-store.s3.amazonaws.com/0/281420/e212d495-2f5a-a52e-59c5-d4c9c7ba91d6.jpeg)

- SSHが必要となる場合に備えて、Windowsユーザーの方はTeraterm、Rlogin等があると便利です。

# 動作確認用フロー作成(enebular)
[IoT ハッカソン デバイスプログラム手順 〜 Wio LTE M1/NB1(BG96) SoftBank Edition 〜](https://qiita.com/uhuru-hackathon/items/7b3cf3ad9047958b80f0)
- Wioの手順を参照してください。

# センサー接続
以下のように、温湿度センサーをD2ポートに接続します。
また、アンテナが接続されていることを確認してください。
電源も挿しましょう。
![IMG_4432.jpg](https://qiita-image-store.s3.amazonaws.com/0/281420/b28e17e8-63d1-62e9-7554-8426103a1ace.jpeg)

# CANDYREDへのアクセス
- 配布された資料に従って、ブラウザでアクセスしてください。
![candypi_login.png](https://qiita-image-store.s3.amazonaws.com/0/281420/e91e0051-baf4-867a-ba4a-88ae22285906.png)

# GrovePi用ノードの追加
- 右上のハンバーガーメニュー -> Settings -> User Settings -> Palette -> Installタブから、以下のノードを追加しておきます。
    - node-red-contrib-grovepi
    - node-red-grovepi-nodes

# フローの作成(デジタルセンサー編)
- 以下の図のようなフローを作成していきます。
![D2_ondo.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/1e999060-998b-74ec-9a22-da8e37555ec5.png)

- ブラウザ左側にあるノード一覧から以下のノードを選択して、フローを編集するエリアにドラッグ & ドロップしてください。
- 配置したら、`grove digital sensor`ノードから`https request`と`debug`ノードへ接続します。
    - 入力 - `grove digital sensor`
    - 出力 - `http request`
    - 出力 - `debug`

- 入力`grove digital sensor`の設定
    - Boardの右側の鉛筆アイコンからConnected GrovePi Boardを選択し、Updateします。
![sensorboard.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/5a5d56f3-0158-8cb8-9557-c81bdabd88fa.png)
![sensorboard_grovepi.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/dd45030a-9d7d-c09d-e7da-9480c06ef9ef.png)
- その他設定値は以下になります。終了後にUpdateしてください。
    - Sensor Type:Temperature / Humidity DHT11
    - Digital Pin: Digital2
    - Interval: 5 Seconds
- 出力`http request`の設定
    - Method: POST
    - URL: enebularで控えた転送先URL + "/test" 
      ex.) https://hogehoge.herokuapp.com/test
- 編集が完了したら`Deploy`してください。

#### 動作確認
- CANDYRED:右側のdebugタブにtemperature、humidity、heatIndexが表示されていれば成功です。
- enelbular:右側のデバッグタブにCANDYREDから送ったtemperature、humidity、heatIndexが表示されていれば成功です。

![debug.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/bfc19f49-378f-8048-804d-dd8c94405d5b.png)

# フローの作成(アナログセンサー編)
- 以下の図のようなフローを作成していきます。
![candypi_light.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/df715159-9ec2-77fd-ac48-2f199d250214.png)

- A0に光センサーを接続します。
- ブラウザ左側にあるノード一覧から以下のノードを選択して、フローを編集するエリアにドラッグ & ドロップしてください。
- 配置したら、`grove analog sensor`ノードから`function`ノード、`function`ノードから`https request`と`debug`ノードへ接続します。
    - 入力 - `grove analog sensor`
    - 出力 - `function`
    - 出力 - `http request`
    - 出力 - `debug`

- 入力`grove analog sensor`の設定
- 設定値は以下になります。終了後にUpdateしてください。
    - Sensor Type: Light
    - Digital Pin: Analog0
    - Interval: 5 Seconds

- 出力`function`の設定

``` jsonへ成形function.js
	var light = {'light':msg.payload};
	msg.payload = light;
	return msg;
```

- 出力`http request`の設定
    - Method: POST
    - URL: enebularで控えた転送先URL + "/test" 
      ex.) https://hogehoge.herokuapp.com/test
- 編集が完了したら`Deploy`してください。

#### 動作確認
- CANDYRED:右側のdebugタブにlightが表示されていれば成功です。
- enelbular:右側のデバッグタブにCANDYREDから送ったlightが表示されていれば成功です。

# フローのエクスポート
もしものために、バックアップを取得しておきましょう。
- フローを範囲選択し、右上のハンバーガーメニューから `Export` -> `Clipboard`
- `Export to clipboard`をクリックし、お好きなエディタで、`ファイル名.json`で保存。
![candypi_flow_save.PNG](https://qiita-image-store.s3.amazonaws.com/0/281420/020f829c-a859-513c-5758-da2246d4b736.png)

- フローを復元するときは、`Import` -> `Clipboard` で、jsonファイルの内容を貼付してください。

# フローの削除
ハンズオンが終わったら、作成したフローを削除しましょう。
- フローを範囲選択し、`Delete`してください。

# 追加センサーの使い方
運営が用意する追加センサーの使い方は以下例を参考にしてください。
[Groveセンサー使い方集 〜CANDYRED〜](https://qiita.com/uhuru-hackathon/items/124170c0992f5552bffe)