【はじめに】
ここ数年、COVID-19の感染拡大防止のために人の密集度合、換気状態を可視化する目的に多くのCO2測定器が発売されていることは皆さんご存じの通りです。当ブログでも過去にBosh製BME680ガスセンサーによるeCO2測定の考察で紹介したeCO2測定や精度の高いCO2濃度測定が可能であるNDIR方式のMH-Z19Bを使用して室内空気質測定器を作成したことがあります。
今回は各種センサーで有名なSensirion社のSCD40を採用しているM5Stack社のCO2 UnitをM5stickCで動かしてみました。
CO2ユニット:https://www.switch-science.com/products/8496
M5StickC:https://www.switch-science.com/products/6350
アマゾンから少し安価なものを購入しても良いかもしれません。
【手順】
M5stackでCO2ユニットを使用するにはビジュアルプログラミングのUiFlowやArduinoで動作させることができます。M5StackのオフィシャルサイトM5STACK UNIT CO2を参考にしてArduinoで動かしてみました。サイト下方の今回使用するM5stickC用スケッチのリンクをクリックするとGitHubにあるサンプルプログラムを見ることができます。

・サンプルプログラムをCopy raw contentsをクリックし、その後Arduinoの新規スケッチにペーストしましょう。
・コンパイルする前に、CO2センサー用の2つのライブラリーをインクルードしておく必要がありますので以下のgithubからライブラリーをダウンロードしArduinoライブラリーにインクルードしておきます。このライブラリーが無いとコンパイルできませんのでご注意ください。
1.[Sensirion I2C SCD4x]:(https://github.com/Sensirion/arduino-i2c-scd4x)
2. [Sensirion Core]:(https://github.com/Sensirion/arduino-core)
ライブラリーのインクルード手順は以下となります。ダウンロードした2つのライブラリーそれぞれについて作業を行います。

スケッチー>ライブラリーをインクルードー>.ZIP形式のライブラリーをインクルードー>ダウンロードしたファイルを選択。
・サンプルスケッチをコンパイルしM5stickCに書き込みます。

【結果】
・サンプルプログラムではCO2濃度、温度、湿度の3つが表示されます。

・息を吹きかけてみました。CO2濃度がどうなるか動画で確認下さい。
しばらく放置してみたところ、計測範囲400-2000ppmを逸脱する異常な値を示しています!これはセンサーの不具合でしょうか?

そんなことはありません、簡易なサンプルプログラムため画面の表示がおかしいだけで、1000ppm以上になった際の一の位が消えてないだけの様です。上の画面の数値は本当は925ppmですね。¨C28C簡単にですが動作チェックをしてみました。これからもまだまだ変異株の出現も考えられ3密回避は必要と思いますし、また運転中の眠気対策としての換気目安をはかる為にもSCD40を使って車載用にCO2チェッカーを作成・標準装備にしてみても有用と思います。
【考察】
MH-Z19Bとの比較
以前より設置している空気質測定器にCO2ユニットを接続して測定値比較をしてみました。測定値の絶対値はどちらのセンサーが真値に近いのかはわかりませんが、測定値の時系列は同じと言って良いほど相似しています。

測定値としてはSCD40の測定値のほうが高く出ています。例えば12月16日23時34分の絶対値は300ppmほど違っています。2つのセンサーで測定原理が全く同じ方式ではないためと考えられますが、デバイスによる測定値の個体差はしばしば見られることで絶対値の測定は難しものです。SCD40については仕様書に記載のオートキャリブレーションが完了していないかもしれませんので数週間後に再確認してみようと思います。

その後三週間ほど継続して測定データを確認しましたが、2つのセンサー間の測定差は同様に300ppm程度でした。この差を無くすには、両センサーを同一環境で強制キャリブレーションすることが有効と思われますが、正確な絶対値を測定するには校正環境の構築が必要ですのでここでは実施しませんでした。
以上です。
コメント