Sistem de acces multi-nivel pentru șoferi

Autor: Raluca-Zinca-Ioana Guceanu
Grupa: 331CD
GitHub: https://github.com/ralucaguceanu/Sistem-de-acces-multi-nivel-pentru-soferi

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:

  • unei parole
  • și a unui senzor de alcoolemie pentru a preveni conducerea vehiculului sub influență.

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:

  • firmele de închirieri auto (prevenirea daunelor)
  • siguranța persoanelor care închiriază vehicule

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

  • Tastatură cu 4 taste
    • Folosit pentru introducerea unei parole
  • Card MicroSD (SPI)
    • Conține fișierul cu hash-ul parolei corecte

Senzor de verificare

  • Senzor MQ-3 (alcool)
    • Măsoară alcoolemia
    • O valoare ridicată blochează accesul

Feedback utilizator

  • Ecran LCD (I2C)
    • Afișează mesaje: meniuri, starea accesului, avertismente
  • Buzzer (PWM)
    • Emite sunete după introducerea parolei, în funcție de rezultatul validării
  • 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

  • Arduino IDE
  • Limbaj: C++
  • Testare: Serial Monitor + LCD

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

  1. Inițializare componente:
    1. LCD, card microSD, tastatură, LED-uri, buzzer, senzor MQ-3
  2. Autentificare:
    1. Introducerea unei parole de 4 cifre
    2. Fiecare tastă apărută ca `*` pe LCD
    3. Generare hash simplificat
  3. Validare parolă:
    1. Citirea fișierului ce conține hash-ul pentru parola corectă de pe card SD
    2. Comparare hash-uri
  4. Test alcool MQ-3:
    1. Afișare mesaj „Ready? Start!” și countdown 5 → 1
    2. Citirea valorii senzorului
    3. Aprindere LED verde dacă valoarea < limită
    4. 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

  • Parolă presetată: 1324
  • Număr maxim caractere: 4
  • Prag senzor MQ-3: 325 (stabilit prin testare)

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

  • Am realizat mai multe suflări de test înainte și după expunerea la vapori de alcool
  • Valorile obținute:
    • < 325 → interpretat ca test passed
    • ≥ 325 → interpretat ca test failed

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

  • Integrarea a minim 3 noțiuni din laborator
  • Securizarea accesului prin parolă și test de sobrietate
  • Feedback audio-vizual intuitiv pentru utilizator

Sistem de acces multi-nivel pentru șoferi - Demo

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

pm/prj2025/iotelea/raluca.guceanu.txt · Last modified: 2025/05/30 03:20 by raluca.guceanu
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