Вы находитесь на странице: 1из 8

instructables

Arduino RFID Lock Tutorial

by educ8s

Dear friends welcome to another Instructable. This is UID of the tag is equal to a predefined value that is
Nick from educ8s.tv and today we are going to learn stored in Arduino’s memory, then in the display we
how to use this RFID Reader with Arduino in order to are going to see the “Unlocked” message. If the
build a simple lock system. Unique ID of the card is not equal to the predefined
value, the Unlock message won’t appear. Cool isn’t
For the first time, we are going to use RFID tags with it?
Arduino. I have built a simple project which reads the
Unique ID (UID) of each RFID tag we place close to There is a lot to cover, so let's get started!
the reader and displays it on this OLED display. If the

https://www.youtube.com/watch?v=So83sH6-jwM

Arduino RFID Lock Tutorial: Page 1


Step 1: Get All the Parts

The parts needed in order to build this project are these:

An Arduino Uno http://educ8s.tv/part/ArduinoUno


An RFID Reader http://educ8s.tv/part/RFID
OLED display http://educ8s.tv/part/OLED096
A small breadboard http://educ8s.tv/part/SmallBreadboard
Some wires http://educ8s.tv/part/Wires

Optional Parts:

Powerbank http://educ8s.tv/part/Powerbank

The total cost of the project is around $15.

Arduino RFID Lock Tutorial: Page 2


Step 2: The RC522 RFID Reader

Each RFID tag has a small chip inside. If I place a That’s the UID that we display on the OLED display.
flashlight under this RFID card you can see the small Except from this UID, each tag can store data. In this
chip and the coil that surrounds it. This chip does not type of cards we can store up to 1K of data!
have a battery in order to get power. It receives power Impressive isn’t it? We won’t use this functionality
from the reader, this device, wirelessly using this big today but will do so in a future Instructable. Today, all
coil. The reader can read an RFID card like this one we are interested in is to identify a specific card by its
from a distance up to 20mm! UID. The cost of the RFID reader and these two RFID
cards is around $4.
The same chip exists in keychain RFID tags as well.

Each RFID tag has a unique number that identifies it.

Arduino RFID Lock Tutorial: Page 3


Step 3: OLED Display

This is a very nice display to use with Arduino. It is an


This OLED display is very bright, and it has a great
OLED display and that means that it has a low power library support. Adafruit has developed a very nice
consumption. The power consumption of this display library for this display. In addition to that, the display
is around 10-20 mA and it depends on how many uses the I2C interface, so the connection with
pixels are lit. Arduino is incredibly easy. You only need to connect
two wires except for Vcc and GND. If you are new to
The display has a resolution of 128×64 pixels and it is Arduino and you want an inexpensive and easy to
tiny in size. There are two variations of the display. use display to use with your project, start with display.
One of them is monochrome, and the other one like It is the easiest way to add a display to your Arduino
the one I use can display two colors, yellow and blue. project. I have prepared a detailed tutorial on how to
The upper part of the screen can only display yellow, use this display which I have attached to this
the lower part only blue. Instructable.

https://www.youtube.com/watch?v=A9EwJ7M7OsI

Arduino RFID Lock Tutorial: Page 4


Step 4: Connect All the Parts

The connection with the Arduino Uno board is very IRQ Unconnected
simple. At first, let’s connect the power of both the
reader and the display. MISO Digital Pin 12

Be careful, the RFID reader must be connected to MOSI Digital Pin 11


the 3.3V output of the Arduino Uno or it will be
destroyed. Since the display can also work at 3.3V SCK Digital Pin 13
we connect the Vcc from both modules to the
breadboards positive rail. This rail is then connected SDA Digital Pin 10
to the 3.3V output of the Arduino Uno. Next, we
connect both GNDs to the breadboard GND rail. Then The RFID reader module uses the SPI interface in
we connect the GND rail of the breadboard to Arduino order to communicate with Arduino. So we are going
GND. to use the hardware SPI pins of the Arduino UNO.
RST pin goes to digital pin 9. IRQ pin stays
OLED Display - Arduino unconnected. MISO pin goes to digital pin 12. MOSI
pin goes to digital pin 11. SCK pin goes to digital pin
Vcc 3.3V 13 and lastly, SDA pin goes to digital pin 10. That’s it.
The RFID reader is connected. We now have to
GND GND connect the OLED display with Arduino using the I2C
interface. So, the SCL pin of the display goes to
SCL Analog Pin 5 Analog Pin 5 and SDA pin of the display to Analog
Pin 4. If we now power up the project and place an
SDA Analog Pin 4 RFID card close to the reader we can see that the
project is working fine! Now it’s time to take a look at
RFID Reader - Arduino the code of the project.

RST Digital Pin 9

Arduino RFID Lock Tutorial: Page 5


Arduino RFID Lock Tutorial: Page 6
Step 5: The Code of the Project

In order the project code to compile we need to include some libraries. First of all, we need the MFRC522 Rfid
library. In order to install it, go to Sketch -> Include Libraries -> Manage libraries. Search for MFRC522 and install
it. We also need the Adafruit SSD1306 library and the Adafruit GFX library for the display. Install both libraries with
the same procedure. The Adafruit SSD1306 library needs a small modification. Go to the Arduino -> Libraries
folder, open the Adafruit SSD1306 folder and edit the Adafruit_SSD1306.h library. Comment line 70 and
uncomment line 69. Our display has a resolution of 128x64, that’s what we are defining here. Now we are ready to
take a quick look at the code.

At first, we declare the value of the RFID tag that we want the Arduino to recognize. It is an array of integers.

int code[] = {69,141,8,136}; //This is the stored UID

Next, we initialize the RFID reader and the display.

rfid.PCD_Init();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

After this, in the loop function, we check for a tag on the reader every 100 ms.

If there is a tag on the reader we read its UID and we print it on the display. Next, we compare the UID of the tag
we just read, with the value that is stored in the code variable. If the values are the same, we display the UNLOCK
message, else we don’t display this message.

if(match)
{
Serial.println("\nI know this card!");
printUnlockMessage();
}else
{
Serial.println("\nUnknown Card");
}

Of course, you can modify this code in order to store more than 1 UID values in order the project to recognize
more RFID tags.

This is just an example. As always you can find the code of the project attached to this Instructable.

Arduino RFID Lock Tutorial: Page 7


http://www.instructables.com/ORIG/F2L/OOQC/JE94HQ7P/F2LOOQCJE94HQ7P.ino
… Download

Step 6: Final Thoughts & Improvements

As you can see with a very low cost we can add an In a future video, we will also try to write and read
RFID reader to our projects. We can easily build a data from an RFID tag. At this point, I would love to
security system with a reader like this one or build hear your opinion about this RFID card reader. Do
more fun projects. you plan to use it in any of your projects? Please post
any comments or ideas in that comments section
My main intention is to build some interactive games below, thanks!
for kids using this RFID reader and a lot of RFID tags.

i have made it but my 128x60 oled display works on 5V not 3.3 :)

Nice tutorial ! i made it for two rfid cards. Thanks and keep it going !

Arduino RFID Lock Tutorial: Page 8

Вам также может понравиться