Rf Module with Light


Jugaadu and his brother both are studying in their respective rooms. Jugaadu had noticed multiple times that his brother always forgets to switch off the light while leaving the room. Jugaadu believes in saving electricity for a sustainable environment. Let us help Jugaadu to get rid of this problem?

  1. Arduino UNO UNO
  2. Jumper Wires
  3. USB Cable
  4. Foamsheet
  5. RF Transmitter and Reciever
  6. Gluegun
  7. LEDs
  8. Push Button
  9. Cutter
  10. Breadboard
  11. Scale
  12. Resistor
We can make a networking based light switch using an RF module. A Radio-frequency module is an electronic device used to transmit or receive radio signals between two devices to communicate with another device wirelessly. With the help of the RF module, we can control the lights of the other rooms as well.

    #define rfReceivePin A0 //RF Receiver data pin = Analog pin 0 
#define rfTransmitPin 4 //RF Transmitter pin = digital pin 4 
#define button 6 //The button attached to digital pin 6 
#define ledPin 13 //Onboard LED = digital pin 13 

const int dataSize = 500; //Arduino memory is limited (max=1700) 
byte storedData[dataSize]; //Create an array to store the data 
const unsigned int threshold = 100; //signal threshold value 
int maxSignalLength = 255; //Set the maximum length of the signal 
int dataCounter = 0; //Variable to measure the length of the signal 
int buttonState = 1; //Variable to control the flow of code using button presses 
int buttonVal = 0; //Variable to hold the state of the button 
int timeDelay = 105; //Used to slow down the signal transmission (can be from 75 - 135) 

void setup(){ 
Serial.begin(9600); //Initialise Serial communication - only required if you plan to print to the Serial monitor 
pinMode(rfTransmitPin, OUTPUT); 
pinMode(ledPin, OUTPUT); 
pinMode(button, INPUT); 

void loop(){ 
//buttonVal = digitalRead(button); 

//if(buttonState>0 && buttonVal==HIGH){ 
//Serial.println("Listening for Signal"); 

// } 

buttonVal = digitalRead(button); 
// Serial.println(buttonVal); 
if( buttonVal==LOW){ 
//Serial.println("Send Signal"); 


/* ------------------------------------------------------------------------------ 
Initialise the array used to store the signal 
void initVariables(){ 
for(int i=0; ithreshold && dataCounterthreshold = lost while listening for signal 
digitalWrite(ledPin, LOW); 

Send the stored signal to the FAN/LIGHT's RF receiver. A time delay is required to synchronise 
the digitalWrite timeframe with the 433MHz signal requirements. This has not been tested with different 
------------------------------------------------------------------------------ */ 
void sendSignal(){ 
digitalWrite(ledPin, HIGH); 
for(int i=0; i