センサ(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 の画面に CO2TVOC を表示する。

warm up の待機時間

CCS811 の仕様をみると、Power on 後、20分はwarm up 時間なので、そのカウントダウンを表示する。

CO2濃度の画面の表示

濃度の時間遷移を絶対値とグラフで表示する。
グラフの背景色は、CO2濃度によって変更する。

1000ppm未満

1000ppm未満

1000ppm以上

1000ppm以上

2000ppm以上で赤色にした。

センサの取得&表示の切り替えは、2秒間隔。
M5StickCは、横置きにすると幅が160pixelあるので、2sec x 160pixel = 過去320秒のグラフ表示が可能。

TFT保護

一定時間で明るさを制限。ボタンAを押すと10秒だけ明るくなる。

code

自分が購入したモノは、たまたま I2Cアドレスが 0x5A だった。

続き

シェアする