Secure your home by implementing this handy automatic door
Management system.
WHAT YOU NEED :
Arduino Uno
16×2 LCD display
Servo motor
RFID RC522 module and Card
Buzzer
Resistor 221 ohm
Breadboard
Jumper wires
CIRCUIT DIAGRAM :
CODE :
/* * RFID Module RC522 * Simple Project:- Arduino will read RFID Tag and Display To the Serial Monitor! * * RFID RC522 and Arduino Uno Pin Configuration * * RFID RC522 Arduino Uno * SS/SDA D10 * SCK D13 * MOSI D11 * MISO D12 * IRQ Not Connected * GND GND * RST D9 * 3.3V 3.3V * * //Note: We connected LCD to the Analog Pins. * Remember, Analog Pins can be act as a Digital Pins, * But Digital Pins CAN NOT be act as a Analog Pins. * * LCD(16x2) Connections * * VSS pin to GND * VCC pin to 5V * //We are connecting "Contrast pin to GND for Maximum Brightness" * //You can also connect it to 10K Pot if you wish to change the Brightness Of LCD. * VEE pin to GND * RS pin to Analog pin A0 * R/W pin to ground * Enable pin to Analog pin A1 * D4 pin to Analog pin 5 * D5 pin to Analog pin 4 * D6 pin to Analog pin 3 * D7 pin to Analog pin 2 * LED+ pin to POWER * LED- pin to GND * * Servo is Connected to Digital Pin 5 * * RGB LED * From RGB LED, We need Only Red and Green Color, * So we are not connecting Blue pin of the RGB. * * Red pin to Digital pin 6 * Green pin to Digital pin 7 * * Buzzer to Digital pin 8 * * * Note:- RFID uses SPI Protocol to transfer the information. * I took the Melody(for the Buzzer) from, * File -> Examples -> Digital -> ToneMelody */ //Include sections #include <RFID.h> #include <SPI.h> #include <LiquidCrystal.h> #include <Servo.h> #include "pitches.h" //Define Component to Arduino Pins #define SS_PIN 10 #define RST_PIN 9 #define SERVO_PIN 5 #define Red_LED 6 #define Green_LED 7 #define Buzzer 8 //initialize the library with the numbers of the interface pins LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); Servo DoorLock; RFID rfid(SS_PIN, RST_PIN ); //Unique ID of RFID Tag, which you want to give access. int My_RFID_Tag[5] = {0x58,0x76,0x17,0x10,0x29}; //variable to hold your Access_card boolean My_Card = false; // notes in the melody, taken from: //File -> Examples -> Digital -> ToneMelody int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; void setup() { // put your setup code here, to run once: //set the pins as an input/output pinMode(Red_LED,OUTPUT); pinMode(Green_LED,OUTPUT); pinMode(Buzzer,OUTPUT); //Servo Connnected to pin Digital Pin 5 DoorLock.attach(SERVO_PIN); //open the serial port at 9600 baudrate. Serial.begin(9600); //Initialise the LCD to 16x2 Character Format lcd.begin(16,2); //Initialise Servo and RFID SPI.begin(); rfid.init(); } void loop() { // put your main code here, to run repeatedly: //First Assume detected card(Or tag) is My_Card, //Then later we will check is it My_Card or not! My_Card = true; DoorLock.write(0); //Servo at 0 Position, Door is Closed. lcd.clear(); lcd.print("Robodia Technology"); lcd.setCursor(0,1); lcd.print("gy Solutions!"); //Check if any RFID Tags Detected or not? if( rfid.isCard() ) { //if RFID Tag is detected, check for the Unique ID, //and print it on the Serial Window if( rfid.readCardSerial() ) { lcd.clear(); lcd.print("UNIQUE ID is:- "); delay(500); lcd.setCursor(0,1); //Set LCD Cursor to Second Row, First Character //Unique id is 5 Digit Number. //Printing in HEX for better Understanding for( int i = 0; i < 5; i++ ) { Serial.print(rfid.serNum[i], HEX); Serial.print(" "); lcd.print(rfid.serNum[i],HEX); lcd.print(" "); } delay(500); //Compare this RFID Tag Unique ID with your My_RFID_Tag's Unique ID for(int i = 0; i < 5; i++) { //if any one Unique ID Digit is not matching, //then make My_Card = false and come out from loop //No need to check all the digit! if( My_RFID_Tag[i] != rfid.serNum[i] ) { My_Card = false; break; } } Serial.println(); delay(1000); //If RFID Tag is My_Card then give access to enter into room //else dont open the door. if(My_Card) { Serial.println("\nWelcome To Your Room, Robodia!"); lcd.clear(); lcd.print("Welcome to Your"); lcd.setCursor(0,1); lcd.print("Room, Robodia!"); delay(2000); //Turn on the Green LED as an indication of permission is given //to access the room. digitalWrite(Green_LED,HIGH); //Buzzer Config, taken from: //File -> Examples -> Digital -> ToneMelody // iterate over the notes of the melody: int i = 0; while(i < 2) { for (int thisNote = 0; thisNote < 12; thisNote++) { // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(8, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } i = i + 1; delay(500); } delay(1000); //Now, Open the Door with the help of Servo Motor DoorLock.write(180); delay(200); lcd.clear(); lcd.print("Door is Open"); lcd.setCursor(0,1); lcd.print("Now!"); delay(2000); lcd.clear(); //Give 10 Sec delay to enter into room //After that door will again closed! for(int i = 10; i > 0; i--) { lcd.print("Door will close"); lcd.setCursor(0,1); lcd.print("in "); lcd.print(i); lcd.print(" Sec.HurryUp!"); delay(1000); lcd.clear(); } //Now,Door is closed and Green LED is Turned-Off. DoorLock.write(0); digitalWrite(Green_LED,LOW); delay(200); lcd.clear(); lcd.print("Door is Close"); lcd.setCursor(0,1); lcd.print("Now!"); delay(2000); } // If RFID Tag is not My_Card then // Do not open the Door and //Turn-On Red LED and Buzzer as an indication of Warning: //Somebody else is trying to enter into your room. else { Serial.println("\nGet Out of Here !"); lcd.clear(); lcd.print("Card isNOT FOUND!"); lcd.setCursor(0,1); lcd.print("Get Out of Here!"); for(int i = 0; i < 7; i++) { digitalWrite(Buzzer, HIGH); digitalWrite(Red_LED,HIGH); delay(500); digitalWrite(Buzzer, LOW); digitalWrite(Red_LED,LOW); delay(500); } delay(1000); } } } //Put RFID Reader into Halt, untill it not detects any RFID Tag. rfid.halt(); }
Making electronics project is too pretty
Simple with Us.
Join and Make with Us.
Comments