#include <DHT.h>
#include <LiquidCrystal_I2C.h>    //Library LCD I2C
LiquidCrystal_I2C lcd(0x27,20,4);

#define  VP 36  //Input from Pot
#define LED 13  //LED pin
#define DHTPIN 12     // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
  dht.begin();
  lcd.init(); 
  lcd.backlight();
  lcd.print((String)"VR"); //แสดงข้อความบนจอ LCD
  
}

void loop() {
  int va = analogRead(VP); //อ่านค่าจาก Pot

  float h = dht.readHumidity();         // Read Humidity as Percent
  float t = dht.readTemperature();      // Read temperature as Celsius (the default)
  float f = dht.readTemperature(true);  // Read temperature as Fahrenheit (isFahrenheit = true)

  Serial.println((String)"This value is : " +va +" Step");  //แสดงค่าที่ Serial Monitor
  Serial.println((String)"Humidity : "+h +" %");
  Serial.println((String)"Temperature : "+h +" C");
  Serial.println((String)"Fahrenheit : "+f +" F");

  lcd.setCursor(0,0); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.setCursor(0,1); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Value is : " +va);
  lcd.setCursor(11,1); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"     ");
  lcd.setCursor(0,1); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Value is : " +va),delay((100));

  lcd.setCursor(0,2); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Humidity "+h +" %");
  lcd.setCursor(9,2); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"     ");
  lcd.setCursor(0,2); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Humidity "+h +" %");

  lcd.setCursor(0,3); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Temperature "+t +" %");
  lcd.setCursor(12,3); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"     ");
  lcd.setCursor(0,3); //ตั้งตำแหน่งสำหรับแสดงข้อความบนจอ LCD
  lcd.print((String)"Temperature "+t +" %");

  // if(va > 2047){
  //   digitalWrite(LED,LOW);
  // }
  // else{
  //   digitalWrite(LED,HIGH);
  // }

  //int val = map(va, 0, 4095, 255, 0);
  //analogWrite(LED,val);

}