M5Stack を使ってみた #04
環境モニターの作成 (1)
少しは実用的なモノを作ってみようと思い、温度・気圧・湿度のセンサーを使った環境モニターにチャレンジしました。センサーから取り込んだデータをWebに載せ、それをブラウザから確認をする。というものです。いろいろと試行錯誤というか、右往左往というか、当初思っていたのから随分と軌道修正しました。こんなものかな、というレベルまでまとまりましたので、ここに至る経験をまとめてみました。
環境センサー ENV III
M5Stack には、接続できるユニットが豊富にありますが、そのひとつが、環境センサー ENV III です。
ECで買えますが、秋葉原のマルツ秋葉原本店で購入しました。税込み売っているようなので、こちらはそのお店で買いました。税込み1,078円でした。
人体センサではなくて、こちらの方を最初から買っておけばよかったと、ちょっと、思いました。
センサをPortAに取付け、UIFlow側からセンサ用のユニットを取りこんで準備完了です。
画面レイアウト
本体の画面レイアウトを決めます。テキストのオブジェクトをドラッグアンドドロップで配置し、図のダイアログで既定値とか正確な位置、フォントなどを設定します。Name: で指定した名前(ここではlabel1)を使って、値や文字列を表示します。
Main Program
メインプログラムのブロックはこんな感じ。
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)
画面をクリア
Watch Dog Timer を1000秒にセット
プログラムタイトル(バージョン含む)をセット
タイトルを画面に表示
wifiに接続
日時の取得用のサイトに接続
初期設定
5分間隔のタイマーを開始
5分毎にタイマーでイベント処理。データの取得とWEBへのアップロードを行います。
最初のデータを取得し、画面表示と、WEBへのアップロード
温度と気圧と湿度をセンサから取得
温度と湿度から、簡易計算で暑さ指数(WBGT)と絶対湿度(ABS)を計算
Ambient にデータをアップロード
10秒ごとに、Watch Dog Timer を更新する
スタート画面はこんな感じです。
次回以降で、それぞれの処理の説明をします。
役に立った!という記事にはぜひサポートお願いします。サポート頂けると大変に励みになります。