NodeRED MCU の デモを考える

|すみません。ここに記載した内容は、まだ実行していません。<br/>検討中の段階です。<br/>色々アドバイス頂ける助かります。|
|:--|

# はじめに
@kitazaki と NodeRED MCU Editionをどうやったら理解してもらえるかという雑談をしていた時 **”そもそもNodeREDがよくわかっていないのにMCU版はさらに不明だよね。”** という話になりました。 **そこでどんなデモを用意したらNode RED MCU Eitionを理解して頂けるか考えてみます。**

# 条件・要件
(随時追加)
- NodeRED MCU Editionが判るようなのデモ。
- 価格は押さえたい。
- 持ち運び出来て軽いこと。
- NodeREDも理解できないかも　=>NodeREDのデモも必要。
- NodeRED MCU Edition なのでIoTのデモかな。。。
- MCUでもDashuBoardでDisplay表示できるのを見せたい。
- こんな小さいデバイスでも動くこと示したい。
- 初心者・中級者向け。
- デモはどこでもできるように閉じた環境

:::note info
PCと液晶画面を持ったデバイス(MCU)、小さなデバイス(MCU)の組み合わせが良いかなあ
:::

# どんなFlowを用意したらよいだろう

## 案１
- Node-REDの紹介のフロー(sandbox)
- Node-REDでIoTが簡単に実現するフロー
- MCU Editionのフロー１
- MCU Editionのフロー２
- PC側のフロー

## 案２
拡張していくパターンのフロー
※例えば早押しゲーム
- Node-RED（PC)でキーボードの早押しゲーム
- RasPI等を使って物理スイッチで置き換え
- ワイヤレスのスイッチデバイスにするためにMCUに置き換え（IoT化）

:::note info
学習なら案２だけど、デモなので案１かな。
:::

# PC
- 安価にしたいけどRaspberryPIを核にするのは、ちょっと抵抗がある。
> 特殊と思われたくない。(全然知らない人が興味持たない可能性がある。ふつうのPC(見た目)の方が親近感がわいてくれそう。)

- IoTのデモなら、SoftAPになるとありがたい
>2.4GHzの1CH以外を使用したい。できなければ別途用意
>(5GHzは殆どのMCUで使用できないので、2.4GHz 1CHはPocketWiFiなどの既定値になっているので避けたい）

- タッチパネルは、ノードの結線に癖がある時もあるのでマウス操作が楽。

- インストールするSoftware(NodeRED関連は除く)
-- InfluxDB　（時系列DB)
-- Grafana　（可視化ソフト）
:::note info
値段を考えると中古ノートPCでLinux
持ち運びを考えて、バッテリー外して軽いのが良いかも
:::

# デバイス（MCU）
## 使うセンサー・アクチュエータ
- やっぱりLED（NeoPixel系）が欲しい。
- IoTと言えば、温度センサーが鉄板かなあ
- ロータリエンコーダも楽しい。。

## ディスプレイ付きのデバイス(MCU)
- 購入の容易さやマニュアルなどからしてM5Stack一択？
- 温度センサーとかの組み合わせかなあ

### 対応するEnvセンサー
先頭に〇をつけているのがNodeRED MCUで簡単に使用できるセンサー
|Unit名|温度センサ/湿度センサー|気圧センサー|
|:-:|:-:|:-:|
|Env|DHT12|〇 BMP280|
|Env II|〇 SHT30|〇 BMP280|
|Env III|〇 SHT30|QMP6988|
|Env IV|SHT40|〇 BMP280|
|Env Pro|〇 BME688|〇 BME688|

※BMP280は気圧以外にも温度の計測が出来ます。

:::note info
M5Stack+温度センサー(Env II or III)
- 鉄板の組み合わせ
- 表示に温度とグラフ
- ボタンは何ができるか。。
- 温度データはMQTTでPCに送信(10s毎)
:::

## 小型のデバイス（MCU)
- このサイズでNodeREDが動くことを説明できる
- 入手性からXIAO、RsaPI Pico
- Node-RED でサポートするXAIOのは以下
- Wi-Fiは使えた方がよさそう

