概要

温度と湿度を計測することができる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

Arduino Nanoのピン配置
Arduino Nanoのピン配置
Arduino Nanoのピン配置です。公式ページ: https://content.arduino.cc/assets/Pinout-NANO_latest.pdf 備考 PWM出力が可能なピン:「~」が先頭についているピン...
Read More
Arduino Mega 2560 Rev3のピン配置
Arduino Mega 2560 Rev3のピン配置
Arduino Mega 2560 Rev3のピン配置です。公式ページ: https://content.arduino.cc/assets/Pinout-Mega2560rev3_latest.pdf 下部分の拡大 備考 上部...
Read More
Arduino Uno Rev3のピン配置
Arduino Uno Rev3のピン配置
Arduino Uno Rev3のピン配置です。 公式ページ: https://content.arduino.cc/assets/Pinout-UNOrev3_latest.pdf 備考 PWM出力が可能なピン:「~」が先頭につ...
Read More