Sistem de acces cu RFID

  • Student: Georgescu Radu-Andrei
  • Grupa: 331CA
  • GitHub:

Introducere

Sistemul citeste codul unic al cardului si il verifica. In functie de validitate, permite accesul la o resursa sau nu, transmitand feedback atat vizual cat si sonor. De asemenea, include si o functie de memorare pentru tag-uri noi.

Scopul proiectului este implementarea unei solutii de securitate care sa automatizeze accesul la o resursa restrictionata, asigurand o metoda de autentificare rapida si sigura.

Ideea de la care am pornit a fost transpunerea tehnologiei contactless (utilizata zilnic la plati sau transport) intr-un mecanism fizic de blocare/deblocare, controlat integral prin software.

Utilitatea proiectului este securizarea unei resurse.

Descriere generală

Sistemul comuta intre 3 stari principale: Standby (asteptare card, LED rosu aprins), Acces Permis (cod valid, LED verde si deschidere usa) si Acces Respins (cod invalid, LED rosu intermitent si alerta sonora). Controlul intregului proces este asigurat de placa ATmega328P-XMINI, care proceseaza datele de la cititor si coordoneaza perifericele.

Interactiunea modulelor:

  • Cititorul RFID (RC522): Este interfata de intrare a sistemului. Acesta comunica cu microcontrolerul prin protocolul SPI (pinii SCK, MOSI, MISO si SS). Modulul scaneaza constant prezenta unui tag, iar la detectie transmite UID-ul catre procesor pentru validare.
  • Servomotorul (SG90): Reprezinta elementul de executie mecanica pentru poarta/usa. Microcontrolerul genereaza un semnal PWM pentru a controla pozitia precisa a bratului. La primirea comenzii de acces valid, servomotorul se roteste la 90 de grade, revine la pozitia initiala dupa un interval de timp presetat.
  • Modulul LED RGB: Ofera feedback vizual instantaneu. Cele doua culori principale (Rosu si Verde) sunt controlate prin pini digitali GPIO. In starea de repaus sau la eroare, este activat pinul pentru culoarea rosie, iar la autorizarea cu succes este activat pinul pentru culoarea verde.
  • Buzzer Activ: Este utilizat pentru confirmarea sonora a operatiunilor. Fiind un buzzer activ, acesta este controlat printr-un semnal digital simplu (HIGH/LOW). Genereaza beep-uri scurte la citirea oricarui card si semnale prelungite in cazul in care accesul este refuzat.
  • Monitorizare Seriala: Sistemul este conectat la calculator prin interfata seriala. Prin aceasta conexiune, se monitorizeaza in timp real log-urile de acces (cine a incercat sa intre si daca a reusit) si se pot trimite comenzi de configurare din consola.

Schema bloc:

 Schema Bloc

Hardware Design

Componenta Model Interfata cu MCU Functie
Microcontroler ATmega328P-XMINI Unitate centrala de procesare
Cititor RFID RC522 SPI (MISO, MOSI, SCK, SS) Identificarea cardurilor si tag-urilor
Servomotor SG90 PWM (Pin Digital) Actionarea mecanica a usii
Afisaj Vizual Modul LED RGB GPIO (Pini Digitali) Semnalizare optica (Acces Permis/Respins)
Feedback audio Buzzer Activ GPIO (Pin Digital) Semnalizare sonora la scanare si alerte
Comunicatie Interfata Seriala UART (TX, RX via USB) Monitorizarea accesului si debug
Alimentare Cablu USB Sursa de energie 5V pentru intregul sistem

Schema Cablaj

 Schema Bloc

Software Design

Mediul de dezvoltare

  • Firmware: Visual Studio Code cu extensia PlatformIO (toolchain GCC pentru AVR).
  • Aplicație Web: Python (pentru backend/server) și HTML/CSS/JS (pentru frontend).

Librarii si surse 3rd-party

Pe Firmware

  • <avr/io.h> – pentru accesarea directa a registrilor hardware (pini, SPI, USART).
  • <util/delay.h> – pentru generarea temporizarilor necesare protocolului hardware si semnalelor de actuatie.

Pe Backend

  • flask – pentru crearea si gazduirea serverului web local.
  • pyserial – pentru citirea si scrierea datelor pe portul serial, comunicand direct cu placuta.

Pe Frontend

  • socket.io.js – librarie client pentru recepționarea live a evenimentelor de la server fara reincarcarea paginii.

Etapa 3: Surse si functii implementate

Sursa Firmware

  • main.c :initializare, receptie, accesPermis(), accesRespins() pentru coordonare servomotor si buzzer

Sursa aplicatie web

  • app.py pentru server
  • index.html pentru interfata

Rezultate Obţinute

Exemplificare mod de functionare: Test run

Concluzii

In concluzie, acest proiect a reprezentat o aplicatie practica interesanta prin care am reusit sa inteleg mai bine modul in care mai multe componente pot lucra impreuna pentru a realiza un sistem real si usor de folosit. Realizarea sistemului mi-a oferit experienta atat pe partea de programare, cat si pe partea de integrare hardware.

Bibliografie/Resurse

pm/prj2026/bianca.popa1106/radu.georgescu2211.txt · Last modified: 2026/05/25 02:21 by radu.georgescu2211
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