色々と二酸化炭素やら温度やら湿度やらを記録してるので このあたりで一旦それぞれの値を比較してみる。
記録してる機器
- MH-Z19B/MH-Z19C (on Raspberry Pi): 二酸化炭素濃度、温度 (Google Sheets、1分単位)
- BME280 (on Raspberry Pi): 温度、湿度、気圧 (Google Sheets、1分単位)
- Nature Remo mini: 温度 (Google Sheets、1分単位)
- PTH-8: 二酸化炭素濃度、温度、湿度 (アプリからエクスポート、1時間単位)
- シャープ加湿空気清浄機KI-JS50: 温度、湿度(アプリで確認するだけ、10分単位?)
という感じで記録があって見ることが出来るようになっています。
あと一応エアコンもアプリとかでエアコンを表示できますが、過去の記録が見たりはできないので参考程度。
温度の比較
以前Nature Remo(NR)とBME 280(BME)の温度の値を比較したもの。
このときは比較的良く合ってるようにみえました。
もうちょっと前のデータも見てみると、最初期(2020年9月16日)のものはこんな感じ。
ちょっとレンジが短いのでずれてるように見えますが、Nature Remoの温度計は0.5度単位でしかでないので、 ずれとしてはその1単位あるかないか、位で結構よく合ってます。
ちなみにNature RemoとBME 280の載ったRaspberry Pi Zeroは同じ場所においてあります。
1年ほど前にMH-Z19Bを導入したので、そのころ(2021年2月22日)のデータを見てみるとこんな感じ。
BME 280(BME)とNature Remo(NR)の値はNRの方が1度くらい高い感じにはなってます。
一方でMH-Z19B(MH-Z19)の出力はBME 280と比べると4度くらい高く結構違います。
2月末なので暖房をつけるかつけないかのようなときですが、 夜中つけてないときに24度ということは高すぎますし、 暖房の設定は結構低めにしてるのでNature Remo/BME 280の方が正しいです。
MH-Z19Bに関しては二酸化炭素濃度の測定がメインで、温度も一応取れるということでとってましたが あまり合ってないな、と思いつつ、そんなものかと思って放置してました。 (ただ、もしかするとこのZ19Bはニセモノで精度がわるいものだったかもしれません。。。)
そして最新(2022年2月2月15日)の比較がこれ
PTH-8が加わり、また別途KI-JS50のスクリーンショットも。 PTH-8はRaspberry PiやNature Remoと同じ所においてありますが、 KI-JS50は同じ部屋ですがちょっと離れたところに置かれています。
MH-Z19というのがMH-Z19Cに変わっていて、より安定的に測定できるようになっています。
温度もより正確になっているのかNature Remoとほとんど同じ動きをしています。
また、新たに加わったPTH-8(PTH)も大体同じような数字を示しています。
KI-JS50もこれらとだいたい同じ温度を示しているように見えます。
ところがBME 280(BME)が結構高めの数字を出しています。
現在エアコンの設定は23度になるような設定なので、 NR/MH-Z19/PTHは割と正確な値を出してそうです。
一方でBMEは明らかに高い。
以前はNature Remoと同じような値を示していたのでなんか狂ってしまったらしい。
BME 280では数字を読み込む際に事前にセンサーからキャリブレーション情報を読み込んで 色々と測定情報を計算する必要がありますが、 それらは工場出荷時に調整されたものなのでハードウェア的にずれてくると実際ずれてしまうのかも。
ハードウェアを特定の温度でキャリブレーションしたりする機能は無さそう。
BME reading a degree too high; calibration help SOLVED - Using Arduino / Sensors - Arduino Forum
これとか見ると、適当にオフセットつければ?的な感じになってるのでそうするのが良い?
ちょっとその後も何日かみてみると
こんな感じでずっと同じような間隔でずれています。
ぱっと見、無理に温度ごとに変えなくても-4度とか入れておけば良さそうな感じはしてます。 その辺もRaspberry Piでただ数字とってるだけなのでやろうと思えば簡単に出来るので。
湿度の比較
PTH-8が湿度を測れるようになったので 湿度の方も最新(2022年2月2月15日)の比較
まず、両者で10%も違う値を示しています。
上にあるKI-JS50の値を見てみると、 両者の間くらい。。。
一番高いところで
- PTH: 55%
- KI-JS50: 50%
- BME: 40%
昼間の安定してるっぽいところが
- PTH: 45%
- KI-JS50: 37%
- BME: 33%
くらい。
微妙すぎる。。。
これもちょっと長めに見てみると
日によっては差は5%も無いようなところも見れます。
KI-JS50の方の2月16日、2月17日、2月18日、2月19日も含めてみると、 常にBME280が一番高く、PTH-8が一番低い感じではありますが、その感覚は湿度の高さによらず?結構まばらです。
これに関してはどう補正すべきかちょっと微妙なので、しばらく様子見で。
二酸化炭素濃度
最後に二酸化炭素濃度。
MH-Z19CとPTH-8だけですが、2022年2月15日のもの。
これを見てみると、低いところでPTHが大きく下がってしまってはいますが、 高いところでは同じような値を示していて、それなりに正確な測定が出来ている様に見えます。
二酸化炭素濃度に関しては両者ともキャリブレーションが可能で、 外気を400ppmだと仮定してキャリブレーションし、 また、MH-Z19Cの方は24時間おきのキャリブレーションも実行しています。
これが良いかどうかはちょっと微妙なところで、そのタイミングが誰も居なくて一番低い状態で400ppmと思えれば良いんですが、 電源入れたタイミングから回るので実際には高いタイミングでやってる可能性もあり。 かといって、大きくずれたりしないし、また、なんか最初のうち変な値を示していてもそのうち落ち着くような様子も見えるので いまは有効にしたまま動かしています。
実際外気はこの数年でも結構上がってきていて、きれいな空気のところでも400ppmを超えてきているので、 実際には室内とかだと人が居なくても400ppmは大きく超えてるものだと思ってます。
一方でキャリブレーションの関係で400ppmを使い、これが両者とも下限値なので 400ppm付近で正確な測定を求めるのは結構辛いかと。
実際問題としては800ppmくらいまでであれば室内としても空気は問題なく、 1000ppm超えてるとか、1500ppm超えた、とかがざっくりとでもわかって警告できればよいので、 そういった意味では 二酸化炭素濃度は割と良い感じに取れてる感じです。
まとめ
手元にある機器で色々比べてみましたが
- 温度: MH-Z19C、Nature Remo、PTH-8、KI-JS50は妥当な数字を出している。
- BME 280は以前は正しく測定できていたが、時間が経って狂った様にみえる(4度ほど高い)。Raspberry Pi側で数字を計算する時にoffsetを入れることで対応できそう。
- 湿度: PT8-8 > KI-JS50 > BME 280な感じで最大10%くらい違う。
- ただその違いは結構日によって違う。
- 二酸化炭素濃度:
- MH-Z19CとPTH-8で下限値の400ppm程度のところではズレが見えるが、1000ppmとか高いところでは一致していて正しい測定ができてそう。
BME280の温度に関してはoffsetをつけて対応しようかと思います。
湿度に関してはちょっと別なもう一個くらいリファレンスがほしいな、と思ったりはしましたが、またもうちょっと様子見。
一番測定が難しそうな二酸化炭素濃度に関しては、むしろきちんとキャリブレーションの機構がついていることもあり、 正確な数字を出していそうです。
BME 280(+Raspberry Pi zero)は2年以上殆ど休みなく動き続けてくれているので ハード的にちょっとずれてきてしまってるということはあるのかもしれません。
MH-Z19CもPTH-8もまだ買って日が浅いので1年、2年みてみてどう変わるか、また見てみたいと思います。