M5StackでENS160
CO2センサーを使いたくなった
フレンドDP氏の会話の中で気圧とCO2濃度で頭痛アラームが出来たら良いなと言っていたので、CO2センサーを物色するようになりました。
CO2、でもeCO2
色々調べると正式にCO2を検出するのは校正も必要だし面倒なのが分かった。そしてセンサー自体の値段も高い。安く出回っているのは、eCO2(等価二酸化炭素)で、これはTVOC{総揮発性有機化合物)からCO2濃度を算出する方式みたいだ。
ENS160を入手
'24年11月ごろ注文して、しばらく待っことになったが手に入れることが出来た。この基板にもATH21という湿温度センサーが載っている。ENS160だけ載った基板を探したが見つからなかった。考えられる理由はENS160から出力されるデータを湿温度で補正する必要があるらしい。

Grove端子に接続する配線
ちょっと見た目がダサいけど、これまで使っていたBMP280基板と並列に接続しました。アドレスの重複はなさそうです。

コードを書き始める
電池交換とRTC内蔵で使えるようになったM5Stack(無印)をコードを書き始める。
ENS160 + ATH21のM5Stack用のライブラリはすぐに見つかったので、早速今のプロジェクトに追加して表示できるようにしました。
ENS160から取得できるデータは、
TVOC(ppb)、揮発性の有機化学物質、アルコール除菌シートを近づけると上昇します。
ECO2(ppm)、等価二酸化炭素、息を吹きかけると上昇します。
AQI、空気質指数、5段階、午後になってたまにModerateまで行くことはあるがPoorはあまり見ない
STATUS、センサーの状態、4段階、電源投入後はStartUpから始まって、1時間くらいでNormalに移行する
const char *aqst[4] = { "Nm", "Wu", "Su", "Er" };
const char *aqit[5] = { "Exle", "Good", "Mdrt", "Poor", "Unhe" };UARTでログを出力してあるので、電源投入から約一時間後にNormalへ移行していた。

これまでの時計表示に追加して、TVOCとeCO2を表示できるようにしました。

二つの湿温度の値はほぼ同じ?
違った値を示しているけど、どっちが正確か?なんて分からない。そもそも校正された正確な温度計なんて持っていない。