| 型番 |XIAO ESP32C3|XIAO RP2040|XIAO ESP32S3|XIAO ESP32S3 Sense|XIAO BLE Sense nRF52840|XIAO　BLE nRF52840|備考|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|価格|@940-|@840-|@1,300-|@2,480-|@2,480-|@1,940-|秋月電商調べ|
|Wi-Fi|〇|   |〇|〇|||
|BLE|〇|〇|〇|〇|〇|〇|
|LED|Chargeのみ|Full-color RGB/<br/> 3-in-one LED|User LED,Charge LED|User LED,Charge LED |3-in-one LED/ Charge LED|3-in-one LED/ Charge LED|
|他||||OV2640 camera sensor for 1600*1200<br/>Digital microphone<br/>SDCard|6 DOF IMU (LSM6DS3TR-C), PDM Microphone||

RASPI Picoも捨てがたい。
|型番|Raspberry Pi Pico|Raspberry Pi Pico W|備考|
|:-:|:-:|:-:|:-:|
|価格|@770-|@1,200-|秋月電商調べ|
|Wi-Fi|〇|〇|   |
|BLE|〇|〇|   |
|LED|   |   |   |
|他||||

そういえばM5Stampもあったな。。。
|型番|StampC3U|StampS3|備考|
|:-:|:-:|:-:|:-:|
|価格|@5,599-(5個セット)|@1,375-|スイッチサイエンス調べ   |
|Wi-Fi|〇|〇|   |
|BLE|〇|〇|   |
|LED|RGB LED|RGB LED|   |
|他|Button<br/>Grovex2|Button<br/>Grovex1|

- M5Stampは、直接Groveが使えるのが良さそうだけど、最初からGrove端子がはんだされていると勘違いされるかも。
- M5StampS3が良さそうだけど高いですね。

:::note info
XIAO ESP32C3 + デバイス
- Grvoe ロータリーエンコーダ
- NeoPiexl
- アンテナはどうしよう。うまく貼り付けられるようなアクリル台が良いかな
:::
# Misc
通信はMQTTかなあ。。。

# 決定
## 用意するハード
1. ノートパソコン
2. M5Stack＋EnvII or III
3. XIAO ESP32C3 + Grove Encoder + NeoPixel

| 品名 | 型式 | 価格 |備考|
|:--|:--|--:|:--|
|中古PC||20,000|価格は大体|
|Display付きMCU|M5Stack Basic|6,900|高くなりましたね|
|温度センサー|M5Stack EnvIII|1,250||
|小型MCU|Seeeed XIAO ESP32C3|940||
|拡張基板|Seeeduino Xiao用Groveシールド|850|固定もかねて必要かな|
|ロータリーエンコーダ|GROVE - ロータリーエンコーダ|890||
|NeoPixel|マイコン内蔵RGBLED 8LEDスティック|500|Groveケーブルをはんだ付け|
|他|スタンドとか|1,000|100均や3Dプリンターパーツ|

# 用意するFlow
※動作確認していませんので動くかわかりません。
※自分はfunctionノードを使いがちですが、普通は避けるそうです。
## Flow1 
サンドボックス　(これは鉄板)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97061/58d2d390-fbdc-37d4-4e96-f805bac482aa.png)

## Flow2
簡単なIoT？のフロー
接続先はどこにしよう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97061/f6aaf218-1fd3-cd3c-9465-26336b999e82.png)

## Flow3 
M5Stack　Basic 用
- 繰り返しで温度計測
- ボタンを押したらMQTTで送信
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97061/06bb1f23-d011-8ab3-1544-49b8bf31d61e.png)

## Flow4 
XIAO用
- ロータリーエンコーダを回す毎にMqtt送信
- Mqtt(Btn)を受信したらNeopixelを光らす。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97061/da69eff4-53c7-7605-a803-ee3287b60ba8.png)

## Flow5
PC用
- ダッシュボード表示
- InfluxDBのつなぎ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97061/64e012d2-025b-c365-646e-fd4fd961a62f.png)

# おわり
- こんな感じのデモが出来たらNodeRED MCU Editionを知ってもらうことができるかな。って感じで考えてみました。
-  **アドバイス** とかあれば、是非コメントください。
- 時間のある時に作っていきたいと思います。

よろしくお願いいたします。