#include <LiquidCrystal_I2C.h> //เรียกใช้งาน Library จาก Library Manager

#define LCD_ADDR 0x27
#define LCD_COLUMNS 16 // 16 คอลัมน์
#define LCD_ROWS 2 // 2 แถว
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
int btn = 4 ;
int btn1 = 5 ;
DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(LCD_ADDR ,LCD_COLUMNS ,LCD_ROWS);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(btn,INPUT_PULLUP);
  pinMode(btn1,INPUT_PULLUP);

  lcd.begin(16,2); //กำหนดขนาดของ LCD ที่มี 16 คอลัมน์และ 2 แถว.
  lcd.init(); // ทำการเริ่มต้น LCD
  lcd.init(); // ทำการเริ่มต้น LCD
  lcd.backlight(); // เปิดไฟ LCD
  
  lcd.setCursor(2,0); // กำหนดตำแหน่งตัวอักษร
  lcd.print("NAME PROJECT.."); // แสดงผล
  lcd.setCursor(2,5); // กำหนดตำแหน่งตัวอักษร
  lcd.print("Home Work 4"); // แสดงผล
  //lcd.clear();
  dht.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(100);

  bool btnIV = !digitalRead(btn);
  bool btnV = !digitalRead(btn1);
  

  float h = dht.readHumidity();

  float t = dht.readTemperature();

if (btnIV) {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temp"); // แสดงผล
  
  lcd.setCursor(5,0); // กำหนดตำแหน่งตัวอักษร
  lcd.print(t);
  
  lcd.setCursor(0,1); // กำหนดตำแหน่งตัวอักษร
  lcd.print("Hun");
  
  lcd.setCursor(5,1); // กำหนดตำแหน่งตัวอักษร
  lcd.print(h);


  if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }
  

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.println(hif);
  
  Serial.println(btnIV);
  
  }

if (btnV) {

  lcd.clear();
  Serial.println(btnV);
  }
}