#include<Wire.h>
//#include<SPI.h>//Arduino
//#include<Adafruit_SH1106.h>//Arduino
//Adafruit_SH1106 OLED(-1);//Arduino
#include<Adafruit_GFX.h>//Wokwi
#include<Adafruit_SSD1306.h>//Wokwi
Adafruit_SSD1306 OLED(128,64,&Wire,-1);//Wokwi
#include <IRremote.h>
int RECV_PIN = 7;
int LED1=13,LED2=12,LED3=11,LED4=10;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC,0x3c);
// put your setup code here, to run once:
pinMode(RECV_PIN, INPUT);
pinMode(LED1, OUTPUT);
irrecv.enableIRIn();
Serial.begin(9600);
OLED.clearDisplay();
}
int flag=0,flag2=0;
void loop() {
OLED.setTextColor(WHITE,BLACK);
OLED.setCursor(10,5);
OLED.setTextSize(1);
OLED.print("Lamp 1 =");
OLED.setCursor(10,20);
OLED.setTextSize(1);
OLED.print("Fan 1 =");
OLED.setCursor(10,35);
OLED.setTextSize(1);
OLED.print("Door =");
OLED.setCursor(10,50);
OLED.setTextSize(1);
OLED.print("Pump =");
// put your main code here, to run repeatedly:
if(irrecv.decode(&results)){
if(results.value==0xFF0CF3){
digitalWrite(LED1, HIGH);
Serial.println("Lamp 1 = On");
OLED.setCursor(63,5);
OLED.setTextSize(1);
OLED.print("On ");
}
else if(results.value==0xFF18E7){
digitalWrite(LED1, LOW);
Serial.println("Lamp 1 = Off");
OLED.setCursor(63,5);
OLED.setTextSize(1);
OLED.print("Off");
}
if(results.value==0xFF5EA1){
digitalWrite(LED2, HIGH);
Serial.println("FAN 1 = On");
OLED.setCursor(60,20);
OLED.setTextSize(1);
OLED.print("On ");
}
else if(results.value==0xFF08F7){
digitalWrite(LED2, LOW);
Serial.println("FAN 1 = Off");
OLED.setCursor(60,20);
OLED.setTextSize(1);
OLED.print("Off");
}
if(results.value==0xFF1CE3){
if(flag == 0){
digitalWrite(LED3, HIGH);
Serial.println("Door = OPEN");
OLED.setCursor(53,35);
OLED.setTextSize(1);
OLED.print("OPEN");
flag = 1;
}
else{
digitalWrite(LED3, LOW);
Serial.println("Door = LOCK");
OLED.setCursor(53,35);
OLED.setTextSize(1);
OLED.print("LOCK");
flag = 0;
}}
if(results.value==0xFF42BD){
if(flag2 == 0){
digitalWrite(LED4, HIGH);
Serial.println("Pump = On");
OLED.setCursor(53,50);
OLED.setTextSize(1);
OLED.print("On ");
flag2 = 1;
}
else{
digitalWrite(LED4, LOW);
Serial.println("Pump = Off");
OLED.setCursor(53,50);
OLED.setTextSize(1);
OLED.print("Off");
flag2 = 0;
}}
Serial.println(results.value,HEX);
irrecv.resume();
}
OLED.display();
}