CCS811

2018年7月4日 - 未分類

CCS811は、VOC(揮発性有機物)が測定できるI2Cセンサです。センサーの応答速度は遅く、1秒に1回の読み出しが最高速度です。1分に1回の割合で測定するモードもあります。早く読み出そうとすると、データが準備できていないというエラーが返ってきます。

WAKはGNDに接続します。RSTとADDは、何もつながなくても大丈夫です。VCCには3.3Vを入れます。アドレスは、 0x5aで認識されます。

Raspberry Piのコードは、ここを参考にしました。出力は、こうなります。I2Cへの書込みでエラーがよく起きたので、tryを入れて例外処理を入れました。また、温度、湿度の計測値で補正するので、 BME280で測定した温度、湿度を使うようにしました。

Time: 2018-07-04 13:06:57
Temp: 24.769929451 deg
Hum: 62.1566918512 Press: 989.435114813 pascal
Setting compensation to 24.77 C and 62.16 eCO2: 4327 ppm
TVOC: 598 ppb

 

ローズマリーを切ってきて、ビーカーに挿して、葉っぱを手でなでたところ、VOC値が跳ね上がりました。

不思議ですが、raw dataとbase lineの値が、VOC値と似ていません。また、eCO2がTVOCと相似です。恐らく、TVOC値から、eCO2値を算出しているのでしょう。eCO2値は、あまり当てにはできそうにありません。TVOC値がすぐに低下してくるので、ローズマリーをポリ袋に入れて、センサーも一緒に入れて、テープで密封しました。

TVOC値が高いままだろうと思ったのですが、密封状態でもTVOC値は低下してくるようです。しかし、低下の度合いは小さくなっています。

これで、正しく測れているのでしょうか?

ポリ袋を揺すってみました。少しだけTVOC値が上昇しました。さらに、ポリ袋の中のhappawomonndemimasita.TVOC値は急激に上昇しました。

やっぱり、葉っぱ同士が物理的に接触しないとTVOC値は上昇しないようですね。植物を植えていた場合には、植物に送風して風を当てて、葉っぱを揺らせて、互いにぶつかり合うようにしてやる必要があるかもしれません。さもなければ、TVOC値上昇は、植物の成長による葉っぱ同士の接触時にしか起こらないと思われます。

本来ならば、外敵である昆虫などが、葉っぱに取り付いた時にTVOC値が上昇するはずです。昆虫がいなければ、風が吹いたとか、茎や葉っぱが伸びたとかの理由で、物理接触が発生した場合にTVOCが上昇すると思われます。

しかし、Adafruitによると、

This sensor is not well supported on Raspberry Pi. This is because it uses I2C clock stretching which the Pi cannot do without drastically slowing down the I2C speed. CircuitPython and Arduino are supported.

という訳で、Raspberry Piには向いていないようです。ArudinoやESP32とかで使うのがいいみたいです。ここの情報が参考になりました。

 

Translate »