【ESP32プログラム】温度・湿度センサー(DHT11)
DHT11という安価な温度・湿度センサを使ってESP32のプログラムを作成したいと思います。温度と湿度は環境情報の最も基本的な情報なのでIoTシステムを作る際にはとりあえず入れておいてよいものだと思います。測定したい温度と湿度の範囲や精度によっては少し高価ですが上位のDHT22の方がよいかもしれません。
結線図
図1は結線図を示しています。DHT11はセンサ単体ですと4本足ですが、今回はモジュールとして販売されている3本足のものを使います。このDHT11センサモジュールは電源(5V)とGND、信号の3つの端子があります。電源とGNDはESP32のそれぞれのポートに接続します。信号ポートは今回はGPIO12に接続することにします。
プログラム
ESP32のプログラムを以下に示します。DHT系のセンサを使うのに便利なDHT.hをインクルードすると簡単に温度と湿度を取得できます。
#include <DHT.h>
// DHTセンサーのピン番号とタイプ
#define DHTPIN 12 // DHT11のデータピンを接続するESP32のGPIOピン
#define DHTTYPE DHT11 // DHT11センサーを使用
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// シリアルモニタを初期化
Serial.begin(115200);
// DHTセンサーの初期化
dht.begin();
}
void loop() {
// センサーからデータを取得するまで1秒待つ
delay(1000);
// 温度と湿度を取得
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// 取得した温度と湿度をシリアルモニタに表示
Serial.print("湿度: ");
Serial.print(humidity);
Serial.print("% 温度: ");
Serial.print(temperature);
Serial.println("°C");
}
実行結果
上記のプログラムをArduino IDEからESP32に書き込み、Serial Monitorで結果を見てみましょう。図2にSerial Monitorの表示結果を示しています。
部屋にある他の温度計が25.4°C、湿度は58%でしたのでまぁ合っていると言えるでしょう。