Differences

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

Link to this comparison view

pm:prj2024:avaduva:matei.costescu2301 [2024/05/26 03:20]
matei.costescu2301 [Software Design]
pm:prj2024:avaduva:matei.costescu2301 [2024/05/26 22:57] (current)
matei.costescu2301 [Download]
Line 72: Line 72:
  
  
-**Poze cu circuitul ​final**+**Poze cu circuitul**
  
 {{:​pm:​prj2024:​avaduva:​security_alarm_1.jpeg?​400|}} {{:​pm:​prj2024:​avaduva:​security_alarm_1.jpeg?​400|}}
Line 92: Line 92:
 {{:​pm:​prj2024:​avaduva:​security_alarm_5.jpeg?​400|}} {{:​pm:​prj2024:​avaduva:​security_alarm_5.jpeg?​400|}}
  
-===== Software Design =====+Proiect în varianta finală:
  
 +{{:​pm:​prj2024:​avaduva:​whatsapp_image_2024-05-26_at_05.20.54_2_.jpeg?​400|}}
 +
 +{{:​pm:​prj2024:​avaduva:​whatsapp_image_2024-05-26_at_05.20.54_1_.jpeg?​400|}}
 +
 +
 +**Demo produs final**
 +[[https://​youtu.be/​gYy21E4mtyc | Proiect PM]]
 +
 +===== Software Design =====
  
-<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>​ 
  
 **Mediu de dezvoltare** **Mediu de dezvoltare**
Line 168: Line 170:
   Serial.println(distance);​   Serial.println(distance);​
   ​   ​
--refresh() : Funcție care resetează afișajul LCD și afișează mesajul "You are safe!"​.+-**refresh()** : Funcție care resetează afișajul LCD și afișează mesajul "You are safe!"​.
  
   lcd.clear();​   lcd.clear();​
Line 174: Line 176:
   lcd.print("​You are safe!"​);​   lcd.print("​You are safe!"​);​
   ​   ​
--pericol() : Funcție care afișează mesajul de avertizare de la camera 1 pe LCD.+-**pericol()** : Funcție care afișează mesajul de avertizare de la camera 1 pe LCD.
  
   lcd.clear();​   lcd.clear();​
Line 182: Line 184:
   lcd.print("​camera 1!");   lcd.print("​camera 1!");
   ​   ​
--pericol_cam2() : Funcție care afișează mesajul de avertizare de la camera 2 pe LCD.+-**pericol_cam2()** : Funcție care afișează mesajul de avertizare de la camera 2 pe LCD.
  
   lcd.clear();​   lcd.clear();​
Line 190: Line 192:
   lcd.print("​camera 2!");   lcd.print("​camera 2!");
   ​   ​
--pericol_both() : Funcție care afișează mesajul de avertizare de la ambele camere pe LCD.+-**pericol_both()** : Funcție care afișează mesajul de avertizare de la ambele camere pe LCD.
  
   lcd.clear();​   lcd.clear();​
Line 198: Line 200:
   lcd.print("​both cameras!"​);​   lcd.print("​both cameras!"​);​
   ​   ​
--alarm(long duration, int freq) : Funcție care activează buzzerul pentru un anumit timp și frecvență.+-**alarm(long duration, int freq)** : Funcție care activează buzzerul pentru un anumit timp și frecvență.
  
   tone(buzzerPin,​ freq);   tone(buzzerPin,​ freq);
Line 205: Line 207:
   ​   ​
  
 +
 +**Funcționare**
 +
 +//Starea inițială și actualizările ecranului LCD://
 +
 +Afișajul LCD este inițializat și setat să afișeze "You are safe!" în starea inițială.
 +Funcțiile refresh(), pericol(), pericol_cam2(),​ și pericol_both() sunt folosite pentru a actualiza mesajele afișate pe LCD în funcție de starea sistemului și de senzorii PIR.
 +
 +//​Gestionarea alarmei și senzorilor PIR://
 +
 +Când inData este "​1",​ alarma este pornită și sunt verificați senzorii PIR pentru a detecta mișcarea. În funcție de valoarea senzorilor, se afișează mesaje de avertizare corespunzătoare și se activează buzzerul.
 +Când inData este "​0",​ alarma este oprită, LED-ul verde este stins, iar afișajul LCD este resetat la mesajul "You are safe!"​.
 +
 +//​Măsurarea distanței cu senzorul ultrasonic://​
 +
 +În timpul buclei principale, se măsoară constant distanța folosind senzorul ultrasonic și se afișează pe consola serială.
 +
 +Aceste funcționalități și structura codului permit monitorizarea și afișarea stării de siguranță sau pericol în funcție de senzorii PIR, activând buzzerul și afișând mesajele corespunzătoare pe LCD.
 +
 +
 +**Reprezentare logică prin diagrama UML**
 +
 +{{:​pm:​prj2024:​avaduva:​diagrama_uml.drawio.png?​600|}}
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării ​proiectului vostru. +**În urma realizării ​acestui proiect, am obținut următoarele rezultate:​**
-</​note>​+
  
-===== Concluzii =====+  * Monitorizarea eficientă a mișcării:
  
-===== Download =====+Sistemul a reușit să detecteze cu succes mișcările folosind senzorii PIR plasați în două locații diferite. Atunci când a fost detectată mișcare în oricare dintre cele două camere, sistemul a afișat mesajul corespunzător pe ecranul LCD și a activat buzzerul pentru a emite un semnal sonor de avertizare.
  
-<note warning>​ +  * Afișaj LCD intuitiv șinformativ:
-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 ş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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Ecranul LCD a fost utilizat eficient pentru a afișa starea de siguranță ("You are safe!"​) și pentru a emite mesaje de avertizare clare în cazul detectării mișriispecificând camera de unde provine alerta. Mesajele au fost ușor de citit și au oferit informații în timp real.
-</​note>​+
  
-===== Jurnal =====+  * Interfață de comunicare prin Bluetooth:
  
-<note tip> +Comunicarea bidirecțională prin modulul Bluetooth HM10 a funcționat corespunzător. Sistemul a putut primi comenzi de la aplicație de pe telefon pentru a activa sau dezactiva alarma. De asemenea, sistemul a trimis date relevante către aplicație, asigurând o monitorizare și control de la distanță eficiente. 
-Puteți avea și secțiune de jurnal ​în care să poată urmări asistentul ​de proiect progresul proiectului.+ 
 +  * Măsurarea distanței cu senzorul ultrasonic:​ 
 + 
 +Senzorul ultrasonic a măsurat constant distanța până la un obiect aflat în fața sa, afișând această informație pe consola serială. Aceasta poate fi utilizată pentru monitorizarea deschiderii ușii sau a oamenilor ​care 
 + 
 +  * Răspuns prompt la situații de pericol: 
 + 
 +Sistemul a fost capabil ​să reacționeze rapid la detectarea mișcării prin activarea imediată a buzzerului și a LED-ului, oferind o alertă vizuală și auditivă. Această promptitudine este esențială pentru sistemele ​de securitate și monitorizare. 
 + 
 +  * Stabilitatea și Fiabilitatea Sistemului:​ 
 + 
 +Pe durata testelor, sistemul a demonstrat stabilitate și fiabilitate în funcționare. Toate componentele hardware și software au funcționat armonios, fără întârzieri semnificative sau erori.
 </​note>​ </​note>​
 +
 +
 +**Optimizări**
 +
 +În urma realizării proiectului,​ am implementat câteva optimizări pentru a îmbunătăți performanța și eficiența sistemului.
 +
 +  * Gestionarea Eficientă a Senzorilor PIR
 +Am redus frecvența citirilor de la senzorii PIR prin utilizarea lor doar atunci când alarma este activată, deoarece citirea constantă a senzorilor PIR poate genera alarme false și poate consuma resurse inutile. În funcția loop(), citirea senzorilor PIR este realizată doar în timpul activării alarmei, reducând astfel încărcarea procesorului.
 +
 +  * Optimizarea Afișajului LCD
 +
 +Am optimizat utilizarea funcțiilor LCD pentru a reduce numărul de comenzi trimise la afișaj. În loc să folosim lcd.clear() de fiecare dată, am utilizat funcții specifice pentru actualizarea doar a secțiunilor necesare ale afișajului. ​
 +Afișajele LCD I2C pot fi lente și consumatoare de resurse dacă sunt utilizate ineficient.
 +Am utilizat funcțiile LCD doar în blocurile refresh(), pericol(), pericol_cam2(),​ și pericol_both(),​ astfel am minimizat utilizarea funcției lcd.clear() pentru a evita timpii de răspuns mari.
 +===== Concluzii =====
 +Proiectul a atins obiectivele propuse, oferind un sistem de monitorizare și alertare eficient, ușor de utilizat și de înțeles. Implementarea senzorilor PIR, a senzorului de proximitate,​ a modulului Bluetooth și a afișajului LCD a permis realizarea unui sistem integrat care poate fi utilizat pentru a asigura securitatea într-o varietate de scenarii. Fiabilitatea și reacția promptă a sistemului demonstrează potențialul acestuia pentru aplicații practice în domeniul securității și monitorizării.
 +===== Download =====
 +
 +{{:​pm:​prj2024:​avaduva:​sketch_may15a.zip|}}
 +
 +
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2024/avaduva/matei.costescu2301.1716682834.txt.gz · Last modified: 2024/05/26 03:20 by matei.costescu2301
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