Wio Nodeハンズオン メモ

Wio Nodeの初心者向けハンズオンのメモです。

## ハンズオン内容
1. Wio Node + スマホ + センサ でデータを取得しよう。
2. Wio Node + Node-RED + Ambient でグラフを作ってみよう。
3. Wio Node を arduino化してLチカしよう。

## ハンズオンで使うもの
1. Wio Node 本体
2. Grooveセンサ
3. arduino IDEをインストールしたPC
4. WioLink をインストールしたスマホ
5. FTDI USBシリアル変換コネクタ

## 事前準備
### Wio Node用スマホアプリ準備
1. iPhone/Androidのスマホで「Wio-Link」をインストール
2. 以下のサイトの「Sign-up a user」からユーザ登録する。
[Use SEEED’s user system](http://seeed-studio.github.io/Wio_Link/#use-seeed-39-s-user-system)
3. 2.で登録したメールアドレス、パスワードでWio Linkでログインする。
4. 以下のサイトの「get the user token」からtoken(v1)を取得しメモしておく。<br>
[Use SEEED’s user system](http://seeed-studio.github.io/Wio_Link/#use-seeed-39-s-user-system)

### IBM Cloud と Node-Red準備
1. 以下の記事を参考にIBM Cloudのアカウント作成とNode-REDインスタンス起動<br>
[IBM LiteアカウントでNode-REDインスタンスを作成する]
(https://qiita.com/makaishi2/items/ed9d4412331d7d65fde5)
2. メニューの「パレットの管理」→「ノードを追加」で「ノードを検索」の欄に「node-red-contrib-wio-seeed」を入力しノードを追加。

### Ambient準備
1. 以下の記事を参考に「1.ユーザー登録(無料)」「2.チャネル生成」まで実施しておく。<br>
[Ambientを使ってみる](https://ambidata.io/docs/gettingstarted/)

### PC準備
1. 以下のサイトからarduino IDEのインストール<br>
https://www.arduino.cc/en/main/software
2. 以下の記事を参考にFTDI USBシリアル変換ドライバをPCにインストール<br>
Winの場合： [FTDIのUSBシリアル変換器のドライバのインストール法(1)](https://synapse.kyoto/tips/FTDI_driver/page001.html)<br>
Macの場合：[VCPドライバのインストール(mac編）](http://mag.switch-science.com/2013/01/23/install_vcp_driver_to_mac/)

## ハンズオン内容
### Wio Node + スマホ + センサ でデータを取得

#### デバイス登録と設定
1. Wio Node にUSBケーブルをつないで電源を入れる。
2. スマホでアプリWio-Linkを起動
3. 右上の「＋」ボタンを押し、「Wio Node」を選択
4. 画面のメッセージに従ってFuncボタンを4秒押し、青いライトがゆっくり点滅を始めるのを待つ。
5. スマホのWiFi設定画面から「WioLink_XXXXXX」というSSIDを探して接続する。<br>
※ 複数の人が同時に設定すると、スマホから同時に複数のWio Nodeが見えて、どれが自分のか分からなくなるので、一人づつセットアップすること。
6. 接続できたらWio Nodeのアイコンを選択。

#### センサーからデータを取得
1. センサーを一つチョイス。
2. センサーをWio NodeのPort0にケーブルで接続。
3. 画面の下のセンサー一覧からセンサーを選択「GPIO -> Temperature&Humidity Pro」
4. 「Update Firmware」を押す。
5. 下にある「View API」を選択。
6. 「GET」ボタンを押すと湿度や温度のデータが取得できる。
7. access_tokenの値をコピペ、メモなどでPC側で使えるようにしておく。

### Wio Node + Node-RED + Ambient でグラフ化
#### Node-Redでデータ取得
1. 左上の「ノードを検索」からwioと入力。
2. 「Sensor」ノードを選択しドラッグ＆ドロップする。
3. 「Manual Token」を選択。
4. Serverを「us.wio.seeed.io」に変更、Tokenに事前準備したtoken(v1)を入力。
5. Nodeの選択肢にスマホ上で設定したWioNodeが出てくるので選択。
6. InjectとDebugノードを接続。
7. デプロイボタンを押す。
8. Injectのボタンを押すとデバッグに温度が表示される。
9. Injectの中身を10秒ごとにデータ取得するように変更する。

### Ambientでグラフ化
1. Ambientにログインし、Myチャネルから「チャネルを作る」を選択。
2. 「チャネルxxxx」というチャネルが作成されるのでチャネルIDとライトキーをメモっておく。
3. Node-Redでパレット管理のノード追加からAmbientをインストールする。
4. Node-Redで、WioNodeのセンサーがある画面にAmbientとfunctionノードを追加する。
5. 以下の順番でつなぐ「Inject→Sensor→function→Ambient」（Debugはつないだノードのログを見ることができる）
6. Ambientノードに「チャネルID」と「ライトキー」を設定する。
7. functionノードのコードに以下を設定し、デプロイします。

```
var data={
    "d1": msg.payload
}
msg.payload = data
return msg;
```


## TIPS
- 書き込み時のシリアルスピード115200がデフォルトだが921600に変更すると書き込み速度が上がる
- PCとバッテリー(Li-PoまたはLi-MHモバイルバッテリー)の組み合わせだと書き込みが失敗する可能性が高まる(USBシリアルを接続するPCとGNDレベルが合っていないことが原因の可能性。)
- USB電源でLi-Poバッテリーを充電可能でした！これでPH-2ケーブルを抜き差しする必要が無くなる（常時起動→バッテリー容量が無くなったらUSBケーブルを挿すという運用）が可能

## 参考リンク
- [スマホアプリから操作できて、Groveセンサーと繋げられる小型IoTデバイス「Wio Node」](https://codezine.jp/article/detail/9654)
- [dotstudio の Wio Node紹介記事]
(https://dotstud.io/docs/wionode/)
- [「Wio Node」で半田付けなしの電子工作！温度計作りでIoTはじめの一歩]
(https://dotstud.io/blog/seeed-wionode-hands-on/)
- [IBM Cloud (aka Bluemix) ライト・アカウント作成手順](https://qiita.com/KenichiSekine/items/249d2ff691b6565fb127)
- [IBM LiteアカウントでNode-REDインスタンスを作成する](https://qiita.com/makaishi2/items/ed9d4412331d7d65fde5)
- [Node-RED超入門](https://qiita.com/makaishi2/items/5c7b1b6a72b6938cf3d2)
- [みんなで同時に操作できる！Wio Nodeを使って自作のソーシャルIoTラジコンを作ろう](https://liginc.co.jp/290031)
- [はじめてのWio-Node Node-red](https://qiita.com/hira3/items/8d34335479380dd313d9)
- [Groveシステムを使用して何ができるのか？](https://qiita.com/mine820/items/3a4fea28bfeb48c0e24e)
- [Wio node + Groveセンサー + Node-RED + Ambientで超簡単IoT](https://ambidata.io/samples/devices/wio-node/)
- [Wio NodeのArduino化](https://blogs.yahoo.co.jp/carcon999/39480359.html)
- [Grove WIO NODEのファームウェアの戻し方 Windows編](http://intellectualcuriosity.hatenablog.com/entry/2017/02/06/020100)
- [Advanced User Guide]
(https://github.com/Seeed-Studio/Wio_Link/wiki/Advanced-User-Guide)