在宅時間が増え、特に冬場は部屋を閉め切ることが多いので、CO2濃度が気になるところ。以前から、低コストで CO2モニターが作れなか、色々と調べてみると非分散型赤外線(NDIR)方式のCO2センサーだと 6,000円 を超えてしまう。CO2相当の eCO2が計測可能なセンサーもあるけど、それなりの精度は欲しいところなので、NDIR方式で調べてみる。
候補としては、Sensirion の SCD30、SeeedStudio の Arduino用 Grove CO2&温度&湿度センサー(SCD30)が良さそうで、購入しようとしたところ在庫なし。
もう少し調べていたところ、Sensirion の SCD4x という新製品が出ているとのこと。まだモジュールとしては見つからず、さらに調べたところ Sensirion から SCD4x Evaluation Kit(SEK-SCD41-Sensor) という SCD41モジュール を含む評価キットを発見。
国内で取り扱っているところは見つからず、DigiKey は在庫なし、在庫があった Mouser から購入。価格は 5,651円で 2つ購入、送料は 6,000円以上で無料、3/4に注文して、届いたのが 3/13 なので 10日ほど。現時点(3/20)だと在庫なしで、次回入荷予定は 4/14 とのこと。
この SCD4x は、NDIR方式ではなく、Sensirion 独自の PASens技術 という、光音響検出原理により NDIR方式のようにある程度の光学ビーム経路を必要としないため、構造もシンプルで体積も 約1cm3 と小型で、コスト効率が良いとのこと。また、CO2 以外に温度、湿度センサーも内蔵。
評価キットの Webサイト には、クイックスタートやデータシートへのリンクや、Arduino などのサンプルコードへのリンクが分かりやすくまとめられている。キットには SCD41 development board/Jumper wireset/Adapter cable が含まれていて、Adapter cable は SensorBridge に接続するためのものとのことで今回は未使用。通信方式は I2C で、接続に関しては M5StickC の Groveポートと、SCD41モジュールのJSTコネクタのピンの並びが異なるので注意。Grove の白(SDA)を SCD41モジュールの緑に、後は同じ色(黄:SCL/赤:VDD/黒:GND)で接続。
早速 Arduino のサンプルコード をベースに、M5StackC での表示の処理を追加して試してみる。以下のような感じで、無事表示を確認。ただ CO2 がかなり高めなので、校正が必要。
以下、SCD30 と、SCD4x の仕様を比較してみた。(データシートより)
CO2含め、温度・湿度の測定範囲/精度は SCD30 が高いけど、実用的な測定範囲と精度で問題なければ、サイズ・コスト面では SCD4x が良さそう。
型番 | CO2 指定測定範囲 / 精度 | 温度 測定範囲 / 精度 | 湿度 測定範囲 / 精度 | |
SCD30 | 400ppm~10,000ppm / ±(30ppm +読み取り値の3%) | -40~70 ℃ / ±(0.4℃ + 0.023 × (T[℃]-25℃)) | 0%~100%RH / ± 3%RH | |
SCD40 | 400ppm~2,000ppm / ±(50ppm +読み取り値の5%) | -10~60 ℃ / 0.8℃ (15~35 ℃) 1.5℃ (-10~60 ℃) | 0%~100%RH / 6%RH (15~35 ℃) 9%RH (-10~60 ℃) | |
SCD41 | 400ppm~5,000ppm ±(40ppm +読み取り値の5%) | -10~60℃ / 0.8℃ (15~35℃) 1.5℃ (-10~60℃) | 0~100%RH / 6%RH (15~35℃) 9%RH(-10~60℃) |