Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:ccristi:levent.amet [2025/05/10 03:27]
levent.amet
pm:prj2025:ccristi:levent.amet [2025/05/27 10:16] (current)
levent.amet
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +Proiectul ​este o încuietoare inteligentă pentru ușă. Acesta include funcționlitatea ​de deschidere prin intermediul unei parole setată ​la început ​de către utilizator. De asemenea, ​pentru ​ieșirea din cameră, pe aceeașușă, include funcționalitatea de deschidere fără autentificare,​ prin simpla apăsare a unui buton.
-Prezentarea pe scurt a proiectului vostru: +
-  * ce face +
-  * care este scopul lui +
-  * care a fost ideea de la care aţi pornit +
-  * de ce credeţi ​că este util pentru ​alţii şpentru voi +
-</​note>​+
  
-Proiectul este o încuietoare inteligentă pentru ușă. Acesta include functionlitatea de deschidere prin intermediul unei parole setată la început de către utilizator. De asemenea, pentru ieșirea din cameră, pe aceeași ușă, include funcționalitatea de deschidere fără autentificare,​ prin simpla apăsare a unui buton. +Scopul proiectului este securizarea zonelor private(încăperi, clădiri, instituții) și limitarea accesului neautorizat.
- +
-Scopul proiectului este securizarea zonelor private(încărepi, clădiri, instituții) și limitarea accesului neautorizat.+
  
 Proiectul a pornit de la ideea de siguranță și eficientizare a securității. Chiar dacă în prezent există sisteme de securitate cu mult mai avansate, consider că acest proiect este util prin prețul realizării,​ prin potențialul de dezvoltare și prin simplitatea utilizării de către persoane fără cunoștințe din domeniul IT sau al electronicii. Proiectul a pornit de la ideea de siguranță și eficientizare a securității. Chiar dacă în prezent există sisteme de securitate cu mult mai avansate, consider că acest proiect este util prin prețul realizării,​ prin potențialul de dezvoltare și prin simplitatea utilizării de către persoane fără cunoștințe din domeniul IT sau al electronicii.
Line 18: Line 10:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +**Schemă bloc**
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.+
  
-Exemplu de schemă blochttp://​www.robs-projects.com/​mp3proj/​newplayer.html +{{:pm:prj2025:​ccristi:​pm_project.png?750}}
-</​note>​+
  
-===== Hardware Design =====+**Descrierea componentelor**
  
-<note tip> +  * Mircrocontroller-ul **Arduino Uno** gestionează toate celelalte componente. 
-Aici puneţi tot ce ţine de hardware design: +  * **Ledul RGB** semnalizează cu verde sau roșu starea deschisă/​închisă a ușii. 
-  * listă de piese +  * **Buzzer**-ul semnalizează sonor introducerea unei parole greșitedeschiderea sau închiderea ușii. 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-urie.g. http://www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * **Servo motoarele** execută acțiunea de deschidere/închidere a ușii. 
-  * diagrame de semnal ​ +  * Senzorul **Ultrasonic HC-SR04++** verifică dacă exista persoane care traverseaza usa, atunci cand este deschisa
-  * rezultatele simulării +  * **Tastatura matriceală 4x4** ajută la introducerea parolelor. 
-</​note>​+  * **LCD 1602 cu Interfață** ajută la setarea si vizualizarea parolelor și informațiilor legate de starea ușii. ​ 
 + 
 +===== Hardware Design =====
  
 **Listă de componente** **Listă de componente**
