Πίνακας περιεχομένων:

Ηλεκτρονικό πορτοφόλι: 3 βήματα
Ηλεκτρονικό πορτοφόλι: 3 βήματα

Βίντεο: Ηλεκτρονικό πορτοφόλι: 3 βήματα

Βίντεο: Ηλεκτρονικό πορτοφόλι: 3 βήματα
Βίντεο: Ανάληψη με ηλεκτρονικό πορτοφόλι 2024, Ιούνιος
Anonim
Ηλεκτρονικό πορτοφόλι
Ηλεκτρονικό πορτοφόλι

ΣΗΜΕΙΩΣΗ: Τώρα έχω Instructables που προσφέρουν κώδικα Arduino για τα RC522 και PN532.

Στην προηγούμενη ανάρτησή μου περιέγραψα λεπτομερώς τα βασικά για την επικοινωνία με τις μονάδες RFID MFRC522 και PN532 για ανάγνωση/εγγραφή δεδομένων από ετικέτες Mifare Classic 1k. Σε αυτήν την ανάρτηση το πάω ένα βήμα παραπέρα και δείχνω πώς να χρησιμοποιήσετε αυτές τις ενότητες για να δημιουργήσετε ένα ηλεκτρονικό πορτοφόλι από τις ετικέτες. Όπως και με την προηγούμενη ανάρτηση, αυτό παρουσιάζεται ως βασική εφαρμογή, αλλά θα πρέπει να αποτελέσει τη βάση για μια ποικιλία εφαρμογών που απαιτούν λειτουργίες αύξησης/μείωσης ή καταμέτρησης.

Βήμα 1: Ακεραιότητα δεδομένων

Για ένα ηλεκτρονικό πορτοφόλι υπάρχει πάντα μια ανησυχία ότι κάποιος μπορεί να προσθέσει πιστώσεις χωρίς να πληρώσει για αυτά. Υπάρχει επίσης μια ανησυχία ότι οι πιστώσεις στην ετικέτα μπορεί να καταστραφούν κατά λάθος κατά τη διάρκεια της εγγραφής δεδομένων. Οι προσβάσεις δεδομένων απαιτούν χρήση του κλειδιού ετικέτας, επομένως είναι απαραίτητο να αλλάξετε το προεπιλεγμένο κλειδί κατά την πρώτη προετοιμασία της ετικέτας. Υπάρχουν άρθρα στο διαδίκτυο που μιλούν για το πώς να χακάρεις μια ετικέτα ακόμα κι αν δεν ξέρεις το κλειδί αλλά η τεχνική δεν είναι ασήμαντη. Δεν θα συνιστούσα τη χρήση αυτών των ετικετών για τον τραπεζικό σας λογαριασμό, αλλά είναι αρκετά καλές για πολλές λιγότερο επικίνδυνες εφαρμογές.

Η πιθανότητα καταστροφής δεδομένων είναι σχετικά μικρή, αλλά το λογισμικό θα πρέπει να είναι σε θέση να χειριστεί τουλάχιστον τη βασική περίπτωση. Αυτή η διαδικασία περιλαμβάνει δύο βήματα με το πρώτο βήμα για την απλή ανίχνευση της διαφθοράς. Σε αυτό το έργο που αντιμετωπίζεται με την αποθήκευση τόσο της πιστωτικής αξίας όσο και του συμπληρώματος 1 της πιστωτικής αξίας. Αυτό επιτρέπει μια απλή σύγκριση των τιμών. Το δεύτερο βήμα είναι να αποθηκεύσετε μια εφεδρική έκδοση τόσο της πιστωτικής αξίας όσο και του συμπληρώματός της. Αυτό επιτρέπει μια λειτουργία ανάκτησης εάν καταστραφεί το πρώτο σύνολο πιστώσεων. Εάν και τα δύο σύνολα είναι κατεστραμμένα, τότε το λογισμικό επιχειρεί να εκκινήσει εκ νέου την ετικέτα, με αποτέλεσμα την απώλεια όλων των πιστώσεων.

