先日、M5StickC Plusを使ってCO2を測りました。この記事ではその続きとして、温度、湿度、気圧も測りました。
完成形
完成形はこちらです。M5EnvMonitorと名付けました。
ソースコードはGitHubで公開しています。
https://github.com/shoarai/M5EnvMonitor
開発過程
CO2の計測までは、以下の記事で紹介しています。
追加の部品
- M5Stack用環境センサユニットver.2(ENV II)
(秋葉原の千石電商で購入)
PlatformIOの環境構築
以前は開発環境としてArduino IDEを使っていたのですが、今回からPlatformIOとVisual Studio Code(VSCode)を使うことにしました。フォーマットの自動化やGitとの連携をしたかったのが理由です。
1. VSCodeと、PlatformIOというVSCode拡張機能をインストールする。
2. PlatformIOを開き、Home画面のNew Projectボタンから新規プロジェクトを作成する。
- Name: プロジェクト名。ここではM5EnvMonitorとする。
- Board:M5Stick-C(M5Stack)
- Framework:Arduino
- Location:任意のディレクトリ
これでプロジェクトが作成できました。この時点でGitを初期化、コミットしておきます。
Env IIの利用
Libraries画面で必要なプラグインを検索し、プロジェクトにインストールする。
ライブラリのインストールは、platform.ioファイルのlib_depsに直接記載することも可能です。また、Arduinoライブラリとして公開されていなくても、GitHubで公開されているライブラリをインストールすることもできます。以下の最後の行のように、GitHubのURLを記載すればOKです。
[env:m5stick-c]
platform = espressif32
board = m5stick-c
framework = arduino
lib_deps =
m5stack/M5StickCPlus@^0.0.2
adafruit/Adafruit Unified Sensor@^1.1.4
adafruit/Adafruit BMP280 Library@^2.4.2
ambientdatainc/Ambient ESP32 ESP8266 lib@^1.0.1
https://github.com/nara256/mhz19_uart
ENV IIの利用
ENV IIのサンプルコードを使って、ENV IIの測定値を表示します。Adafruit_Sensor.hはAdafruit Unified Sensorライブラリに含まれていたので、ライブラリをインストールしました。ENVII.inoの内容をsrc/main.cppコピーしてビルド、アップロードします。
カスタマイズ
計測値の表示レイアウトを調整したり、M5StickC Plusの情報表示を追加しました。
※CO2センサーが壊れているので、繋いでいない状態です;なのでCO2は-1になってます。
画面仕様は以下の通り。
- 画面右上:充電状態。”Full”は満充電。”USB”は充電中。
- 画面右上:電池の残量。
- 画面左の色:測定値が快適かどうか。緑なら問題なし。赤は問題あり。
・17℃ < 温度 < 28℃なら緑、それ以外は赤
・40% < 湿度 < 60なら緑、それ以外は赤 - 画面右下:Ambientへのデータ送信の結果。成功なら表示なし、失敗なら”Send NG”
使っていくうちにまたいろいろ変えるかもしれません。