#include "IRremote.h"
#include <LiquidCrystal_I2C.h>
#define receiver 32 // IR receiver, Connect the Y pin of the Keyes IR sensor with the GPIO 26 of ESP32 
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "DHTesp.h"
#define DHTPIN 15
#define DHTTYPE DHT22 

// DHT dht(DHTPIN, DHTTYPE);

DHTesp dhtSensor;
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results;            // create instance of 'decode_results'
/*-----( Declare Variables )-----*/



void setup()   
{
  Wire.begin(21, 22);
  Serial.begin(115200);
  // dht.begin();
  // Serial.println("IR Receiver Raw Data + Button Decode Test");
  lcd.init();
  lcd.backlight();
  lcd.setCursor(1, 0);
  // irrecv.enableIRIn(); // Start the receiver

  irrecv.enableIRIn(); // Start the receiver
  delay(100);
  dhtSensor.setup(DHTPIN, DHTesp::DHT22);
  
  

}


void loop() 
{
  TempAndHumidity  data = dhtSensor.getTempAndHumidity();
  float h = data.temperature;
  float t = data.humidity;
  // Read temperature as Fahrenheit (isFahrenheit = true)

  Serial.println("h: " + String(h, 2));
  Serial.println("t: " + String(t, 2));
  delay(500);

  
  // if (irrecv.decode(&results)) // have we received an IR signal?
  // {
  //  Serial.println(results.value, HEX);  
  //   if (results.value==0xF0DB1AE0)
  //     {   
  //       lcd.print("nyala");

  //       Serial.print(h); 
  //       Serial.print(t);
  //       Serial.print(f);
  
  //       }
  //   irrecv.resume(); // receive the next value
  // }  
}

// void lcdPrint(char* text)
// {
//   lcd.clear();
//   lcd.setCursor(0, 0);
//   lcd.print("button pressed:");
//   lcd.setCursor(0, 1);
//   lcd.print(text);
//   lcd.print(" code: ");
//   lcd.print(receiver.decodedIRData.command);
// }

// void translateIR()
// {
//   // Takes command based on IR code received
//   switch (receiver.decodedIRData.command) {
//     case 0xFFA25D:
//       Serial.println("Power");
//       lcdPrint("POWER");
//       break;
//     case 226:
//       lcdPrint("MENU");
//       break;
//     case 34:
//       lcdPrint("TEST");
//       break;
//     case 2:
//       lcdPrint("PLUS");
//       break;
//     case 194:
//       lcdPrint("BACK");
//       break;
//     case 224:
//       lcdPrint("PREV.");
//       break;
//     case 168:
//       lcdPrint("PLAY");
//       break;
//     case 144:
//       lcdPrint("NEXT");
//       break;
//     case 104:
//       lcdPrint("num: 0");
//       break;
//     case 152:
//       lcdPrint("MINUS");
//       break;
//     case 176:
//       lcdPrint("key: C");
//       break;
//     case 48:
//       lcdPrint("num: 1");
//       break;
//     case 24:
//       lcdPrint("num: 2");
//       break;
//     case 122:
//       lcdPrint("num: 3");
//       break;
//     case 16:
//       lcdPrint("num: 4");
//       break;
//     case 56:
//       lcdPrint("num: 5");
//       break;
//     case 90:
//       lcdPrint("num: 6");
//       break;
//     case 66:
//       lcdPrint("num: 7");
//       break;
//     case 74:
//       lcdPrint("num: 8");
//       break;
//     case 82:
//       lcdPrint("num: 9");
//       break;
//     default:
//       lcd.clear();
//       lcd.print(receiver.decodedIRData.command);
//       lcd.print(" other button");
//   }
// }