ESP32で温度と湿度を表示する DHT11

さてさて、ESP32の話題に戻って、この手の定番の温度と湿度の表示をやってみます。LCD表示のサンプルを改造して、DHT11の出力を表示させます。


参考にさせていただいたサイトは下記となります。ありがとうございます。
Interface DHT11 DHT22 with ESP32 & Display Values Using Web Server

まぁ書いてある通りになんですが、前回のLCDのやつに統合するので、上記サイトの格好いいWeb表示部分は全部いらなくて、必要な部分だけ抜き出します。Web表示は後での楽しみ。

// include the library code:
#include <LiquidCrystal.h>
#include "DHT.h"

#define DHTTYPE DHT11   // DHT 11

// DHT Sensor
uint8_t DHTPin = 4; 
// Initialize DHT sensor.
DHT dht(DHTPin, DHTTYPE);

float Temperature = 0;
float Humidity = 0;

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 32, rw = 33, en = 25, d4 = 26, d5 = 27, d6 = 14, d7 = 13;
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal lcd(rs, rw, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  pinMode(DHTPin, INPUT);
  dht.begin();  
}

void loop() {
  Temperature = dht.readTemperature(); // Gets the values of the temperature
  Humidity = dht.readHumidity(); // Gets the values of the humidity 
  // Display Temperature in C
  lcd.setCursor(0, 0);
  lcd.print("Temp         C  ");
  lcd.setCursor(6, 0);
  // Display Temperature in C
  lcd.print((Temperature));

  lcd.setCursor(0, 1);
  lcd.print("Humid        %  ");
  lcd.setCursor(6, 1);
  lcd.print((Humidity));
  delay(500);  
} 


 まぁこんな感じで、最初の画像のような表示ができる。
で、気になるのが、温度も湿度も小数点以下が表示されないこと。

これも調べると、DHT11は、少数点以下は表示されないとのこと。だとしたら、数字の表示を変えた方が良いですね~

接続は下記の通り。ESP32 DevKitのパーツも作成してしまった。ベースに公開されていた二つのESP32のパーツを組み合わせてサイズを変えて、とか、まぁ趣味の世界w


0 件のコメント:

コメントを投稿