Led Control Using RFID (RC522)

About: An Electronics engineer and a hobbyist. I love to keep experimenting with microcontrollers.

Hello everyone, its been few days since I uploaded a project here. So let's get over with it today. In this instructable you will learn to control a led using the RFID Module. This project can also be modified to control a relay module, so you can control your home appliances/lights using RFID. The system will work in the similar way as the Key Card used in hotels. The only difference is that we are using two cards. One for on and the other for off. So make sure you read the entire instructable.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Gather the Supplies

I suggest you to buy the components from UTSource.net . They provide high quality components at affordable rates and deliver them at your door steps on time. They also provide PCB Services in case you are looking forward to build your first prototype.

The components you need are as follows -

1. Arduino Uno

2. RFID Module (RC522) with Tags

3. Led and Resistor (220 ohm)

4. Breadboard

5. Header Wires

Step 2: Circuit Diagram

Here is the circuit diagram to connect the RFID module with the Arduino Board.

I will explain the connections below.

PIN OUTS OF RFID CARD READER >> ARDUINO PINS

SDA >> 10

SCA >> 13

MOSI >> 11

MISO >> 12

RST >> 9

LED1 >> 6

Connect the Vcc pin of the RFID to the +5V pin of Arduino. Then connect the ground pin to ground. Now connect the SDA pin of the RFID to digital pin 10. The SCA/SCK pin to digital pin 13. And Connect the Mosi and Miso pins to digital pins 11 and 12 respectively. Connect the Reset pin to digital pin 9. Finally connect a led to digital pin 6. In case you wish to modify this to the relay version, just connect your relay here.

Step 3: Tag Identification

Each RFID tag has its unique UID. The reader identifies a TAG using this identification number. When interfacing a RFID for the first time we need to find the UID for each tag we have. And in order to do that we have to upload a basic sketch to the Arduino Board. But before we do that, we need a library which will help our Arduino to communicate with the reader. Go to Manage Libraries in the Arduino IDE and search for MFRC522.h . And install this library.

If you are unable to find it then here is the zip file of the library.

CLICK HERE to download.

Now in the Arduino IDE examples look for MFRC522. Bring your cursor on it. You will see many sketches. You have to open the sketch titled DumpInfo. This code will spit out the UID number of the TAG once brought in the proximity.

/*<br> * --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program showing how to read data from a PICC to serial.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: <a href="https://github.com/miguelbalboa/rfid"> https://github.com/miguelbalboa/rfid
</a>
 * 
 * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
 * Reader on the Arduino SPI interface.
 * 
 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
 * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages
 * when removing the PICC from reading distance too early.
 * 
 * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).
 * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all
 * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so
 * keep the PICCs at reading distance until complete.
 * 
 * @license Released into the public domain.
 * 
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */
#include <spi.h>
#include <mfrc522.h>
#define RST_PIN         9          // Configurable, see typical pin layout above
#define SS_PIN          10         // Configurable, see typical pin layout above
MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance
void setup() {
	Serial.begin(9600);		// Initialize serial communications with the PC
	while (!Serial);		// Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
	SPI.begin();			// Init SPI bus
	mfrc522.PCD_Init();		// Init MFRC522
	mfrc522.PCD_DumpVersionToSerial();	// Show details of PCD - MFRC522 Card Reader details
	Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}
void loop() {
	// Look for new cards
	if ( ! mfrc522.PICC_IsNewCardPresent()) {
		return;
	}
	// Select one of the cards
	if ( ! mfrc522.PICC_ReadCardSerial()) {
		return;
	}
	// Dump debug info about the card; PICC_HaltA() is automatically called
	mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}</mfrc522.h></spi.h>

You can also copy it from above.

Once you get the UID numbers, write them down because we will need them in the next part of the code.

Now let's move further.

Step 4: Uploading the Code

Now download the code and change the Tag number to the one which you had written earlier.

/*<br>PINOUTS OF RFID CARD READER >> ARDUINO PINS
SDA >> 10
SCA >> 13
MOSI >> 11
MISO >> 12
RST >> 9
LED1 >> 6
*/
#include <spi.h>
#include <mfrc522.h>
#define SS_PIN 10
#define RST_PIN 9
const int LED1 = 6;
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  pinMode(LED1, OUTPUT);
  digitalWrite(LED1,LOW);
  Serial.println("Put your card to the reader...");
  Serial.println();
}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "F4 90 E0 1F") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    digitalWrite(LED1, HIGH);
  }
  else 
  //if (content.substring(1) == "6A 34 D9 AB") 
  {
    Serial.println(" Access denied"); 
    Serial.println();
    digitalWrite(LED1, LOW);
  }
}</mfrc522.h></spi.h>

Now compile and upload the code.

After that open the Serial Monitor and your project is ready for a test.

Step 5: Working of the Project

You can watch the working video of this project above.

When you bring the "ON" tag in front of the reader, the led turns on. And when you bring the "OFF" tag in front of the reader the led turns off.

Hope this simple instructable benefited you. If it did then please share it with your friends. Also follow me here for more projects like this. That's it for today. See you soon with another project.

Be the First to Share

    Recommendations

    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    Discussions