Proiectul presupune implementarea unui sistem de protecție prin parolă ce poate fi aplicată pe diverse dispozitive pentru a ale proteja. Utilizatorul interacționează cu sistemul de protecție prin intermendiul unei tastaturi pentru a:
În cazul în care utilizatorul introduce parola greșit în număr de 3 ori pe parcursul a 5 minute, alarma declanșează un sunet prelung. Dacă utilizatorul introduce parola greșit dar nu atinge limita de 3 încercări în 5 minute, pentru fiecare încercare eșuată, alarma declanșează un sunte scurt. În cazul în care parola a fost introdusă corect, utilizatorul va fi întâmpinat cu o melodie interpretată de buzzer.
Alarma va aștepta input doar dacă utilizatorul se află la un 1 metru față de dispozitivul protejat.
Schema folosită pentru asamblarea diferitelor module hardware este:
După cum este evidențiat în schema electrică, rolul componentelor și elementele lor de conectare sunt:
Proof of work:
Mediu de dezvoltare: VSCode PlatformIO
Biblioteci folosite:
marcoschwartz/LiquidCrystal_I2C@^1.1.4
- folosită pentru display-ul LCD care afișează parolachris--a/Keypad@^3.1.1
- folosită pentru keypad-ul care introduce parolaarduinogetstarted/ezBuzzer@^1.0.0
- folosită pentru activarea buzzer-ului asincron (adică fără funcția delay()
)Funcții și structuri folosite:
activate_alarm()
- activează alarma în urma input-ului primit de la senzorul de mișcareintroduce_passwd()
- primește input-ul de la keypad pe care îl afișează pe LCD; setează un flag legat de ce acțiune s-a ales: introducere parolă curentă sau update parolăcheck_passwd()
- verifică parola în cazul în care s-a ales introducerea ei; în cazul în care se face update la parolă, se verifică parola veche și se face update la cea nouăplay_melody()
- emite melodia care anunță introducerea corectă a paroleiplay_alarm()
- emite alarmă care anunță introducerea greșită a parolei
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.