センサ(CCS811)で、CO2濃度表示する(1/2 M5StickC編)
正しく部屋の換気をするために、どうすべきか。
数字で見えるように、CO2の濃度センサではかって、表示してみる。
センサの調達
CO2 の濃度センサを探すと CCS811 というモジュールが見つかった。
スイッチサイエンスさんで、3000円近く。
個人のお試しで買うのはちょっと高いかも。
ということで、AliExpress で、500円台の同等モジュールを購入。
動くかどうかは自己責任で。
自分は4個購入して、同じ条件で2個同時に計測したら、そこそこぶれた。ただし、まだエイジング48時間を超えてないので、これからどうなるかは不明。
とはいえ、息を吹きかけたり、窓を開けて換気するとなかなかいい感じなので、ある程度信用してもいいと思う。
計測範囲
- CO2 ... from 400ppm to 8192ppm
- TVOC ... from 0ppb to 1187ppb
CO2 2000ppm で頭痛や眠気が発生するらしい。
試すと、外気で400ppm、ビニールに呼気を溜めて計測すると、1700ppm くらいだった。
真面目にやる人は、ちゃんとしたお店で買った方がいい。
センサの説明
Adafruit の説明をみてみる。
PIN | 説明 |
---|---|
GND | GND |
VCC | 3.3V から 5V(モノによる) |
SCL/SDA | I2C |
INT | センサの読み取りを割り込みで知らせてくれるようなだが、未使用 |
RST | LOW->HIGHT センサのリセット |
WAKE | LOW でセンサWAKE、その他でセンサSLEEP |
WAKE をGNDに繋げておけば、実質I2CのPINの制御で動かせる。
M5StickC に配線
M5StickC 上部の GND
, VCC
, G26(SDA)
, G0(SDL)
に配線する。
CCS811 のライブラリインストール
Arduino の Manage Libraries...
から ccs811
で検索し、 Adafruit CCS811 Library
をインストールする。
アプリ仕様
CCS811 のサンプルプログラムを参考に、シリアルとM5StickC の画面に CO2
と TVOC
を表示する。
warm up の待機時間
CCS811 の仕様をみると、Power on 後、20分はwarm up 時間なので、そのカウントダウンを表示する。
CO2濃度の画面の表示
濃度の時間遷移を絶対値とグラフで表示する。
グラフの背景色は、CO2濃度によって変更する。
1000ppm未満
1000ppm以上
2000ppm以上で赤色にした。
センサの取得&表示の切り替えは、2秒間隔。
M5StickCは、横置きにすると幅が160pixelあるので、2sec x 160pixel = 過去320秒のグラフ表示が可能。
TFT保護
一定時間で明るさを制限。ボタンAを押すと10秒だけ明るくなる。
code
自分が購入したモノは、たまたま I2Cアドレスが 0x5A
だった。