概要

温度と湿度を計測することができるDHT11というセンサーを用いて、Arduinoで温度と湿度を計測する方法について解説をします。

DHT11について

 

DHT11は、温度と湿度を同時に計測することができるセンサーです。上記はモジュール版となり、DHT11単体で使おうとするとデータ受信ピンのプルアップが必要になるのですが、モジュールの場合はそのような対応は不要で、そのままArduinoに接続すれば使えるようになるので便利です。

配線

dht11

このDHT11のモジュールは上から-、out、+となっています。モジュールによってピンの配置は変わることがありますので、自分の持っているモジュールの仕様を確認してください。

-は、ArduinoのGNDピンに繋げましょう。また、動作電圧は3.3V〜5Vですので、+は5Vピンに繋げます。

真ん中のoutはデジタルピンに繋げれば良いので、2ピンなどに挿しておきます。

dht11配線

ライブラリの準備

Arduino IDEで開発をする際、以下の2つのライブラリが必要になります。

それぞれ、Code→Download ZIPでZip形式でダウンロードした後、Arduino IDEで、「スケッチ→ファイルをインクルード→.ZIP形式のライブラリをインストール」を選び、ダウンロードしたライブラリをインストールします。

Arduinoのコード

#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHT11 test!"));

  dht.begin();
}

void loop() {
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.println(F("°C "));
}
  • DHTTYPEに指定しているのはセンサーの種類で、他にもDHT22、DHT21などを指定することが可能です。
  • このセンサーはデータの取得がとても遅いので2秒おきに取得するようにしています。
  • dht.readTemperature(true) というように、trueを引数で渡して温度を取得すると、華氏(°F)の値を取得することができます。

シリアルモニタを開いて、ボーレートを9600に合わせると、正常に温度と湿度が取得できていることがわかります。

シリアルモニタ

センサー

Related Posts

DCモータ制御で配線が複雑になる場合はDCモータコントローラシールドMD04を使うと便利!
DCモータ制御で配線が複雑になる場合はDCモータコントローラシールドMD04を使うと便利!
概要 DCモータを動作させる際は、モータコントローラを用いると便利ですが、それでも複数のモータを動作させようとしたときには配線がごちゃごちゃになってしまいがちです。そのような時は、シールドタイプのDCモータコントローラを使えば、マイコ...
Read More
Arduino Nano互換ボードで書き込めない時はプロセッサを確認
Arduino Nano互換ボードで書き込めない時はプロセッサを確認
概要 安価なArduino Nano互換ボードを使っていると、Arduino IDEで書き込みができずにエラーになってしまうことがあります。本記事ではその対処法について解説をします。 対処法 書き込み時にエラーが出る原因はさまざまな...
Read More
ブレッドボードに5V/3.3Vの電源をMB102で供給する
ブレッドボードに5V/3.3Vの電源をMB102で供給する
概要 ブレッドボードには電源を流すことに主に用いられる、両脇の赤と青のラインがあります。Arduinoなどのマイコンから5Vや3.3Vの電源を供給することもできますが、色々な用途に使っていると電流が足りなくなってしまったりするので、別...
Read More