Sistem de securitate bazat pe cartela

Introducere

  • Acest sistem faciliteaza accesul.
  • Eliminarea unei chei fizice.
  • Ideea de incipit consta in realizarea unui modul de accesc pe baza de cartela care sa fie implementat dupa nevoie in proiecte mai mari, cum ar fi o simpla incuietoare sau poate pentru a facilita accesul intr-o baza militara sau la accesul unor coduri militare.

Schema bloc

Descriere generală

Sistemul este conceput pe baza unui Kit RFID RC522 in care avem 2 cazuri:

-Daca cartela este corecta se transmite un semnal si se actioneaza stepper motor-ul, se activeaza ledul a carui culoare indica veridicitatea cartelei, dar si un ecran LCD unde putem citi actiunile aferente, si bine-nteles un buzzer ca sa avem si un feedback audio.

-Daca cartela este incorecta, stepper motor-ul nu se mai activeaza, se activeaza ledul a carui culoare ne indica faptul ca cartela nu este buna, vom vizualiza pe ecarnul LCD un mesaj aferent situatiei in care ne aflam, iar buzzer ul ne va veni din nou in ajutor cu un feddback audio.

PS: Schema circuitului este putin modifcata. Am inlocuit display-ul normal cu unul cu modul I2C si am scos potentiometru. Nu am realizat alta schema deoarece in TinckerCad nu am gasit un modul RFID.

Hardware Design

Lista componente folosite in proiect:

* 1x Kit RFID RC522

* 1x Arduino UNO r3

* 1x Stepper motor

* 1x Buzzer

* 2x Led

* 1x 16×2 LCD Display with i2c Module

* 2x Breadboard

* Wires

Software Design

Cod folosit pentru aflarea codului UID:

#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN         9      
#define SS_PIN          10         

MFRC522 mfrc522(SS_PIN, RST_PIN);  

void setup() {
	Serial.begin(9600);		
	while (!Serial);		
	SPI.begin();			
	mfrc522.PCD_Init();		
	delay(4);				
	mfrc522.PCD_DumpVersionToSerial();	
	Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {

	if ( ! mfrc522.PICC_IsNewCardPresent()) {
		return;
	}

	if ( ! mfrc522.PICC_ReadCardSerial()) {
		return;
	}

	mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

Codul intregului sistem de securitate:

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>

#define SS_PIN 10
#define RST_PIN 9
#define LED_G 5 // define green LED 
#define LED_R 4 // define red LED
#define BUZZER 2 // buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
Servo myServo; // define servo name
LiquidCrystal_I2C lcd (0x27, 16, 2); // define lcd

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  lcd.init();
  lcd.clear();         
  lcd.backlight();
  mfrc522.PCD_Init();
  myServo.attach(3);
  myServo.write(0);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  Serial.println("Put your card to the reader...");
}

void loop()
{
  lcd.setCursor(0, 0);
  lcd.print("   Hello sir!");
  
  lcd.setCursor(0, 1);
  lcd.print(" Scan the card.");

  if (!mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }

  if (!mfrc522.PICC_ReadCardSerial())
  {
    return;
  }

  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) == "21 40 BB 1D")
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(500);
    digitalWrite(LED_G, HIGH);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("*** Verified ***");
    lcd.setCursor(0, 1);
    lcd.print(" Access granted");
    tone(BUZZER, 500);
    delay(300);
    noTone(BUZZER);
    myServo.write(180);
    delay(5000);
    myServo.write(0);
    digitalWrite(LED_G, LOW);
    lcd.clear();
  }
  else
  {
    Serial.println("Access denied");
    digitalWrite(LED_R, HIGH);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("  Invalid Key!");
    tone(BUZZER, 300);
    delay(1000);
    digitalWrite(LED_R, LOW);
    lcd.clear();
    noTone(BUZZER);
  }
}

Rezultate Obţinute

Sistemul este actionat din exterior de 2 cartele:

-prima cu un cod UID inregistrat pe placuta(aceasta este cartela buna)

-a doua cu un cod UID care nu este inregistrat pe placuta(aceasta nu este o cartela buna)

Cand se actioneaza cartela buna se va trimite un semnal la placa arduino care la randul ei va actiona motorul pentru deschiderea usii, va aprinde led-ul verde(indicator de access permis) si se va afisa pe ecranul LCD:” Verified, Access granted ”, iar ca feedback audio avem un singur sunet scurt provocat de catre buzzer.

Cand se actioneaza cartela gresita se va trimite un semnal la placa arduino care la radul ei va aprinde led-ul rosu(indicator de access nepermis), va actiona buzzer-ul si se va afisa pe ecranul LCD:” Invalid key! ” in mod repetat la un interval de timp pana ce cartela gresita nu va mai fi in aria de detectie a modulului RFID.

Concluzii

In urma realizarii proiectului s-a tras concluzia urmatoare: daca se doreste securizarea unei incaperi s-au a unui spatiu de depozitare de orice marime se poate realiza fara mari eforturi un sistem de securitate unde detinatorul in cauza sa-l poate accesa cu o cartela unica printr un cod UID.

Bineinteles acestui sistem i se pot aduce upgrade-uri cum ar fi un modul bluetooth si unul wifi pentru a afla de la distanta, ce persoana doreste sa accese sistemul, printr-un simplu mesaj pe telefon.

Un alt upgrade care poate fi adus ar fi prin montarea unei camere, si de ce nu a unui microfon care sa transmita in timp real un scurt filmulet cu cine incearca sa scaneze o cartela.

Download

Jurnal

  • 06.05.2023: Completare documentație
  • 27.04.2023: Stabilire tema proiect

Bibliografie/Resurse

pm/prj2023/apredescu/sistem_de_securitate_bazat_pe_cartela.txt · Last modified: 2023/05/28 17:29 by alexandru.tiru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0