【電子工作】DHT11 + LCDを使って湿度計&温度計をつくる(Arduino Uno R3で遊ぼう日記 その6)

投稿日:2022年6月15日
最終更新日:2022年6月15日

ArduinoでDHT11モジュール+LCDを使って温湿度計をつくる

前回はDHT11のモジュールを使ってPCのシリアルポート上に温度、湿度を表示させた。今回はシリアルポートではなく、ArduinoにLCD(液晶ディスプレイ)を接続し、DHT11で取得した温度、湿度をLCDに表示させて温湿度計を作ってみたいと思う。

 

開発環境

Arduino Uno R3

Windows 10(開発用PC)

Arduino IDE 1.8.19

 

ブレッドボードに回路をつくる

今回は以下のようにブレッドボード上に回路を組んだ。前回のDHT11の回路は変わっておらず、LCDの接続を追加しただけ。

以下が実際に繋いでみた写真。これで準備完了。

 

温度と湿度をLCDに表示するプログラム

今回は以下のようにコードを書いた。

#include <DHT.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  dht.begin();
  lcd.init();
  lcd.backlight();  
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read"));
    return;
  }

  lcd.setCursor(0,0);
  lcd.print("Humidity:");
  lcd.print((int) h);
  lcd.print("%");

  lcd.setCursor(0,1);
  lcd.print("Temperature:");
  lcd.print((int) t);
  lcd.print("\xdf");
  lcd.print("C"); 
}

基本的には、すでに以下の記事でやったDHT11で温度&湿度を取得するコードと、LCDに文字を表示するコードを組み合わせただけ。

Arduino UNO R3で遊ぼう日記 その3:Arduino + LiquidCrystalでLCD1602 + I2Cモジュールを使う

Arduino UNO R3で遊ぼう日記 その5:DHT11モジュールを使って湿度と温度を取得する

一点補足しておくと、温度の記号(℃)はそのままコード上に書いても表示できないので、16進数の℃の文字コードDFを「\xdf」で指定している。

※別の文字コードを使うときは\xの後に使いたい文字コードを指定する

あとはいつも通りコードをコンパイルしてArduinoに書き込めばOK。以下が温度と湿度を表示してみた写真。今回はPCから給電しているが、電源をDC電源などに変えてやればArduino単体でも温湿度計として使える。

これでDHT11を使ってやりたいことは大体できたので、次回からまた違う部品を使って遊んでみたいと思う。

 

日記まとめ

Arduinoで遊んでみた軌跡を以下でまとめてます。

【電子工作】Arduino UNO R3で遊ぼう日記 まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください