This shows you the differences between two versions of the page.
pm:prj2021:amocanu:visitorcounter [2021/06/01 22:56] mihai.ghita3001 [Hardware Design] |
pm:prj2021:amocanu:visitorcounter [2021/06/01 23:52] (current) mihai.ghita3001 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 37: | Line 37: | ||
{{:pm:prj2021:amocanu:visitor_counter_poza_1.jpeg?700|}} | {{:pm:prj2021:amocanu:visitor_counter_poza_1.jpeg?700|}} | ||
{{:pm:prj2021:amocanu:visitor_counter_poza_2.jpeg?700|}} | {{:pm:prj2021:amocanu:visitor_counter_poza_2.jpeg?700|}} | ||
- | {{:pm:prj2021:amocanu:visitor_counter_poza_2.jpeg?700|}} | + | {{:pm:prj2021:amocanu:visitor_counter_poza_3.jpeg?700|}} |
===== Software Design ===== | ===== Software Design ===== | ||
Line 48: | Line 48: | ||
===Biblioteci=== | ===Biblioteci=== | ||
[[https://www.arduino.cc/en/reference/SPI|SPI.h]] | [[https://www.arduino.cc/en/reference/SPI|SPI.h]] | ||
+ | -- Folosit pentru a realiza comunicarea cu modulul rfid. | ||
[[https://www.arduino.cc/en/Reference/Ethernet|Ethernet.h]] | [[https://www.arduino.cc/en/Reference/Ethernet|Ethernet.h]] | ||
+ | -- Folosit pentru webserver si pentru a face requesturi. | ||
[[https://www.arduino.cc/reference/en/libraries/mfrc522/|RFID.h]] | [[https://www.arduino.cc/reference/en/libraries/mfrc522/|RFID.h]] | ||
+ | -- Folosit pentru scanarea cartelelor. | ||
===Detalii implementare=== | ===Detalii implementare=== | ||
- | <note> | + | ==Functia setup== |
- | Descrierea codului aplicaţiei (firmware): | + | * Initializeaza Serialul pentru printarea rezultatului dupa scanarea cartelei |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * Initializeaza pinii de de input ai senzorilor IR |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Inițializează magistrala SPI setând SCK, MOSI și SS la ieșiri, trăgând SCK și MOSI jos și SS înalt. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * Initializeaza rfid-ul |
- | * (etapa 3) surse şi funcţii implementate | + | * Incearca initializarea ethernet-ului cu dhcp |
- | </note> | + | * Daca reuseste pasul de mai sus porneste webserverul |
+ | ==Functia loop== | ||
+ | * Verifica daca exista un request de la clienti pe webserver si raspunde cu pagina de html care afiseaza cati clienti sunt intrati cu cartela cu acces autorizat | ||
+ | * Verifica senzorul IR care marcheaza intrarea si rfid-ul. Daca se scaneaza o cartela, codul cartelei este trimis la un server de node care la randul sau face requesturi la firebase si returneaza mesaj cu acces neautorizat daca nu exista acel cod inregistrat sau numele persoanei care detine cartela. Acest mesaj este afisat pe portul serial. Serverul de node l-am folosit doar pentru parsarea requestului si pentru ca nu ma puteam conecta direct de pe arduino la firebase. Se logheaza in baza de date operatia de intrare cu timestamp-ul pe codul de cartela respectiv pentru a putea vedea mai tarziu cine si cand a intrat/iesit. Se incrementeaza numarul de persoane afisat pe serverul web. | ||
+ | * In mod asemanator se intampla si pe celalalt senzor doar ca operatia este de leave. Se decrementeaza numarul de pe serverul web doar in cazul in care acesta este mai mare ca 0. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | ==Scanare cartela succes== | ||
+ | {{:pm:prj2021:amocanu:2021_ghita_mihai_alexandru-scanarecartelasucces.jpg?600|}} | ||
+ | |||
+ | ==Acces neautorizat== | ||
+ | {{:pm:prj2021:amocanu:2021_Ghita_Mihai_Alexandru-AccesNeautorizat.jpg?600|}} | ||
+ | |||
+ | ==Log-uri== | ||
+ | {{:pm:prj2021:amocanu:2021_Ghita_Mihai_Alexandru-Firebase.jpg?600|}} | ||
+ | |||
+ | ==Webserver== | ||
+ | {{:pm:prj2021:amocanu:2021_Ghita_Mihai_Alexandru-Webserver.jpg?600|}} | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
- | </note> | ||
+ | [[https://www.youtube.com/watch?v=0TEmnSTwk1s|Demo youtube]]</note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | <note tip> | ||
+ | * Proiectul este realizat integral, implementand toate functionalitatile propuse. | ||
+ | * Permite utilizatorilor sa vizualizeze cate persoane sunt intrate intr-o firma. | ||
+ | </note> | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | ||
- | 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 ş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**. | + | {{:pm:prj2021:amocanu:visitor_counter_proiectpm.zip|}} |
- | </note> | + | |
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | 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> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://randomnerdtutorials.com/security-access-using-mfrc522-rfid-reader-with-arduino/ |
+ | * https://create.arduino.cc/projecthub/Raushancpr/arduino-with-ir-sensor-1579b6 | ||
+ | * https://www.arduino.cc/en/Tutorial/LibraryExamples/WebServer | ||
+ | * https://arduinogetstarted.com/tutorials/arduino-http-request | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |