ステイホーム環境改善に! M5StackでCO2濃度はかるよー
ステイホームでお家の中にずっといると、(暖房していることもあって)なかなか換気しなくなっちゃうんですよねー。
換気大切でしょ!
で、先日、
こんな記事をみつけてしまいました。
この高須さんによると
<おおまかな二酸化炭素濃度の目安>
350~450ppm 過剰な換気(外気:330~400ppm)
450~700ppm 理想的な換気レベル
700~1000ppm 換気が不十分(室内では1000ppm以下に抑えることとされている※)
1000~1500ppm 悪い室内空気環境(学校環境では1500ppm以下が望ましいとされいる)
1500~5000ppm これ以上の環境で労働をしてはいけない(労働安全基準法では、5000ppmが限度)
5000ppm以上 疲労集中力の欠如(締め切った車の中は、5000ppm以上になることもあるらしい)
※建築物衛生法、建築基準法、労働安全衛生法
<人体への影響>
1000ppm 思考力に影響し始める
2000ppm 眠気を感じる人が出てくる
3000ppm 肩こりや頭痛を感じる人が出てくる
3000ppm以上 集中力や意思決定に支障をきたす
研究者らによると、
「室内の二酸化炭素濃度が2500ppmや3000ppmに達したとしても決して健康に害があるわけではないが、集中力や意思決定に支障をきたす可能性があることは明らかになった」とのこと。
二酸化炭素濃度を上昇させないためには、とにかく室内の換気が重要だと指摘しています。
とのことです。で、計ってみたらけっこう簡単にCO2って濃度があがっちゃうそうなんですね。
濃度があがってもなんだかぼーっとするぐらいで体感できないそうなので、これはやっぱりテクノロジーを使って何とかするっきゃないじゃん。ってことで、私も実際にやってみました。
※↑の高須さん(中国は深圳を拠点に世界を飛び回るIoTデバイスのバイヤーさんで、『ハードウェアハッカー』の翻訳者さまです)は、その後もこのCO2センサを使って窓についているサーキュレーターを制御したり、窓の開け閉めを自動化したりしているそうです。すてき!☆
とりあえず、M5StackにCO2センサを付けて、だれかやっていないかなーと検索したらすぐでてきたサイトを参考にやっつけていこうとおもいます。
参考サイト
を参考にやってみますー
買ったセンサはコレ
CO2をそのまま計れるわけじゃないようですが、eCO2という「二酸化炭素相当物」というのがはかれるそうです。
センサの接続方法などは参考サイト参照ね。
で、
いきなりソース修正
参考サイトにソースも載っていたのでそのままコピってコンパイルしてみると、なんだかとってもエラーの嵐><
M5Stackさんはライブラリがアップデートすると前の書き方が通用しなくなってしまうので、それかもしれません……。
とゆーことで、そのままでは動かなかったのでいろいろと修正。
2021/01/26時点の、M5StackライブラリVersion0.3.1 では、以下の修正をしないと動きませんでした。
まず頭に
#include <M5Stack.h>
を追加。
setupの最初に
void setup()
{
M5.begin();
M5.beginを追加
loopの最初の方
M5.Lcd.setCursor(0.0)の中身を 0.0 じゃなくて 0,0に。小数点じゃなくてカンマ!
これ最初わかんなくてめっちゃ困ったですわー><
あと、M5.Lcd.printlnとあるところは軒並みlnをカット(昔はあったのかな? 今は使えないようです)
printInfoSerial()の中の、for M5Stackとあるところの表示部分は
見ての通り、(co2って変数ないですし、ppmは単に文字を表示したいようなので)plintlnとある行を
M5.Lcd.print(myCCS811.getCO2());
M5.Lcd.print(" ppm");
と書き換えておきます。
これで、大丈夫かな?
いざ実行。
うん、ちゃんと動いてますね。
↑ログはこんなかんじ。
参考サイトにもありましたが、このセンサーは稼働し始めてからまる二日(!)ぐらいまともな値を出してくれないそうです><
初期状態では400ぐらいの値が出続けるとか。
それって2日間電源入れっぱなしじゃなきゃいけないってことですよねぇ。パソコン(のCOMポート)占有されちゃうのこまるなー。
※CCS811のデータシートでは、実使用前に48時間のエージングと、20分のコンディショニングの時間が推奨されています(センサがウォームアップして、有効なデータを出力するまでに20分かかります)。
とスイッチサイエンスさんのページにもありました。48時間のエージングかあ。それと、エージングが終わっても、起動してから20分はちゃんとデータが出ないってことですわね。これは注意ですね。
さらに(大幅)手直し
画面を見やすく
こんな感じになおしました。
ついでに、いらない部分(参考サイト(の参考ソース)ではBME280という環境センサも併用して精度を出そうとしているようですが、このチップは使っていないのでそのあたりをカット)削除したりコメントを整理したり、
それから見た目を、精度の出ない起動後20分より前では表示を青く(薄く)して見えにくくして、通常状態を白に、そして、CO2濃度が1000ppmを超えたら黄色に、2000ppmを超えたら赤くなるように手直ししました。
いろいろやったソースがこちらです。
ソース
また、Arduino IDEのシリアルプロッタに対応して、
↑こんな風に起動後のCO2とTVOC(化学物質)のグラフを見ることもできます。
まだエイジングの48時間がおわっていませんが、それでもそれなりにCO2ひろえています。
やってみて
そのまましばらく動かしてみた結果のグラフがこんなかんじです。
部屋を閉め切ってこのブログを書いていてだんだんCO2濃度があがっていって、窓をあけたらぐっと濃度が下がるのが見てわかりますねw
そのほかにも、ちょっと近くで息をするだけでガガっと値があがってしまって、うわぁ、ワタシ活きてる(当たり前)ってかんじが良くわかりますw
屋内のCO2濃度って人が居るだけでこんなに急激に変化するんですねぇ。
これはけっこう大事な生活指標かもしれません。
あと、TVOC(化学物質)も見える化するとおもしろいですね。
部屋の中で掃除機つかったり、洗濯物を畳んだりしていると(多分、洋服に付着している化学物質のせい?)TVOCがぐぐっとあがってきたりして、これまた見ていて面白いやら怖いやらw
たぶんタバコ吸う人とかのそばに置いておいたらものすごいことになりそうですw
どちらにせよ「見えないものを見える」ようにしてくれるってことは、知らなかった、気が付かなかったことが知れるようになるってことで、QOLの向上に効果がきっとあるはずです。
お家にこもりがちな今こそ、こういうのとても大事だとおもいます。
簡単に作れますのでみなさんもやってみるとよいとおもいますよー☆
一応最後に必要なモノ
M5StackのBasicモジュールは3600円ぐらい、
CCS811モジュールは
2800円ぐらい。
だいたい6千円ぐらいで作れます。(普通に買った方がやすいかも?w まあ、M5StackはWiFiにつなげたりプログラム次第でいろいろ他にもつかえますけどw)