Table of Contents

Password Security Lock Circuit Using 4×4 Keypad and Arduino

Boțoghină David-Ioan

Introducere

Acest proiect are ca scop construirea unei incuietori care pentru a fi dezactivata, va cere introducerea unei parole de 6 biti.

Descriere generală

This project was meant to limit the access to certain impportant things. For example, at the output could be connected a lamp or a lock. I connected a fan because it is summer and during this period, being able to cool yourself is as immportant as having light or keep the door of a cabinet locked.

Hardware Design

Lista de piese:

  • 1x Arduino Uno
  • 1x Breadboard
  • 2x LEDs
  • 4×4 keypad
  • 1x LCD I2C
  • Relay 5V
  • Some Wires
  • A fan

Electrical Schematic:

Software Design

#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Keypad.h>

#define Password_Length 8

int signalPin = 12; int relay_pin = 10;

char Data[Password_Length]; char Master[Password_Length] = “123A456”; byte data_count = 0, master_count = 0; bool Pass_is_good; char customKey;

const byte ROWS = 4; const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {

{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}

};

byte rowPins[ROWS] = {9, 8, 7, 6}; byte colPins[COLS] = {5, 4, 3, 2};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup(){

lcd.init(); 
lcd.backlight();
pinMode(signalPin, OUTPUT);
pinMode(13, OUTPUT);
pinMode(relay_pin, OUTPUT);

}

void loop(){

lcd.setCursor(0,0);
lcd.print("Enter Password:");
customKey = customKeypad.getKey();
if (customKey){
  Data[data_count] = customKey; 
  lcd.setCursor(data_count,1); 
  lcd.print(Data[data_count]); 
  data_count++; 
  }
if(data_count == Password_Length-1){
  lcd.clear();
  if(!strcmp(Data, Master)){
    lcd.print("Correct");
    digitalWrite(signalPin, HIGH); 
    digitalWrite(13, HIGH);
    delay(3000);
    digitalWrite(signalPin, LOW);
    digitalWrite(13, HIGH);
    delay(3000);
    digitalWrite(13, LOW);
    }
  else{
    lcd.print("Incorrect");
    digitalWrite(10, HIGH);
    delay(1000);
    digitalWrite(10, LOW);
    }
    lcd.clear();
  clearData();  
}

}

void clearData(){

while(data_count !=0){
  Data[data_count--] = 0; 
}
return;

}

How it works:

The user needs to introduce a code, using the keyboard (the password). In the beginnig, on LCD is displayed the message “Enter Password”, the password being composed by seven characters.

If the introduced password is incorrect, then the message “Incorrect” is displayed on LCD and the green LED from the relay will turn off for one second.

If the introduced password is correct, then on the display is displayed the message “Correct”, and the fan will turn on.

Rezultate Obţinute

Concluzii

It was an interesting project, that required several days. It also can be easily upgraded, for example, by adding something like a lamp or a lock at the output of the relay.

Download

pm_project.rar

Jurnal

19/05/2022 - Hardware Assembly 25/05/2022 - Software

Bibliografie/Resurse

github.com

Export to PDF