Autentificare pe baza RFID

Introducere

Sistemele de autentificare pe baza RFID sunt prezente în multe aspecte ale vieții cotidiene. De exemplu, ele se întâlnesc în cazul deschiderii ușilor cu ajutorul cartelelor (a se vedea sistemele montate la intrarea în scările de bloc). Dar de câte ori ne-am gândit că o astfel de logare poate să nu fie sigură? Până la urmă, dacă un astfel de sistem este implementat defectuos, el ar putea permite pătrunderea rău-făcătorilor… lucru care nu e deloc de dorit! De aceea, proiectul meu își propune să urmeze primii pași în domeniul securității (fără a aduce vreo inovație), și să permită deschiderea unei uși numai în cazul în care cartela prezentată modulului RFID este validă (i.e. este una dintre cele acceptate). Pentru interactivitate sporită, sistemul va dispune de un LCD, pe care se va afișa un mesaj ce va reflecta statusul cererii de deschidere a ușii (“Bine ati venit!”, respectiv “Acces interzis!”).

Descriere generală

Schemă bloc software

Schemă bloc hardware

Hardware design

Piese folosite

Pentru realizarea proiectului, sunt necesare următoarele piese:

  • plăcuță Arduino Uno
  • modul RFID
  • breadboard
  • servomotor
  • display LCD
  • fire de legătură

Plăcuța Arduino este alimentată de la calculatorul personal, prin intermediul unui cablu USB.

Schema electrică

Software design

Pentru elaborarea părții software, am folosit Arduino IDE, versiunea 2.0.4.

Biblioteci externe folosite:

Codul sursă se găsește în fișierul proiect.ino din arhiva postată în secțiunea “Download”. Ideea este cât se poate de simplă: în funcția setup() se realizează configurările inițiale ale dispozitivelor folosite (modul RFID, display LCD și servomotor), iar în funcția loop() se verifică prezența unui card RFID care să fie citit și, în caz afirmativ, se citește ID-ul său, care este mai apoi comparat cu ID-ul cartelei căreia îi este permis accesul (lucru realizat în authenticate()). Funcția authenticate() verifică ID-ul cartelei citite și, în cazul în care deținătorului și este permis accesul, servomotorul își rotește palele (simulând deschiderea unei uși), iar pe LCD se afișează mesajul “Bine ati venit!”. În caz contrar, o nouă încercare de intrare nu mai este permisă timp de 10 secunde, iar pe LCD apare mesajul “Acces interzis!”.

De menționat este faptul că scrierea codului a fost relativ simplă, deoarece am folosit bibliotecile Arduino existente pentru lucrul cu dispozitivele mai sus menționate, biblioteci care abstractizează lucrul cu noțiunile din laboratoare, mai ales cu PWM-ul.

Rezultate obţinute

Descriere

După implementarea componentelor hardware și software, și depanarea de rigoare, am constatat că proiectul își îndeplinește funcționalitatea anunțată (cele două tipuri de cartele 1) sunt distinse între ele, iar servomotorul își rotește palele numai în momentul în care cartela circulară este pusă în fața senzorului. De asemenea, pe LCD sunt afișate mesajele în mod corespunzător).

Poze

Concluzii

În urma acestui proiect, m-am familiarizat mai bine cu programarea low-level, mai exact am aprofundat cunoștințele de programare pe microcontrolere dobândite în cadrul laboratoarelor, și am reușit să implementez bazele un sistem cu aplicabilitate practică: acela de autentificare pe baza unei cartele valide. Sper ca la un moment dat să am ocazia să explorez și mai adânc domeniul integrării hardware-software, în sensul a ceea ce am învățat în laboratoarele și în proiectul de PM.

Download

Bibliografie/Resurse

Imagini

Resurse

Hardware

Software

Hardware + Software

Changelog

  • 6.05 (ora 21:40) - Am publicat versiunea inițială a documentației
  • 21.05 (ora 17:28) - Am adăugat schema electrică a proiectului (împreună cu resursele folosite)
  • 28.05 (ora 20:36) - Am adăugat detalii referitoare la implementarea părții software a proiectului
  • 28.05 (ora 21:12) - Am actualizat schema hardware a proiectului (am legat pinul reset modulului RFID la pinul 8 în loc de pinul 9)
  • 29.05 (ora 20:44) - Am adăugat versiunea finală a codului și explicații suplimentare legate de implementarea software

Export to PDF

1) Toate piesele folosite în acest proiect provin dintr-un kit Arduino care conține și două tipuri de cartele compatibile cu tehnologia RFID
pm/prj2023/drtranca/deschidere.usa.rfid.txt · Last modified: 2023/05/29 20:46 by radu_mihai.breazu
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