Secure Locker

Nume: Bratu Iulian-Georgian
Grupa: 331CA

Introducere

Proiectul este un sistem de alarmă pentru o noptieră, care pornește un buzzer dacă sertarul este deschis fără ca un card SD să fie introdus. Cardul SD joacă rolul unei chei de acces, conținând un mesaj secret care simulează o cheie fizică. Dacă sertarul e deschis fără această „cheie”, se declanșează imediat alarma și sună până când cardul este introdus.

Ideea a pornit din dorința de a proteja obiecte personale folosind o soluție simplă, dar inteligentă, care combină partea fizică cu un mecanism digital de verificare. Sistemul e practic pentru oricine vrea să adauge un strat de securitate într-un spațiu mic, fără a folosi sisteme complexe sau scumpe.

Descriere generală

Se vor folosii urmatoarele componente:
* Placa de dezvoltare UNO R3 compatibil Arduino
* Shield pentru inregistrare de date cu slot pentru SD Card
* Senzor masurare distanta VL53L0X
* Buzzer 12V

Hardware Design

Descriere

Shieldul de înregistrare a datelor se montează direct pe placa Arduino Uno R3, conectându-se automat la pinii necesari. Slotul pentru card SD folosește interfața SPI și ocupă pinii D10 (CS – Chip Select), D11 (MOSI – Master Out Slave In), D12 (MISO – Master In Slave Out) și D13 (SCK – Serial Clock).

Senzorul VL53L0X utilizează interfața I2C, astfel că se conectează la aceiași pini A4 (SDA) și A5 (SCL) ca și RTC-ul de pe shield. Alimentarea senzorului se face prin conectarea pinului VIN la 5V de pe Arduino, iar GND-ul la masă. Rolul acestuia este de a măsura distanța dintre baza noptierei și tavanul acesteia.

Buzzerul se conectează la pinul digital liber D8 și la GND. Acesta are rolul de a genera o alarmă în cazul în care noptiera este deschisă neautorizat.

Bill Of Materials

Schema Circuit

Imagini Componente

iulian_arduino.jpg

Software Design

Motivația alegerii bibliotecilor

VL53L0X.h: Bibliotecă necesară pentru utilizarea senzorului Time-of-Flight VL53L0X. Permite măsurători precise ale distanței, într-un mod simplu și fiabil.

Wire.h: Folosită pentru comunicarea I2C cu senzorul VL53L0X.

SD.h & SPI.h: Biblioteci esențiale pentru comunicarea cu cardul SD, prin protocol SPI. Permite citirea și scrierea fișierelor binare într-un mod eficient.

Elementul de noutate al proiectului

Elementul de noutate constă în utilizarea unei forme simple de criptare One-Time Pad (OTP) pentru autentificarea fișierului de pe cardul SD. Sistemul nu doar citește date de pe un senzor, ci implementează și o verificare criptografică a integrității fișierului, ceea ce îl face mai robust împotriva accesului neautorizat sau manipulării.

Justificarea utilizării funcționalităților din laborator

Laborator 0: GPIO – Tranzistorul este controlat de un pin digital, folosit pentru activarea unei alarme.

Laborator 5: SPI – Este utilizat pentru comunicarea cu cardul SD.

Laborator 6: I2C – Protocolul I2C este folosit pentru a comunica cu senzorul de distanță VL53L0X.

Interacțiunea dintre funcționalități

Inițializare:

  • Se inițializează comunicațiile I2C și SPI.
  • Se detectează senzorul și cardul SD.
  • Dacă fișierul de autentificare nu există, se generează un OTP și se salvează.

Funcționare în buclă:

  • Se citește distanța cu senzorul.
  • Dacă distanța depășește 60mm sau alarma este activă, se verifică fișierul de pe SD:
  • Dacă fișierul este valid, alarma se oprește.
  • Dacă fișierul nu este valid sau lipsește, se activează alarma.
  • Tranzistorul este activat pentru a semnaliza starea de alarmă.

Validare:

  • Funcționalitățile au fost validate prin afișarea pe serial a stării senzorului, fișierului SD și alarmei.

Calibrarea senzorului

Senzorul VL53L0X nu necesită o calibrare hardware manuală în acest caz, dar a fost configurat un prag de 60mm ca valoare de declanșare a alarmei, pe baza testelor practice cu distanțe tipice pentru aplicație. Timeout-ul senzorului a fost setat la 500ms pentru a evita blocările.

Optimizări realizate

Optimizare criptografică:

  • OTP este generat și stocat eficient în fișier binar pentru securitate maximă.
  • Verificarea fișierului se face doar când este necesar, reducând scrierile inutile.

Control eficient al alarmei:

  • Verificarea fișierului SD este condiționată de distanța detectată, economisind resurse.
  • Utilizarea digitalWrite() doar când e nevoie (în funcție de stare).

Demo video

Download

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/eradu/iulian.bratu.txt · Last modified: 2025/05/23 20:18 by iulian.bratu
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