This shows you the differences between two versions of the page.
pm:prj2021:alazar:bidirectionalpersoncounter [2021/04/25 21:00] andreea.vrabie0906 |
pm:prj2021:alazar:bidirectionalpersoncounter [2021/06/03 17:59] (current) andreea.vrabie0906 [Introducere] |
||
---|---|---|---|
Line 5: | Line 5: | ||
Proiectul consta in limitarea persoanelor din interiorul unei camere. \\ | Proiectul consta in limitarea persoanelor din interiorul unei camere. \\ | ||
Acest lucru fiind realizat prin numararea tuturor celor care intra si care ies din incapere cu ajutorul a doi senzori IR. \\ Atingerea capacitatii maxime este atentionata prin aprinderea unui LED rosu. | Acest lucru fiind realizat prin numararea tuturor celor care intra si care ies din incapere cu ajutorul a doi senzori IR. \\ Atingerea capacitatii maxime este atentionata prin aprinderea unui LED rosu. | ||
- | Proiectul prezinta o oarecare importanta \\ in contextul actual, al pandemiei, facilitand restrictionarea numarului de persoane din diverse spatii publice interioare, \\ inspiratia initiala venind dintr-un astfel de loc. | + | Proiectul prezinta o oarecare importanta in contextul actual, al pandemiei, facilitand restrictionarea numarului de persoane din diverse spatii publice interioare, inspiratia initiala venind dintr-un astfel de loc. |
===== Descriere generala ===== | ===== Descriere generala ===== | ||
==== Functionalitati ==== | ==== Functionalitati ==== | ||
- | * In functie de care senzor va fi activat primul, contorul de persoane ce va fi afisat pe display va fi fie incrementat, \\ | + | * In functie de care senzor va fi activat primul, contorul de persoane ce va fi afisat pe display va fi fie incrementat, daca persoana a intrat, fie decrementat, daca a iesit. \\ |
- | daca persoana a intrat, fie decrementat, daca a iesit. \\ | + | * LED-ul rosu va fi aprins cand se atinge maximul de persoane acceptat. \\ |
- | * LED-ul va fi aprins cand se atinge maximul de persoane acceptat. \\ | + | * Releul va indica aprinderea luminii din camera. \\ |
- | * Releul va indica intrarea/iesirea persoanelor. \\ | + | |
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- | {{pm.png?500}} | + | {{pm-irina.png?500}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Componente: \\ | Componente: \\ | ||
Line 20: | Line 19: | ||
* Senzori IR | * Senzori IR | ||
* Fire | * Fire | ||
- | * Led | + | * Leduri |
* Rezistente | * Rezistente | ||
* Display LCD | * Display LCD | ||
- | * Potentiometru | + | * Releu |
+ | ==== Schema ==== | ||
+ | {{pm tinker irina.png?600}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | === Implementare === | ||
+ | Implementarea codului proiectului a fost realizata in Arduino IDE. | ||
+ | Pentru identificarea mai simpla a pinilor folositi, am initializat macro-uri cu denumiri sugestive: \\ | ||
+ | * pinul 14 => macro in - reprezentand senzorul IR care este activat primul in cazul in care o persoana intra in incapere; | ||
+ | * pinul 19 => macro out - reprezentand senzorul IR care este activat primul in cazul in care o persoana paraseste camera; | ||
+ | * pinul 2 => macro relay - fiind cel prin care output-ul dorit face legatura cu releul | ||
+ | * pinul 3 => macro green - corespunzand led-ului verde | ||
+ | * pinul 4 => macro orange - corespunzand led-ului portocaliu | ||
+ | * pinul 5 => macro red - corespunzand led-ului rosu | ||
+ | Pinii care fac legatura cu displayul LCD sunt initializati folosind biblioteca LiquidCrystal.h.\\ | ||
+ | Numarul persoanelor din incapere este stocat in variabila globala count.\\ | ||
+ | In functia setup(), sunt setati pinii pentru output (relay, green, orange, red) si cei pentru input (in, out). Primul mesaj afisat va fi "Nobody Inside", iar lumina verde a relay-ul va fi stinsa, simulare a faptului ca lumina din incapere va fi stinsa. \\ | ||
+ | In cadrul functiei loop(), se vor citi in continuu datele transmise de cei doi senzori IR. In functie de cel care detecteaza ceva, variabila count este incrementata sau decrementata. Ulterior, in functie de valoarea acesteia, unul dintre LED-uri va fi aprins. Pentru demo, am ales ca puncte de referinta: intre 1 si 3 oameni - LED-ul verde, intre 3 si 5 - LED-ul portocaliu = camera devine aglomerata, peste 5 - LED-ul rosu = camera este plina. | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
+ | ==== Nimeni in camera ==== | ||
+ | {{nopeoplepic.jpg?600}} | ||
+ | ==== Numar mic de persoane in camera ==== | ||
+ | {{2peoplepic.jpeg?600}} | ||
+ | ==== Numar mediu de persoane in camera ==== | ||
+ | {{3peoplepic.jpeg?600}} | ||
+ | ==== Numar mare de persoane in camera ==== | ||
+ | {{5peoplepic.jpeg?600}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Puteti urmari un DEMO al proiectului la linkul urmator: [[https://drive.google.com/file/d/1X1D6rVWZ40BMaYC-arChBHr3Q0Wh59wY/view]] | ||
===== Download ===== | ===== Download ===== | ||
+ | Cod sursa: {{BidirectionalPersonCounter.zip}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |