二酸化炭素濃度測定器を自作する
面白そうだし安く上がりそうなので自作してみる。
材料候補
社内で色々聞いてきて、M5Stack Basic / M5StickC / M5StickC Plus のどれかが良いかなと思ったので、それぞれ比較する。
M5Stack Basic コース
M5Stack Basic 本体
5,204 円
CO2センサーモジュール (MH-Z19C)
2,480 円
ジャンバー線
mizdra ハウスに転がっているものを引っ張ってくれば良い
M5StickC コース
M5StickC 本体
2,816 円
M5StickC/Plus用「Co2 HAT(ソケット版)」キット
1,650円
CO2センサーモジュール (MH-Z19C)
2,480 円
M5StickC Plus コース
M5StickC Plus 本体
3,058 円
M5StickC/Plus用「Co2 HAT(ソケット版)」キット
1,650円
CO2センサーモジュール (MH-Z19C)
2,480 円
検討
はんだ付け楽しみだなーと思いながら候補探していたけど、どれもはんだ付け不要そうで驚いた
別にやらなくて済むならそれで良い
基本デバイスはCO2測定専用にする予定なので、CO2測定で使う予定のない機能があるデバイスを買う必要はない
その点 M5Stack Basic ほど高級である必要ないかなーという所感
M5StickC Plus は M5StickC と違ってブザーがあるらしい
ブザー欲しいので M5StickC Plus で決まり
2021/8/5 買った
送料込みで 8,000 円くらい
全部別々のストアで売ってるので送料 MAX だった
mizdra.icon 既製品とそんな価格変わらないなという気がしてきたけど、プログラミングでごちゃごちゃできて既製品よりずっと面白いはずなので、気にしないことにする
2021/8/7 グッズ届いた
https://gyazo.com/d8255b6d603f55390a99af47a8b0520b
組み立て
バラバラー
https://gyazo.com/2a2cdee19efc8812b9d2dc5d9271465d
これを...
https://gyazo.com/3211b514256927a371d347d38556654d
こうじゃ〜
https://gyazo.com/0b21b18c2938f63a397e944777a7f1ee
ケースも被せちゃう
https://gyazo.com/6fd2e45b3cf149b6f27e6e6247f08ba9
そして合体
https://gyazo.com/24effe400b2d5371a641773e272e29ce
これで完成らしいですよ
簡単ですね
M5StickC Plus のセットアップ
これ作りたい
Auduino IDE というのを使えば気軽に書き込めるらしいので使ってみる
わかりやすい
hello world プログラム書き込むところまでやった
MHZ19.hが必要なので事前にDLしてくる
こういう感じで配置する
code:text
/Users/mizdra/src/localhost/gomi/co2-meter
├── MHZ19.cpp
└── MHZ19.h
雑に書き込んで見る
何かをミスったっぽくてハイパークリーン空間になった
https://gyazo.com/767ac4dd975b60ad217c8fd35e3978a4
mizdra.icon …
そういえば上記プログラムは M5StickC/MH-Z19B 向けだった
今 mizdra.icon が使っているのは M5StickC Plus/MH-Z19C
そもそも動くわけない
UI は描画されていて測定値が取れていないことから、測定値を取得する部分が壊れているのだろう
シリアル通信に使う PIN が間違ってるんじゃないかな〜
=> やっぱりそうだった
code:diff
-#define TX_PIN 26
+#define TX_PIN 0
再チャレンジ
https://gyazo.com/c9a8b100f54874dde1556df477387d3d
mizdra.icon やった〜
息吹きかけたら値増えたので正しく動いてそう
ところでよく UI を見ると数字が小さい感じがする
mizdra.icon そういえば M5StickC Plus の画面サイズって M5StickC より大きかった気が…
グラフも右側に無の空間が広がっていた
https://gyazo.com/6a0759e60073de4f4bef95eb97a79832
mizdra.icon …
あと更新タイミングで画面がちらつくのも直したい
ダブルバッファリングのための専用 API あるらしい
という訳で色々調整した
https://gyazo.com/6cccfecbf484971de91e6715f406f641
https://gyazo.com/5892b680f9db91ddb018fe4d00d6b8e1
https://gyazo.com/4b17312a42c3b871e0a28e17ca9cdd30
mizdra.icon やった〜
おわり
手動キャリブレーションできるようにする (追記: 2021/11/23)
MH-Z19C はデフォルトではオートキャリブレーションという機能が有効になっている
電源投入後24時間ごとに、その時点での二酸化炭素濃度を 400ppm として校正される (ゼロキャリブレーション)
屋外利用など、環境によっては便利なこともある
とはいえ、mizdra.icon の場合は日によって基準点が変わって計測値が乱れるのが不便なので、off にしたい
とりあえずオートキャリブレーションを off にし、BtnBを3秒間長押しした時にゼロキャリブレーションをするようプログラムを書き換えた
実際にゼロキャリブレーションしてみる
まずモバイルバッテリーを装着して M5StickC Plus を屋外に転がしておく
大体大気の CO2 濃度に合ってきたな、これ以上計測値が下がらなくなってきたな、というタイミングでBボタンを長押し
MH-Z19C に息が掛からないよう、息を止めて近づくなどすると良いかも
息を止めすぎて死なないように注意
beep 音が鳴ったらゼロキャリブレーション完了