前回の記事で、DHT11のつかいかたをご紹介しました。DHT11とは、I2C通信で簡単に室温と湿度を測定することができるモジュールでしたね。
使用する際はマイコンボードとつなぐわけですが、前回はArduinoにつなげて室温と湿度を取得しました。ただその記事を書くために実験をしていく中で疑問が出てきました。
手持ちのDHT11って、いまいち精度的にどうなんだ?
というわけで、今回はなぜか手持ちに3個もDHT11があったので、手当たり次第にどんな測定結果になるか同じ環境で測定してみました。
DHT11(温・湿度計)の個体差が何となくわかる。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
検証するアイテム(DHT11)たち
「なんでDHT11を3個も持っているんだ。」
という話になるわけですが、
実はわたし、なんでも道具からそろえてから始める性格で
これらもセンサー類のセットや、電子工作のスタートキットを購入しては溜まっていました…
RaspberryPiも3B+も4もpicoも持っているし…そんなに使いこなしていないんですが。
検証方法(Arduinoで測定)
はい。配線方法や、ソースコードについては前回の記事の使いまわしになります。
ArduinoとDHT11の配線方法
ArduinoでDHT11と通信するためのソースコード
#include <DHT.h>; //ライブラリ読み込み
#define DHT_Pin 2; //DHT11のDATAPinをさすPin番号
#define DHT_Type DHT11; //DHTの種類からDHT11を使用すると定義する
DHT dht(DHT_Pin, DHT_Type); //DHT11を初期化
/* 計測値設定 */
float humidity = 0.0f; //湿度
float temp= 0.0f; //温度
void setup() {
Serial.begin(9600); //シリアル通信のボーレートを9600bpsに指定
dht.begin(); //DHT11使用開始
}
void loop() {
delay(3000); //3秒待つ。データ読み出しが早すぎるとエラーになる。
humidity = dht.readHumidity(); //湿度の読み出し
temp = dht.readTemperature(); //温度の読み出し
/* 読み取れたかどうかのチェック */
if (isnan(humidity) || isnan(temp) ) {
Serial.println("Can't Read!");
return;
}
Serial.print("Hum:,"); //,を入れているのはCSVで処理するときに便利なため。
Serial.print(humidity);
Serial.println("[%]");
Serial.print("Temp:,");
Serial.print(temp);
Serial.println("[℃]");
}
実験の条件
おおよそ50回くらいを目安に連続で測定する
10回くらいでは精度にバラツキが出そうだったので、
50回くらいの平均を取ろうかなという考えです。
温度と湿度の基準はアナログの温度湿度計を使用する。
今回の温度と湿度の基準になるのはこの子です。
説明書きに書いてある内容ですが、
- 温度計:バイメタル式 精度±1℃
- 湿度計:バイマテリアル式 精度±9%
※今回の条件の精度にしています。湿度系は湿度70%以下であれば精度±5%
で測定できるようです。
Amazonのレビューだと精度に関していい加減ってのが多数…
まあ「目安」ってことで。
検証結果
気になる測定結果です。
温度部門(50回平均)
アナログ温度湿度計 | DHT11-A | DHT11-B | DHT11-C |
---|---|---|---|
25.5℃ | 27.1℃ | 29.0℃ | 27.8℃ |
温度部門の結果
アナログ温度湿度計が25.5℃に対して、
Bは29℃となかなかの差。
ほかのAとCはプラス2度程度なので許容範囲でしょうか…
TOP画像にもありますが、ほとんど針が動いていなかったので
目盛りどおり読みました。
あれ、ほとんど針が動いていない…??
ちょっとあやしい…
湿度部門(50回平均)
アナログ温度湿度計 | DHT11-A | DHT11-B | DHT11-C |
---|---|---|---|
80% | 68.1% | 59.0% | 71.0% |
湿度部門の結果
アナログの湿度計の湿度、80%
合ってるんでしょうか….
他のDHTの湿度の結果もばらついているのですが、
80%ってのは体感的にちょっとおかしいような気がします。
検証結果総評
アナログの温度湿度計ですが、
ちょっと信用できない気もするので
各DHT11の結果だけ確認してみましょう。
Bの子は、29℃と異常な値でした。
真夏でもないのにこの温度はないですね…
そのBは湿度がほかのDHT11よりも低い結果になっています。
おそらく温度は高めに出て、湿度は低めに出る子なんでしょう…
ほかのAとCですが、温度こそちょっと合っているか確認しようがないのですが
近い値になっています。湿度に関してもその差2.9%
精度のいい温度湿度計があればもっと分かったかもしれませんが、
今回はここまでです。
まとめ
今回は、手持ちのDHT11を3個使って
どんな値が出るかチェックしてみました。
3個中1個はちょっととびぬけた値が出る子だったので
性能としては微妙なのかもしれません。
3個とも同じような値が出てくれたら当たりはずれはない。
と言えたのですが、
そもそもアナログの温度湿度計がめちゃくちゃな値を出していたので、
本来はちゃんと温度と湿度が精度よく測定できる装置が必要でしたね…
DHT11の上位互換のDHT22というのがあるようなので
そのうち手持ちの3個と比較してみましょうかね…
コメント