
I2C 環境センサの定番BME280や光センサBH1750以外の環境センサを知りたくて、 SHT30 温湿度センサと CCS811 ガスセンサを ESP Easy の載ったESP-12Eで使ってみます。
Sensors: SHT30 & CCS811
Sensirion社の温湿度センサSHT3xシリーズは計測精度によっていくつかバリエーションが有り、今回使うSHT30の計測精度は±0.3℃です(対してBME280は±1℃)。購入価格はRMB9.50+送料でした。計測項目は温度湿度のみでBME280のように気圧の測定は出来ません。
ams社のCO2ガスセンサCCS811は、揮発性総揮発性有機化合物(TVOC)と二酸化炭素相当量(eCO2)を測定することが出来ます。計測時の温湿度補正に必要なセンサを同じ基板上に内蔵したモデル(CJMCU8118)も存在しますが、今回購入したのはCCS811のみ搭載のモデル(CJMCU811)で、 購入価格はRMB35+送料でした。
使用に際してはVCC、GND、SCL、SDAといったI2Cの4本に加え、WAKEピンをGNDに落とす必要があるとのことで、センサ基板上のピンにジャンパを追加しておきます(RSTピンは何もせずそのまま)。
Assemble
以前、ESP-12E用にユニバーサル基板で組んだ環境センサステーションに少し改造を加え、これらの新しいI2Cセンサを載せられるようにしますが、CCS811は既存のBH1750センサと入替えとします(SHT30センサはBME280と共存出来るよう並列)。
ESP Easy
ESP Easy Megaのファームウェアはnormal版ではなく、test版かdev版にしないとCCS811センサ用のプラグインが有効になっていません。今回はこちらのファームを選びました。
1 |
ESP_Easy_mega_20201130_test_ESP8266_4M1M_VCC.bin 1037536 byte |
I2C Scanを実行して、搭載したセンサが全て正常に認識されているか確認します。
- 0x44 : SHT30
- 0x5A : CCS811
- 0x76 : BME280
次にデバイスタブに今回新たに追加したセンサを登録します。
各センサの設定は次の通り。CCS811の温湿度補正に使うセンサにSHT30を指定しています。
この環境ステーションに搭載しているデバイスの一覧と、計測値をThingSpeakへ送信する設定はこのようになっています。ThingSpeak設定のFull Queue ActionをDelete Oldestにして、送信失敗を破棄してリトライしないようにしないと、長期運用していると送信詰まりを起こします。送信間隔はここで設定するのではなく、各センサの計測間隔Intervalに準じることに注意が必要です(頻繁に計測するとフリーライセンス時のスロット上限超過の恐れが)。
CCS811は使い始めに48時間程度のバーン・インが必要とのことで、その間の計測値はひたすら上限値8,192ppmまで上昇したり、一転急降下したり。この辺りにひと手間必要なところは、ガスセンサならではの特徴と言えましょう。
BME280とSHT30の温湿度グラフを簡単に並べてみたのが下図です(上段がBME280、下段がSHT30)。オフィスビル平日午後の空調が効いている環境下では、このように数値にほとんど差が無いのですが、夏場の空調の無い夜間などは、両者に意外と大きな差が見受けられるものの、傾向としては両者同じなので、数値としてどちらの精度が高いのか、未だ判断しかねています。
最後に、試験中に新しいファームウェアが出たので、同じ仕様のものへアップデートしてみたのですが。
1 |
ESP_Easy_mega_20201227_test_ESP8266_4M1M_VCC.bin 1031072 Byte |
ガスセンサ用のプラグインが無効化されていました。
開発フォーラムによると、別のプラグインによって無効化されたらしく、更に翌月のファームウェアでは再び有効化されていました。ESP Easyのファームウェアはほぼ月一ペースでリリースされ、動きも活発なので定期的にアップデートしては試す日々です。
1 |
ESP_Easy_mega_20210114_test_ESP8266_4M1M_VCC.bin 1033424 Byte |