M5Stack PM2.5 大気質センサキット を試してみる

2月にスイッチサイエンスでの取り扱いが開始されて、すぐに購入。
製品詳細については、スイッチサイエンスの 製品ページ、M5Stack の 公式のページ を参照。

春になると花粉や黄砂が増え、室内の PM2.5 がどう変化するか、またほとんど気にせず標準のまま使用している24時間換気フィルターを PM2.5 対応にしたら効果があるのか気になったのが購入の大きな理由。

この大気質センサキットは、PM2.5 の測定を行う PLANTOWER の PMSA003 というユニットと、 温度・湿度センサー Sensirion SHT20 が一緒になった PM2.5ベースと、M5Stack Basic、表示が見易い角度で設置可能なスタンドがセット。
PM2.5ベース と M5Stack Basic を接続し、スタンドと M3ネジ 2本で組み立てて完成。
購入後そのまま電源を入れればセンサーの測定値が確認できるのはキットならではの良いところ。

USB Type-C で電源を供給すると、以下のように、画面上段に PM1.0/2.5/10 の測定値 μg/m3 と、下段に PM0.3/0.5/1.0/2.5/5.0/10 の粒子の数?、温度・湿度が表示される。
温度・湿度は内部の発熱のせいか、実際より温度が+5度、湿度が-10%くらいの値になってしまうのが少し残念。

購入後そのまま電源を入れた状態

以下は、背面の様子。黒い部分にあるファンにより銀色の金属部分の右側から空気を取り込み、取り込んだ空気に含まれる粒子をレーザー散乱法で検出するとのこと。

背面の様子、銀色の金属の部分が、PM2.5センサー PMSA003 のユニット
下のスタンド両側の脚の奥に見える M3ネジ で本体と固定されている

購入時のままだと、その場で確認するだけなので、元のプログラム をベースに、クラウドサービスでのデータ蓄積のためプログラムを作成。
今回対応したサービスは、ThingSpeakAmbient。ThingSpeak は以前から使っていたので、そのコードを流用。Ambient は今回初めて使うので、チュートリアル などを参考にしながら、以下のような感じで温度・湿度、PM1.0/2.5/10 を 5分おきに送信し保存できるように実装。

ThingSpeak のデータについては、スマホ(Android) の ThingShow というアプリのウィジェットで、ホーム画面で以下のような感じでいつでも確認できるように。
一番下の表示が今回の PM2.5 大気質センサキット の値、一番上は市販製品の空気品質モニター Awair のウィジェット表示、5つのセンサーの総合的な数値や、個別の数値を5段階の色で表示されるので直感的に分かり易い。
真ん中は別のセンサーで、こちらは別途レビューを書く予定です。

あと、住んでいる周辺の PM2.5 などがどう変化しているか、公開されている情報がないかを調べてみると、環境省大気汚染物質広域監視システム、愛称 そらまめ君 というサイトで公開されていることを知る。
気になって他にも公開されている情報がないか調べてみると、環境省黄砂飛来情報 (キャラクターは黄砂ライダー)や、花粉は 環境省花粉観測システム、愛称 はなこさん というサイトがあり、室内のデータとの比較などで色々と活用できそう。
さらにこれらのデータが WebAPI で扱えないかと調べたところ、MMソリューション という会社が開発・公開していて、無償利用可能とのこと。

今後は、蓄積データと環境省データとの比較、 PM2.5 対応フィルターの効果について確認進めて行く予定。

CO2センサー SCD41 を試してみる

在宅時間が増え、特に冬場は部屋を閉め切ることが多いので、CO2濃度が気になるところ。以前から、低コストで CO2モニターが作れなか、色々と調べてみると非分散型赤外線(NDIR)方式のCO2センサーだと 6,000円 を超えてしまう。CO2相当の eCO2が計測可能なセンサーもあるけど、それなりの精度は欲しいところなので、NDIR方式で調べてみる。

候補としては、Sensirion の SCD30、SeeedStudio の Arduino用 Grove CO2&温度&湿度センサー(SCD30)が良さそうで、購入しようとしたところ在庫なし。
もう少し調べていたところ、Sensirion の SCD4x という新製品が出ているとのこと。まだモジュールとしては見つからず、さらに調べたところ Sensirion から SCD4x Evaluation Kit(SEK-SCD41-Sensor) という SCD41モジュール を含む評価キットを発見。
国内で取り扱っているところは見つからず、DigiKey は在庫なし、在庫があった Mouser から購入。価格は 5,651円で 2つ購入、送料は 6,000円以上で無料、3/4に注文して、届いたのが 3/13 なので 10日ほど。現時点(3/20)だと在庫なしで、次回入荷予定は 4/14 とのこと。

この SCD4x は、NDIR方式ではなく、Sensirion 独自の PASens技術 という、光音響検出原理により NDIR方式のようにある程度の光学ビーム経路を必要としないため、構造もシンプルで体積も 約1cm3 と小型で、コスト効率が良いとのこと。また、CO2 以外に温度、湿度センサーも内蔵。

評価キットの Webサイト には、クイックスタートやデータシートへのリンクや、Arduino などのサンプルコードへのリンクが分かりやすくまとめられている。キットには SCD41 development board/Jumper wireset/Adapter cable が含まれていて、Adapter cable は SensorBridge に接続するためのものとのことで今回は未使用。通信方式は I2C で、接続に関しては M5StickC の Groveポートと、SCD41モジュールのJSTコネクタのピンの並びが異なるので注意。Grove の白(SDA)を SCD41モジュールの緑に、後は同じ色(黄:SCL/赤:VDD/黒:GND)で接続。

早速 Arduino のサンプルコード をベースに、M5StackC での表示の処理を追加して試してみる。以下のような感じで、無事表示を確認。ただ CO2 がかなり高めなので、校正が必要。

以下、SCD30 と、SCD4x の仕様を比較してみた。(データシートより)
CO2含め、温度・湿度の測定範囲/精度は SCD30 が高いけど、実用的な測定範囲と精度で問題なければ、サイズ・コスト面では SCD4x が良さそう。

型番CO2
指定測定範囲 / 精度
温度
測定範囲 / 精度
湿度
測定範囲 / 精度
SCD30400ppm~10,000ppm /
±(30ppm +読み取り値の3%)
-40~70 ℃ /
±(0.4℃ + 0.023 × (T[℃]-25℃))
0%~100%RH /
± 3%RH
SCD40400ppm~2,000ppm /
±(50ppm +読み取り値の5%)
-10~60 ℃ /
0.8℃ (15~35 ℃)
1.5℃ (-10~60 ℃)
0%~100%RH /
6%RH (15~35 ℃)
9%RH (-10~60 ℃)
SCD41400ppm~5,000ppm
±(40ppm +読み取り値の5%)
-10~60℃ /
0.8℃ (15~35℃)
1.5℃ (-10~60℃)
0~100%RH /
6%RH (15~35℃)
9%RH(-10~60℃)
SCD30 と SCD4x の仕様比較