CO2センサーの設定で大きなミス

先般のサーバ増強から一息つく間もなく、いくつかの問題や要望の対応を行っています。
その中で、以前から指摘されていたCO2濃度が時と共に上がっていくという症状について再確認していたところ、、
大きなバグを発見することになりました。orz

何をミスった?

CO2センサーには、自動校正機能が用意されていますが、ログBOXではこれを無効化するようにしています。
しかし、無効化していたはずのプログラムにバグがあり、実際には無効化に失敗していました。orz
なので、センサーが入荷時点で自動校正機能が無効化されていれば問題なかったのですが、有効化された状態で入荷したセンサーは無効化されないままに運用されてしまっていたという事です。
(このセンサーは工場出荷時は自動校正は有効化されていて、無効化には手数料がかかります。)

自動校正とは?

CO2センサーは、NDIR方式でCO2濃度を計測しています。
このNDIR方式とは、簡単に言えば、
 二酸化炭素が赤外線を吸収する
原理を利用して計測するものです。
しかし、計測を連続的に行う中で、部品の経年変化により計測値がすこしずつずれるドリフトが起きてしまいます。
これを自動的に安定化させるために「自動校正機能」をセンサーの機能として有しています。
これは、通常の生活環境下では、一定期間の中でほぼ大気と同一のCO2濃度に落ち着くタイミングが存在するという前提に基づいて、その一定期間内での最低値を
 400ppm
として扱うようにセンサー内部の設定を見直すことで、このドリフト現象による計測値の変動を抑制するものです。

しかし、栽培温室内では閉じた空間内に多くの植物が居ます。
その植物たちが光合成でCO2を消費しますから、その一定期間の最低値は必然的に
 400ppm
よりも低い値となります。
ですから「自動校正機能」が生きていると、例えば 300ppm に下がったいるところを「400ppm」と取り扱うようになり、全体的に計測値が大きな値になってしまう症状として発現します。
なので、この機能を無効化しておき、さらに、定期的に能動的に大気上で 400ppm 校正を実施することで計測値の変動を抑制するという運用が必要となります。

とりあえずの対策として

まずは、自動校正無効化ソフトウェアを修正しました。
そして、3月中旬に全BOXに配布し、配布先で無効化処理を実施しました。

今後に向けて

このミスの報告を兼ねて、ご利用の方々にちゃんと説明する機会が必要と考えています。
また、センサーの状態を確認するソフトウェアをより充実させて、確実に動作状態を確認する手段を持ちたいと思います。
加えて、センサーが行う計測処理には、計測誤差・個体差・経年変化など採取された値を評価する方法も確立していきたいですね。