#include <IRremote.hpp>
#define IR_RECEIVE_PIN 15 // IR Receiver Pin
#define LIGHT_LED 18 // Light LED Pin
#define FAN_LED 19 // Fan LED Pin
#define BUZZER 23 // Buzzer Pin
#define BUTTON 5 // Push Button for Manual Control
void setup() {
pinMode(LIGHT_LED, OUTPUT);
pinMode(FAN_LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
Serial.begin(115200);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void loop() {
if (IrReceiver.decode()) {
uint32_t command = IrReceiver.decodedIRData.command;
Serial.print("Received IR Code: ");
Serial.println(command);
if (command == 0x10) { // Replace with your IR Remote button code
digitalWrite(LIGHT_LED, !digitalRead(LIGHT_LED));
Serial.println("Toggling Light");
}
else if (command == 0x20) { // Replace with another IR Remote button code
digitalWrite(FAN_LED, !digitalRead(FAN_LED));
Serial.println("Toggling Fan");
}
else if (command == 0x30) { // Another IR button for Alarm
digitalWrite(BUZZER, HIGH);
delay(1000);
digitalWrite(BUZZER, LOW);
Serial.println("Alarm Activated!");
}
IrReceiver.resume(); // Prepare for next IR signal
}
// Manual control with push button
if (digitalRead(BUTTON) == LOW) {
digitalWrite(LIGHT_LED, !digitalRead(LIGHT_LED));
Serial.println("Manual Button Pressed: Toggling Light");
delay(300); // Debounce delay
}
}