Βήμα 2: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Οι συνδέσεις υλικού εμφανίζονται στο παραπάνω διάγραμμα. Αυτή είναι η ίδια ρύθμιση με την προηγούμενη ανάρτηση με την προσθήκη δύο διακοπτών και αντίστασης έλξης. Ένας διακόπτης δεν απαιτεί αντίσταση έλξης επειδή βρίσκεται σε μια είσοδο PIC που έχει ενσωματωμένη ασθενή ικανότητα έλξης. Στην πράξη και οι δύο διακόπτες θα ήταν κρυμμένοι επειδή χρησιμοποιούνται για την προσθήκη πιστώσεων και για την προετοιμασία μιας ετικέτας. Ο διακόπτης προετοιμασίας είναι προαιρετικός (για μηδενισμό μη αυτόματης πίστωσης) επειδή το λογισμικό μπορεί να εντοπίσει και να προετοιμάσει μια νέα ετικέτα από μόνο του. Αντί για διακόπτες θα μπορούσαν να χρησιμοποιηθούν πείροι βραχυκυκλωτήρων.

Βήμα 3: Λογισμικό

Προσθήκες στον κύριο βρόχο του λογισμικού έγιναν για να επιτρέπεται η ανάγνωση των δύο διακοπτών και ο εντοπισμός μιας κατάστασης που απαιτεί προετοιμασία ετικετών. Όπως αναφέρεται στην ενότητα υλικού, η προετοιμασία ετικετών μπορεί να εντοπιστεί χειροκίνητα με έναν διακόπτη. Το λογισμικό μπορεί επίσης να διατάξει την προετοιμασία μιας ετικέτας σε δύο άλλες περιπτώσεις. Πρώτον, αν εντοπίσει μια νέα ετικέτα ή τομέα δεδομένων και δεύτερον, εάν και τα δύο σύνολα πιστωτικών δεδομένων είναι κατεστραμμένα.

Ο έλεγχος ταυτότητας των ετικετών απαιτεί τη χρήση του "κλειδιού Α" για τον τομέα δεδομένων προορισμού. Το προεπιλεγμένο κλειδί για τις ετικέτες Mifare Classic 1k είναι "FF FF FF FF FF FF" αλλά θα πρέπει να αλλάξει για την εφαρμογή σας. Το λογισμικό παρέχει ορισμούς τόσο για το προεπιλεγμένο κλειδί όσο και για ένα νέο κλειδί ("My_Key"). Απλώς συνδέστε όποιες τιμές θέλετε στο "My_Key". Το λογισμικό προσπαθεί πάντα να ελέγξει πρώτα την ετικέτα χρησιμοποιώντας το "My_Key". Εάν αυτό αποτύχει, τότε καλείται η ρουτίνα για την προετοιμασία της ετικέτας και το προεπιλεγμένο κλειδί χρησιμοποιείται για έλεγχο ταυτότητας. Η ρουτίνα προετοιμασίας αλλάζει το κλειδί σε "My_Key" και ορίζει τις πιστώσεις στο μηδέν. Εάν έχετε μια ετικέτα με μη προεπιλεγμένο κλειδί και δεν γνωρίζετε τι είναι, τότε η ετικέτα δεν μπορεί να πιστοποιηθεί. Εάν συμβεί αυτό, ίσως θελήσετε να ελέγξετε άλλους τομείς δεδομένων χρησιμοποιώντας το προεπιλεγμένο κλειδί για να δείτε εάν είναι διαθέσιμος. Το μπλοκ τρέιλερ, το μπλοκ δεδομένων και τα εφεδρικά μπλοκ ορίζονται όλα στην αρχή της λίστας λογισμικού, ώστε να μπορείτε εύκολα να τα αλλάξετε.

