Major Project Report Final
Major Project Report Final
ON
“SECURED AND INTEGRATED LOCKING
SYSTEM WITH REMOTE MONITORING”
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION ENGINEERING
Submitted By
Shubham Rajput Hritik Ramuka
We hereby certify that the work that is being presented in the project report entitled
Secured And Integrated Locking System With Remote Monitoring to the partial
fulfillment of the requirements for the award of the degree of Bachelor of Technology
in Electronics & Communication Engineering from Dr. Akhilesh Das Gupta
Institute of Technology &Management, New Delhi. This is an authentic record of
our own work carried out during a period from Feb, 2022 to May, 2022 under the
guidance of Mr. Manoranjan Kumar, Assistant Professor in ECE department.
The matter presented in this project has not been submitted by us for the award of any
other degree elsewhere.
This is to certify that the above statement made by the candidates is correct to the best
of my knowledge. They are permitted to appear in the Major Project External
Examination.
ii
ACKNOWLEDGEMENT
iii
Dr. Akhilesh Das Gupta Institute of Technology
& Management
Electronics and Communication Engineering
iv
ABSTRACT
In this report, we are presenting the development of a microcontroller based secure and
integrated locking system with remote monitoring using GSM and Arduino technology.
Nowadays, conventional locks are not so secure that they can be used especially in
place like banks or ATMs or lockers. By using this system, we can have security and
peace of mind as this system is more secure and can be used everywhere. In places like
banks and lockers and ATMs it can be used as filtering system by sharing OTP or RFID
tags to certain people like managers or some specific staff members.
v
TABLE OF CONTENTS
Title Page……………………………………………………………………………… i
Certificate………………………………………………………………………………ii
Acknowledgement………………………………………...……………………….….iii
Vision Mission…………………………………………………...……………………iv
Abstract…………………………………………………………………………...……v
Table of Contents…………………………………………………………………..vi-vii
List of Figure…………………………………………………………………............viii
List of Tables………………………………………………………………………..…ix
1.1. Introduction………………………………………………………….....1
1.2. Basic terms of project………………………………………………..…2
1.3. Literature Overview………………………………………………........3
1.3.1“Fingerprint Based Door Lock Using Arduino”…………………………………3
1.3.2 “Password Based Door Locking System Using Arduino………………………..3
1.3.3 “Password Protected GSM based Device”………………………………………3
1.4. Motivation……………………………………………………….……..3
1.5. Organization of Project Report…………………………………..…….3
vi
2.3.9 LEDs.……………….….…………………………….……………………………11
2.3.10 BUZZER……………….….…………………………….…………………….....11
2.4 Description of Software Used………………………………………….12
2.4.1 Arduino IDE…………………………………………………………………....12
2.4.2 Fritzing………………………………………………………………………….13
REFERENCES…………………………………………………………………20
APPENDIX………………………………………………………………………22
vii
List of Figures
viii
List of Tables
ix
CHAPTER 1
INTRODUCTION AND LITERATURE REVIEW
1.1 INTRODUCTION
In our daily lives, safety is a major concern. Every person requires a sense of safety.
Our security pattern includes an access control system for doors. Traditional locks are
no longer as secure as they once were; anyone can gain access by breaking these locks.
We need to create a system that will assist 24 hours a day, seven days a week. Only
authorized individuals have access to restricted areas thanks to a password-based door
lock system. Arduino is in charge of the entire system. A keypad can be used to enter
the password. The door opens if the password matches the password entered in Arduino.
This password-based bolt structure will provide clients with a more secure and low-
effort locking-opening mechanism. Mechanical door locks will be replaced by
electronic door locks in the future, thanks to the security door lock automation system.
1
1.2 BASIC TERMS OF PROJECT
1. Arduino UNO Read the data from sensors and send data to cloud
R3 and mobile through Esp8266 and Gsm module.
2
1.3 LITERATURE OVERVIEW
1.3.1 “Fingerprint Based Door Lock Using Arduino”
This paper focuses to solve the security matters in door lock by bringing the concepts
of biometric fingerprint with the door lock. This Arduino NANO project will make use
of different devices to the implementation of the advanced security lock where there
are different features to maximize the security levels. [1]
1.4 MOTIVATION
➢ The motivation for doing this project was primarily an interest in solving real
life issues, as we see problem with traditional key lock that there is need of key
to unlock it. So, we come up with solution of smart lock
➢ This lock can be unlocked by various means and it is more secure than
traditional lock. There is no need to carry keys and no worries of losing the key.
3
➢ In Chapter Three there is some explanation related to project and how the
project is managed and designed and it also discuss about the results and output
of our project
➢ In Chapter Four there are some advantages, drawbacks and applications of
Secured & Integrated Locking System with Remote Monitoring and the
challenges which are faced during building this project.
➢ In Chapter Five we have discussed the conclusion and the future scope of our
project and different fields in which our project can be useful and implemented.
4
CHAPTER 2
METHODOLOGY ADOPTED
2.2 Objective
➢ To build a smart and secure multipurpose locking system using Arduino UNO,
RFID, GSM, IoT technology which will be easy to use and more convenient.
➢ It will be a key less model which will reduce the threats like burglary or
misplacing of keys by owner.
5
2.3 Detailed Description of Components
2.3.1. Arduino Uno R3
Arduino Uno is a microcontroller board based on the ATmega328P (datasheet). It has
14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs,
a 16 MHz ceramic resonator (CSTCE16M0V53-R0), a USB connection, a power jack,
an ICSP header and a reset button. It contains everything needed to support the
microcontroller; simply connect it to a computer with a USB cable or power it with a
AC-to-DC adapter or battery to get started.
"Uno" means one in Italian and was chosen to mark the release of Arduino Software
(IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the
reference versions of Arduino, now evolved to newer releases. The Uno board is the
first in a series of USB Arduino boards, and the reference model for the Arduino
platform; for an extensive list of current, past or outdated boards see the Arduino index
of boards.
Features
➢ Compatible with Arduino, raspberry pi, arm, avr, pic, 8051
➢ Use in the area of full signal strength.
➢ Perfect suited for GSM based Microcontroller Projects (better than SIM300 and
6
other GSM Modems)
➢ Option for connecting MIC and SPEAKER directly to GSM MODEM for calls
(LINE IN also available)
➢ Supports communication through RS232 with DB9 Connector, TTL Pins and
I2C Pins
➢ CALL SMS GPRS facility - MIC input, LINE input and SPEAKER output pins.
7
matrix formation. It is very easy to interface. Maximum voltages across buttons are
24V.
8
Figure 2.6: Solenoid Lock [8]
9
2.3.7. Fingerprint Sensor R307
This is the R307 Optical Fingerprint Reader Sensor Module. R307 fingerprint module
is a fingerprint sensor with a TTL UART interface for direct connections to
microcontroller UART or to PC through MAX232 / USB-Serial adapter. The user can
store the fingerprint data in the module and can configure it in 1:1 or 1: N mode for
identifying the person. The FP module can directly interface with a 3.3 or 5v
Microcontroller. A level converter (like MAX232) is required for interfacing with PC
serial port. Integrated image collecting and algorithm chip together, ALL-in-One
Fingerprint reader can conduct secondary development, can be embedded into a variety
of end products. Users can conduct secondary development, can be embedded into a
variety of end products, such as access control, attendance, safety deposit box, car door
locks. Low power consumption, low cost, small size, excellent performance,
Professional optical technology, precise module manufacturing technics. Good image
processing capabilities can successfully capture an image up to resolution 500 dpi
Finger detection function.
10
module equips a power indicator light (red), 1 road relay status indicator light (blue).
With this relay, you can easily control electrical appliances, lights, etc.
2.3.9. LEDs
A light-emitting diode (LED) is a semiconductor light source that emits light when
current flows through it. Electrons in the semiconductor recombine with electron holes,
releasing energy in the form of photons. The color of the light (corresponding to the
energy of the photons) is determined by the energy required for electrons to cross the
band gap of the semiconductor.[5] White light is obtained by using multiple
semiconductors or a layer of light-emitting phosphor on the semiconductor device.
2.3.10. Buzzer
An audio signaling device like a beeper or buzzer may be electromechanical or
piezoelectric or mechanical type. The main function of this is to convert the signal from
audio to sound. Generally, it is powered through DC voltage and used in timers, alarm
devices, printers, alarms, computers, etc. Based on the various designs, it can generate
different sounds like alarm, music, bell & siren.
11
Figure 2.11: Buzzer [13]
12
2.4.2 Fritzing
Fritzing is an open-source hardware initiative that makes electronics accessible as a
creative material for anyone. We offer a software tool, a community website and
services in the spirit of Processing and Arduino, fostering a creative ecosystem that
allows users to document their prototypes, share them with others, teach electronics in
a classroom, and layout and manufacture professional PCBs.
13
CHAPTER 3
i. Connect SCL and SDA pins of LCD 20x4 to Analog pins A5 and A4 of Arduino
UNO respectively.
ii. Connect TX and RX pins of Sim900a to Analog pins A0 and A1 of Arduino
UNO respectively.
iii. Connect SCL and SDA pins of Keypad I2C module to Analog pins A5 and A4
of Arduino UNO respectively.
iv. Connect positive and negative pins of green LED to Digital pin 4 and ground of
Arduino UNO respectively.
v. Connect positive and negative pins of green LED to Digital pin 5 and ground of
Arduino UNO respectively.
vi. Connect positive and negative pins of buzzer to Digital pin 2 and ground of
Arduino UNO respectively.
vii. Connect signal pin of single channel relay to Digital pin 3 of Arduino.
viii. Connect positive and negative pins of solenoid lock to positive of 9 volt power
supply and COM pin of single channel relay respectively.
ix. Connect NO of single channel relay to negative of power supply.
14
x. Connect TX and RX pins of fingerprint module R307 to Digital pins 6 and 7 of
Arduino UNO respectively.
xi. Connect SDA, SCK, MOSI, MISO, RST of MFRC522 to Digital pins 10, 13,
11, 12, 9 of Arduino UNO respectively.
xii. Connect one end of push button to GND and other end to Digital pin 8 of
Arduino Uno.
15
Figure3.4: Authorizing RFID
16
Figure 3.6: Entering PIN
17
CHAPTER 4
MERITS, DEMERITS AND APPLICATIONS
4.1. Merits
➢ Convenience: Smart locking systems are more secure, convenient and easy to
use than regular locks.
➢ No more keys! You won't have to carry around a large set of keys and they will
be less likely to be lost or stolen
➢ Password sharing is not required because it has feature of OTP.
4.2. Demerits
➢ It requires continuous power supply which could be difficult in remote areas.
➢ It requires good network coverage to operate properly.
4.3. Applications
➢ Smart locking systems can be used at various places like banks, homes, ATMs,
etc.
➢ It can be used to provide special access to certain peoples like staff members.
➢ It can be used as attendance system in schools, colleges and universities.
18
CHAPTER 5
CONCLUSIONS AND FUTURE SCOPE
5.1 Conclusion
➢ The conclusion of our project is that it is very convenient locking system with
multiple modes of access like RFID card, Fingerprint and pin.
➢ With the help of IoT and GSM we can remotely monitor our lock and also get
warning alerts on mobile phone in case anyone tries to tamper with the lock
19
REFERENCES
[1] S. Gaikwad, S. Jamadar, R. Shelke, “Fingerprint Based Door Lock Using Arduino,”
International Research Journal of Modernization in Engineering Technology and
Science, vol. 03, no. 06, pp. 279-282, June 2021
[4] https;//www.arduino.cc/
[5] https://fritzing.org/
[6]http://nskelectronics.in/image/cache/catalog/ARDUINO/ArduinoUno_r2_front450
px-228x228.jpg
[7] https://www.electronicscomp.com/sim900a-gsm-gprs-module-india
[8] https://protosupplies.com/product/solenoid-electric-door-lock-12v-0-9a/
[9]https://www.electronicscomp.com/image/cache/catalog/rc522-rfid-reader-writer-
module-india-400x400.jpg
[10]https://www.electronicscomp.com/image/cache/catalog/r307-fingerprint-sensor-
module-india-2-400x400.jpg
[11] https://superbtech.in/product/5v-relay-module/
20
[12] https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/LEDs.jpg/1200px-
LEDs.jpg
[13]https://www.topnewscorner.com/wp-content/uploads/2021/09/Buzzer-
300x169.jpg
21
APPENDIX
/*
* Author-Shubham Rajput
* College-ADGITM, DELHI-110053
* BRANCH-BTECH-ECE
* ROLL NO-
*/
#include <SPI.h>
#include <MFRC522.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Keypad_I2C.h"
#include <Keypad.h>
char otp[5];
char data[pin_length];
byte data_count=0;
char customkey;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {0,1,2,4};
byte colPins[COLS] = {5,6,7};
22
SoftwareSerial SIM900A(A0,A1);
LiquidCrystal_I2C lcd(0x27,20,4);
SoftwareSerial mySerial(6, 7);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
Keypad_I2C kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS,
I2CADDR, PCF8574 );
MFRC522 mfrc522(SS_PIN, RST_PIN);
int warning=0;
void setup()
{
randomSeed(analogRead(A1));
Wire.begin( );
kpd.begin( makeKeymap(keys) );
SIM900A.begin(9600);
Serial.begin(9600);
lcd.init();
lcd.backlight();
Display_menu();
while (!Serial);
delay(100);
SPI.begin();
mfrc522.PCD_Init();
pinMode(8,INPUT_PULLUP);
pinMode(LED_G, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(RELAY, OUTPUT);
pinMode(BUZZER, OUTPUT);
noTone(BUZZER);
digitalWrite(RELAY, HIGH);
finger.begin(57600);
finger.getTemplateCount();
23
}
long int delta = 0;
void loop()
{
if(digitalRead(8)==LOW){
digitalWrite(RELAY, LOW);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
}
Display_menu();
customkey=kpd.getKey();
if(customkey)
{
if(customkey=='#')
{
int index=0;
lcd.clear();
lcd.setCursor(3,1);
lcd.print("SENDING OTP TO");
lcd.setCursor(7,2);
lcd.print("OWNER");
tone(BUZZER, 500, 200);
delay(250);
tone(BUZZER, 500, 200);
for(index;index<4;index++)
{
otp[index]=random(49,57);
}
Serial.println(otp);
SendMessage("Your Smart lock OTP is "+String(otp));
lcd.clear();
data_count=0;
}
else if(customkey=='*')
{
tone(BUZZER, 500, 80);
lcd.clear();
data_count=0;
}
else
{
24
tone(BUZZER, 500, 80);
data[data_count]=customkey;
lcd.setCursor(16+data_count,3);
lcd.print("*");
data_count++;
}
}
if(data_count==pin_length-1)
{
delay(1000);
if(strcmp(data,lock_pin)==0)
{
Authorized_access("PIN");
data_count=0;
}
else if(strcmp(data,otp)==0)
{
Authorized_access("OTP");
data_count=0;
for(int index=0;index<4;index++)
{
otp[index]='A';
}
}
else
{
Access_denied("PIN/OTP");
data_count=0;
}
if(warning==3||warning==5)
{
Lock_timer();
}
}
getFingerprintIDez();
25
delay(50);
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
delay(20);
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
delay(20);
content.toUpperCase();
if (content.substring(1) == "0A 93 D2 0B")
{
Authorized_access("RFID");
}
else
{
Access_denied("RFID");
}
if(warning==3||warning==5)
{
Lock_timer();
}
26
int getFingerprintIDez()
{
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK)
{
Access_denied("FINGERPRINT");
if(warning==3||warning==5)
{
Lock_timer();
}
return -1;
{
Authorized_access("FINGERPRINT");
}
Add your own Mobile
Number in the
void SendMessage(String content) Blacked out part
{ Format :
+91XXXXXXXX29
SIM900A.println("AT+CMGF=1");
delay(1000);
SIM900A.println("AT+CMGS=\"+9 229\"\r");
delay(1000);
SIM900A.println(content);
delay(100);
SIM900A.println((char)26);
delay(1000);
}
void Display_menu()
{
lcd.setCursor(2,0);
lcd.print("WELCOME TO SMART ");
lcd.setCursor(5,1);
lcd.print("DOOR LOCK");
if(warning==0||warning==1||warning==2)
27
{
lcd.setCursor(0,2);
lcd.print("OTP : #");
}
if(warning==3||warning==4)
{
lcd.setCursor(0,2);
lcd.print(5-warning);
lcd.setCursor(2,2);
lcd.print("Attempts left");
}
lcd.setCursor(0,3);
lcd.print("ENTER PIN/OTP : ");
lcd.setCursor(1,3);
lcd.print("HI, SHUBHAM RAJPUT");
}
else
{
lcd.setCursor(6,3);
lcd.print("WELCOME");
}
}
if(mode=="RFID"||mode=="PIN"||mode=="OTP")
{
lcd.setCursor(6,3);
lcd.print("WELCOME");
}
digitalWrite(RELAY, LOW);
digitalWrite(LED_G, HIGH);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
28
digitalWrite(LED_G, LOW);
delay(1500);
warning=0;
lcd.clear();
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MODE : "+mode);
lcd.setCursor(0,1);
lcd.print("ACCESS : DENIED");
if(mode=="RFID")
{
lcd.setCursor(2,3);
lcd.print("INVALID RFID TAG");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(DENIED_DELAY);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
}
else if(mode=="FINGERPRINT")
{
lcd.setCursor(0,3);
lcd.print("INVALID FINGERPRINT");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(100);
noTone(BUZZER);
delay(50);
tone(BUZZER, 300);
delay(150);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
}
else if(mode=="PIN/OTP")
{
lcd.setCursor(1,3);
lcd.print("INVALID PIN OR OTP");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(100);
noTone(BUZZER);
delay(50);
tone(BUZZER, 300);
29
delay(150);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
}
delay(2000);
warning+=1;
lcd.clear();
}
void Lock_timer()
{
byte timer=0;
if (warning==3)
{
timer=15;
lcd.setCursor(1,0);
lcd.print(warning);
lcd.setCursor(3,0);
lcd.print("INVALID ATTEMPTS");
lcd.setCursor(2,2);
lcd.print("LOCK IS DISABLED");
lcd.setCursor(3,3);
lcd.print("FOR");
lcd.setCursor(7,3);
lcd.print(timer);
lcd.setCursor(10,3);
lcd.print("SECONDS");
SendMessage("INTRUDER!!\n\nLock disabled for 15
Seconds");
delay(1000);
lcd.clear();
for(timer;timer>0;timer--)
{
lcd.setCursor(2,0);
lcd.print("LOCK IS DISABLED");
lcd.setCursor(2,1);
lcd.print("TRY AGAIN AFTER");
lcd.setCursor(9,2);
lcd.print(timer);
lcd.setCursor(6,3);
lcd.print("SECONDS");
delay(1000);
lcd.clear();
if(digitalRead(8)==LOW)
{
lcd.clear();
lcd.setCursor(2,1);
30
lcd.print("TIMER SUSPENDED");
lcd.setCursor(1,3);
lcd.print("ENABLING THE LOCK");
digitalWrite(RELAY, LOW);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
lcd.clear();
warning=0;
break;
}
else if (warning==5)
{
bool verify=true;
lcd.clear();
lcd.setCursor(1,0);
lcd.print(warning);
lcd.setCursor(3,0);
lcd.print("INVALID ATTEMPTS");
lcd.setCursor(2,2);
lcd.print("LOCK IS DISABLED");
lcd.setCursor(2,3);
lcd.print("VERIFY YOUR PIN");
SendMessage("Lock disabled,\n\nPin verification
needed");
delay(2000);
lcd.clear();
do{
lcd.setCursor(2,0);
lcd.print("VERIFY YOUR PIN");
lcd.setCursor(3,1);
lcd.print("TO ENABLE LOCK");
lcd.setCursor(0,3);
lcd.print("ENTER PIN : ");
customkey=kpd.getKey();
if(digitalRead(8)==LOW)
{
strcpy(data,lock_pin);
data_count=4;
}
31
if(customkey)
{
tone(BUZZER, 500, 80);
data[data_count]=customkey;
lcd.setCursor(13+data_count,3);
lcd.print("*");
data_count++;
}
if(data_count==pin_length-1)
{
if(strcmp(data,lock_pin)==0)
{
lcd.clear();
lcd.setCursor(4,1);
lcd.print("PIN VERIFIED");
lcd.setCursor(1,3);
lcd.print("ENABLING THE LOCK");
delay(1500);
digitalWrite(RELAY, LOW);
digitalWrite(LED_G, HIGH);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
digitalWrite(LED_G, LOW);
lcd.clear();
warning=0;
verify=false;
data_count=0;
for(int index=0;index<4;index++)
{
otp[index]='A';
}
}
else
{
delay(200);
lcd.clear();
lcd.setCursor(3,1);
lcd.print("INCORRECT PIN");
lcd.setCursor(5,3);
lcd.print("TRY AGAIN");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(100);
noTone(BUZZER);
delay(50);
tone(BUZZER, 300);
delay(150);
32
digitalWrite(LED_R, LOW);
noTone(BUZZER);
lcd.clear();
data_count=0;
}
}
}while(verify);
33