This is an old revision of the document!


Sistem de protecție prin parolă

Introducere

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:

  • seta o nouă parolă (trebuie să cunoască parola veche),
  • introduce parola curentă pentru a accesa dispozitivul protejat.

Descriere generală

Î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.

Hardware Design

Lista pieselor folosite:

Schema folosită pentru asamblarea diferitelor module hardware este:

700

După cum este evidențiat în schema electrică, rolul componentelor și elementele lor de conectare sunt:

  • Arduino Uno: folosit ca putere de calcul și memorie în cazul buzzerului; conectat prin cablu USB AM la sursa de alimentare.
  • Buzzer pasiv 5V: folosit pentru a reda o melodie (salvată în memoria microcontrolerului) în cazul introducerii corecte a parolei sau atenționarea utilizatorului altfel; conectat la pinul 10 PWM (ales aleator dintre pinii de PWM) și la GND.
  • LCD 16×2 I2C: folosit pentru a reda pe prima linie mesajul “Type passwd”, iar pe a doua linie parola introdusă în clar; conectat la GND și 5V pentru a fi alimentat și la pinii analogici A4 și A5 prin SDA și SCL după cum specifică datasheet-ul.
  • Keypad 4×4: folosit pentru a introduce caracterele parolei; conectat prin 4 linii la pinii digitali D9, D8, D7, D6 și prin 4 coloane la pinii digitali D5, D4, D3, D2, după cum specifică datasheet-ul, astfel un buton al tastaturii este identificat printr-un pin de coloană și unul de linie.
  • Senzor de mișcare PIR: folosit pentru a determina dacă utilizatorul se regăsește la cel puțin 1m de alarmă, este setat în modul single trigger pentru a anunța o singură dată intrarea utilizatorului în aria de acțiune; conectat la GND și 5V pentru a fi alimentat și la pinul analogic A3 (ales aleator) pentru a trimite semnalul de pornire a alarmei în cazul apropierii utilizatorului.

Proof of work:

700

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Mediu de dezvoltare: VSCode PlatformIO

Biblioteci folosite:

  • marcoschwartz/LiquidCrystal_I2C@^1.1.4 - folosită pentru display-ul LCD care afișează parola
  • chris--a/Keypad@^3.1.1 - folosită pentru keypad-ul care introduce parola
  • arduinogetstarted/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șcare
  • introduce_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 parolei
  • play_alarm() - emite alarmă care anunță introducerea greșită a parolei

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

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

Export to PDF

pm/prj2024/rpascale/maria.sfiraiala.1716706390.txt.gz · Last modified: 2024/05/26 09:53 by maria.sfiraiala
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