Differences

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

Link to this comparison view

pm:prj2021:amocanu:terminal-plata-card [2021/06/02 14:24]
andrei.lazarescu00 [Terminal plata cu cardul]
pm:prj2021:amocanu:terminal-plata-card [2021/06/03 07:35] (current)
andrei.lazarescu00 [Rezultate Obținute]
Line 1: Line 1:
 ====== Terminal plata cu cardul ====== ====== Terminal plata cu cardul ======
 Autor: Lazarescu Andrei Autor: Lazarescu Andrei
 +
 Grupa: 335CC Grupa: 335CC
 ===== Introducere ===== ===== Introducere =====
Line 11: Line 12:
  
 Diagrama bloc: Diagrama bloc:
-{{ :​pm:​prj2021:​amocanu:​diagrama_bloc_pos.png?300 |}}+{{ :​pm:​prj2021:​amocanu:​untitled_diagram.jpg?300 |}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 19: Line 20:
   * LCD caractere   * LCD caractere
   * Numpad   * Numpad
-  * Reader NFC+  * Reader NFC (RFID-RC522)
   * Carduri NFC   * Carduri NFC
   * Alimentator   * Alimentator
 +
 +Arduino-ul comunica cu display-ul si cu raspberry pi-ul prin I2C, iar cu cititorul de carduri prin SPI. Raspberry pi-ul opereaza in modul slave.
 +Numpd-ul este conectat la pinii 2-7 si A0, A1. Acesta functioneaza multiplexand randurile si coloanele, astfel fiind posibil sa interactionam cu 16 butoane, utilizand numai 8 pini (conectati intr-o matrice de 4x4)
 +
 +==== Schema electrica ====
 +
 +{{chema_electrica_pos.png?​800|}}
 +
 +
 +===== Software Design =====
 +  * Tot codul pentru placa Arduino se află în fișierul Proiect_PM.ino,​ iar programul pentru raspberry pi in fisierul rpi.py
 +  * Codul Arduino este facut sub forma unui FSM. Acesta memoreaza in ce stadiu este actual si interactioneaza cu fiecare device cand si cum este necesar.
 +  * Codul de pe raspberry pi initializeaza device-ul ca un I2C slave pe adresa 0x13, apoi, la fiecare write, seteaza o variabila in memorie. Cand se trimit octetii 3, apoi 1, computer-ul face toate request-urile necesare la server
 +  * Stagiile programului arduino:
 +    - starting: Aici se initializeaza Arduino-ul;
 +    - write_iban: Afiseaza pe LCD UID-ul cardului apropiat. Acesta este un mod de debug, care nu e folosit in modul normal de operare;
 +    - select_iban:​ Aici se selecteaza destinatarul platilor
 +    - enter_amount:​ Aici se introduce suma tranzactiei
 +    - show_transaction:​ Aceasta stare doar afiseaza pe ecran detaliile tranzactiei
 +    - read_card: Aici se interactioneaza cu cititorul de carduri pentru a citi cardul
 +    - process_transaction:​ In aceasta stare se transmitplacii raspberry pi detaliile tranzactiei,​ iar aceasta face requesturile necesare la server
 +    - transaction_succesful:​ Acesta afiseaza un mesaj ca tranzactia a reusit si reinitializeaza variabilele la starea initiala.
 +
 +===== Rezultate Obținute =====
 +{{ :​pm:​prj2021:​amocanu:​pos_demo.jpg?​600 |}}
 +
 +==== Video ====
 +[[https://​youtu.be/​VbQcgUl0bH8 | Demo Video]]
 +
 +===== Concluzii =====
 +  * Am avut niste probleme cu modulul care citeste carduri, dar am reusit sa gasesc workarounds
 +  * Sunt fericit cu rezultatul final, dar as fi vrut sa am mai mult timp pentru a implementa niste functionalitati in plus
 +  * Am invatat o tona de lucruri noi, mai ales despre modul in care functioneaza modulele nfc
 +
 +===== Bibliografie/​Resurse =====
 +[[http://​abyz.me.uk/​rpi/​pigpio/​python.html#​bsc_i2c | I2C Slave Raspberry pi]]\\
 +[[https://​www.arduino.cc/​reference/​en/​libraries/​mfrc522/​ | Documentatie librarie NFC]]\\
 +[[https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​ | Documentatie librarie Display]]\\
 +[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​amocanu/​terminal-plata-card | Terminal plata cu cardul]]\\
 +[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​amocanu/​terminal-plata-card?​do=export_pdf | Document PDF]]
 +
 +<note important>​{{:​pm:​prj2021:​amocanu:​terminal-plata-card.zip|Codul pentru Arduino + Raspberry Pi}}</​note>​
 +
 +
 +
 +
pm/prj2021/amocanu/terminal-plata-card.1622633089.txt.gz · Last modified: 2021/06/02 14:24 by andrei.lazarescu00
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