Differences

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

Link to this comparison view

pm:prj2026:alexandru.jipa2803:andrei.valeanu03 [2026/05/16 13:43]
andrei.valeanu03 [Listă de piese]
pm:prj2026:alexandru.jipa2803:andrei.valeanu03 [2026/05/23 18:43] (current)
andrei.valeanu03 [Download]
Line 17: Line 17:
  
 În timpul funcționării,​ Arduino citește permanent valorile provenite de la toți senzorii și stabilește starea sistemului. Dacă nu este detectată nicio condiție periculoasă,​ sistemul rămâne în starea normală, menține LED-ul verde aprins și afișează în Serial Monitor că nu există pericol activ. Dacă senzorul ultrasonic detectează o persoană foarte aproape de echipament, sistemul rămâne tot în starea normală, dar semnalizează prezența prin LED verde și LED galben clipitor, marcând faptul că există activitate în zona monitorizată. În timpul funcționării,​ Arduino citește permanent valorile provenite de la toți senzorii și stabilește starea sistemului. Dacă nu este detectată nicio condiție periculoasă,​ sistemul rămâne în starea normală, menține LED-ul verde aprins și afișează în Serial Monitor că nu există pericol activ. Dacă senzorul ultrasonic detectează o persoană foarte aproape de echipament, sistemul rămâne tot în starea normală, dar semnalizează prezența prin LED verde și LED galben clipitor, marcând faptul că există activitate în zona monitorizată.
 +
 +{{:​pm:​prj2026:​alexandru.jipa2803:​monitor_excel_andreivaleanu03.png?​800|}}
  
 În cazul în care valoarea furnizată de senzorul MQ-6 depășește pragul stabilit, sistemul intră direct în starea de alertă de gaz. În această situație, LED-ul roșu se activează, iar buzzerul începe să emită semnale sonore intermitente. Dacă în același timp este detectată și prezența unei persoane lângă echipament, semnalizarea devine mai accentuată:​ LED-ul roșu clipește, LED-ul galben clipește sincron cu acesta, iar ritmul buzzerului crește pentru a avertiza mai clar persoana aflată în apropiere. În cazul în care valoarea furnizată de senzorul MQ-6 depășește pragul stabilit, sistemul intră direct în starea de alertă de gaz. În această situație, LED-ul roșu se activează, iar buzzerul începe să emită semnale sonore intermitente. Dacă în același timp este detectată și prezența unei persoane lângă echipament, semnalizarea devine mai accentuată:​ LED-ul roșu clipește, LED-ul galben clipește sincron cu acesta, iar ritmul buzzerului crește pentru a avertiza mai clar persoana aflată în apropiere.
Line 45: Line 47:
 | 11 | LED galben | Semnalizare pentru prezență sau observații tehnice precum umiditatea ridicată. | | 11 | LED galben | Semnalizare pentru prezență sau observații tehnice precum umiditatea ridicată. |
 | 12 | LED verde | Semnalizare a funcționării normale a sistemului. | | 12 | LED verde | Semnalizare a funcționării normale a sistemului. |
 +
 +==== Schema electrica ====
 +
 +{{:​pm:​prj2026:​alexandru.jipa2803:​schemae_andreivaleanu03_.png?​900|}}
  
 În locul unui afișaj local, sistemul transmite informațiile detaliate prin Serial Monitor și salvează evenimentele pe card SD. Această alegere a simplificat schema hardware și a permis integrarea mai multor senzori și module suplimentare,​ precum RTC-ul, senzorul de lumină și modulul SD. În locul unui afișaj local, sistemul transmite informațiile detaliate prin Serial Monitor și salvează evenimentele pe card SD. Această alegere a simplificat schema hardware și a permis integrarea mai multor senzori și module suplimentare,​ precum RTC-ul, senzorul de lumină și modulul SD.
