ArduinoでCO2を測定

ArduinoでCO2を測定

ArduinoでCO2を測定

新型コロナ対策のため換気に気を付けましょうということで二酸化炭素濃度計が売れているようです。
我が家では以前より暖房にガスファンヒーターを使っているので換気には気を付けていますが、どの程度の濃度なのか気になったので測定してみることにしました。
CO2を正確に測定するにはダブルビーム非分散型赤外線吸収法(NDIR法)を使ったものが良いようですが、センサーが高価なので、アマゾンで3000円程度のものから販売されている簡易なCO2モニターと同等のCCS-811というセンサーとマイコンで測ってみました。

使用したパーツ:

  • Arduino DUE(3.3V仕様)
  • CCS-811 CO2、TVOCセンサー(新規購入 5V仕様)
  • BME280 温度、湿度、気圧センサー(3.3V仕様)
  • SSD1306 128×32 OLED表示器(3.3~5V仕様)
  • ブレッドボード


配線は電源、I2C、およびCCS-811のリセットラインのみで、電源用ラインの片側をI2Cのバスラインとして使っています。

2021/3/21 追記
マイコンボードを小型のarduino pro micro(3.3V仕様)に、ディスプレイを128×64に変更し、1枚のブレッドボードに乗せてみました。

2021/3/25追記
長時間使用しているとO2の測定値が異常に高くなってしまうので調べていると、私が購入したCCS-811搭載モジュールは5V仕様なのに3.3Vで動作させていました。購入前にCCS-811のデータシートを見ていたので思い込みでした。CCS-811とDisplayは5Vで動作させ、I2Cインターフェースにレベル変換器を入れ3.3Vに落として作り直しました。BME280だけarduino pro microの3.3V端子から電源を供給しています。

SparkFunのCCS-811サンプルスケッチ”Example2_BME280Compensation”、および表示用にadafruitのSSD1306サンプルスケッチ”ssd1306_128x32_i2c”を利用したので割合簡単に動かすことができました。

CCS-811のサンプルスケッチはCCS-811とBME280の全測定値を表示しています。

部屋を閉め切って工作をしていたらCO2濃度が1800ppmを超え、換気したら直ぐに1000ppm以下に下がりました。