Η μορφή των δεδομένων που είναι αποθηκευμένα στην ετικέτα για αυτήν την εφαρμογή χρησιμοποιεί μόνο θετικούς αριθμούς (δεν επιτρέπονται ελλείμματα) και οι τιμές αποθηκεύονται ως τέσσερα byte συσκευασμένου BCD (Δυαδικό κωδικοποιημένο δεκαδικό). Αυτό επιτρέπει εύρος πίστωσης από 0 έως 99, 999, 999 (δύο ψηφία ανά byte). Η πιστωτική αξία και το συμπλήρωμά της 1 χρησιμοποιούν μόνο 8 από τα 16 byte σε ένα μπλοκ δεδομένων και τα υπόλοιπα είναι γεμάτα μηδενικά. Υπάρχει χώρος στο ίδιο μπλοκ δεδομένων για το αντίγραφο ασφαλείας, αλλά αποφάσισα ότι θα ήταν ασφαλέστερο να τοποθετήσω το αντίγραφο ασφαλείας σε ξεχωριστό μπλοκ δεδομένων. Το εφεδρικό μπλοκ βρίσκεται στον ίδιο τομέα με το μπλοκ δεδομένων, επομένως δεν απαιτείται ξεχωριστός έλεγχος ταυτότητας. Για να είστε ακόμα πιο ασφαλείς, ίσως σκεφτείτε να βάλετε το αντίγραφο ασφαλείας σε διαφορετικό τομέα δεδομένων, αλλά τότε θα χρειαστεί ένα ξεχωριστό βήμα ελέγχου ταυτότητας για πρόσβαση σε αυτά τα δεδομένα.

Όταν γίνεται ανάγνωση των πιστωτικών μονάδων, διαβάζεται επίσης η συμπληρωματική τιμή και στη συνέχεια τα δύο συγκρίνονται μεταξύ τους. Εάν υπάρχει αναντιστοιχία, τότε το αντίγραφο ασφαλείας της τιμής/συμπληρώματος διαβάζεται και συγκρίνεται. Εάν ταιριάζουν τότε το αντίγραφο ασφαλείας θεωρείται σωστό και χρησιμοποιείται για την επιδιόρθωση των κατεστραμμένων δεδομένων. Εάν τα εφεδρικά αντίγραφα δεν ταιριάζουν, τότε η ετικέτα θεωρείται κακή και γίνεται προσπάθεια επανεκκίνησης της.

Οι τιμές αύξησης και μείωσης ορίζονται κοντά στο μπροστινό μέρος της λίστας και αναμένεται να είναι συσκευασμένες σε BCD. Οι ρουτίνες που κάνουν την αύξηση και τη μείωση αποτελεσματικά το κάνουν σε έναν αριθμό 32-bit. Τα μαθηματικά είναι πολύ απλά, αλλά απαιτούν τη χρήση ρουτίνας για την προσαρμογή των αποτελεσμάτων για μεταφορές σε κάθε συσκευασμένο byte BCD και από το ένα byte στο άλλο. Αυτό επιτυγχάνεται με τη χρήση μακροεντολών DAA (Προσθήκη δεκαδικής προσαρμογής) και DAS (Δεκαδική προσαρμογή αφαίρεσης). Αυτές οι μακροεντολές διασφαλίζουν ότι κάθε ψηφίο 4-bit BCD παραμένει πάντα στο εύρος 0-9.

Εκτός από τα μηνύματα εμφάνισης στην προηγούμενη ανάρτηση, αυτή η εφαρμογή έχει μηνύματα για πολλά από τα επιπλέον βήματα - ιδιαίτερα εάν υπάρχουν σφάλματα δεδομένων και/ή η ετικέτα πρέπει να διορθωθεί ή να προετοιμαστεί. Οι πιστώσεις εμφανίζονται επίσης πριν και μετά από ένα βήμα αύξησης/μείωσης, ώστε να μπορείτε να δείτε τις τιμές να αλλάζουν.

Αυτά για αυτήν την ανάρτηση. Ρίξτε μια ματιά στα άλλα μου έργα ηλεκτρονικής στη διεύθυνση: www.boomerrules.wordpress.com

Συνιστάται: