#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
const int relay1Pin = 9;
const int relay2Pin = 10;
const int relay3Pin = 11;
#define PIN_RECEIVER 12
IRrecv receiver(PIN_RECEIVER);
void setup()
{
receiver.enableIRIn();
lcd.init();
lcd.backlight();
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
Serial.begin(9600);
delay(1000);
lcd.setCursor(0, 0);
lcd.println("TEMP:");
lcd.setCursor(8, 0);
lcd.println("HUMID:");
}
void loop()
{
if (receiver.decode())
{
lcd.setCursor(0, 1);lcd.println("RECV:");
lcd.setCursor(6, 1);lcd.println(receiver.decodedIRData.command);
Serial.println(receiver.decodedIRData.command);
IRrelaycont();
receiver.resume();
}
}
void IRrelaycont()
{
switch (receiver.decodedIRData.command) {
case 162:
;
break;
case 226:
;
break;
case 34:
;
break;
case 2:
;
break;
case 194:
;
break;
case 224:
;
break;
case 168:
;
break;
case 144:
;
break;
case 104:
;
break;
case 152:
;
break;
case 176:
;
break;
case 48:
if (digitalRead(relay1Pin)==LOW) {digitalWrite(relay1Pin,HIGH);} else {digitalWrite(relay1Pin,LOW);}
break;
case 24:
if (digitalRead(relay2Pin)==LOW) {digitalWrite(relay2Pin,HIGH);} else {digitalWrite(relay2Pin,LOW);}
break;
case 122:
if (digitalRead(relay3Pin)==LOW) {digitalWrite(relay3Pin,HIGH);} else {digitalWrite(relay3Pin,LOW);}
break;
case 16:
;
break;
case 56:
;
break;
case 90:
;
break;
case 66:
;
break;
case 74:
;
break;
case 82:
;
break;
default:
;
}
}