Differences

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

Link to this comparison view

pm:prj2023:drtranca:seif_rfid [2023/05/20 16:39]
ioan.popescu3108 [Hardware Design]
pm:prj2023:drtranca:seif_rfid [2023/05/30 01:49] (current)
ioan.popescu3108 [Descriere generală]
Line 23: Line 23:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Cum am mentionat si mai sus, deschiderea seifului se va face cu o cartela RFID. In cazul in care usa seifului este deschisa in orice alt fel(se face o intrare neautorizata in seif), atunci se va declansa o alarma ​care se poate opri doar prin validarea unei cartele inregistrate sau oprirea alimentarii. Exista, totusi, si un fail-safe: un buton care deschide seiful, dar nu opreste declansarea alarmei. Starea seifului este reprezentata cu ajutorul a 3 LED-uri. Monitorizarea starii usii se face cu ajutorul unui senzor cu ultrasunete montat pe cadrul usii care verifica daca usa este deschisa sau inchisa.+Cum am mentionat si mai sus, deschiderea seifului se va face cu o cartela RFID. In cazul in care usa seifului este deschisa in orice alt fel(se face o intrare neautorizata in seif), atunci se va declansa o alarma. Exista, totusi, si un fail-safe: un buton care deschide seiful, dar nu opreste declansarea alarmei. Starea seifului este reprezentata cu ajutorul a 3 LED-uri. Monitorizarea starii usii se face cu ajutorul unui senzor cu ultrasunete montat pe cadrul usii care verifica daca usa este deschisa sau inchisa.
 <​note>​ <​note>​
     * LED rosu -> seiful este inchis;     * LED rosu -> seiful este inchis;
     * LED verde -> seiful este deschis;     * LED verde -> seiful este deschis;
-    * LED albastru -> seiful inregistreaza sau sterge o cartela ​noua.+    * LED albastru -> seiful inregistreaza sau sterge o cartela.
 </​note>​ </​note>​
 {{ :​pm:​prj2023:​drtranca:​schemablocseif.png?​nolink&​700|}} {{ :​pm:​prj2023:​drtranca:​schemablocseif.png?​nolink&​700|}}
Line 33: Line 33:
  
 ===== Hardware Design ===== ===== Hardware Design =====
- 
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
 === Lista de piese === === Lista de piese ===
 Pentru implementarea proiectului,​ am ales urmatoarele piese: Pentru implementarea proiectului,​ am ales urmatoarele piese:
Line 53: Line 45:
     * Adaptor DC 12V     * Adaptor DC 12V
     * Diverse (fire, breadboard/​placuta de prototipare,​ rezistoare)     * Diverse (fire, breadboard/​placuta de prototipare,​ rezistoare)
-{{:​pm:​prj2023:​drtranca:​image_2023-05-20_163758297.png?700|}}+===Schema Electrica=== 
 +{{:​pm:​prj2023:​drtranca:​image_2023-05-30_003053131.png?700|}}
 ===== Software Design ===== ===== Software Design =====
 +<note tip>
 +Pentru partea de software am folosit ca mediu de dezvoltare Arduino IDE 1.8.19
 +Librariile folosite:  ​
 +  * SPI.h pentru comunicarea prin SPI
 +  * MFRC522.h pentru comunicarea cu modulul RFID
 +</​note>​
 +== Descrierea implementarii ==
 +Partea de cod este destul de simpla si bine explicata prin comentarii. Pe scurt, exista o functie de **setup()** care are rolul de a face operatiile necesare pornirii sistemului, adica setarea pe input/​output a pinilor, atasarea intreruperii la buton si alte initializari. Functia care va fi atasata intreruperii este **buttonInterrupt()**,​ care nu permite apasari succesive foarte rapide ale butonului, si care retine momentul de timp la care a fost apasat. Functiile **alarmSetOff()** si **accessDenied()** au control asupra buzzer-ului pasiv, redand diferite note prin intermediul functiei tone(), care este un wrapper foarte util in jurul conceptului de PWM. Functia **resetRFID()** face o resetare usoara a modulului RFID pentru a permite citiri rapide succesive ale cartelelor. Lastly, functia **loop()** este locul unde este concentrata cea mai mare portiune din logica, si poate fi privita ca fiind compusa din mai multe parti:
 +  * In prima parte se ia input de la senzorul ultrasonic, care calculeaza durata de timp in care o unda transmisa de la trigger ajunge la echo, urmand apoi sa transforme aceasta durata prin aproximare in distanta; acest lucru ne ajuta sa ne dam seama daca usa este inchisa sau nu;
 +  * In a doua parte, se verifica starea butonului, adica daca au trecut 3 secunde de cand acesta a fost apasat, iar daca usa este inchisa putem inchide si lacatul, face comutare pe led-uri;
 +  * A treia parte verifica daca usa a fost deschisa fara o cartela valida, caz in care porneste alarma;
 +  * A patra parte se ocupa de citirea unei cartele, daca este valida atunci usa se deschide si se retine utilizarea unei cartele valide, daca sistemul este in modul de inregistrare cartela noua, se face suprascrierea cartelei vechi cu cea curenta, altfel se reda un sunet care indica faptul ca nu s-a folosit o cartela valida.
 +===== Rezultate Obţinute =====
 +Desi exista mult loc pentru mai bine(better cable management),​ sunt multumit de cum a iesit in final proiectul.
 +A fost nevoie de **mult** debugging si niste trial and error, dar consider ca, in final, sistemul indeplineste conditiile impuse in stagiul de conceptie.
  
