This is an old revision of the document!


Mecanism de verificare a parolelor

Autor

Introducere

  • Scopul proiectului este de a implementa un mecanism simplist de verificare a parolelor, un seif. Parola va fi stocata in mod dinamic folosindu-se un modul RTC DS3231 si in functie de ora data de acesta folosindu-se o functie de hash se va obtine o parola.

  • In momentul in care utilizatorul va introduce un sir de caractere folosind un keypad, se va verifica daca textul introdus corespunde cu parola memorata de catre seif. In caz afirmativ, LED-ul verde al seifului se va aprinde, va fi afisat un mesaj corespunzator pe ecranul LCD, buzzer-ul va genera o melodie si se va putea deschide usita seifului actionand manerul acesteia. In caz contrar se va aprinde LED-ul rosu al seifului, va fi afisat un mesaj de eroare pe ecranul LCD, buzzer-ul va genera un ton simplist de eroare si incuietoarea seifului va ramane inchisa.



Descriere generală

Schema bloc

Proiectul este format din doua parti conectate:

  1. Arduino Uno la care vom conecta breadboard-ul pe care vom atasa LED-urile (rosu si verde), buzzer-ul, LCD-ul, keypad-ul si modulul RTC.
  2. Incuietoarea alimentata de modulul releu impreuna cu cele 4 baterii de 3.7V Li-Ion in suportul corespunzator.



  1. Arduino:
    • Nucleu al seifului.
    • Componenta ce mediaza fluxul de date dintre Keypad, modul RTC, LCD 16×2, solenoid.
    • Are rolul de a compara parola primita prin intermediul Keypad-ului (de la utilizator) si parola generata pe baza datelor emise de modului RTC.
    • Actioneaza LED-urile si buzzer-ul in functie de corectitudinea sirului de caractere primit de la utilizator.
  2. Keypad:
    • Are rolul de a trimite datele introduse de utilizator (sirul de caractere) catre Arduino pentru a putea fi verificate.
  3. Modul RTC DS3231:
    • Are rolul de a “dinamiza” aplicatia.
    • Generarea parolelor stocate pe Arduino in mod dinamic in functie de momentul zilei.
  4. Modul LCD 16×2 I2C:
    • Are rolul de a afisa mesaje catre utilizator: atat instructiuni de utilizare a seifului cat si de a instiinta utilizatorul daca parola introdusa de acesta este corecta sau nu.
  5. Solenoid:
    • Incuietoarea seifului.
    • Aceasta se deschide in momentul in care este introdusa parola corecta si se inchide in momentul in care este apasata tasta 'C' a keypad-ului.
    • Daca parola introdusa de utilizator este gresita, aceasta nu este actionata in niciun fel.
  6. Releu:
    • Are rolul de a genera un camp electromagnetic care va actiona incuietoarea seifului.
    • Este conectat la un pin analogic cu rol de output de la Arduino.
  7. Baterii:
    • 4 baterii de 3.7V Li-Ion
    • Folosite pentru a alimenta cu 12V solenoidul.
  8. LED-uri:
    • In cazul in care parola este corecta se va aprinde LED-ul verde, iar in caz contrar se va aprinde cel rosu.
  9. Buzzer:
    • In cazul in care parola este corecta va genera o melodie simpla, iar in caz contrar va genera un ton de eroare.

Hardware Design

Lista de piese

Nume Numar piese
Arduino Uno R3 1
Keypad 1
Modul RTC 1
Buzzer 1
Breadbord 1
Ecran LCD 1
Solenoid 1
Modul Releu 1
Suport 4 baterii 1
Baterie 3.7V Li-Ion 4
LED 2
Rezistor 2
Fire tata-tata
Fire mama-tata
Fire mama-mama

Schema electrica

Conectarea Keypad-ului

Conectarea Keypad-ului a presupus conectarea celor 8 pini ai Keypad-ului la pinii de la 2 la 9 de pe Arduino. Cei 8 pini ai Keypad-ului provin de la faptul ca fiind o matrice tastatura, aceasta are 4 linii si 4 coloane, fiecare linie avand conectate 4 diode si fiecare coloana avand conectate 4 butoane.

