Sistem de acces multi-nivel pentru șoferi
Introducere
Acest proiect reprezintă un sistem de acces pentru vehicule închiriate, care permite deblocarea mașinii doar după ce utilizatorul este identificat corect.
Accesul se face pe baza:
Scopul principal este de a adăuga un nivel suplimentar de securitate în procesul de închiriere a unei mașini. Am pornit de la ideea că vehiculele închiriate pot fi folosite în mod necorespunzător sau de persoane nepotrivite, iar o asemenea verificare ar putea reduce semnificativ aceste riscuri.
Consider că sistemul ar putea fi benefic pentru:
Pentru mine, acest proiect este o ocazie practică de a învăța să:
integrez mai multe module hardware
gestionez logica de control și de securitate
construiesc un sistem complet și funcțional
Descriere generală
Schemă bloc
Modul principal: Arduino UNO
Rolul său este de a controla întregul sistem:
Primește informații (de la tastatură, card microSD, senzor MQ-3)
Validează accesul
Controlează ieșirile: ecran LCD, LED-uri, buzzer
Modul de autentificare
Senzor de verificare
Feedback utilizator
LED-uri (roșu/verde)
LED roșu → acces respins
LED verde → acces permis
Hardware Design
Listă de piese
Arduino UNO - unitate de control
Ecran LCD (16×02, I2C) - afișaj statusuri și mesaje
Tastatură cu 4 taste - introducere parolă și navigare pe ecran
Card microSD + modul microSD (SPI) - stocare date (hash-ul parolei)
Senzor alcool MQ-3 - măsurare alcoolemie
Buzzer (PWM) - semnal sonor pentru feedback asupra parolei introduse
LED roșu + LED verde - semnal vizual acces refuzat/permis
3 Rezistențe 220Ω - pentru protecție LED-uri și buzzer
Breadboard + fire - pentru conexiuni rapide
Schemă electrică
Software Design
Mediu de dezvoltare
Librării externe utilizate
Bibliotecă | Rol |
Wire.h | Comunicare I2C cu LCD |
LiquidCrystal_I2C.h | Control ecran LCD |
SPI.h | Comunicare SPI între Arduino și cardul microSD |
SD.h | Citire/scriere fișiere pe card microSD |
SHA256.h | Hash-uirea parolei pentru securitate sporită |
Arhitectura software
Inițializare componente:
LCD, card microSD, tastatură, LED-uri, buzzer, senzor MQ-3
Autentificare:
Introducerea unei parole de 4 cifre
Fiecare tastă apărută ca `*` pe LCD
Generare hash simplificat
Validare parolă:
Citirea fișierului ce conține hash-ul pentru parola corectă de pe card SD
Comparare hash-uri
Test alcool MQ-3:
Afișare mesaj „Ready? Start!” și countdown 5 → 1
Citirea valorii senzorului
Aprindere LED verde dacă valoarea < limită
Aprindere LED roșu dacă valoarea ≥ limită
Funcții implementate
Funcție | Scop |
sha256Hex(const char *msg, char *hexOut) | Generează un hash din parola |
addChar(char) | Adaugă o cifră în șirul parolei și o afișează cu `*` |
resetPasswordInput() | Resetează parola și reafișează „Enter Password” |
playSuccessTone() | Emite un sunet de succes prin buzzer |
playErrorTone() | Emite două sunete de eroare |
runAlcoholTest() | Rulează testul de suflare și afișează rezultatul |
Parametri configurabili
Rezultate Obţinute
Funcționalitate sistem
În urma implementării și testării, sistemul este complet funcțional și reușește să îndeplinească toate cerințele propuse:
Introducerea parolei de către utilizator prin tastatură fizică
Afișarea feedback-ului vizual pe ecranul LCD (parolă, status, mesaje pentru ghidare)
Salvarea și citirea unui hash al parolei corecte din fișierul de pe cardul microSD
Compararea corectă a parolei introduse cu hash-ul stocat
Emiterea de semnale sonore prin buzzer, în funcție de validare (parolă corectă/greșită)
Inițierea și rularea unui test de alcoolemie prin senzorul MQ-3
Countdown vizual (5 → 1) în timpul suflării
Aprinderea LED-ului verde sau roșu în funcție de valoarea citită de la senzor
Resetarea automată a sistemului după introducere greșită sau test finalizat
Calibrare și testare senzor alcool MQ-3
Fiabilitate și comportament în timp
Sistemul este stabil, nu s-au observat blocaje sau comportamente neprevăzute în timpul utilizării normale
LCD-ul și componentele răspund corect la comenzi
Fișierul cu hash-ul parolei este creat automat dacă lipsește
Poate fi extins cu ușurință (ex: adăugarea de useri și a unui modul RFID, salvarea rezultatelor într-un log)
Obiective atinse
Concluzii
Realizarea acestui proiect mi-a oferit ocazia de a îmbina teoria cu practica și de a învăța să integrez mai multe module hardware într-un singur sistem, cu funcționalitate reală.
Am reușit să:
Consolidez cunoștințele legate de microcontrolere
Lucrez cu diverse protocoale de comunicație (I2C, SPI, analogic, digital)
Implementez o soluție de securitate pe nivele, în care autentificarea este condiționată de factori combinați (parolă și test de sobrietate)
Construiesc un flux logic clar de la introducerea datelor la decizia de acces, oferind utilizatorului feedback sonor și vizual
Sistemul s-a dovedit funcțional, stabil și extensibil. În plus, poate fi aplicat în contexte reale, precum:
flote de închiriere auto sau orice sistem de car-sharing securizat
prevenirea, în general, a utilizării vehiculelor sub influența alcoolului.
Consider că obiectivele propuse au fost atinse integral, iar experiența acumulată va fi utilă în proiecte viitoare ce implică atenție la detalii, securitate și integrarea mai multor componente într-un sistem.
Cod sursă
Resurse
Resurse software
Resurse hardware
Resurse software și hardware