はじめに
M5Stack Core2で「温湿度気圧センサ ENVⅢ」を使う方法を解説します。言語はBlocklyを使います。
ENVⅢは使い方が簡単、値段も手軽で、初心者やIoT入門者の方にオススメのセンサーです。詳細な使い方を画像付きで解説していくので、興味のでた方はぜひ使ってみてください。
~ この記事の内容 / Contents ~
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど | 備考 |
M5Stack | M5Stack Core2 | |
センサ | M5Stack用温湿度気圧センサユニット Ver.3(ENV Ⅲ) | |
開発環境 | UIFlow Ver.1.0.18 | デスクトップ版です |
言語 | Blockly |
M5StackやUIFlowのセットアップについてはこちらの記事をご覧ください。
ENVⅢを簡単に紹介
M5Stackを開発している会社”公式”の「温度・湿度・気圧」センサーです。センサ付属のケーブルをM5Stackにつなぐだけで使えます。
M5Stack用の開発環境である「UIFlow」を使えば、4つのブロックだけで簡単に温度などを表示するプログラムが作れます。
センサーの穴はLEGOブロック互換なので、カバーや取り付けをLEGOブロックで作れるのもうれしいです。
私はAmazonのスイッチサイエンスさんページから購入しました。同社の売れ筋ランキングでもENVⅢはも上位にランクインしていて、大人気のようです。
M5Stackとの接続
付属のケーブルをENVⅢとM5Stackに差すだけで使えます。コネクタを逆に差す心配もありません。
※ ケーブルを接続する際はM5Stack Core2の電源を切ってください。
使用する部品
M5Stack Core2とENVⅢを使用します。工具や半田ごては不要です。
プログラム概要
今回のプログラムの概要は以下の通りです。ENVⅢから温度・湿度・気圧の情報を読み取って、M5Stack Core2のディスプレイに表示します。
- 温度・湿度・気圧を表示するラベルを配置・設定する
- 温度・湿度・気圧を取得してラベルに表示する。
実行結果
後述するプログラムを実行すると、M5Stack Core2に以下のように表示されます。
ブロック全体
ブロックは以下の通りです。詳細な手順は後述する「ブロックの作成手順」で解説します。
ブロックの作成手順
前述したプログラム(ブロック)の設定・作成手順は以下の通りです。
「ラベル」を配置する
以下の手順で、温度や湿度を表示するための「ラベル」を配置します。
UIFlow上の「Lable」をドラッグ&ドロップして、M5Stackの画面(の絵)に貼り付けます。貼り付け後に表示されるラベルの設定画面で、以下のようにラベルを設定します。
変更箇所 | 入力内容 | 項目の説明 |
Name | labelTemp | ラベルの名前です |
Text | Temp | M5Stack上の表示するテキストです。 |
Font | Montserrat 30 | 文字の大きさの設定です |
※ 設定画面を消してしまった場合は、配置済みのラベルをクリックしてください。
ラベルを追加する
以下の表と画像を参考に、前述と同じ手順で「ラベル」をあと5つ配置、合計6つのラベルを配置します。
番号 | Name | Text | Font |
① | labelHumd | Humd | Montserrat 30 |
② | lablePressure | Pressure | Montserrat 30 |
③ | labelTempValue | Value | Montserrat 30 |
④ | labelHumdValue | Value | Montserrat 30 |
⑤ | lablePressureValue | Value | Montserrat 30 |
ENVⅢを追加する
「Units」の「+」マークをクリックします。ENVⅢを選択後、OKボタンをクリックします。
デスクトップ版のUIFlowで「ENVⅢ」が表示されない場合は、最新版にアップデートしてみてください。
私の環境ではVer.1.0.16で表示されず、Ver.1.0.18で表示されるようになりました。
ここまでで設定は完了
ここまでの作業で、プログラム前の設定は完了です。次からプログラム(ブロック)を作成していきます。
ループを作成する
処理を繰り返し実行する「ループ」の処理を作成します。
「イベント」をクリックし、「ずっと」のブロックをドラック&ドロップして、「Setup」のブロックにつなげます。
ラベル処理を配置する
ラベルに対して処理をするブロックを配置します。「UI」を選択して「ラベル」をクリックします。
一番上の表示される「ラベル labelTemp にHello M5を表示」をドラック&ドロップして
「ずっと」のブロック内に配置します。
ラベル処理の追加する
前述と同じ手順で、ラベル処理のブロックをあと二つ「ずっと」のブロック内に接続します。
処理対象のラベルを変える
3つのラベル処理ブロックの「ラベル labelTemp」の部分の「▽」をクリックして、ラベルの指定を以下のように変更します。
対象ブロック | 設定内容 |
1段目 | labelTempValue |
2段目 | labelHumdValue |
Font | labelPressureValue |
ENVⅢのブロックを配置する
「イベント」と同じ列にある「Units」を選択、「環境」をクリックして、「env_3_0の温度」のブロックを表示します。
ラベル「labelTempValue」の「Hello M5」の部分に、「温度」のブロックをドラック&ドロップして接続します(上から重ねるイメージです)。
湿度・気圧のブロックを接続
前述と同様に「Units」→ 「環境」からENVⅢの湿度・気圧のブロックを、以下場所に接続します。
対象のブロックのラベル | 接続するENVⅢのブロック |
labelHumdValue | env_3_0の湿度 |
labelPressureValue | env_3_0の気圧 |
実行してみる
上記を全て設定したら、UIFlowの右下にある「Run」ボタンをクリックします。以下のようにM5Stack Core2に、数値が表示されたらプログラムは完成です。
EnvⅢを(軽く)温める、息を吹きかける等して温度・湿度が変化するか、確認してみてください。
まとめ
M5Stack用温度・湿度・大気圧センサ ENVⅢの使い方を解説しました。
解説では温度などを表示させるだけでしたが、アイデア次第でハード・ソフトともにまだまだ「遊べる」センサーだと思います。興味の出た方は、ぜひぜひ使ってみてください。
M5Stackを詳しく知るには
M5Stackをより詳しく知りたい方は、こちらの書籍がおおすすめです。書籍の中で使われているのは、M5Stack Basic + Arduino言語ですが、M5Stackの概要・構成などをより詳しく学べます。
M5Stackは何に使える?
「ENVⅢをつなげる」以外にも、M5Stackでできることはたくさんあります。以下の記事にまとめているので、「M5Stackで何ができるの?」という方はこちらの記事をご覧ください。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。