Smart Home Lights project for kids: Overview
This project is about smart home lights, which are set to shape the future of living. In these homes, we won’t need to switch the lights on and off manually. Instead, a simple press of a button on the remote will control them effortlessly.
The smart lighting system works so that whenever you press the remote button, the lights will automatically turn on or off. This represents the next step toward a world of automation, where convenience and efficiency come first.
At Coding-Schools, in collaboration with Makers Muse, we are exploring these innovative technologies to help students and creators understand, build, and imagine the future of smart living.
Hardware requiredÂ
- Arduino Uno R3
- Resistor
- Jumper Wires
- IR Remote
- Led
- IR Sensor
- Breadboard
Schematic Diagram

Fig 1. Circuit Diagram
Arduino Code :Â
#include <IRremote.h>
int voltage[12];
unsigned int i = 0;
IRrecv irrecv(12);
decode_results results;
unsigned long key_value = 0;
void setup(){
Serial.begin(9600);
SetUpPins();
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
TranslateIR();
}
void ToggleLED(int pin) {
if (voltage[pin]) {
Serial.print("LED ");
Serial.print(pin - 2);
Serial.println(" was turned off");
digitalWrite(pin, LOW);
voltage[pin] = 0;
} else {
Serial.print("LED ");
Serial.print(pin - 2);
Serial.println(" was turned on");
digitalWrite(pin, HIGH);
voltage[pin] = 1;
}
}
void SetUpPins() {
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void TranslateIR() {
if (irrecv.decode(&results)){
if (results.value == 0XFFFFFFFF)
results.value = key_value;
switch(results.value){
case 0xFD00FF://power
break;
case 0xFD807F://vol+
break;
case 0xFD40BF://func/stop
break;
case 0xFD20DF://|<<
break;
case 0xFDA05F://>||
break ;
case 0xFD609F://>>|
break ;
case 0xFD10EF://down arrow
break ;
case 0xFD906F://vol-
break ;
case 0xFD50AF://up arrow
break ;
case 0xFD30CF://0
ToggleLED(2);
break ;
case 0xFDB04F://eq
break ;
case 0xFD708F://st/rept
break ;
case 0xFD08F7://1
ToggleLED(3);
break ;
case 0xFD8877://2
ToggleLED(4);
break ;
case 0xFD48B7://3
ToggleLED(5);
break ;
case 0xFD28D7://4
ToggleLED(6);
break ;
case 0xFDA857://5
ToggleLED(7);
break ;
case 0xFD6897://6
ToggleLED(8);
break ;
case 0xFD18E7://7
ToggleLED(9);
break ;
case 0xFD9867://8
ToggleLED(10);
break ;
case 0xFD58A7://9
ToggleLED(11);
break ;
}
key_value = results.value;
irrecv.resume();
}
}
Precautions
- Connections should be done properly.
- Arduino is case Sensitive, so code accordingly.
- Give different and appropriate colours to the wires.
- Use resistors for sensors and LCDs.