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

// 定義 DHT22 感測器
#define DHTPIN 2     // DHT22 資料針腳
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

// 初始化 LCD 顯示器
LiquidCrystal lcd(4, 5, 6, 7, 8, 9, 10);

void setup() {
  // 初始化 DHT22 感測器
  dht.begin();
  
  // 初始化 LCD 顯示器
  lcd.begin(16, 2);
  
  // 顯示歡迎信息
  lcd.setCursor(0, 0);
  lcd.print("Temp & Humidity");
  delay(2000);
  lcd.clear();
}

void loop() {
  // 讀取溫濕度數據
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // 檢查是否讀取失敗,並顯示錯誤信息
  if (isnan(humidity) || isnan(temperature)) {
    lcd.setCursor(0, 0);
    lcd.print("Error reading ");
    lcd.setCursor(0, 1);
    lcd.print("sensor data");
    return;
  }

  // 顯示溫度
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");

  // 顯示濕度
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  lcd.print(humidity);
  lcd.print(" %");

  // 延遲兩秒再更新數據
  delay(2000);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
r1:1
r1:2
lcd1:VSS
lcd1:VDD
lcd1:V0
lcd1:RS
lcd1:RW
lcd1:E
lcd1:D0
lcd1:D1
lcd1:D2
lcd1:D3
lcd1:D4
lcd1:D5
lcd1:D6
lcd1:D7
lcd1:A
lcd1:K
r2:1
r2:2
r3:1
r3:2