ESP32を用いて温湿度センサを実装したので、そのやり方について紹介したいと思います。
この記事を読むことで、話題のマイコンであるESP32で温湿度センサが実装できるようになります。
今回の温湿度センサはかなり安価なセンサで、高価なものと比べると性能は劣るものの、簡単なIoTモジュール、デバイスの開発ができ、室温の管理から、冷房の開発まで可能となります。
Arduino Nano版はこちら
www.takeshi-1222.com
ESP32, DHT-11の簡単な説明
ESP32
ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。
リンク
温湿度センサ (DHT-11)
温湿度センサはそのままの意味で、温度と湿度の計測が可能で、さらにそれらの値から不快感を測る指標である不快指数も算出することが可能です。また、かなり安価で入手が可能であるため、電子工作やIoT、DIYの初心者でも手が出しやすいものだと思います。
リンク
実験構成
今回の実験に使用する部品は以下のものです。
- ESP32
- 温湿度センサ (DHT-11)
- ジャンパ線多数
ESP32、温湿度センサは上記のものを使用しています。
ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。
リンク
実験
配線
まず配線は以下のようにします。
配線ができると以下のような画像のようになります。
実行コード
ここまで出来たら以下のコードを実行することで動作確認ができます。
#include "DHT.h"
#define DHT_Pin 4
#define DHT_Type DHT11
DHT dht(DHT_Pin, DHT_Type);
float humidity = 0.0f;
float tempC = 0.0f;
float tempF = 0.0f;
float discomfortIndex = 0.0f;
bool isFahrenheit = true;
void setup() {
Serial.begin(9600);
Serial.println("DHT11 Lesson11");
dht.begin();
}
void loop() {
delay(2000);
humidity = dht.readHumidity();
tempC = dht.readTemperature();
tempF = dht.readTemperature( isFahrenheit );
if (isnan(humidity) || isnan(tempC) || isnan(tempF)) {
Serial.println("Read failure!");
return;
}
discomfortIndex = 0.81f * tempC + 0.01f * humidity * (0.99f * tempC - 14.3f) + 46.3f;
Serial.print(humidity);
Serial.print(" ");
Serial.print(tempC);
Serial.print(" ");
Serial.println(discomfortIndex);
}
今回は温度、湿度、不快指数をシリアルモニタで確認できるようにしています。
これらの値を使って、いろんなIoT機器を製作できるようになります。
まとめ
今回は、ESP32で温湿度センサを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。