-**TBA**+=== POZE ===
  
-===== Rezultate Obţinute ===== +{{ :​pm:​prj2023:​cb:​door2.jpeg?​400 |}}  
- +{{ :​pm:​prj2023:​cb:​cutie_outside.jpeg?​400 |}}
-**TBA**+
  
 ===== Concluzii ===== ===== Concluzii =====
-**TBA** 
  
 +Odata cu finalizarea proiectului,​ am realizat ca am dobandit un set foarte util de cunostinte in programarea pe microprocesoare,​ atat pe partea software, cat si pe partea hardware. Am fost nevoit sa exersez mult lipitul de fire, a trebuit sa ma asigur ca fac conexiunile in mod corect si sigur si am invatat sa folosesc un datasheet pentru a intelege mai bine cum functioneaza o componenta sau un modul. Per total, a fost o experienta placuta din care am avut mult de invatat, si sunt convins ca experienta dobandita imi va fi folositoare in viitor.
 ===== Download ===== ===== Download =====
  
-**TBA** +<note tip>​Arhiva contine fisierul ​**.ino** in care se regaseste codul pentru proiect, dar si diagrama bloc si schema electrica.</​note>​ 
 +Arhiva proiect: {{:​pm:​prj2023:​cb:​seif_rfid.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
-**TBA**+Ca si jurnal, atasez niste poze care reprezinta milestone-uri in implementarea proiectului,​ mai mult partea de hardware, intrucat partea software a fost modificata mereu in paralel.
  
 +=== More Poze ===
 +<​note>​Lipirea primilor pin pe modului RFID (**no do-overs!!**)</​note>​
 +{{ :​pm:​prj2023:​cb:​first_pins.jpeg?​ 250x300 |}}
 +<​note>​Primul prototip functional</​note>​
 +{{ :​pm:​prj2023:​cb:​first_prototype.jpeg?​500 |}}
 +<​note>​Work in progress construind cutia</​note>​
 +{{ :​pm:​prj2023:​cb:​wip.jpeg?​500 |}}
 +<​note>​Pimul montaj al tuturor componentelor</​note>​
 +{{ :​pm:​prj2023:​cb:​door1.jpeg?​300 |}}
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-**TBA**+===Resurse Hardware === 
 +  ​[[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|ATmega 328P Datasheet]] 
 +  ​[[https://​www.nxp.com/​docs/​en/​data-sheet/​MFRC522.pdf|MFRC522 Datasheet]] 
 +  ​[[https://​upload.wikimedia.org/​wikipedia/​commons/​c/​c9/​Pinout_of_ARDUINO_Board_and_ATMega328PU.svg|Arduino Uno Pinout Diagram]] 
 +  ​[[https://​www.makerspaces.com/​how-to-solder/​|Soldering for begginers]]
  
 +===Resurse Software ===
 +  * [[https://​github.com/​miguelbalboa/​rfid|MFRC522 RFID Sensor Library]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​tutorial/​biti|Lucrul cu registrele la nivel de bit]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2023|Laboratorul 2: Intreruperi]]
 <​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>​
pm/prj2023/drtranca/seif_rfid.1684589944.txt.gz · Last modified: 2023/05/20 16:39 by ioan.popescu3108
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