Bidirectional Person Counter

Autor

Andreea-Irina Vrabie - 335CA

Introducere

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. 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

Functionalitati

  • 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.
  • LED-ul rosu va fi aprins cand se atinge maximul de persoane acceptat.
  • Releul va indica aprinderea luminii din camera.

Schema bloc

Hardware Design

Componente:

  • Arduino UNO
  • Breadboard
  • Senzori IR
  • Fire
  • Leduri
  • Rezistente
  • Display LCD
  • Releu

Schema

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

Nimeni in camera

nopeoplepic.jpg

Numar mic de persoane in camera

2peoplepic.jpeg

Numar mediu de persoane in camera

3peoplepic.jpeg

Numar mare de persoane in camera

5peoplepic.jpeg

Concluzii

Puteti urmari un DEMO al proiectului la linkul urmator: https://drive.google.com/file/d/1X1D6rVWZ40BMaYC-arChBHr3Q0Wh59wY/view

Download

Jurnal

Bibliografie/Resurse

pm/prj2021/alazar/bidirectionalpersoncounter.txt · Last modified: 2021/06/03 17:59 by andreea.vrabie0906
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