二酸化炭素を測りたい
例のウィルスのせいで自宅にこもりっぱなしとなっていますが、CO2が多いとどうにも眠い気がします。
隔離施設(ホテルや病棟)では1,000ppm以下になるよう換気しているそうです。
できれば1,500ppmくらいになったらでアラートを出して欲しい。
Qiitaにもいくつか同様の先輩方から似たような記事が投稿されていますが、どうにもドリフトが多すぎてアラートとして使うには誤差が大きすぎます。
ずぼらで放置しっぱなしの仕組みが欲しいなと思い、この記事を書きました
理想のセンサーを求めて
二酸化炭素を測定するセンサーは個人でもいくつか手に入ります
以下は個人的に譲れない条件を羅列してみました
-
I2C対応している事
同じ線に温度計とか湿度計もぶらさげて配線少なくしたい
UARTだとノイズにも弱い -
2波長NDIRな事
普通のNDIRだと毎週部屋を2時間程度窓全開にしないといけません
この時期寒すぎる -
1個単位で手に入る事
日本のセンサーだとロット単位で買わないと相手にすらしてもらえません -
ラズパイに繋ぐので消費電力はあまり考えないでいいが少ないに越した事はない
DS-CO2-20 が良さそう
という事でAliExpressからDS-CO2-20というセンサーを購入してみました
データシートはこちら
このセンサーはいくつかバージョンがあるようで、v2.9はI2Cが使えるようです
センサー自体にはどこにもバージョンは書いておらず、ファームのアップデートもできなさそうです
最新版は2019年ごろアップデートされているのでまず大丈夫でしょう
この記事を書いている頃にディスコンになってDC-CO2-21なるものが出たようですが、市場には十分なストックはあるようです
配線
さてデータシートの通りにラズパイに配線します
|センサー端子|機能名|ラズパイのPIN|備考|
|---|---|----|----|----|
|1|VCC|4|(5V)|
|2|GND|6|(GND)|
|3|SDA | 3 | (GPIO2) SDA|
|4|SCL | 5 |(GPIO5) SCL|
|5|RESET| 開放(リセット用に使うかも)|
|6|I2Cmode=L | 9 | (GND)|
|7|PWM | 開放(使わない)||
間欠的に200mAも流れますので、突入電流対策の為にセンサーの5V電源の近くには100〜470μF程度のコンデンサーを入れたほうがよさそうです。
あっさり動作
校正も何もせずあっさり動作しました
窓を開けると430ppmという値です
ラズパイのI2Cの設定などはこちらもご覧ください