enebularとobnizでLED制御

enebularは"Hello World!"しかやったことが無かったので、次はLEDチカチカさせてみたかった。
とりあえず、LED ON! をやってみます。
**Node-RED**に**obniz**のノード、あるよと聞いたので**enebler**でやってみました。
@kmaepu さんの「[Node-RED（enebular）のobnizノードを使ってみる](https://qiita.com/kmaepu/items/89e03f2a867011750eb5)」を参考にさせていただきました。
@wicket さんの「[国産APIで使える国産マイコンボードobniz](https://qiita.com/wicket/items/c7a7453f5b76765406db)」を参考にさせていただきました。

###1. やってみたいこと
[株式会社ウフル](https://uhuru.co.jp/)さんのIoT開発・運用サービス[**eneblar**](https://www.enebular.com/ja/about/)を使った[**obniz**](https://obniz.io/ja/)でのLED制御。
具体的には、足の長いほうがアノード（＋）、短いほうがカソード（－）なので、PinNo=0に5Vを供給し、PinNo=1は0Vとしたい。
![019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/4e094349-26ef-892a-21d3-533d91bc459b.png)

###2. obnizのAPIについてリサーチ
[obnizのAPIに関するサイト](https://obniz.io/ja/spec/api)を見てみると、「世界のどこかにあるobnizにobniz idだけでWebSocket接続できます。全てのコマンドはjsonでやり取りされます。」とあります。これはすごい、面白そうです。

###3. obnizノードのインストール
![001.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/b6f71bdf-b870-8124-fef0-35278bcca4a4.png)
右側サイドバーのadmingタグを選択して
![002.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/3109838a-1d3a-1571-6e7f-c15a884ec141.png)
node-red-congrib-obnizを入力して、「install」を実行します。
![004.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/6a169305-9696-dedd-ba43-ee1d1852ba53.png)
installが完了すると、左側サイドのノードパレットの「その他」にobnizノードが追加されます。
![005.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/3f2399ba-e9d1-6365-92ca-31f93db1e76f.png)
###4. 使用する３つのノードの配置
中央のワークスペースに３つのノードを配置します。
- **injectノード**
![006.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/3b55c1e1-633d-870d-103a-c3006261222e.png)
- **debugノード**
![007.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/2c94169b-d48f-e0c0-cc46-a92dabb213c2.png)
- **obnizノード**
- ![008.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/a49c7c5d-1b44-944e-75ed-59840ac52e41.png)
配置するとこのようになります。
![009.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/f18f2171-8ad9-f570-9e35-5f402b6db5d8.png)
injectノードの出力とdebugノードの入力、injectノードの出力とobnizノードの入力をそれぞれ線でつなぎます。
![010.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/d0f951b3-51a3-7f4c-efe5-805f62722189.png)
###5. injectノードの設定
ワークスペース上に配置されたinjectノードをダブルクリックするとinjectノードの編集ダイアログが表示されます。
![011.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/f56eb0a2-767e-d349-967c-c9201ed39bb5.png)
ペイロードを"日時"から"{}json"に変更します。
![012.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/15c127ab-84bf-97bc-0de0-89a3a2184088.png)
ペイロード設定の"..."をクリックするとJSONエディタが表示されます。
![013.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/d6435b5f-6037-666a-1be9-1b87868dc773.png)
![014.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/6fb9e4b8-dab5-7457-285a-78407f305bfe.png)
JSONエディタでペイロードを入力します。
obnizに対して、
ディスプレイをいったんクリアして、"OK obniz,LED on!"を表示させる
PinNo=0に5Vの電源を供給し、PinNo=1は0Vの状態にする
ための情報です。

```
{
    "display": {
        "clear": true,
        "text": "OK obniz,LED on!"
    },
    "io0": true,
    "io1": false
}
```
![018.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/d2d2c92b-0594-dae6-6b06-60bd65236884.png)

###6. debugノードの設定
ワークスペース上に配置されたdebugノードをダブルクリックするとdebugノードの編集ダイアログが表示されます。
デバッグウィンドウにinjectノードからのペイロードをそのまま出力する、ということでよさそうなので、これはこのままにしておきます。
![016.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/2e11f5ca-a1b0-d8f3-2103-a24a358dad38.png)

###7. obnizノードの設定
ワークスペース上に配置されたobnizノードをダブルクリックするとobnizノードの編集ダイアログが表示されます。
ここで、対象obnizのobnizidを入力します。
![017.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/dee6183b-a33d-2c1a-7b12-9b737a6cc62e.png)

###8. 動作確認
injectノードの左端にある□を押すとobnizの画面に"Hello obniz,LED on!"と表示れ、LEDが点灯します。
同時にeleblularのデバッグコンソールにJSONの内容が表示されます。
成功です！！
![020.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/418e3b2c-3845-0db6-c7ca-09a28b9144ca.png)

###9. まとめ
・obnizの「世界のどこかにあるobnizにobniz idだけでWebSocket接続できます。全てのコマンドはjsonでやり取りされます。」ということが検証できました。
・enebularの（ほぼ）ノンコーディングでIoTが実現できるということが検証できました。