測定値が、風通しの良い場所でも800ppmとか高い値になっていて、場所を変えてもダメだったのキャリブレーションしてみた。
https://github.com/UedaTakeyuki/mh-z19/wiki/CALIBRATION-&-detection-range
Pythonライブラリ関連の情報の中にキャリブレーションツールも用意されているのでそれを使いました。
co2センサーはシリアルでRaspberry PIとつながっているのでroot権限で実行しないといけませんが、
$ sudo python -m mh_z19 –zero_point_calibration
Call Calibration with ZERO point.
で実行できました。多少低すぎの感もありますが、いずれまたズレていくんじゃないか(以下の③によって)と思います。
ソースを見ると、以下で規定されるゼロキャリブレーション方法の②のコマンドによって実行しています。
https://www.winsen-sensor.com/d/files/MH-Z19B.pdf
ゼロキャリブレーションには① ハード的にピンを一時的に短絡、② コマンド送信、③ 自動キャリブレーションの三つの方法があるとなっていますが③の有効/無効化もコマンドで対応できるのでライブラリから指定できるようになっています。
また、コマンドパラメータに-hでヘルプ、何も付けないと辞書型({“co2”: 414} のように)で測定値が返ります。
ゼロキャリブレーション以外にスパンキャリブレーションというのもありますが、これはスケール精度、つまり1000ppmや2000ppmの値の倍率(スケール)精度用ですが、正確な1000ppm環境など作れないから省略。
P.S. 2022/9/18
限りなく外気に触れる場所で測定値の収束時間を見てみました。
保存していた部屋(おそらくco2濃度1000ppm近く)から無人の部屋の窓を開けて、窓辺に放置して時間経過と測定値。おそらく最初は部屋のガスが取り込まれて高い値を示していますが、徐々に大気の値に近づいていきます。おおむね20分放置しろとデバイスのマニュアルに書かれてますから、初期値が高かったらその程度の放置時間は必要そうです。
admin