プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

高精度温湿度センサAHT25を使ってみる

一般に湿度センサは精度が低い

一般的に温度は許容範囲としても湿度はいい加減なものが多いと言われています。
「関東の冬は乾燥する」と言われていますが、いったいどれほどなのか?また電子工作界隈で使われているセンサはどれほどの違いがあるのか?ということが気になっていたので調査してみました。
ただし、本当の姿はわからない面があるので結局、相対的な比較か多数決になります、というのがこの記事の詰めが甘いところです。

現時点で所有しているセンサはDHT11とBME280がありますが、秋月電子のサイトを見ているとAHT25という湿度±2%というものがありました。
しかも安い。
というわけでこれを購入して試してみました。

その他比較用としては、以下のものですがサードパーティのモジュール品を使います。
akizukidenshi.com
akizukidenshi.com
akizukidenshi.com

公称精度は以下のようになっています。

センサ 温度精度℃ 湿度精度%
DHT11 ±2 ±5
BME280 ±1 ±3
AHT25 ±0.3 ±2

評価方法

BME280は自宅の環境測定としてラズパイで運用しているので、それをそのまま使用しその横にM5Stackでテストコードを書き、DHT11とAHT25のデータを取得します。
とりあえず10分間隔で3回測定して比較します。

DHT11をM5Stackで使うにはライブラリ提供元のサンプルコードで動きましたが、センサーを接続した状態ではFWの書き込みが失敗します。
センサーを外してから書き込む必要がありました。

結果

温度は最大でレンジでおよそ2℃、どちらかというとBME280とAHT25が近い値を示しています。

温度 1回目 2回目 3回目 AVE
DHT11 20.9 20.3 19.9 20.37
BME280 19.4 19.3 19.4 19.37
AHT25 18.8 18.75 18.88 18.81


湿度は最大でレンジでおよそ5%、こちらもBME280とAHT25が近い値を示しています。

湿度 1回目 2回目 3回目 AVE
DHT11 42 43 43 42.67
BME280 38.1 37.7 37.7 37.83
AHT25 37.5 37.63 37.72 37.62

※DHT11は0.1%分解能のはずがなぜか1%刻みでしか出力しない???

温度も湿度もBME280とAHT25が近い値を示しその差は0.5℃と0.5%ほどです。
一方、少しずれているDHT11もずれが2℃と5%ということは、それぞれの公称精度を達成していない、ということを否定できない結果となりました。

また、DHT11は起動直後、値がずれるということがまれに発生しました。

温度測定結果
湿度測定結果

※どちらも横軸は測定回数、10秒毎

結果2

次に約24時間、加湿器をOn/Offするなどしながら比較しました。
こちらのテストコードはGithubのBranchに入れてあります。

MAE ΔMAX
温度 0.96 1.74
湿度 2.16 8.13


※開始直後11:30ごろ、センサーにPCの排気が直撃していておかしな値になっていたので、この部分は統計からは除外しました。

温度は最大でもΔ1.74℃でそれぞれの公称精度を達成していない、ということを否定できない結果、湿度は最大8.13%でどちらかの公称精度を達成していない可能性があるという結果になりました。
湿度については、変化が大きいときずれが大きいという結果です。

まとめ

AHT25という高精度温湿度センサーを使ってみました。
結論としてはこのセンサーは良いと思います。

比較としてDHT11、BME280を使いましたが、温度はいずれでも±2℃程度の実力はありそうです。
一方、湿度についてはDHT11がやや悪い結果となりましたが、急激に環境変化するような状況でなければそれなり(±2~3%)の精度があるように見えます。
これは、家庭用の一般的なデジタル温湿度計よりは良い結果だと思います。
(データにはしていませんが、我が家のデジタル温湿度計はずっと30%以下を示していました。特に低温低湿環境ではほとんど湿度の感度が無いです。)
※イメージ(↓こういったタイプのもの)

github.com