見出し画像

M5Stack を使ってみた #04

環境モニターの作成 (1)

少しは実用的なモノを作ってみようと思い、温度・気圧・湿度のセンサーを使った環境モニターにチャレンジしました。センサーから取り込んだデータをWebに載せ、それをブラウザから確認をする。というものです。いろいろと試行錯誤というか、右往左往というか、当初思っていたのから随分と軌道修正しました。こんなものかな、というレベルまでまとまりましたので、ここに至る経験をまとめてみました。

Web上に計測結果をグラフ化表示したもの
M5Stack 本体と環境センサーEnv III 

環境センサー ENV III

M5Stack には、接続できるユニットが豊富にありますが、そのひとつが、環境センサー ENV III です。
ECで買えますが、秋葉原のマルツ秋葉原本店で購入しました。税込み売っているようなので、こちらはそのお店で買いました。税込み1,078円でした。

人体センサではなくて、こちらの方を最初から買っておけばよかったと、ちょっと、思いました。

センサをPortAに取付け、UIFlow側からセンサ用のユニットを取りこんで準備完了です。

データ取り込み用のブロックが使えるようになった状態

画面レイアウト

label1の編集画面

本体の画面レイアウトを決めます。テキストのオブジェクトをドラッグアンドドロップで配置し、図のダイアログで既定値とか正確な位置、フォントなどを設定します。Name: で指定した名前(ここではlabel1)を使って、値や文字列を表示します。

Main Program

メインプログラムのブロックはこんな感じ。

Blockly
lcd.clear()
wdt = WDT(timeout=1000000)
ProgramTitle = 'Env Monitor 9.4'
label0.setText(str(ProgramTitle))
wifiCfg.autoConnect(lcdShow=False)
print((str('START :') + str(ProgramTitle)))
lcd.setBrightness(15)
ntp = ntptime.client(host='ntp.jst.mfeed.ad.jp', timezone=9)
InitialSetting()
timerSch.run('FiveMinuteTimer', 300000, 0x00)
GetEnv()
ShowEnvMonitor()
Save2Wev_01()
while True:
  try :
    wait(10)
    pass
  except:
    machine.reset()
  wdt.feed()
  wait_ms(2)
  1. 画面をクリア

  2. Watch Dog Timer を1000秒にセット

  3. プログラムタイトル(バージョン含む)をセット

  4. タイトルを画面に表示

  5. wifiに接続

  6. 日時の取得用のサイトに接続

  7. 初期設定

  8. 5分間隔のタイマーを開始

    1. 5分毎にタイマーでイベント処理。データの取得とWEBへのアップロードを行います。

  9. 最初のデータを取得し、画面表示と、WEBへのアップロード

    1. 温度と気圧と湿度をセンサから取得

    2. 温度と湿度から、簡易計算で暑さ指数(WBGT)と絶対湿度(ABS)を計算

    3. Ambient にデータをアップロード

  10. 10秒ごとに、Watch Dog Timer を更新する

スタート画面はこんな感じです。

次回以降で、それぞれの処理の説明をします。


役に立った!という記事にはぜひサポートお願いします。サポート頂けると大変に励みになります。