This shows you the differences between two versions of the page.
pm:prj2023:alexau:paza_casa [2023/05/02 02:03] corneliu.mungiu [Hardware Design] |
pm:prj2023:alexau:paza_casa [2023/05/28 20:53] (current) corneliu.mungiu [Nume proiect] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Paza Casa ====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 30: | Line 30: | ||
Lista de piese necesare pentru proiectul ușii cu deschidere pe baza codului PIN: | Lista de piese necesare pentru proiectul ușii cu deschidere pe baza codului PIN: | ||
- | 1.Arduino Uno\n | + | - Arduino Uno |
- | 2.Keypad | + | - Keypad |
- | 3.Servomotor | + | - Servomotor |
- | 4.Breadboard | + | - Breadboard |
- | 5.Baterie LiPo | + | - Baterie LiPo |
- | 6.Jumper wires | + | - Jumper wires |
- | 7.Capacitors | + | - Capacitors |
- | 8.Diode | + | - Diode |
+ | {{:pm:prj2023:alexau:paza_casa.png?500|}} | ||
Line 46: | Line 46: | ||
<note tip> | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * Pentru a realiza acest proiect, am folosit mediul de dezvoltare Arduino IDE și câteva biblioteci necesare pentru controlul LCD-ului, keypad-ului și servomotorului. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Sunt utilizate bibliotecile Keypad, Servo, Wire și LiquidCrystal_I2C. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
+ | * Parola este definită ca un șir de caractere (char* password = "888";) | ||
+ | |||
+ | * Am definit ISR(TIMER2_COMPA_vect) pentru a retrimite confirmarea de deblocare daca utilizatorul a dat no(dupa o perioada anumita) | ||
+ | |||
+ | *Am implementat un sistem de blocare în cazul introducerii repetate a parolei greșite. După 3 tentative greșite, sistemul este blocat și se trimite un mesaj prin portul serial | ||
</note> | </note> | ||
Line 55: | Line 61: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Pe LCD-ul conectat la Arduino vei vedea mesajul "Enter password" urmat de "PIN:". Acesta este primul mesaj afișat pentru a indica utilizatorului că trebuie să introducă parola. |
- | </note> | + | |
- | ===== Concluzii ===== | + | După introducerea parolei, se va verifica dacă aceasta este corectă sau nu. Dacă parola este corectă, servomotorul se va roti și va deschide ușa. Pe LCD va apărea mesajul "Door open". |
- | ===== Download ===== | + | Dacă parola introdusă este greșită, se va afișa mesajul "Incorrect" pe LCD timp de 2 secunde. În cazul în care se introduc de 3 ori consecutiv parole greșite, se va bloca accesul și se va trimite un mesaj prin portul serial. |
- | <note warning> | + | Pentru a debloca sistemul, trebuie să trimiți comanda "Unblock" prin portul serial către Arduino. Acest lucru va reseta numărul de tentative greșite și vei putea reintroduce parola corectă pentru a deschide ușa din nou. |
- | 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**. | + | https://youtube.com/shorts/QghLZgfTS48?feature=share |
</note> | </note> | ||
+ | ===== Concluzii ===== | ||
+ | A fost un proiect foarte interesant. | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2023:alexau:paza_casa_mungiu_corneliu.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * Am inițiat proiectul de implementare a unui sistem de control al accesului utilizând Arduino, LCD, keypad și servomotor. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * Am configurat mediul de dezvoltare Arduino IDE și am instalat bibliotecile necesare (LiquidCrystal, Keypad, Servo). |
- | </note> | + | * Am conectat LCD-ul, keypad-ul 4x4 și servomotorul la Arduino conform schemelor de conexiune. |
- | + | * Am început implementarea codului firmware în Arduino IDE, folosind funcții și structuri de bază. | |
- | ===== Bibliografie/Resurse ===== | + | * Am scris funcția pentru verificarea parolei introduse de utilizator și am implementat condițiile de deschidere a ușii sau de blocare a accesului. |
- | + | * Am adăugat funcția pentru rotirea servomotorului și deschiderea ușii atunci când parola este corectă. | |
- | <note> | + | * Am implementat funcția pentru afișarea mesajelor pe LCD-ul conectat și funcția de ștergere a ecranului după afișare. |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * Am testat funcționalitatea proiectului pe placa Arduino și am verificat interacțiunea cu keypad-ul, LCD-ul și servomotorul. |
- | </note> | + | * Am detectat și corectat câteva erori și probleme de cablare și conexiune. |
+ | * Proiectul este în stadiul funcțional de bază, iar utilizatorii pot introduce parola corectă pentru a deschide ușa. De asemenea, sunt implementate mecanisme de blocare a accesului după un număr predefinit de tentative greșite. | ||
+ | * Implementarea funcției de trimite a unui mesaj pe un calculator prin portul serial în cazul blocării accesului. | ||
+ | * Adăugarea funcționalității pentru deblocarea sistemului prin introducerea unei comenzi specifice prin portul serial. | ||
+ | * Finalizarea și testarea finală a proiectului pentru a asigura o funcționare corespunzătoare și corectitudinea rezultatelor. | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
- |