Line 55: Line 61:
  
 Această organizare permite integrarea mai multor componente fără conflicte de pini și reflectă o structură hardware mai apropiată de o aplicație embedded reală. Această organizare permite integrarea mai multor componente fără conflicte de pini și reflectă o structură hardware mai apropiată de o aplicație embedded reală.
 +
 +==== Cablaj electric ====
 +
 +{{:​pm:​prj2026:​alexandru.jipa2803:​cablaj_andreivaleanu03.jpeg?​600|}}
  
 ==== Alocarea pinilor ==== ==== Alocarea pinilor ====
Line 89: Line 99:
  
 Această organizare hardware și logică oferă proiectului un comportament coerent, ușor de justificat și potrivit pentru o aplicație demonstrativă de monitorizare a unei camere tehnice. Această organizare hardware și logică oferă proiectului un comportament coerent, ușor de justificat și potrivit pentru o aplicație demonstrativă de monitorizare a unei camere tehnice.
 +
 +===== Software design =====
 +
 +==== Mediu de dezvoltare utilizat ====
 +
 +Arduino IDE a fost utilizat pentru scrierea codului sursă, compilare și încărcare pe placa Arduino UNO R3. Platforma permite integrarea facilă a bibliotecilor necesare pentru senzori, comunicații I2C și SPI, precum și testarea rapidă a comportamentului sistemului în timp real prin monitorul serial.
 +
 +==== Biblioteci folosite ====
 +
 +  * ''​Wire.h''  ​
 +Bibliotecă nativă Arduino utilizată pentru comunicarea pe magistrala I2C. În cadrul proiectului,​ aceasta este folosită pentru comunicarea cu modulul RTC PCF8563 și cu senzorul de lumină TCS34725.
 +
 +  * ''​SPI.h''  ​
 +Bibliotecă nativă Arduino utilizată pentru comunicația SPI. Este necesară pentru funcționarea modulului de card SD, care folosește interfața SPI pentru scrierea și citirea datelor.
 +
 +  * ''​SD.h''  ​
 +Bibliotecă folosită pentru manipularea fișierelor pe cardul SD. Prin intermediul acesteia, sistemul creează și actualizează un fișier de jurnal în care sunt salvate evenimentele importante, împreună cu valorile senzorilor și momentul apariției lor.
 +
 +  * ''​DHT.h''  ​
 +Bibliotecă utilizată pentru citirea senzorului DHT11. Aceasta permite măsurarea temperaturii și a umidității relative din încăpere, valori care sunt apoi analizate pentru a detecta depășirea pragurilor de siguranță.
 +
 +  * ''​RTClib.h''  ​
 +Bibliotecă utilizată pentru comunicarea cu modulul RTC PCF8563. Prin aceasta, sistemul poate obține timpul curent și îl poate folosi pentru marcarea exactă a evenimentelor în jurnalul salvat pe cardul SD.
 +
 +  * ''​Adafruit_TCS34725.h''  ​
 +Bibliotecă utilizată pentru comunicarea cu senzorul TCS34725. În proiect, aceasta este folosită pentru evaluarea nivelului de lumină ambientală și pentru detectarea variațiilor semnificative de iluminare din spațiul monitorizat.
 +
 +==== Organizarea componenței software ====
 +
 +=== 1. Componenta de achiziție a datelor de la senzori ===
 +
 +Sistemul citește periodic valorile provenite de la mai multe tipuri de senzori:
 +  * senzorul MQ-6 pentru detecția gazului;
 +  * senzorul de flacără pentru identificarea unei surse de foc;
 +  * senzorul DHT11 pentru temperatură și umiditate;
 +  * senzorul ultrasonic HC-SR04 pentru detectarea prezenței și estimarea distanței;
 +  * senzorul TCS34725 pentru estimarea nivelului de lumină ambientală.
 +
 +Valorile analogice sunt citite cu ''​analogRead()'',​ iar senzorii digitali sau specializați sunt accesați prin bibliotecile dedicate. Pentru HC-SR04, sistemul generează un impuls de trigger și măsoară durata semnalului de răspuns, din care calculează distanța în centimetri. Controlul semnalului de trigger este realizat prin acces direct la registrele microcontrolerului,​ ceea ce oferă un control hardware mai precis asupra semnalului emis.
 +
 +=== 2. Componenta de interpretare și decizie ===
 +
 +După citirea senzorilor, aplicația compară valorile obținute cu praguri prestabilite:​
 +  * pentru gaz există un prag de avertizare și un prag de pericol;
 +  * pentru flacără există un prag sub care se consideră că a fost detectată radiație IR specifică unei flăcări;
 +  * pentru umiditate există un prag peste care mediul este considerat umed;
 +  * pentru prezență există o distanță maximă sub care o persoană este considerată aproape de echipament.
 +
 +Pe baza acestor condiții, software-ul stabilește comportamentul global al sistemului. Prioritatea logică este acordată alarmelor critice:
 +  - detecție flacără;
 +  - detecție gaz peste prag;
 +  - prezență în apropiere;
 +  - umiditate ridicată;
 +  - funcționare normală.
 +
 +Această organizare permite reacții coerente și previzibile,​ chiar și atunci când mai multe condiții sunt adevărate simultan.
 +
 +=== 3. Componenta de semnalizare vizuală ===
 +
 +Semnalizarea vizuală este realizată prin trei LED-uri: roșu, galben și verde. Acestea indică starea curentă a sistemului:
 +  * verde aprins pentru funcționare normală;
 +  * galben intermitent sau constant pentru atenționare;​
 +  * roșu intermitent pentru situații de alarmă.
 +
 +Controlul LED-urilor este realizat prin scriere directă în registrul ''​PORTD'',​ deoarece pinii D5, D6 și D7 aparțin aceluiași port hardware. Această abordare reduce timpul de execuție și reflectă utilizarea unui nivel mai avansat de programare embedded.
 +
 +=== 4. Componenta de alarmă sonoră ===
 +
 +Buzzerul este activat în situații de alarmă și funcționează diferențiat în funcție de context:
 +  * alarmă lentă atunci când există o alertă fără prezență imediată;
 +  * alarmă mai rapidă atunci când există atât pericol, cât și prezență în proximitate.
 +
 +Controlul ieșirii digitale este realizat direct prin registre. Pinul buzzerului este configurat și comandat prin ''​DDRD''​ și ''​PORTD'',​ ceea ce permite o integrare coerentă cu restul ieșirilor digitale comandate la nivel hardware.
 +
 +=== 5. Componenta de monitorizare a prezenței ===
 +
 +Prezența este detectată cu senzorul ultrasonic HC-SR04. Software-ul nu se bazează exclusiv pe o singură citire instantanee,​ ci implementează o logică de stabilizare:​
 +  * dacă este detectată prezență, momentul este memorat;
 +  * dacă temporar nu mai există ecou valid, sistemul menține starea de prezență pentru un interval scurt;
 +  * este folosit și un număr maxim de ratări tolerate, pentru a evita fluctuațiile false.
 +
 +Această abordare face sistemul mai robust și reduce riscul de schimbări bruște de stare cauzate de zgomot sau reflexii imperfecte ale semnalului ultrasonic.
 +
 +=== 6. Componenta de monitorizare a luminii ambientale ===
 +
 +Senzorul TCS34725 este utilizat pentru evaluarea iluminării din încăpere. Sistemul stabilește un nivel de referință și urmărește variațiile semnificative în raport cu această bază. Dacă modificarea persistă suficient timp, nivelul de referință este adaptat automat. Astfel, software-ul nu reacționează la variații minore sau de scurtă durată, ci doar la schimbări relevante ale mediului.
 +
 +=== 7. Componenta RTC și gestionarea timpului ===
 +
 +Modulul RTC PCF8563 furnizează data și ora curentă. Sistemul utilizează timpul UTC și îl convertește software la ora locală a României, inclusiv cu ajustarea automată pentru ora de vară. Această decizie permite jurnalizarea corectă a evenimentelor și afișarea unor timestamp-uri relevante pentru utilizator.
 +
 +=== 8. Componenta de logare pe card SD ===
 +
 +{{:​pm:​prj2026:​alexandru.jipa2803:​sdcard_explorer_andreivaleanu03.png?​250|}}{{:​pm:​prj2026:​alexandru.jipa2803:​sdcard_excel_andreivaleanu03.png?​700|}}
 +
 +Fiecare eveniment important este înregistrat în fișierul ''​log.txt''​ de pe cardul SD. În jurnal sunt salvate:
 +  * momentul producerii evenimentului;​
 +  * tipul evenimentului;​
 +  * starea sistemului;
 +  * valorile principalilor senzori;
 +  * distanța măsurată;
 +  * temperatura și umiditatea;
 +  * nivelul de lumină.
 +
 +Această componentă transformă proiectul dintr-un simplu sistem de alarmare într-un sistem de monitorizare cu trasabilitate,​ util pentru analiză ulterioară și diagnostic.
 +
 +Fișierul log este compatibil cu formatul CSV și poate fi importat cu ușurință în Microsoft Excel pentru analiză și prelucrare ulterioară. Încărcarea se poate realiza din meniul Get Data > From File > From Text/CSV, ceea ce permite vizualizarea și organizarea rapidă a datelor în format tabelar.
 +
 +=== 9. Componenta de comunicare serială ===
 +
 +Sistemul comunică și prin portul serial, oferind informații despre starea curentă și despre senzorii activi. În plus, sunt implementate comenzi pentru configurarea și interogarea timpului RTC, cum ar fi setarea orei și citirea acesteia. Această interfață este utilă atât pentru testare, cât și pentru mentenanță.
 +
 +=== 10. Componenta de control hardware la nivel de registru ===
 +
 +O particularitate importantă a proiectului este utilizarea registrelor microcontrolerului pentru controlul ieșirilor digitale și al semnalului de trigger al senzorului ultrasonic. Pentru această funcționalitate sunt utilizate registre precum:
 +  * ''​DDRD''​ și ''​DDRB''​ pentru configurarea direcției pinilor;
 +  * ''​PORTD''​ și ''​PORTB''​ pentru scrierea stărilor logice.
 +
 +Această abordare este mai apropiată de programarea embedded reală, oferă control mai precis asupra hardware-ului și reduce overhead-ul introdus de abstracțiile standard Arduino.
 +
 +==== Concluzie privind structura software ====
 +
 +Software-ul este organizat modular, în jurul unor funcții cu rol clar: citirea senzorilor, interpretarea datelor, generarea alarmelor, actualizarea ieșirilor, logarea evenimentelor și comunicarea serială. Arhitectura aleasă permite extinderea ulterioară a proiectului și face sistemul mai robust, mai eficient și mai ușor de analizat. Utilizarea registrelor pentru controlul direct al hardware-ului reprezintă un pas important spre o implementare de nivel universitar,​ mai apropiată de cerințele programării embedded.
 +
 +==== Download ====
 +[[https://​drive.google.com/​drive/​folders/​1AeLgXeSWAF2NdE91hdfRydgJJj0S8jyo?​usp=sharing|Folder Drive fisiere atasate]] - Demo video, log, cod arduino.
 +
 +==== GITHUB ====
 +[[https://​github.com/​AndreiValeanu22/​SISTEM-INTELIGENT-DE-MONITORIZARE-SI-AVERTIZARE-PENTRU-CAMERA-TEHNICA|Link Github]]
pm/prj2026/alexandru.jipa2803/andrei.valeanu03.1778928216.txt.gz · Last modified: 2026/05/16 13:43 by andrei.valeanu03
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