M5StickC
前回、M5Stack Communityにアカウントを登録してみました。
今回はM5StickC+ENV II Hatで温度、湿度、気圧を測るシリーズの最終回。
これまでに温度の表示ができているので、湿度と気圧を同じように表示していきます。
まずは前回保存したプログラムの読み込みから、始めていきましょう。
保存したプログラムの読み込み
前回、自分のPC上に保存したプログラムをUIFlowで開くには右上の三本線マークをクリック。
少し日本語がおかしいですが、「開いた」をクリック。
ファイル選択ウインドウが開きますので、UIFlowで読み込みたいプログラムファイル(.m5f)を選択し、「アップロード」をクリック。
プログラムが読み込みまれ、表示されます。
表示が大きすぎたり、小さすぎたりする場合は、右下の「+-」マークで調整します。
これでちょうどいいサイズになりました。
湿度と気圧を表示
それでは湿度と気圧を表示していきましょう。
ほとんど温度を表示した時と同じなので、解説は結構割愛していきます。
湿度(Humidity)を表示するためのブロックと気圧(Pressure)を表示するためのブロックをこんな感じで用意してみました。
新たに作成したブロックを温度を表示するブロックと1秒停止のブロックの間に入れます。
とりあえずこれだけですので、試してみましょう。
はい、失敗です。
見ての通り、気温の表示の上に、湿度と気圧の表示が乗っかってしまいました。
また気温と気圧に関しては2行になってしまっています。
ということで修正したプログラムがこちら。
表示するテキストをできるだけ短くすることで、2行になってしまうのを防止しました。
また表示が重なってしまう問題に関しては、「テキスト表示」ブロックのYの値を気温では「0」、湿度では「20」、気圧では「40」とずらしてみました。
試してみると、こんな感じです。
気温、湿度、気圧がそれぞれ1行にまとまっており、さらに重なっていない状態になりました。
いやはやこれだけのプログラミング量で、これだけのものができるというのは、なかなかすごいデバイスだなぁと思います。
Micropythonでは
せっかくなのでMicropythonでのプログラムも見ておきましょう。
from m5stack import *
from m5ui import *
from uiflow import *
lcd.setRotation(1)
import time
import hat
setScreenColor(0x111111)
hat_env2_0 = hat.get(hat.ENV2)
while True:
lcd.print(((str(((str('Temp:') + str(("%.1f"%((hat_env2_0.temperature))))))) + str(' deg.'))), 0, 0, 0xffffff)
lcd.print(((str(((str('Humidity:') + str(("%.1f"%((hat_env2_0.humidity))))))) + str('%'))), 0, 20, 0xffffff)
lcd.print(((str(((str('Pres:') + str(("%.1f"%((hat_env2_0.pressure))))))) + str(' hPa'))), 0, 40, 0xffffff)
wait(1)
lcd.clear()
wait_ms(2)
三つのlcd.print()の中のかっこの数はちょっと気になりますが、かなりスッキリしたプログラムです。
今回はENV II HatというM5StickCに特化したモジュールを使ったので、これだけ簡単にプログラムできたのかもしれませんが、なかなか驚きです。
M5StickCにはGrove端子といった汎用の端子もあるので、いろんなモジュールを繋げて、色々なことに挑戦するのも楽しそうです。
ということでとりあえずM5stickC+ENV II Hatのシリーズはこれにて一旦終了とします。
次回は普通は最初にやるLチカをやってみたいと思います。
ではでは今回はこんな感じで。
コメント