NDIR方式のCO2センサー「MH-Z19B」と「S-300L-V3」、MOXガスセンサー「BME680」と「CCS811」を同じ環境に置いて値を測定し、比較しました。

NDIR(Non Dispersive Infrared)方式のセンサーはガス分子が特定の波長の光を吸収することを利用して特定のガスの濃度を測定するセンサーです。MH-Z19BとS-300L-V3がこのタイプです。

MOX(Metal Oxide)ガスセンサーは温めたMOX(金属酸化物)が空気中の揮発性有機化合物によって抵抗値が変わることを利用してガス濃度を測定します。ガスの種類は区別できません。BME680とCCS811がこのタイプです。

四つのセンサーの値を比較するために、1台のM5Stackに全部接続してみましたが、突然リセットがかかるなど安定して動きませんでした。ESP32でも試みましたが、同様でした。

各センサーの最大消費電流が次のようだったので、1台のM5StackやESP32では電源電圧が降下し、安定動作しなかったのだと思います。

センサー 最大消費電流
MH-Z19B 150mA
S-300L-V3 180mA
BME680 18mA
CCS811 30mA

 

そこで、M5Stackを2台使い、MH-Z19B、BME680、CCS811を1台のM5Stackが、S-300L-V3をもう1台のM5Stackが制御して、同時に測定しました。写真は四つのセンサーが一つのブレッドボードに載っていますが、単に同居しているだけです。5分間隔で4日間データーを測定し、比較しました。

「MH-Z19B」と「S-300L-V3」

二つのNDIR方式のCO2センサーの測定値です。絶対値ではS-300L-V3の方が300〜400ppm高い値ですが、同じ傾向を示しています。

相関は次のようになっており、ほぼ比例関係にあることが確認できます。

S-300L-V3は電源オンから24時間ごとに自動校正するとのことなので、最後の約24時間のデーターの相関を調べると、ほぼ直線になっています。

校正によって絶対値は修正されるものの、校正と校正の間はMH-Z19BとS-300L-V3はほぼ比例関係のデーターが得られるようです。

どちらのセンサーも大きく値が変化することがあり、正しい値が測定できているのか不安でしたが、二つのセンサーがほぼ同じ傾向の値を出力することから、絶対値はともかく、正しい傾向のデーターと推測できます。だたし、基準となるデーターがないので、絶対値としてどちらのセンサーの値が正確かは分かりません。

なお、MH-Z19BとS-300L-V3は別のM5Stackで制御し、別々のチャネルにデーターを送信しています。Ambientでは別チャネルのデーター比較ができないので、それぞれのチャネルに保存されたデーターをPythonで読み込み、集計処理しています。

「MH-Z19B」と「CCS811のTVOC」

MH-Z19BとCCS811のTVOCの値を比較すると、絶対値は違いますが、似たような傾向で推移しています。

相関を調べると、それほど強い直線性ではありませんが、プラスの相関はあるようです。MH-Z19BはCO2を測定しているのに対し、CCS811はTVOC(総揮発性有機化合物)を測定しています。違うものを測定しているので、違う値になりますが、個人宅の居間の空気環境で、短時間に変化するのはCO2なので、CO2とプラスの相関になっているものと思われます。

なお、Ambientは二つの値の相関を表示することができます。チャート設定でグラフ種類として散布図を選んでください。

「CCS811のTVOC」と「CCS811のCO2」

CCS811はTVOC(総揮発性有機化合物)の量とCO2濃度の二つが得られます。この二つを比較しました。ほぼ同じ傾向を示しています。

相関を見ると、ほぼ直線です。測定値はどちらか一方で、その値を元にもう一方の値に変換して出力しているのではないかと思われます。

「MH-Z19B」と「BME680のガス抵抗値」

BME680はTVOC(総揮発性有機化合物)の量に対応したガス抵抗値という値を出力します。マニュアルによると「空気品質が上がるとガス抵抗値も上がり、空気品質が下がるとガス抵抗値も下がる」と書かれています。CO2などのガス濃度とはマイナスの相関になると思われますが、実際の値はあまり相関がないようです。

CCS811のTVOC値とBME680のガス抵抗値を比較しても、あまり相関が見られません。

BME680の使い方やガス抵抗値の理解が不足しているのかもしれません。

まとめ

CO2濃度の測定としてはMH-Z19BとS-300L-V3はほぼ同じ傾向のデーターが得られます。基準となるデーターがないので、どちらが正確かは分かりませんが、傾向を見る上ではどちらのセンサーも同様に使えると思われます。
TVOC(総揮発性有機化合物)の測定としてはCCS811の値がMH-Z19BのCO2濃度とプラスの相関があり、それらしい値になっていると思われます。