LoginSignup
0
0

CO2濃度が5000ppmになる件

Last updated at Posted at 2023-12-23

経緯

三密のうち、「密閉」はCO2濃度で測れば良いらしい。
CO2センサーを複数(MH-Z19CとSCD41)買ってみた。自分で試している暇がないのと、丁度学生に何かIoT関連の課題をさせないといけないのがあって、CO2センサーをESP32で使わせてみた。
学生がネットで調べて、接続して、コンソールに数字が出るようになったけど、何故か5000ppmとしか表示されない。温度も表示しているが、そっちはそれなりの値になっているので、センサーは接続されていると思われる。
別の学生にもやらせてみたが、結果は同じ。センサーは、同じ種類を2個ずつ買ったので、交換させて試したけど結果が同じ。しょうがないので、自分で確認してみた。

調査

とりあえず今回は MH-Z19C で確認する。

下調べ

5000ppmになってしまうというエラーを探すと、あまり多くはないが、少し見つかる。
そこに載っている対策としては

  1. キャリブレーションしろ
  2. 電源電圧をちゃんと5Vにしろ

と書いてある。
キャリブレーションは、スペック表には書いてあるけど、ネットでMH-Z19Cの使い方を見ると、キャリブレーションの方法は、書いてあったりなかったり。これだと、キャリブレーションしないで使ってみるのは仕方ない。学生の発表資料を見る限り、誰もキャリブレーションはしていないように見える。
電源は、学生の資料を見ると、3.3Vに接続している。どうして5Vに接続しないのかと思ったら、使っているESP32には5Vのピンがなかった。別に入手したESP32には5Vピンがあったけど、幅の広いESP32で、手元にあるブレッドボードだとうまく挿さらない。(物理的には挿さるけど、端の穴なので、ピンが挿せない。)
しょうがないので、とりあえず3.3Vで試す。

確認

学生が使ったのと同じライブラリを使う。
https://github.com/nara256/mhz19_uart

動かしてみると、確かに 5000ppm になる。

上のライブラリの example の下に、キャリブレーションのサンプルがあったので、それを動かしてみた。30分かかるけど、結果 400ppm とか 500ppm の値になった。
(本当は、外気に入れ替えた状態にする必要があるけど、とりあえず動作確認なので気にせずそのままでやった。)

一度電源を切ってから、再実行してもほぼほぼ 400ppm から 500ppm の値になる。電源を切ってもデバイスが覚えているみたいだ。

試しに、もう一つ残っていたデバイスで確認すると、5000ppmになる。多分キャリブレーションすれば良いのだと思う。念のためにこっちはキャリブレーションしないままで残しておく。

SCD41の方は未確認だが、キャリブレーションコマンドはあると書いてある。

結論

CO2センサーを使う時は、(あるいは、値がおかしかったら、)必ずキャリブレーションしてから使う。
電源電圧は、3.3Vでも動くけど、仕様書通りの5Vが良いと思う(未確認)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0