Node-RED+UIFlowでノンプログラミングをして、フリーズしたPCを再起動するプログラムを作る
初めに
環境
- クライアント側
- Windows 10
- Atom Lite
- Unit Relay
- サーバー側
- Node-REDを実行しているWindows Server
- UIFlowというサービス
手段
環境構築
M5burner
-
M5burnerをダウンロードしUIFlowのファームウェアを書き込む
- 左側のデバイス一覧からATOMを選ぶ
- 上のCOMポートからatom liteに該当するものを選ぶ
- 判別にはデバイスマネージャーの
ポート(COMとLPT)
を開いた状態でatom liteを抜き差しし、消えたり現れたりするCOMポートを選ぶ
- (LEDマトリクスのついていない)Atom Liteの場合はUIFlow(Lite)を書き込む(Burn)
- WiFiのSSIDとPWを入力
- 書き込み後、Burnの横のConfigurationを開くとUIFlowからプログラムを書き込むのに必要な
Api Key
が得られる
UIFlow
-
UIFlowにアクセスする
- ポップアップが出てくるので、Atom Liteとrelayの組み合わせを選ぶ。
Api Key
には先ほど得た値を入れる。
- 入力を終えると(おそらく)Atom LiteがWiFi経由でM5stackのサーバーにつながり、ブラウザからプログラムを書き込むことが可能になる。
Node-RED
- インストール手段はこのページで説明したため、省略する。
- windows serverでMQTTブローカーを開くため、MQTTで用いるポートを開く
- ファイヤーウォールの詳細設定で可能
- デフォルトは1883(一応変更推奨)、プロトコル:TCP
- Node-RED上では私の環境では原因不明なエラーによりノードのインストールができないため、サーバーのターミナル上で
node-red-dashboard
とnode-red-contribute-aedes
をインストールする。
npm i node-red-dashboard node-red-contribute-aedes
プログラム作成
UIFlow上(Atom Lite)
- MQTTブローカー(Windows ServerのNode-RED内)の設定
- デバッグ用のMQTTパケット送信部
- リレーの動作
- 再起動のMQTTパケットを受け取る部分
- 実行ボタンはプログラムを揮発性の領域に入れるため、電源を外すと消えてしまう。したがって、最終的にプログラムを書き込む際にはダウンロードのボタンを押す。
Atom Liteのデバッグ
Node-RED上
- 下画像のDashboardをクリックした後 配置で新しいタブを作り、その中に新しいグループを作る。
- 画像を参考にフローを作る
-
設定内容(デフォルトのままの場合は記載なし)
- mqtt in
- サーバー: localhost:1883
- トピック: pc1_debug
- 出力: 文字列
- text
- Group: 先ほど作ったグループを選択
- button
- Group: 先ほど作ったグループを選択
- payload: {"reboot": "true"}
- Topic: pc1
- mqtt out
- サーバー: localhost:1883
-
デプロイするとdashboardにボタンが生成される。下画像の右上のアイコンをクリックして、異なるタブで内容を確認する。
-
下画像のようなボタンが現れているはずである。
動作
- 出力
- Node-RED dashboardのボタンが押されたとき、再起動を指示するMQTTパケットがNode-RED MQTTブローカーから出される。これをAtom Liteが受け取り、再起動を実行する。
- 入力
- 再起動後、Atom Liteは
success
という文字の入ったMQTTパケットをNode-RED MQTTブローカーに送る。これがNode-RED dashboardに表示され、ユーザーは再起動が成功したことを確認することができる。
MQTTのデバッグ
- スマートフォンのアプリストアでmqttと検索すると、MQTTパケットの送受信ができるアプリが出てくる。これを用いることでMQTTパケットが正常に出されているかを確認することできる。
Note
- Atom LiteのLEDがつかなくなることが頻繁にあった
- 原因はアップロードしたpythonプログラムにバグがあったこと
- M5BurnerのConfigurationでApp modeからUSB modeに戻すと再びLEDがついた
- App modeはAtom Liteのフラッシュメモリ中のPythonプログラムを実行する
- Internet modeはオンラインのUIFlowでプログラミングするモード
- 起動後、LEDは赤色に点灯する。(おそらく)Wifi接続が完了すると緑色に点灯する
- USB modeはオフライン(PC)のUIFlowでプログラミングするモード
参考リンク
- Windows 10
- Atom Lite
- Unit Relay
- Node-REDを実行しているWindows Server
- UIFlowというサービス
環境構築
M5burner
-
M5burnerをダウンロードしUIFlowのファームウェアを書き込む
- 左側のデバイス一覧からATOMを選ぶ
- 上のCOMポートからatom liteに該当するものを選ぶ
- 判別にはデバイスマネージャーの
ポート(COMとLPT)
を開いた状態でatom liteを抜き差しし、消えたり現れたりするCOMポートを選ぶ
- 判別にはデバイスマネージャーの
- (LEDマトリクスのついていない)Atom Liteの場合はUIFlow(Lite)を書き込む(Burn)
- WiFiのSSIDとPWを入力
- 書き込み後、Burnの横のConfigurationを開くとUIFlowからプログラムを書き込むのに必要な
Api Key
が得られる
UIFlow
-
UIFlowにアクセスする
- ポップアップが出てくるので、Atom Liteとrelayの組み合わせを選ぶ。
Api Key
には先ほど得た値を入れる。 - 入力を終えると(おそらく)Atom LiteがWiFi経由でM5stackのサーバーにつながり、ブラウザからプログラムを書き込むことが可能になる。
- ポップアップが出てくるので、Atom Liteとrelayの組み合わせを選ぶ。
Node-RED
- インストール手段はこのページで説明したため、省略する。
- windows serverでMQTTブローカーを開くため、MQTTで用いるポートを開く
- ファイヤーウォールの詳細設定で可能
- デフォルトは1883(一応変更推奨)、プロトコル:TCP
- Node-RED上では私の環境では原因不明なエラーによりノードのインストールができないため、サーバーのターミナル上で
node-red-dashboard
とnode-red-contribute-aedes
をインストールする。
npm i node-red-dashboard node-red-contribute-aedes
プログラム作成
UIFlow上(Atom Lite)
- MQTTブローカー(Windows ServerのNode-RED内)の設定
- デバッグ用のMQTTパケット送信部
- リレーの動作
- 再起動のMQTTパケットを受け取る部分
- 実行ボタンはプログラムを揮発性の領域に入れるため、電源を外すと消えてしまう。したがって、最終的にプログラムを書き込む際にはダウンロードのボタンを押す。
Atom Liteのデバッグ
Node-RED上
- 下画像のDashboardをクリックした後 配置で新しいタブを作り、その中に新しいグループを作る。
- 画像を参考にフローを作る
-
設定内容(デフォルトのままの場合は記載なし)
- mqtt in
- サーバー: localhost:1883
- トピック: pc1_debug
- 出力: 文字列
- text
- Group: 先ほど作ったグループを選択
- button
- Group: 先ほど作ったグループを選択
- payload: {"reboot": "true"}
- Topic: pc1
- mqtt out
- サーバー: localhost:1883
- mqtt in
-
デプロイするとdashboardにボタンが生成される。下画像の右上のアイコンをクリックして、異なるタブで内容を確認する。
-
下画像のようなボタンが現れているはずである。
動作
- 出力
- Node-RED dashboardのボタンが押されたとき、再起動を指示するMQTTパケットがNode-RED MQTTブローカーから出される。これをAtom Liteが受け取り、再起動を実行する。
- 入力
- 再起動後、Atom Liteは
success
という文字の入ったMQTTパケットをNode-RED MQTTブローカーに送る。これがNode-RED dashboardに表示され、ユーザーは再起動が成功したことを確認することができる。
- 再起動後、Atom Liteは
MQTTのデバッグ
- スマートフォンのアプリストアでmqttと検索すると、MQTTパケットの送受信ができるアプリが出てくる。これを用いることでMQTTパケットが正常に出されているかを確認することできる。
Note
- Atom LiteのLEDがつかなくなることが頻繁にあった
- 原因はアップロードしたpythonプログラムにバグがあったこと
- M5BurnerのConfigurationでApp modeからUSB modeに戻すと再びLEDがついた
- App modeはAtom Liteのフラッシュメモリ中のPythonプログラムを実行する
- Internet modeはオンラインのUIFlowでプログラミングするモード
- 起動後、LEDは赤色に点灯する。(おそらく)Wifi接続が完了すると緑色に点灯する
- USB modeはオフライン(PC)のUIFlowでプログラミングするモード
参考リンク
https://qiita.com/youtoy/items/17739b7f4197a8d3fa4d
https://raspberrypi.mongonta.com/howto-use-uiflow-with-m5atom/
https://www.1ft-seabass.jp/memo/2018/05/10/m5stack-meets-nodered-with-mqtt/
https://note.com/ogkt/n/na459421865d6-
Author And Source
この問題について(Node-RED+UIFlowでノンプログラミングをして、フリーズしたPCを再起動するプログラムを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/boronspoon/items/ee74c73ea1dfb35afa31著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .