6
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5StackのUIFlowとNode-Redの組み合わせが、ノープログラミング/ロープログラミングで便利(HTTP RESTFul編 M5Stackー>PC)

Posted at

M5StackとNode-Redの組み合わせが便利だったので、記録を残します。
プログラムを書かずに色々なことができます。
Windowsで書いていますが、多少の変更でmacなどの他の環境でも可能です。
Env II Unitの温度湿度をJSONで渡しPCで表示させます。
MQTTじゃなくてhttp RESTが良いという人のために

Node-redのインストール

Nodejsのインストール

https://nodejs.org/ja/ からファイルをダウンロードしてインストールします。LTS版が安定していて良いと思います。
ネットワークにPROXYを使用している場合は https://qiita.com/LightSpeedC/items/b273735e909bd381bcf1 を参考

Node-redのインストール

スタートメニューから[Node.js]-->[Node.js command prompt]を選択
コマンドプロンプトで npm install -g --unsafe-perm node-red を実行 

Node-redの起動

Node.js Command Promptでnode-redと入力し、起動します。この画面にエラーの詳細とかでますので、たまに見ると良いでしょう。

ブラウザで http://127.0.0.1:1880/ につなぎます。下の画面が出たらOKです。
終了は、コマンドプロンプトの画面でCtrl+Cです。
image.png

Node-redの準備

MQTTと便利なDashboardを使えるようにしておきます。
右上の横三本線MENUを押し、[パレットの管理] を選択します。
image.png

[ノードを追加]タブを選択し、node-red-dashboardを追加します。検索にdashを入力したら出てきました。インストールには少し時間がかかります。
image.png

Node-redのプログラム

URLを/M5Stack、IDをtempとrhで受信をするようにします。(http://IPアドレス/M5Stack?temp=xx.xx&rh=xx.x の形です。)

普通のホームページ

一応、レスポンスを返す必要があるので、通常のホームページの動作部分を描きます。
"http in"ノード(Flowでは"http"と表示)と"Template"ノード、"http response"ノード(Flowでは"http"と表示)を置きます。
image.png

httpinノードの編集

メソッドを"GET" URLを"/M5Stack"にします。[完了]を押します
image.png

Templateノードの編集

テンプレートに"Done!"のみ入力します。
image.png

確認

http responeseは特に変更しなくて良いので[デプロイ]を押して、他のブラウザ画面から http://localhost:1880/M5Stack を開きます。
Done!と表示されたらOKです。
image.png

UIFlowから受け取る部分のプログラム

"change"ノード(Flowでは"set msg payload")、”debug”ノード(フローでは"msg payload"と表示)を使います。
image.png

changeノードの編集

msg.payloadにmsg.payload.tempを代入します。
image.png

デプロイ

[デプロイ]を押します。
image.png

確認

Node-redの画面に行きデバッグを表示します。他のブラウザから http://localhost:1880/M5Stack?temp=12.3 を開いてデバッグ画面に12.3と表示されたらOkです。(最初にゴミが表示されるかもしれません)
image.png

UIFlowのプログラム

UunitsにEnvII Unitを追加します。
ラベルを2個置きます。(label1,label2)
image.png
変数TEMPとRHを作って代入した後に表示するプログラムを書いて三角ボタンを押して動作確認します。
image.png
変数HttpDataを作り、代入します。
image.png を多重使用して汚いですが。。。
http://IPアドレス:1880/M5Stack?temp=xx.xx&rh=xx.x の形になるようにします。IPアドレスはパソコンのアドレスです。
image.png

あと、http出力します。
image.png

M5Stackで三角マークを押して実行します。

動作確認

Node-redの画面に行きデバッグを表示します。すでにM5Stack側は動いているので温度が表示されていたら成功です。

image.png

Node-redのDashBoardを使ってみましょう。

Flowの作成

dashboardのTextノードを置きchangeノードに接続します。
image.png
Textノードをダブルクリックしてノードの編集画面にします。
Groupの右の鉛筆をクリックしてグループを作りTEMPとします。タブは”M5Stack EnvII”にします。 [追加]もしくは[更新]を押して閉じます。
image.png

image.png

image.png

Labelを温度にします。[完了]を押して閉じます。
image.png

デプロイを押します。

表示

右上の下三角のボタンを押し[Dashboard]をクリックします。
image.png

リンクボタンを押します。
image.png

ブラウザに新しいタブが表示されます。温度がリアルタイムに変わっていくのが判ります。
image.png

Flowの追加

Chartを追加して、線をつなぎます。
image.png

Chartをダブルクリックしてノードの編集をします。グループが前のTextと同じになっているのを確認して[完了]を押します。
最大、最小は値が入っていないと自動で設定さるみたいです。便利ですね。
image.png
デプロイを押して、先ほどのDashBoardのページに移ると、グラフが追加されていると思います。
image.png

配置を変えたいときは、Node-redのDashbordの配置を展開して、ドラッグアンドドロップで移動して、再度デプロイをしたら良いみたいです。
image.png

湿度の表示の追加

changeノード、textノード、chartノードをコピーし接続したのちに編集します。
image.png

changeノードの編集

image.png

textノードの編集

textノードは新しいUIグループrhを作りつつ設定します。
image.png

Chartノードの編集

Chartノードはグループを選択するだけです。
image.png

デプロイして確認してみましょう。
image.pngを多用して汚いですが。。

6
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?