Hardcore «do it yourself» - η είσοδος στο λειτουργικό σύστημα NFC χάρτη
Φτιάξτο μόνος σου / / December 19, 2019
Μέχρι τώρα, οι χρήστες του δημοφιλούς desktop λειτουργικά συστήματα δεν έχουν καμία άλλη δυνατότητα στην είσοδο λειτουργικό σύστημα, εκτός από τον κωδικό πρόσβασης. Φτάνει να το αντέξει! Ήρθε η ώρα για να πάρει ένα κολλητήρι και να κάνει τη διαδικασία ελέγχου ταυτότητας μπορεί να συγκριθεί σε απλότητα με χαϊδεύοντας τη γάτα της.
Σήμερα στην κατηγορία DIY, θα μοιραστούμε peeped στο Instructables τρόπος για να εισάγετε έναν κωδικό πρόσβασης για να συνδεθείτε με το λειτουργικό σύστημα χρησιμοποιώντας NFC-κάρτα.
Βήμα 1: Λεπτομέρειες
Χρειαζόμαστε:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC κάρτα (έρχεται πλήρης με Adafriut NFC Shield)
- ένα μικρό κομμάτι σύρμα
- ένα κοφτερό μαχαίρι
- συγκόλλησης
- εργαλείο για την κοπή και την απογύμνωση καλωδίων
- υπολογιστή
- καλώδιο micro-USB
Βήμα 2: σίδηρος
Η διαδικασία για τη δημιουργία μιας μονάδας του υλικού είναι πολύ απλή.
Η μόνη τροποποίηση που απαιτείται για λειτουργία της συσκευής είναι να σπάσει τη σύνδεση μεταξύ πείρου και πείρου IRQ 2. Για αυτό το πρακτικό μαχαίρι.
Στη συνέχεια θα πρέπει να συνδέσετε το IRQ και 6 καρφίτσες με ένα καλώδιο γεφύρωσης.
Ελέγξτε την απουσία / παρουσία μιας επαφής, μπορείτε να χρησιμοποιήσετε ένα πολύμετρο, και για μια σαφέστερη κατανόηση της διαδικασίας κατασκευής και Leonardo NFC-μονάδα προσφορά εδώ αυτό το σύντομο βίντεο. Τα πάντα φαίνεται βήμα προς βήμα και πολύ ξεκάθαρα:
Βήμα 3: Λογισμικό
Παρακάτω είναι ο κώδικας που πρέπει να συμπληρωθούν Arduino. Πριν από την έναρξη της λήψης θα πρέπει να βεβαιωθείτε ότι η βιβλιοθήκη Adafruit NFC. Διαβάστε περισσότερα για αυτό εδώ.
#include
#include
#define IRQ 6 // αυτό το ίχνος πρέπει να είναι κομμένα και rewired!
#define ΕΠΑΝΑΦΟΡΑ 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET)?
//////////////////////////////////// ΡΥΘΜΙΣΗ
void ρύθμισης () {
// συσταθεί Serial βιβλιοθήκη στα 9600 bps
Serial.begin (9600)?
// βρείτε Adafruit RFID / NFC ασπίδα
nfc.begin ()?
uint32_t versiondata = nfc.getFirmwareVersion ()?
if (! versiondata) {
Serial.print ( «Δεν βρήκατε PN53x συμβούλιο»)?
ενώ (1)? // σταματήσει
}
// Got ok δεδομένων, να το τυπώσετε έξω!
Serial.print ( «Βρέθηκαν ΡΝ5 chip»)? Serial.println ((versiondata >> 24) και 0xFF, HEX)?
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) και 0xFF, ΔΕΚ)?
Serial.print ( '')? Serial.println ((versiondata >> 8) και 0xFF, ΔΕΚ)?
// συμβούλιο ρυθμίσετε για να διαβάσετε τις ετικέτες RFID
NFC. SAMConfig ()?
Keyboard.begin ()? // κίνηση του πληκτρολογίου
}
/////////////////////////////////// LOOP
ανυπόγραφο ψηφίο = 0?
void βρόχο () {
uint8_t επιτυχία?
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}? // Ρυθμιστικό να αποθηκεύσετε το επέστρεψε UID
uint8_t uidLength? // Μήκος της UID (4 ή 7 bytes ανάλογα με τον τύπο της κάρτας ISO14443A)
// αναμονή για την κάρτα RFID για να εμφανιστούν!
Serial.println ( «Αναμονή για μια κάρτα ISO14443A ...»)?
// περιμένουμε για ένα τύπο ISO14443A κάρτες (Mifare, κλπ). Όταν κάποιος βρίσκεται
// «uid» θα πρέπει να συμπληρωθεί με το UID και uidLength θα δείξει
// αν το uid είναι 4 bytes (Mifare Classic) ή 7 bytes (Mifare Ultralight)
επιτυχία = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength)?
uint32_t cardidentifier = 0?
εάν (επιτυχία) {
// Βρέθηκε μια κάρτα!
Serial.print ( «ανιχνεύθηκε κάρτα #»)?
// γυρίστε το UID τέσσερα byte ενός mifare κλασικό σε μια ενιαία μεταβλητή #
cardidentifier = uid [3]?
cardidentifier << = 8? cardidentifier | = uid [2]?
cardidentifier << = 8? cardidentifier | = uid [1]?
cardidentifier << = 8? cardidentifier | = uid [0]?
Serial.println (cardidentifier)?
εάν (cardidentifier == 606061173) {
Keyboard.write ( 'm')?
Keyboard.write ( 'y')?
Keyboard.write ( 'Μ')?
Keyboard.write ( 'a')?
Keyboard.write ( 's')?
Keyboard.write ( 's')?
Keyboard.write ( 'νν')?
Keyboard.write ( 'o')?
Keyboard.write ( 'R')?
Keyboard.write ( 'd')?
καθυστέρηση (5000)? // φροντίζει ο κωδικός πρόσβασης δεν επαναλαμβάνεται
}
}
}
Μόλις φορτωθεί ο κώδικας, ανοίξτε το σειριακό σετ μόνιτορ σε 9600 baud. Ένα δεύτερο δίσκο NFC-κάρτα στον αναγνώστη και αφαίρεση. Η οθόνη θα πρέπει να εμφανίσει ένα μήνυμα «Κάρτα ανιχνεύεται #card αριθμό». Αντικαταστήστε «cardidentifier ==» έλαβε αριθμό του τρέχοντος αριθμού της κάρτας στη γραμμή.
Τώρα αλλάξετε το τμήμα του κώδικα που είναι υπεύθυνη για τον κωδικό πρόσβασης. Όπως μπορείτε να δείτε, ο προεπιλεγμένος κωδικός πρόσβασης είναι ένας συνδυασμός του «mypassword». Αντικαταστήστε το με την τρέχουσα είσοδο με τον κωδικό πρόσβασης στο λειτουργικό σύστημα (ο αριθμός των χαρακτήρων του κωδικού πρόσβασης έχει αλλάξει από την απλή προσθήκη / out γραμμές με την ομάδα «Keyboard.write).
Η επανεκκίνηση του τελικού κώδικα στο Arduino, και τώρα, ακριβώς τη στιγμή που θα φέρει αυτή την κάρτα στο NFC-αναγνώστη, ο κωδικός πρόσβασης θα πρέπει να εισαχθεί αμέσως στο πεδίο εισαγωγής. Πατήστε Enter και χαίρονται.
Στις παρατηρήσεις για το έργο βρήκε έναν άνθρωπο ο οποίος προσφέρθηκε να συμπληρώσουν τις σειρές των κωδικό εισόδου εντολή τελικό Keyboard.write (KEY_RETURN)? να εξαλείψει την ανάγκη να πατήστε Enter, αλλά η απόφαση αυτή δεν έχει επαληθευτεί.