こんにちは!今回は、DHT11センサーを使って温度と湿度を測定するプログラムを紹介します。このプログラムは、Arduinoを使って簡単に実装できます。

 

  必要な部品

  • Arduinoボード
  • DHT11センサー
  • ジャンパーワイヤー

  下準備

DHTライブラリをインクルードするには、Arduinoのライブラリマネージャーで『DHT Sensor library』と検索してインストールしてください。

 

 

  回路(写真)

 

  プログラムの説明

 

#include <DHT.h>

 

#define DHTPIN 2       // センサーを接続するために使用するピンを定義する

#define DHTTYPE DHT11  // 接続するセンサの種類を定義する

 

DHT dht(DHTPIN, DHTTYPE);  // DHTオブジェクトを作成する

 

void setup() 

{

  // シリアル通信を初期化する

  Serial.begin(9600);

  Serial.println(F("DHT11 test!"));

 

  dht.begin();  // DHTセンサを初期化する

}

 

void loop() {

  delay(2000);

 

  // 温度や湿度の読み取りには約 250 ミリ秒かかる

  // センサーの読み取り値は最大 2 秒古い可能性があります (非常に遅いセンサーです)

  float h = dht.readHumidity();

  // 温度を摂氏で読み取る(デフォルト)

  float t = dht.readTemperature();

  // 温度を華氏で読み取る (isFahrenheit = true)

  float f = dht.readTemperature(true);

 

  // 読み取りに失敗したかどうかを確認し、早期に終了する (再試行するため)。

  if (isnan(h) || isnan(t) || isnan(f)) 

{

    Serial.println(F("Failed to read from DHT sensor!"));

    return;

  }

 

  // 熱指数を華氏で計算する(デフォルト)

  float hif = dht.computeHeatIndex(f, h);

  // 熱指数を摂氏で計算する (isFahreheit = false)

  float hic = dht.computeHeatIndex(t, h, false);

 

  // 湿度、温度、熱指数の値をシリアルモニターに出力する

  Serial.print(F("Humidity: "));

  Serial.print(h);

  Serial.print(F("%  Temperature: "));

  Serial.print(t);

  Serial.print(F("°C "));

  Serial.print(f);

  Serial.print(F("°F  Heat index: "));

  Serial.print(hic);

  Serial.print(F("°C "));

  Serial.print(hif);

  Serial.println(F("°F"));

}

1. DHTライブラリのインクルード

#include <DHT.h>でDHTライブラリをインクルードします。

2. ピンとセンサータイプの定義

#defineを使って、センサーを接続するピンとセンサーのタイプを定義します。

3. DHTオブジェクトの作成

DHT dht(DHTPIN, DHTTYPE);でDHTオブジェクトを作成します。

4. センサーの初期化

dht.begin();でセンサーを初期化します。

5. 測定と表示

dht.readHumidity()dht.readTemperature()を使って湿度と温度を測定し、シリアルモニターに表示します。

 

  出力結果

Humidityが湿度、Temperatureが温度、Heat indexが熱指数を表しています。

 

このプログラムを使えば、簡単に温度と湿度を測定できます。ぜひ試してみてください!