Conectarea LCD 16x2 I2C

Acest tip simplist de LCD, destul de micut, se conecteaza la Arduino folosind interfata seriala I2C. Mai exact, acesta vine cu 4 pini: VCC, GND, SDA si SCL. Toti cei 4 pini vor fi conectati la pinii corespunzatori de pe Arduino. LCD-ul a venit si cu modului I2C inclus, astfel ca nu a fost nevoie de a face legaturile dintre pinii de pe LCD manual.

Inainte de a incepe programul, utilizatorul LCD-ului este nevoit sa afle adresa LCD-ului pentru a se putea comunica cu acesta. Dupa ce am aflat adresa acestuia, o vom seta folosind functia “LiquidCrystal_I2C lcd(address, 16, 2)”.

Conectarea LED-urilor & Buzzer

Pentru conectarea LED-urilor s-au folosit 2 rezistente de PULLUP si pinii 11 si 12 de pe Arduino.
Pentru conectarea buzzer-ului a fost folosit pinul 10.

Conectarea modulului RTC DS3231

Pentru conectarea modului RTC, modelul DS3231, am avut in primul rand nevoie de o baterie CR2032. Acesta va comunica cu Arduino prin interfata seriala I2C si asemenator cu modulul LCD, a fost nevoie de conectarea celor 4 pini de care dispune (VCC, GND, SDA si SCL) la pinii corespunzatori de pe Arduino.
Pentru a asigura conexiunea cu acesta, am folosit biblioteca “RTClib.h” impreuna cu apelul functiei “now()” ce returneaza o variabila de tipul “DateTime” de unde putem extrage ora, minutul, numarul de secunde, data curenta.

Conectarea modulului releu

Releul este prevazut cu doua tipuri de pini:

  • Pini de joasa tensiune
    • VCC
    • GND
    • IN
  • Pini de inalta tensiune
    • NC: normally closed pin
    • COM: common pin
    • NO: normally open pin

Pentru conectarea releului la Arduino va trebui sa se realizeze conectarea pinilor de tensiune joasa (VCC, GND si IN) la pinii corespunzatori de pe Arduino. Pin-ul IN va fi conectat la pinul analogic A3 care va fi de OUTPUT.
Pinii de tensiune inalta vor fi conectati astfel:

  • Pin-ul COMM va fi conectat la borna pozitiva a solenoidului folosindu-se un fir intermediar tata-tata.
  • Pin-ul NO va fi conectat la borna pozitiva a celor 4 baterii de 3.7V Li-Ion.
  • Pin-ul NC va ramane neconectat deoarece dorim doar deschiderea solenoidului in mod normal, acest pin fiind de inchidere.
Conectarea incuietorii (solenoid)

Pentru actionarea solenoidului am folosit un releu care alimentat de cele 4 baterii va genera un camp electromagnetic care va deschide/inchide incuietoarea. Cele doua borne ale solenoidului sunt conectate astfel:

  • Borna negativa este conectata la borna negativa a celor 4 baterii pozitionate in paralel.
  • Borna pozitiva este conectata la NO pin al releului.

Software Design

  • Limbaj de programare: C
  • Mediu de dezvoltare si compilare: Arduino IDE

Implementare

Biblioteci folosite

  • Keypad.h: Folosita pentru conectarea Keypad-ului
  • Wire.h: Folosita pentru a se putea comunica prin interfata seriala I2C cu anumite componente
  • LiquidCrystal_I2C.h: Folosita pentru a se face comunicarea cu modulul LCD 16×2
  • RTClib.h: Folosita pentru a se putea realiza comunicarea cu modulul RTC DS3231.

Rezultate Obţinute

TODO

Concluzii

TODO

Download

TODO

Jurnal

  • 25/4: creare pagina Wiki, descriere, diagrama bloc, lista componente hardware.

Bibliografie/Resurse

pm/prj2021/agrigore/mecanism_verificare_parola.1621775273.txt.gz · Last modified: 2021/05/23 16:07 by ioana.marin1106
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