M5StickC Plus と MH-Z19C センサで CO2 濃度を可視化してみた

この記事は Rakuten Rakuma Advent Calendar 2022 の 17 日目の記事です。

マイコン初心者が CO2 センサの MH-Z19C で計測した値を M5StickC Plus で表示するまでの内容となります。

この手の記事は検索すると割と出てくるものですが、前提や諸条件が自分の手元の環境と微妙に違ったりしてそれなりに苦労したので誰かの助けになればと思い記事にしました。

きっかけ

かねてからラズパイに興味はあったものの今まで手をつけてこなかったのですが、ちょうどプラモが完成したタイミングでアドベントカレンダーをやりますという話を聞いたのでいい機会だしラズパイで遊んで記事書くかと軽い気持ちで手を上げました。

ラズパイ手に入らん

いざラズパイ買おうとするとどこも品切れ。。。

ポチれるサイトを見つけてポチって見たら後々メールで入荷予定は 1 年後とのこと。

M5Stick なるものを見つけた

元々家の二酸化炭素濃度計測したいなーと思っていてそれをラズパイでやってみたいと思ってたのでそれっぽいワードで色々検索していたら M5StickC Plus と MH-Z19C で CO2 濃度を測ってみたという記事に流れ着いたのでこれ幸いと飛びついたわけです。

kitto-yakudatsu.com

環境

CO2 濃度を表示するまでに苦労して色々なサイトに書いてあることを試行錯誤したので最終的な環境を書き残します

開発環境

必要なブツ

M5StickC Plus

Amazon | M5Stack M5StickC Plus ESP32-PICOミニIoT開発ボードm5stack iotキット フィンガーコンピューターカラーLCD | 基板 | 産業・研究開発用品 通販

MH-Z19C

これ系のブツはフェイク品が結構あるらしいですがここのサイトで買えば良いらしいです

akizukidenshi.com

ピン配列交換ケーブル

M5StickC Plus と MH-Z19C をつなぐやつ

www.amazon.co.jp

ソースコード

ソースはほぼ こちらのサイト をまるっと使わせていただきましたが一応 github に上げておきました。

github.com

色々あってできた

CO2 センサから値を取ってきて表示するまでできたのでとりあえずのゴールは出来ました。

追記

ここまで書いた後 Twitter 経由で CO2 HAT の作成者様からアドバイスいただきました。

CO2 HAT とは

当初 MH-Z19C と M5StickC Plus をつなぐものとして CO2 HAT なるものを使っていました。

kitto-yakudatsu.booth.pm

ただ合体させるだけで良いのでめっちゃ楽だしケーブルで繋ぐよりスッキリします。

しかし、使い方が書かれたブログ の通りに進めていくと VSCode 上で M5STACK DEVICE のファイルリストが見えるらしいのですが何も見えず途中で挫折し PlatformIO 拡張機能を使う方法にシフトしました。

その後アドバイスいただけたおかげで CO2 HAT でも CO2 濃度を表示させることができました。こちらオススメです。

先ほど紹介したソースコードからピン番号が変わります。

このピン番号というか回路図あたりが全然理解できてない初心者丸出し具合が出てます。。。

#define RX_PIN 36 // Rx pin which the MHZ19 Tx pin is attached to
#define TX_PIN 0 // Tx pin which the MHZ19 Rx pin is attached to