Sistem inteligent de control acces cu RFID și cod pin

Introducere

Proiectul este un sistem inteligent de control al accesului care combină două metode de autentificare: card RFID și cod PIN. Utilizatorul apropie un card RFID valid, apoi introduce un PIN pe un keypad 4×4. Dacă ambele sunt corecte, accesul este permis (se aprinde un LED verde, mesaj pe LCD și se deschide un seif cu un servo). În caz contrar, accesul este refuzat (LED roșu + buzzer + mesaj). După 3 încercări greșite, sistemul se blochează temporar, iar numărul de încercări este salvat în EEPROM.

Scopul proiectului este realizarea unui sistem de securitate eficient și ușor de implementat, ideal pentru accesul controlat la spații sau obiecte (ex: dulapuri, seifuri, uși). Am pornit de la ideea combinării RFID-ului cu verificarea PIN-ului pentru a crește nivelul de protecție. Considerăm că este un proiect util atât pentru uz personal, cât și pentru a învăța integrarea componentelor hardware într-un sistem embedded complet.

Descriere generală

Schema bloc a sistemului

Descriere

Sistemul de control al accesului este format din mai multe module hardware și componente software care lucrează împreună pentru a permite sau refuza accesul unui utilizator.

Procesul începe cu utilizatorul, care apropie un card RFID de modulul RFID. Acesta transmite codul unic (UID) către microcontroller, care verifică dacă este un utilizator autorizat. Dacă UID-ul este valid, microcontrollerul activează keypad-ul pentru introducerea PIN-ului.

După introducerea PIN-ului, microcontrollerul:

  • verifică dacă acesta este corect
  • consultă și actualizează EEPROM-ul pentru a ține evidența încercărilor greșite
  • afișează mesaje de stare pe LCD
  • dacă autentificarea este reușită, activează servo-ul pentru a deschide accesul, aprinde LED-ul verde
  • în caz de eroare, aprinde LED-ul roșu și activează buzzer-ul

Întregul sistem asigură o securitate crescută prin autentificare dublă (RFID + PIN) și gestionarea inteligentă a erorilor și accesului neautorizat.

Hardware Design

Listă de componente utilizate

  • Microcontroller (Arduino Uno)
  • Modul RFID RC522
  • Keypad 4×4
  • LCD 16×2 (cu adaptor I2C)
  • LED-uri (verde și roșu)
  • Buzzer activ
  • Servo motor (pentru deschiderea seifului)
  • Rezistențe, fire, breadboard
  • EEPROM (internă pe Arduino – folosită pentru salvarea încercărilor greșite)

Schema electrică

În imaginea de mai jos este prezentată schema electrică a sistemului de acces cu card RFID și cod PIN:

⚠ Notă: Modulul RFID RC522 nu este disponibil în Tinkercad, motiv pentru care nu apare reprezentat în schema electrică de mai sus. Totuși, el este prezent fizic în implementarea reală și se conectează la Arduino astfel:
- SDA → D10
- SCK → D13
- MOSI → D11
- MISO → D12
- RST → D9
- 3.3V și GND pentru alimentare

Explicația conexiunilor din schemă:

  • Arduino UNO (U3) este unitatea de control principală, la care sunt conectate toate componentele externe.
  • Keypad-ul 4×4 (KEYPAD1) este conectat la pinii D0–D3 (rânduri) și A0–A3 (coloane) pentru introducerea codului PIN.
  • LCD-ul 16×2 cu I2C (U4) comunică cu Arduino prin pinii A4 (SDA) și A5 (SCL). Afișează mesaje despre starea sistemului.
  • LED-urile roșu (D1) și verde (D4) sunt conectate în serie cu rezistențe de 220Ω (R2 și R1), fiind folosite pentru semnalizarea vizuală a accesului respins sau permis.
  • Buzzer-ul activ este folosit pentru semnalizare sonoră la evenimente precum eroare sau acces validat.
  • Servomotorul (SERVO1) este conectat la un pin PWM (de exemplu, D6) și controlează deschiderea mecanismului (ex: ușă, seif).
  • Alimentarea este realizată prin pinul de 5V și GND al Arduino, iar toate componentele folosesc această sursă comună.

Software Design

  • Mediu de dezvoltare:

Codul a fost dezvoltat în Arduino IDE, folosind platforma Arduino UNO. Arduino IDE oferă suport pentru scrierea, compilarea și upload-ul de cod în limbaj C++ pe microcontroler.

  • Librării şi surse 3rd-party utilizate:
    1. `SPI.h`: comunicare SPI între Arduino și modulul RFID MFRC522.
    2. `MFRC522.h`: interfațare cu cititorul RFID.
    3. `LiquidCrystal_I2C.h`: controlul afișajului LCD 16×2 prin interfață I2C.
    4. `Servo.h`: controlul precis al unui servomotor pentru deschiderea ușii.
    5. `Keypad.h`: citirea tastelor de la keypad-ul 4×4.
    6. `EEPROM.h`: stocare permanentă a numărului de încercări greșite.
  • Algoritmi și structuri implementate:
    1. Verificare autenticitate card RFID prin compararea UID-ului citit cu unul predefinit (`uid_corect[]`).
    2. Introducere și verificare cod PIN de 4 cifre prin tastatură matricială.
    3. Sistem antifraudă: dacă se introduc 3 coduri greșite consecutiv, sistemul se blochează 60 secunde și afișează numărătoarea inversă.
    4. Acces permis doar dacă sunt validate atât cardul cât și codul PIN.
    5. Control servomotor: deschidere rapidă (rotire la 120°) și revenire la poziția de închidere (0°).
    6. Oprirea completă a LCD-ului și pauză de 1 minut după o autentificare corectă, simulând comportamentul unui seif electronic.
  • Surse și funcții implementate (etapa 3):
    1. `setup()`: inițializează toate modulele (SPI, MFRC522, LCD, EEPROM, pinuri, servo).
    2. `loop()`: bucla principală; gestionează blocarea temporară și detectarea cardului.
    3. `cereCod()`: solicită codul PIN de la utilizator, validează și controlează servo și ecranul.
    4. `eroareFeedback()`: feedback vizual și sonor în caz de acces greșit.
    5. `succesFeedback()`: feedback de confirmare pentru acces valid.

Rezultate Obţinute

În urma realizării proiectului, am obținut un sistem de acces electronic funcțional bazat pe autentificare în doi pași: card RFID și cod PIN.

Sistemul verifică un UID de card predefinit și apoi solicită un cod PIN de 4 cifre. Accesul este permis doar dacă ambele sunt corecte. În caz contrar, utilizatorul primește feedback vizual și auditiv, iar după 3 încercări greșite consecutive, sistemul se blochează timp de 60 de secunde.

Am realizat două videoclipuri demonstrative pentru a evidenția funcționalitatea:

Video – Testare completă a sistemului de acces (blocare și deblocare):

  • Se scanează cardul RFID valid.
  • Se introduc 3 coduri greșite consecutiv.
  • Sistemul afișează mesajul “Sistem blocat” cu numărătoare inversă timp de 60 secunde.
  • Nicio altă acțiune nu este permisă în acest interval.
  • După trecerea timpului de blocare, se scanează din nou cardul.
  • Se introduce codul PIN corect.
  • Servomotorul deschide ușa (rotație rapidă), apoi revine în poziție închisă.
  • LCD-ul se stinge timp de 1 minut, simulând pauza sistemului.
  • După aceea, ecranul revine cu mesajul “Scanati cardul…”.

Link Video

Aceste demonstrații video confirmă că toate funcționalitățile implementate în cod sunt conforme cerințelor: securitate, feedback, acțiune hardware și control prin EEPROM.

Concluzii

Proiectul realizat a demonstrat cu succes implementarea unui sistem de securitate electronică bazat pe autentificare în doi pași, combinând citirea unui card RFID și validarea unui cod PIN. Prin integrarea mai multor componente hardware (LCD, servo, LED-uri, buzzer, tastatură, EEPROM) și utilizarea librăriilor externe, am reușit să construim un sistem funcțional, interactiv și sigur.

Am învățat cum să: - lucrez cu protocoale de comunicare (SPI, I2C), - interacționez cu memoria EEPROM pentru salvarea datelor persistente, - controlez componente în timp real folosind Arduino, - gestionez feedback-ul vizual și auditiv pentru interacțiune eficientă cu utilizatorul.

Proiectul poate fi îmbunătățit în viitor prin: - adăugarea unui sistem cu mai mulți utilizatori (UID-uri multiple și coduri diferite), - conectivitate wireless (ex: ESP8266 pentru monitorizare de la distanță), - implementarea unui sistem de logare a accesărilor într-o bază de date externă.

În concluzie, proiectul este complet funcțional și demonstrează aplicarea practică a noțiunilor de programare embedded, control hardware și securitate de bază.

Download

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2025/avaduva/adriana.tomescu.txt · Last modified: 2025/05/26 00:12 by adriana.tomescu
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