Line 49: Line 41:
  
 {{:​pm:​prj2025:​ccristi:​la_circuit_image.png?​750}} {{:​pm:​prj2025:​ccristi:​la_circuit_image.png?​750}}
 +
 +**Poze proiect hardware**
 +
 +
 +{{:​pm:​prj2025:​ccristi:​la_poza1hard.jpeg?​750}}
 +{{:​pm:​prj2025:​ccristi:​la_poza2hard.jpeg?​750}}
  
 ===== Software Design ===== ===== Software Design =====
  
 +**Detali tehnice:**
 +  * Mediu de dezvoltare VSCode + PlatformIO
 +  * Cod scris in C++
 +  * Librariile utilizate: keypad, liquidcrystal_i2c,​ servo, newPing
 +
 +**Structura codului:**
 +
 +Codul este struturat in 3 etape:
 +  * definirea variabilelor,​ perifericelor si functiilor secundare
 +  * setarea variabilelor globale si a perifericelor
 +  * executia propriu zisa a codului
 +
 +**Etapa 1:**
 +Sunt definite variabilele globale(ex: password) care ajuta la gestionarea logicii de securitate a usii, dar si functii ajutatoare playTone(pentru folosirea buzzer-ului), ​  * delayMicroseconds_custom (pentru a se evita functile de delay clasice, functia custom citeste un timer).
 +Sunt implementate si functiile:
 +  * getDistance() - masoara distanta dintre usa si cel mai apropiat obiect. Prin acest proces, aflam daca prin usa trece o persoana in momentul respectiv sau nu, de unde rezulta ca stim daca putem inchide usa in acel moment.
 +  * openDoor() - logica de deschidere a usii. Se actioneaza servomotoarele si buzzer-ul simultan si se verifica permanent distanta folosind getDistance(). Daca nu se afla nimeni in cadrul usii, se actioneaza servomotarele si se inchide usa. In paralel cu acest proces, ledul RGB semnalizeaza cu verde si rosu starile deschisa si inchisa a usii.
 +  * accessDenied() - refuzarea accesului, se afiseaza detallile.
 +
 +Sunt definite perifericele utilizate: buzzer-ul, butonul, tastatura matriceala 4x4, LCD-I2C, servomotoarele,​ senzorul HC-SR04.
 +Din cauza faptului ca senzorul HC-SR04 si buzzer-ul folosesc generic acelas timer, a fost nevoie de setarea a 2 timere diferite, cate unul pentru fiecare dispozitiv.
 +Sunt implementate si intreruperile pentru buton, senzorul HC-SR04 si buzzer.
 +
 +**Etapa 2:**
 +In functia de setup sunt setate perifericele(ledul RGB, LCD-ul, servomotoarele) si pinii asociati fiecaruia. De asemenea este setata si parola care va ramane fixata pe tot parcursul executiei codului.
 +Logica de setare a parolei a fost gandita prin stari. Consideram starea de start in care utilizatorului i se cere o parola de 6 cifre. Codul nu va executa nimic pana nu sunt intrduse 6 caractere. Dupa introducere,​ utilizatorului i se va cere sa confirme parola. Daca nu va confirma parola, utilizatorului i se va cere sa introduca o parola noua, adica sa ia procesul de la capat. Atunci cand utilizatorul confirma parola, etapa de setup se incheie. Tot acest proces de setup este semnalizat prin lumina albastra a ledului.
 +
 +**Etapa 3:**
 +Este etapa propriu zisa de executie a codului. In acest moment, usa este inchisa si exista 2 modalitati de a o deschide: prin apasarea simpla a butonului sau prin introducerea parolei setate. Ambele metode vor apela functia de deschidere a usii. In schimb, introducerea gresita a parolei nu va deschide usa si va semnalata auditiv si vizual pe LCD.
  
-<note tip> 
-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 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul functioneaza conform asteptarilor. Usa se deschide si se inchide corect.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 +{{:​pm:​prj2025:​ccristi:​la_videohard.gif?​750}}
 + 
 ===== Concluzii ===== ===== Concluzii =====
 +Un proiect foarte interesant care m-a ajutat sa-mi fixez cunostintele dobandite la laborator. De asemenea, am avut ocazia sa lucrez cu mai multe dipozitive periferice de diverse tipuri si care m-au pus in situatii inca neintalnite.
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Arhiva proiect{{:pm:prj2025:ccristi:proiect_pm_la.zip|}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, 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**. +
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +{{:​pm:​prj2025:​ccristi:​planificare_la.jpg?750}}
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +  ​Pagina PM de pe OCW: [[https://​ocw.cs.pub.ro/​courses/​pm]] 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate ​pe **Resurse Software** şi **Resurse Hardware**+  - Arduino Uno sheet: [[https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf]] 
-</note>+  - Plusivo Wireless Super Starter Kit: [[https://​kits.plusivo.com/]]
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2025/ccristi/levent.amet.1746836848.txt.gz · Last modified: 2025/05/10 03:27 by levent.amet
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