自作CO2二酸化炭素検知器
ここ数日、組み込みシステムのArduinoをいじっていて、学ぶのは簡単だと気づいたので、二酸化炭素検知器を作ることにしました。主な理由は、PM2.5のせいでずっと窓を閉め切っているので、部屋の酸素が十分かどうかを知りたいのと、どんなタイプの換気システムを設置すべきかを考えたいからです。
組み立てに使用した材料:
| 材料 | 価格RMB(送料込み) |
|---|---|
| Arduino Nano 互換開発ボード | 15 |
| Logic Level Converter | 5.5 |
| DS-CO2-20 センサー | 145 |
| SSD1306 128x64 OLED ディスプレイ | 14 |
| 3x7 両面万能基板 | 5.14 |
| 電線 | 4 |
| M2*15 スペーサー | 5 |
はんだごてはT12先端の自作品で十分で、価格は約170円程度でオリジナル品の2000円以上の性能を発揮できます。

配線図
センサーの通信プロトコルは3.3vのUARTなので、面倒くさがってLevel Converterで変換しています。

コード
ここでは、センサーから値を取得する簡単なコードのみを掲載します:
#include <SoftwareSerial.h>
#define rxPin 12
#define txPin 11
SoftwareSerial CO2_Serial(rxPin, txPin);
const byte readCO2[] = {0x42, 0x4d, 0xe3, 0x00, 0x00, 0x01, 0x72}; //コマンド
byte responses[12];
void setup()
{
CO2_Serial.begin(9600);
}
unsigned int GetCo2()
{
int valMultiplier = 1;
while (!CO2_Serial.available())
{
CO2_Serial.write(readCO2, 7);
delay(1000);
}
CO2_Serial.setTimeout(2000);
CO2_Serial.readBytes(responses, 12);
int high = responses[4]; //上位バイト
int low = responses[5]; //下位バイト
unsigned int val = high * 256 + low;
return val * valMultiplier;
}
void loop()
{
auto co2 = GetCo2();
draw_co2(co2);
delay(1000);
}表示部分にはu8g2ライブラリを使用しました。レンダリング速度を上げるために、部分領域のみをレンダリングする必要があったため、フルバッファを使用したところ、メモリの92%を消費してしまいました。この点から見ると、別のライブラリに切り替えた方が良いかもしれません。

結論
では、元の問題に戻ります。ずっと窓を閉め切っていても酸素は十分なのでしょうか?以下は、運動しない1人暮らし、質の悪いアルミサッシの1LDK、約30$m^2$での経験です:
- 窓を閉めると、約30分ごとにCO2が500ppm上昇し、最大で3000-4000ppm程度になります(測定位置による)。
- 窓を少し開けると、最大でも1000ppm前後に安定します。
- ドアと窓を少しずつ開けると、500ppm前後に安定します(南北同時に通風することが重要であることがわかります)。
10,000ppmごとに、CO2濃度は1%に相当します
どれくらいのCO2が人体に有害なのでしょうか?これは科学的に議論があります。1200ppm以上で認知機能が低下するという実験結果がある一方で、キーボードタイピングの実験では5000ppmでも影響がないという結果もあります。生命の安全に関する医学的アドバイスとしては、1万ppm以上の環境に8時間以上滞在しないことです。したがって、ずっと窓を閉め切っていても安全性に問題はないと考えられますが、可能であれば1000-2000ppmに保つのが良いでしょう。
EDIT: 以前は古い家の気密性が悪いためにCO2が最大3000-4000ppmになると疑っていましたが、システムサッシを導入し負圧テストで漏気がないことを確認した家でも同じ結果でした。
窓を少し開けるだけで効果がこれほど顕著なら、各部屋に壁掛け式の換気システムを設置すれば十分なのではないでしょうか? 全館換気(ダクト式換気)のように天井に配管して複雑さを増すことも避けられます。酸素のみを考慮するならば、それは可能です。
全館換気システムは通常、1時間に1~2回、家全体の空気を入れ替えることができます。そのため、臭いやホルムアルデヒドの除去が可能です。もちろん、現在はホルムアルデヒドの問題はそれほど大きくなく、多くは無駄遣いと言えますが、設置は面倒で、配管の配置を考えるだけで頭が痛くなりますし、機器が故障した場合の修理方法は考えたくありません。
一方、壁掛け式換気システムの換気量は低く、送風距離も短いため、小さな部屋でのみ使用でき、熱交換能力も限られているため、冷風や温風が吹き出す問題があります。