たまたま手元にあったElegooのキットに含まれていたDHT11とLCDを使って、温湿度を測定しLCDに表示させようと思います。
配線図
Elegooのキットに入っていたのは3ピンになっていたので、微妙に違いますが、こんな感じで配線しています。あと実際に使ったのはArduino UNOではなく、ELEGOO UNO R3。プルアップが必要かどうか、よく分かりませんでしたが、Elegooのキット付属の説明書には、含まれていなかったので、含めていません。
スケッチ
DHT11を使うために、DHT sensor library
と、LCDを使うためにLiquidCrystal
を使います。DHT sensor library
はインストールされていなかったので、ライブラリをインクルード » ライブラリを管理 から追加しました。
本当は温度の表示をC
ではなく°C
とさせたかったのですが、文字化けするため、断念。
#include <DHT.h>
#include <DHT_U.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
const int PIN_DHT = 2;
DHT dht(PIN_DHT, DHT11);
void setup() {
// Set up LCD
lcd.begin(16, 2);
// Set up DTH11
dht.begin();
}
void loop() {
// Read temp and humi by DTH11
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Display to LCD
lcd.setCursor(0, 0);
lcd.print("Temp: C ");
lcd.setCursor(6, 0);
lcd.print(String(temperature, 2));
lcd.setCursor(0, 1);
lcd.print("Humi: %");
lcd.setCursor(6, 1);
lcd.print(String(humidity, 2));
// Need to wait a few seconds
delay(2000);
}