Arduinoで温度湿度を計測してLCDで表示する

Arduino UNOを使って温度と湿度を計測できるようにするための配線メモ

環境

※秋月電子で温度湿度センサーを買う場合はここ

レイアウト

配線が見づらいのでもうちょっと綺麗な図ができたら更新します。

LCDディスプレイに温度湿度を表示させる_ブレッドボード.png
LCDディスプレイに温度湿度を表示させる_回路図.png

注意

上記LCDのレイアウト図だとGPIO配置が1,2,…15,16になっている。
しかし、実物のLCDのGPIO配置を見ると15,16,1,2…13,14になっている。
そのため、上記レイアウトのまま端から配線すると間違うので気をつけること。

プログラム

#include <DHT.h>
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int PIN_DHT = 8;
DHT dht(PIN_DHT,DHT11);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello");

  Serial.begin(9600);
  dht.begin();

}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  // print the number of seconds since reset:
  //lcd.print(millis() / 1000);

  delay(3000);

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  Serial.print("Humidity:  ");
  Serial.print(humidity);
  Serial.println("%\t");
  Serial.print("Temperature:  ");
  Serial.print(temperature);
  Serial.println(" *C");

  lcd.setCursor(0, 0);
  lcd.print("Situdo:" + String(humidity) + "%");

  lcd.setCursor(0, 1);
  lcd.print("Ondo  :" + String(temperature) + "*C");

}

結果

シリアルモニタ側の表示

Humidity:  49.00%   
Temperature:  20.00 *C
Humidity:  50.00%   
Temperature:  20.00 *C

LCDディスプレイ側の表示
IMG_E5782.JPG

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.