Πώς να δημιουργήσετε ένα αντίγραφο ενός κλειδιού για μια ενδοεπικοινωνία στο σπίτι. Απλός αντιγραφή κλειδιού ενδοεπικοινωνίας Do-it-yourself Αντιγραφή κλειδιού ενδοεπικοινωνίας Do-it-yourself

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

Κλειδιά ενδοεπικοινωνίας που θα συνδέσουμε στο Arduino (μερικές φορές ονομάζονται iButtonή Αγγίξτε Μνήμη), διαβάζονται και γράφονται μέσω διασύνδεσης 1 καλωδίου μονού καλωδίου. Επομένως, το διάγραμμα σύνδεσης είναι πολύ απλό. Χρειαζόμαστε μόνο μερικά καλώδια και μια αντίσταση έλξης 2,2 kOhm. Το διάγραμμα σύνδεσης φαίνεται στο σχήμα.

Το συναρμολογημένο κύκλωμα μπορεί να μοιάζει κάπως έτσι:


2 Ανάγνωση του αναγνωριστικού κλειδιού iButtonχρησιμοποιώντας Arduino

Υπάρχουν έτοιμες βιβλιοθήκες για να λειτουργεί το Arduino με τη διεπαφή 1 καλωδίου. Μπορείτε να χρησιμοποιήσετε, για παράδειγμα, αυτό. Κατεβάστε το αρχείο και αποσυσκευάστε το σε έναν φάκελο /βιβλιοθήκες/, που βρίσκεται στον κατάλογο Arduino IDE. Τώρα μπορούμε να δουλέψουμε με αυτό το πρωτόκολλο πολύ απλά.

Ας ανεβάσουμε αυτό το σκίτσο στο Arduino με τον τυπικό τρόπο:

Σκίτσο ανάγνωσης του κλειδιού iButton χρησιμοποιώντας το Arduino(επεκτείνεται) #include OneWire iButton(10); // Δημιουργήστε ένα αντικείμενο 1-wire στον ακροδέκτη 10 ρύθμιση κενού (κενό) ( Serial.begin(9600); ) void loop(void) (καθυστέρηση (1000); // καθυστέρηση 1 δευτερολέπτου byte adr; // πίνακας για την αποθήκευση δεδομένων κλειδιού εάν (!iButton.search(addr)) ( // εάν το κλειδί δεν είναι συνδεδεμένο Serial.println("Δεν έχει συνδεθεί κλειδί..."); // αναφέρετε αυτήν την επιστροφή; // και διακόπτετε το πρόγραμμα ) Serial.print("Key: "); for(int i=0; i )

Αυτό το σκίτσο δείχνει τον αριθμό κλειδιού για την ενδοεπικοινωνία, η οποία είναι συνδεδεμένη στο κύκλωμα. Αυτό χρειαζόμαστε τώρα: πρέπει να μάθουμε τον αριθμό του κλειδιού που θέλουμε να κάνουμε ένα αντίγραφο. Ας συνδέσουμε το Arduino στον υπολογιστή. Ας ξεκινήσουμε την οθόνη σειριακής θύρας: Εργαλεία Παρακολούθηση σειριακής θύρας(ή τη συντόμευση πληκτρολογίου Ctrl+Shift+M).

Τώρα ας συνδέσουμε το κλειδί στο κύκλωμα. Η οθόνη θύρας θα εμφανίσει τον αριθμό κλειδιού. Ας θυμηθούμε αυτόν τον αριθμό.


Και εδώ είναι η ανταλλαγή που συμβαίνει σε μια γραμμή μονού καλωδίου κατά την ανάγνωση του αναγνωριστικού κλειδιού (περισσότερες λεπτομέρειες παρακάτω):

Το σχήμα, φυσικά, δεν δείχνει όλες τις λεπτομέρειες υλοποίησης. Επομένως, στο τέλος του άρθρου επισυνάπτω ένα διάγραμμα χρονισμού σε μορφή *.logicdata, που λαμβάνεται με χρήση λογικού αναλυτή και προγράμματος Saleae Logic Analyzerκαι της αποκάλυψε. Το πρόγραμμα είναι δωρεάν και μπορείτε να το κατεβάσετε από την επίσημη ιστοσελίδα του Saleae. Για να ανοίξετε το αρχείο *.logicdata πρέπει να εκτελέσετε το πρόγραμμα, πατήστε Ctrl+O ή στο μενού Επιλογές(βρίσκεται πάνω δεξιά) επιλέξτε το στοιχείο Άνοιγμα λήψης/ρύθμισης.

3 Εγγραφή αναγνωριστικού κλειδιού Ντάλαςχρησιμοποιώντας Arduino

Τώρα ας γράψουμε ένα σκίτσο για την εγγραφή δεδομένων στη μνήμη του κλειδιού iButton.

Σκίτσο γραφής ενός κλειδιού iButton χρησιμοποιώντας το Arduino(επεκτείνεται) #include // συνδέστε τη βιβλιοθήκη const int pin = 10; // Δηλώστε τον αριθμό pin OneWire iButton(pin); // δηλώνουμε το αντικείμενο OneWire στη 10η ακίδα // αριθμό κλειδιού που θέλουμε να γράψουμε στο iButton: byte key_to_write = ( 0x01, 0xF6, 0x75, 0xD7, 0x0F, 0x00, 0x00, 0x9A ); ρύθμιση κενού (κενό) ( Serial.begin(9600); pinMode(pin, OUTPUT); ) void loop(void) (καθυστέρηση (1000); // καθυστέρηση για 1 δευτερόλεπτο iButton.reset(); // επαναφορά συσκευής καθυστέρηση 1-wire(50); iButton.write(0x33); // αποστολή δεδομένων byte της εντολής "read"? // πίνακας για την αποθήκευση βασικών δεδομένων iButton.read_bytes(data, 8); // διαβάστε τα συνημμένα δεδομένα κλειδιού, 8x8=64 bit εάν (OneWire::crc8(data, 7) != δεδομένα) ( // ελέγξτε το άθροισμα ελέγχου του συνημμένου κλειδιού Serial.println("Σφάλμα CRC!"); // εάν το CRC δεν είναι σωστό, αναφέρουμε αυτήν την επιστροφή· // και διακόπτουμε το πρόγραμμα) εάν (δεδομένα & δεδομένα & δεδομένα & δεδομένα & δεδομένα & δεδομένα & δεδομένα & δεδομένα == 0xFF) (επιστροφή; // εάν το κλειδί είναι δεν είναι συνδεδεμένο με τον αναγνώστη, διακόψτε το πρόγραμμα και περιμένετε, όσο θα επισυναφθεί) Serial.print("Έναρξη προγραμματισμού..."); // ξεκινήστε τη διαδικασία εγγραφής δεδομένων στο κλειδί για (int i = 0; i ) // Εκκίνηση εγγραφής δεδομένων στο κλειδί iButton: void send_programming_impulse() ( digitalWrite(pin, HIGH); καθυστέρηση(60); digitalWrite (pin, LOW); καθυστέρηση(5); digitalWrite(pin, HIGH); καθυστέρηση(50); }

Μην ξεχάσετε να ορίσετε τον αριθμό του αρχικού κλειδιού σας στον πίνακα κλειδί_για_εγγραφήπου μάθαμε νωρίτερα.

Ας ανεβάσουμε αυτό το σκίτσο στο Arduino. Ανοίξτε την οθόνη σειριακής θύρας (Ctrl+Shift+M). Ας συνδέσουμε ένα κλειδί στο κύκλωμα, το οποίο θα είναι κλώνος του αρχικού κλειδιού. Η οθόνη σειριακής θύρας θα εμφανίσει ένα αντίστοιχο μήνυμα σχετικά με το αποτέλεσμα του προγραμματισμού.

Εάν αυτό το σκίτσο δεν λειτούργησε, δοκιμάστε να αντικαταστήσετε τον κωδικό μετά Serial.print ("Έναρξη προγραμματισμού...")και μέχρι το τέλος της λειτουργίας βρόχος()στο επόμενο:

Πρόσθετο σκίτσο γραφής κλειδιού iButton με χρήση Arduino(επεκτείνεται) καθυστέρηση (200); iButton.skip(); iButton.reset(); iButton.write(0x33); // ανάγνωση του τρέχοντος αριθμού κλειδιού Serial.print("ID πριν από την εγγραφή:"); για (byte i=0; i<8; i++){ Serial.print(" "); Serial.print(iButton.read(), HEX); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD1); // команда разрешения записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); // выведем ключ, который собираемся записать: Serial.print("Writing iButton ID: "); for (byte i=0; i<8; i++) { Serial.print(key_to_write[i], HEX); Serial.print(" "); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD5); // команда записи for (byte i=0; i<8; i++) { writeByte(key_to_write[i]); Serial.print("*"); } Serial.print("\n"); iButton.reset(); iButton.write(0xD1); // команда выхода из режима записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); Serial.println("Success!"); delay(10000);

Εδώ είναι η λειτουργία writeByte()θα είναι ως εξής:

int writeByte(byte δεδομένα) ( int data_bit; for(data_bit=0; data_bit<8; data_bit++) { if (data & 1) { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } else { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } data = data >> 1; ) επιστροφή 0; )

Είναι άσκοπο να εμφανίζεται ένα διάγραμμα χρόνου λειτουργίας του σκίτσου εγγραφής του αναγνωριστικού κλειδιού, γιατί Είναι μακρύ και δεν χωράει στην εικόνα. Ωστόσο, επισυνάπτω το αρχείο *.logicdata για το πρόγραμμα λογικού αναλυτή στο τέλος του άρθρου.

Τα κλειδιά ενδοεπικοινωνίας διατίθενται σε διάφορους τύπους. Αυτός ο κωδικός δεν είναι κατάλληλος για όλα τα κλειδιά, αλλά μόνο για RW1990 ή RW1990.2. Ο προγραμματισμός πλήκτρων άλλου τύπου μπορεί να οδηγήσει σε αστοχία του κλειδιού!

Εάν θέλετε, μπορείτε να ξαναγράψετε το πρόγραμμα για διαφορετικό τύπο κλειδιού. Για να το κάνετε αυτό, χρησιμοποιήστε την τεχνική περιγραφή του τύπου κλειδιού σας (φύλλο δεδομένων) και αλλάξτε το σκίτσο σύμφωνα με την περιγραφή. Λήψη φύλλου δεδομένων για τα κλειδιά iButtonμπορείτε να βρείτε στο παράρτημα του άρθρου.

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

4 Περιγραφή μονού σύρματος 1-Wire interface

Ας ρίξουμε μια πιο προσεκτική ματιά στη διεπαφή One-wire. Στην οργάνωση, είναι παρόμοιο με τη διεπαφή I2C: πρέπει επίσης να περιέχει μια κύρια συσκευή που ξεκινά την ανταλλαγή, καθώς και μία ή περισσότερες εξαρτημένες συσκευές. Όλες οι συσκευές είναι συνδεδεμένες σε έναν κοινό δίαυλο. Οι συσκευές iButton είναι πάντα σκλάβοι. Ο κύριος πιο συχνά είναι ένας μικροελεγκτής ή ένας υπολογιστής. Ο ρυθμός μεταφοράς δεδομένων είναι 16,3 kbit/sec. Το λεωφορείο σε κατάσταση αδράνειας βρίσκεται στο λογικό "1" (HIGH). Αυτό το πρωτόκολλο παρέχει μόνο 5 τύπους σημάτων:

  • επαναφορά παλμού (κύριος)
  • παρόρμηση παρουσίας (σκλάβος)
  • bit γραφής "0" (κύριο)
  • γραφή bit "1" (κύριο)
  • διαβάστε λίγο (κύριος)
Με εξαίρεση τον παλμό παρουσίας, όλα τα άλλα παράγονται από τον κύριο. Η ανταλλαγή γίνεται πάντα σύμφωνα με το ακόλουθο σχήμα: 1) Αρχικοποίηση 2) ​​Εντολές για εργασία με ROM 3) Εντολές για εργασία με PROM 4) Μεταφορά δεδομένων.

1) Αρχικοποίηση

Η εκκίνηση συνίσταται στο γεγονός ότι ο κύριος ρυθμίζει την κατάσταση επαναφοράς RESET (για χρόνο 480 μs ή περισσότερο μειώνει τη γραμμή στο "0" και στη συνέχεια την απελευθερώνει και λόγω της αντίστασης έλξης η γραμμή ανεβαίνει στο "1 ” κατάσταση), και η υποτελής όχι αργότερα από 60 µs μετά από αυτό πρέπει να επιβεβαιώσει την παρουσία, χαμηλώνοντας επίσης τη γραμμή στο "0" για 60…240 μs και στη συνέχεια απελευθερώνοντάς την:


2) Εντολές για εργασία με ROM

Εάν δεν φθάσει σήμα επιβεβαίωσης μετά τον παλμό αρχικοποίησης, ο κύριος επαναλαμβάνει τη δημοσκόπηση διαύλου. Εάν έχει φτάσει το σήμα επιβεβαίωσης, ο κύριος κατανοεί ότι υπάρχει μια συσκευή στο δίαυλο που είναι έτοιμη για ανταλλαγή και της στέλνει μία από τις τέσσερις εντολές 8-bit για να λειτουργήσει με τη ROM:

(*) Παρεμπιπτόντως, υπάρχουν αρκετές οικογένειες συσκευών iButton, μερικές από αυτές παρατίθενται στον παρακάτω πίνακα.

Κωδικοί οικογένειας συσκευών iButton(Γυρνάει ανάποδα)
Κωδικός οικογένειαςΣυσκευές iButtonΠεριγραφή
0x01DS1990A, DS1990R, DS2401, DS2411Μοναδικός σειριακός αριθμός-κλειδί
0x02DS1991Ασφαλής EEPROM πολλαπλών κλειδιών, 1152 bit
0x04DS1994, DS24044 kB NV RAM + ρολόι, χρονοδιακόπτης και ξυπνητήρι
0x05DS2405Μονό διευθυνσιοδοτούμενο κλειδί
0x06DS19934 kB NV RAM
0x08DS19921 kB NV RAM
0x09DS1982, DS25021 kB PROM
0x0ADS199516 kB NV RAM
0x0BDS1985, DS250516 kB EEPROM
0x0CDS199664 kB NV RAM
0x0FDS1986, DS250664 kB EEPROM
0x10DS1920, DS1820, DS18S20, DS18B20αισθητήρας θερμοκρασίας
0x12DS2406, DS24071 kB EEPROM + διευθυνσιοδοτούμενο κλειδί δύο καναλιών
0x14DS1971, DS2430A256 bit EEPROM και 64 bit PROM
0x1ADS1963L4 kB NV RAM + μετρητής κύκλου εγγραφής
0x1CDS28E04-1004 kB EEPROM + διευθυνσιοδοτούμενο κλειδί δύο καναλιών
0x1DDS24234 kB NV RAM + εξωτερικός μετρητής
0x1FDS2409Διευθυνσιοδοτούμενο κλειδί δύο καναλιών με δυνατότητα εναλλαγής στο δίαυλο επιστροφής
0x20DS2450Τετρακάναλο ADC
0x21DS1921G, DS1921H, DS1921ZΘερμοχρόνιος αισθητήρας με λειτουργία λήψης δεδομένων
0x23DS1973, DS24334 kB EEPROM
0x24DS1904, DS2415Ρολόι πραγματικού χρόνου
0x26DS2438Αισθητήρας θερμοκρασίας, ADC
0x27DS2417Ρολόι πραγματικού χρόνου με διακοπή
0x29DS2408Αμφίδρομη θύρα εισόδου/εξόδου 8 bit
0x2CDS2890Ψηφιακό ποτενσιόμετρο μονού καναλιού
0x2DDS1972, DS24311 kB EEPROM
0x30DS2760Αισθητήρας θερμοκρασίας, αισθητήρας ρεύματος, ADC
0x37DS197732 kB με κωδικό πρόσβασης EEPROM
0x3ADS2413Διευθυνσιοδοτούμενος διακόπτης διπλής σύνδεσης
0x41DS1922L, DS1922T, DS1923, DS2422Υψηλής ανάλυσης θερμοχρόνιοι και υγροχρόνιοι αισθητήρες με λειτουργία λήψης δεδομένων
0x42DS28EA00Ψηφιακό θερμόμετρο με προγραμματιζόμενη ανάλυση, σειριακή λειτουργία και προγραμματιζόμενες θύρες I/O
0x43DS28EC2020 kB EEPROM

Τα δεδομένα μεταδίδονται διαδοχικά, bit-bit. Η μετάδοση κάθε bit ξεκινά από την κύρια συσκευή. Κατά την εγγραφή, ο παρουσιαστής χαμηλώνει τη γραμμή στο μηδέν και την κρατά. Εάν ο χρόνος διατήρησης της γραμμής είναι 1…15 μs, τότε γράφεται το bit "1". Εάν ο χρόνος διατήρησης είναι 60 μs ή μεγαλύτερος, γράφεται το bit "0".

Η ανάγνωση bits ξεκινά επίσης από το master. Στην αρχή της ανάγνωσης κάθε bit, ο κύριος θέτει το λεωφορείο χαμηλά. Εάν ο slave θέλει να στείλει ένα "0", κρατά το λεωφορείο στην κατάσταση LOW για ένα χρονικό διάστημα από 60 έως 120 μs, και εάν θέλει να στείλει ένα "1", τότε για περίπου 15 μs. Μετά από αυτό, ο slave απελευθερώνει τη γραμμή και λόγω της αντίστασης pull-up επιστρέφει στην κατάσταση HIGH.

Για παράδειγμα, αυτό είναι το διάγραμμα χρονισμού της εντολής αναζήτησης Search ROM (0xF0). Οι εντολές εγγραφής bit σημειώνονται με κόκκινο χρώμα στο διάγραμμα. Δώστε προσοχή στη σειρά των bit κατά τη μετάδοση μέσω 1-Wire: το πιο σημαντικό bit βρίσκεται στα δεξιά, το λιγότερο σημαντικό bit βρίσκεται στα αριστερά.


3) Εντολές για εργασία με EEPROM

Πριν εξετάσετε τις εντολές για την εργασία με το iButton PROM, είναι απαραίτητο να πούμε λίγα λόγια για τη δομή της μνήμης dongle. Η μνήμη χωρίζεται σε 4 ίσα τμήματα: τρία από αυτά προορίζονται για την αποθήκευση τριών μοναδικών κλειδιών και το τέταρτο είναι για προσωρινή αποθήκευση δεδομένων. Αυτό το προσωρινό buffer χρησιμεύει ως ένα είδος πρόχειρου όπου προετοιμάζονται δεδομένα για εγγραφή κλειδιών.


Υπάρχουν 6 εντολές για εργασία με το EPROM:

ΟνομαΟμάδαΣκοπός
Εγγραφή σε προσωρινή προσωρινή μνήμη (Write Scratchpad)0x96Χρησιμοποιείται για την εγγραφή δεδομένων σε ένα προσωρινό buffer (scratchpad).
Ανάγνωση από την προσωρινή προσωρινή μνήμη (Ανάγνωση του Scratchpad)0x69Χρησιμοποιείται για την ανάγνωση δεδομένων από ένα προσωρινό buffer.
Αντιγραφή από προσωρινό buffer (Αντιγραφή Scratchpad)0x3CΧρησιμοποιείται για τη μεταφορά δεδομένων που έχουν προετοιμαστεί σε μια προσωρινή προσωρινή μνήμη στο επιλεγμένο κλειδί.
Γράψτε τον κωδικό πρόσβασης0x5AΧρησιμοποιείται για την καταγραφή του κωδικού πρόσβασης και του μοναδικού αναγνωριστικού του επιλεγμένου κλειδιού (ένα από τα τρία).
Γράψτε το δευτερεύον κλειδί0x99Χρησιμοποιείται για την απευθείας εγγραφή δεδομένων στο επιλεγμένο κλειδί (παρακάμπτοντας την προσωρινή προσωρινή μνήμη).
Κλειδί ανάγνωσης (Ανάγνωση δευτερεύοντος κλειδιού)0x66Χρησιμοποιείται για την ανάγνωση των δεδομένων του επιλεγμένου κλειδιού.

4) Μεταφορά δεδομένων

Συνεχίζεται...

5 Πιθανά λάθηκατά τη σύνταξη του σκίτσου

1) Εάν παρουσιαστεί σφάλμα κατά τη σύνταξη του σκίτσου WConstants.h: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος #include "WConstants.h",στη συνέχεια, ως επιλογή, ακολουθεί στο αρχείο OneWire.cppαντικαταστήστε το πρώτο μπλοκ μετά τα σχόλια με το εξής:

#περιλαμβάνω #περιλαμβάνω εξωτερικό "C" (#περιλαμβάνω #περιλαμβάνω }

2) Εάν εμφανιστεί κάποιο σφάλμα κατά τη μεταγλώττιση Η κλάση OneWire δεν έχει μέλος με όνομα read_bytes,Στη συνέχεια, βρείτε και δοκιμάστε να χρησιμοποιήσετε μια άλλη βιβλιοθήκη για εργασία με τη διεπαφή OneWire.

Καλό απόγευμα Κάπως βαρέθηκα να πληρώνω 150 ρούβλια για ένα αντίγραφο του κλειδιού ενδοεπικοινωνίας και αποφάσισα να φτιάξω ένα απλό, οικονομικό αντιγραφικό iButton στο Arduino. Οι τιμές για τέτοιες έτοιμες συσκευές είναι τσιμπημένες, αν και έχουν ευρύτερη λειτουργικότητα και αντιγράφουν σχεδόν τα πάντα, συμπεριλαμβανομένων των ασύρματων dongles. Η απλή αντιγραφή του πλήκτρου iButton a la “button” είναι αρκετό για μένα. Ενδιαφέρων? Χρησιμοποιήστε το "cut"!

Ας ξεκινήσουμε λοιπόν! Αρχικά, «τεχνικές προδιαγραφές», τι πρέπει να μπορεί να κάνει αυτή η συσκευή;:
1) Διαβάστε τα περιεχόμενα του κλειδιού, αναρωτιέμαι τι είναι συνδεδεμένο εκεί.
2) Αντιγράψτε τα πλήκτρα, όσο περίεργο κι αν ακούγεται :)
3) Αναβοσβήνει το πλήκτρο "Universal". Με τη λέξη "καθολική" εννοούμε οποιοδήποτε από τα δικά σας κλειδιά, τα οποία θα καταγράφονται από προεπιλογή.

UPD. Πολύ σημαντικό!Εάν το πρώτο byte, ο οικογενειακός κωδικός, είναι 00 , Για παράδειγμα 00 :12:34:56:AB:CD:EF: Α.Α., τότε μετά το υλικολογισμικό το κλειδί θα "πεθάνει", δεν θα διαβαστεί από αυτόν τον προγραμματιστή, και πιθανώς από άλλους. Αποκαλύφθηκε εμπειρικά, χάρη στον φίλο 16: AB: CD: EF: E0 με φυσικά εσφαλμένο άθροισμα ελέγχου Ε0. Εφόσον το άθροισμα ελέγχου είναι λανθασμένο, η ενδοεπικοινωνία αγνοεί αυτήν τη σειρά κατά την ανάγνωση. Αυτή η ενδοσυνεννόηση κατέστρεψε όλα τα επανεγγράψιμα κλειδιά ενώ καταλάβαινα τι συνέβαινε και γιατί τα δεδομένα στα πλήκτρα άλλαζαν «από μόνα τους». Ως αποτέλεσμα, δεν ήταν δυνατό να δημιουργήσω ένα αντίγραφο για αυτήν την ενδοεπικοινωνία, έπρεπε να πάω σε έναν οργανισμό εξυπηρέτησης και να παραγγείλω ένα κλειδί για 100 ρούβλια. :)


Ως αποτέλεσμα, παίρνουμε κάτι χρήσιμο στο νοικοκυριό για γελοία χρήματα, πουλάνε "κενά" για εγγραφή, αν και εδώ μπορείτε να τα βρείτε εκτός σύνδεσης για 30 ρούβλια το κάθε ένα και από φωτοαντιγραφικά στην αγορά για 100 - 150 ρούβλια :).
UPD.Διαβάστε για το ποιοι τύποι πλήκτρων μπορούν να εγγραφούν με αυτόν τον αντιγραφέα. Ευχαριστώ για τη βοήθειά σου, σύντροφε.
UPD.Εάν το κλειδί δεν είναι γραμμένο, ακολουθήστε τον σύντροφο. Σχεδιάζετε να αγοράσετε +191 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +95 +184

Καλημέρα σε όλους!
Θα ήθελα να παρουσιάσω στην προσοχή σας ένα αντιγραφικό (αντιγραφικό) κλειδιών ενδοεπικοινωνίας.
Το φωτοαντιγραφικό μπορεί να διαβάζει/εγγράφει σε ένα μπρελόκ ή κάρτα.
Ήθελα από καιρό να δοκιμάσω μια φθηνή συσκευή για την αντιγραφή κλειδιών ενδοεπικοινωνίας. Και τώρα έφτασε αυτή η στιγμή, οπότε ας ξεκινήσουμε.

Η παραγγελία έφτασε σε 3 εβδομάδες.

Κλειδιά ενδοεπικοινωνίας. Ένα μικρό εκπαιδευτικό πρόγραμμα.

Τα κλειδιά είναι:

  • Επικοινωνία. Επίσημο όνομα Touch memory (συντομ. TM) ή iButton
(δηλαδή πρέπει να εφαρμόζονται στον αναγνώστη)
Αυτά περιλαμβάνουν:

Ντάλας.

Στις περισσότερες περιπτώσεις, το TM αναφέρεται σε ένα οικογενειακό κλειδί Dallas (για παράδειγμα, DS1990A). Πολλές συσκευές λειτουργούν με αυτά τα κλειδιά: Vizit, Eltis, Z-5R, S2000-2, κ.λπ.

Cyfral.

Αυτές οι ενδοεπικοινωνίες λειτουργούν μόνο με κλειδιά DC2000A και Tsifral-KP1.

Μετακομ.

Τα κλειδιά K1233KT2 έχουν αναπτυχθεί για αυτές τις ενδοεπικοινωνίες. Αυτά τα πλήκτρα είναι επίσης κατάλληλα για πολλούς άλλους ελεγκτές.

Αντιστασιακός.

Υπάρχουν εξωτικές ενδοεπικοινωνίες που λειτουργούν με πλήκτρα αντίστασης. Αντί για κώδικα, διαβάζεται αντίσταση από αυτά. Χωρίς αμφιβολία, πρόκειται για πλήκτρα επαφής, αλλά δεν θα τα ονόμαζα μνήμη αφής.
  • Ανεπαφικά. Η επίσημη ονομασία είναι RFID.
(απλώς πρέπει να μεταφερθούν στον αναγνώστη σε απόσταση 2-3 cm).

Διατίθεται με τη μορφή καρτών, μπρελόκ, βραχιολιών κ.λπ. Τα κοινά ονόματα είναι «κάρτες» και «σταγόνες» (μπρελόκ). Τα κλειδιά που λειτουργούν έως 10-15 cm ονομάζονται Proximity (μικρής εμβέλειας) και τα κλειδιά που λειτουργούν έως 1 m ονομάζονται Vicinity (μεγάλης εμβέλειας). Οι ενδοεπικοινωνίες χρησιμοποιούν αποκλειστικά κλειδιά εγγύτητας και αυτός ο όρος έχει γίνει σχεδόν συνώνυμος με το «κλειδί χωρίς επαφή».

Στον κόσμο του Proximity δεν υπάρχει επίσης ενότητα μορφών:

EM-Marin

η πιο δημοφιλής μορφή σήμερα.

HID

γέροντας ανάμεσα σε κλειδιά χωρίς επαφή.

MIFARE

πολλά υποσχόμενη μορφή. Αυτό περιλαμβάνει ανέπαφες έξυπνες κάρτες.

Αυτή η συσκευή προορίζεται ΑΠΟΚΛΕΙΣΤΙΚΑ για την αντιγραφή ανεπαφικών κλειδιών με συχνότητα 125KHz.
Δεν μπορούν να αντιγραφούν άλλα κλειδιά.

Περιεχόμενα δέματος:






Περιεχόμενα παράδοσης:

- Φωτοαντιγραφικό κάρτας ταυτότητας RFID 125KHz EM4100.
- επανεγγράψιμα μπρελόκ 6 τεμ.
- επανεγγράψιμες κάρτες 6 τεμ.
- οδηγίες (Αγγλικά-Κινέζικα).
Δεν περιλαμβάνονται μπαταρίες AAA.

Εμφάνιση της συσκευής:






Εσωτερικά της συσκευής:










Η συσκευή βρίσκεται στη θέση ενεργοποίησης:


(το κόκκινο φως είναι αναμμένο, που σημαίνει ότι η συσκευή είναι ενεργοποιημένη)

Βασικά εσωτερικά:


Οδηγίες:




  • Διαδικασία αντιγραφής:
1. Τοποθετήστε δύο μπαταρίες AAA.
2. Ενεργοποιήστε τον διακόπτη εναλλαγής που βρίσκεται στη δεξιά πλευρά (η κόκκινη ένδειξη με την επιγραφή POWER ανάβει και εκπέμπονται δύο σύντομα μπιπ).
3. Φέρνουμε την κάρτα ή το μπρελόκ στην αριστερή πλευρά, στο επίπεδο της επιγραφής POWER.
4. Πατήστε το κουμπί «READ». Σε απόκριση, ο αντιγραφέας θα ηχήσει 2 φορές και το πράσινο LED με την επιγραφή "PASS" θα ανάψει.
5. Αφαιρέστε την κάρτα ή το μπρελόκ από το οποίο διαβάστηκε η ετικέτα.
6. Φέρνουμε την επανεγγράψιμη κάρτα ή μπρελόκ στο φωτοαντιγραφικό. Πατήστε το κουμπί «ΕΓΓΡΑΦΗ». Το κίτρινο LED με την επιγραφή BUSY θα ανάψει για λίγο και πάλι θα ακουστεί ένα διπλό τρίξιμο. Μπορείτε να χρησιμοποιήσετε το νέο μπρελόκ ή κάρτα.

Βίντεο από τη διαδικασία ανάγνωσης και γραφής:

Συμπέρασμα.

Όλα λειτουργούν υπέροχα.Εάν πρέπει να δημιουργήσετε πολλά αντίγραφα κλειδιών RFID 125KHz, μπορείτε να τα αγοράσετε με ασφάλεια, ειδικά επειδή το σετ περιλαμβάνει 6 μπρελόκ και 6 κάρτες και η μέση τιμή για ένα αντίγραφο είναι 100 ρούβλια, τα οφέλη είναι προφανή. Εάν ξεμείνετε από μπρελόκ ή κάρτες στο Διαδίκτυο, μπορείτε να τα αγοράσετε για περίπου 20 ρούβλια.
Πριν αγοράσετε αυτήν τη συσκευή, σας συνιστώ να μάθετε τη συχνότητα και τον τύπο του κλειδιού σας, διαφορετικά θα πετάξετε χρήματα.

Εάν σας άρεσε η κριτική ή σας βοήθησε στην επιλογή μιας συσκευής, κάντε της ένα like, αυτή είναι η καλύτερη ανταμοιβή σας για τη δουλειά μου.
Σας ευχαριστώ όλους για την προσοχή σας!

Το προϊόν παρασχέθηκε για σύνταξη κριτικής από το κατάστημα. Η αναθεώρηση δημοσιεύτηκε σύμφωνα με την ρήτρα 18 των Κανόνων Ιστοσελίδας.

Σκοπεύω να αγοράσω +88 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +44 +83

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

Τα ηλεκτρονικά από αυτή την άποψη είναι πιο αξιόπιστα και εάν είναι καλά προστατευμένα ηλεκτρικά, μπορούν να διαρκέσουν αρκετά.

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

Πώς λειτουργεί και λειτουργεί ένας αντιγραφέας

Ποια μοντέλα και τύποι αντιγραφέων κλειδιών υπάρχουν;

Όλοι οι αντιγραφείς κλειδιών ενδοεπικοινωνίας που είναι διαθέσιμοι στη φύση μπορούν να ταξινομηθούν σε τρεις διαφορετικούς τύπους:

  1. Προγραμματιστές για να αναβοσβήνουν τα πλήκτρα ανέπαφων tmd.
  2. Αντιγραφείς για τη δημιουργία αντιγράφων των κλειδιών ενδοεπικοινωνίας επαφών.
  3. Ένας γενικός τύπος αντιγραφέων που μπορούν να ανανεώσουν κάθε τύπο τσιπ ενδοεπικοινωνίας.

Κάθε ένας από αυτούς τους τύπους συσκευών έχει τις δικές του τροποποιήσεις.

Ανεπαφικοί αντιγραφείς

Ανάμεσά τους υπάρχουν τρεις τροποποιήσεις των συσκευών.

Η πρώτη τροποποίηση περιλαμβάνει προγραμματιστές που κάνουν το πρότυπο αναγνώρισης ραδιοσυχνοτήτων EM-Marin, HID και Indala (tmd duplicators), η δεύτερη - αυτοί που υποστηρίζουν το πρότυπο Mifare, η τρίτη τροποποίηση των αντιγραφέων λειτουργεί με κλειδιά του προτύπου TECH-KOM ή TKRF.

Συσκευές τύπου επαφής

Οι συσκευές διατίθενται σε δύο τύπους. Ο πρώτος τύπος έχει σχεδιαστεί για να λειτουργεί με πλήκτρα τύπου επαφής Ντάλας, ενώ ο δεύτερος τύπος προγραμματιστή αντιγράφει κλειδιά του τύπου ή.

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

Συσκευές προγραμματισμού γενικών κλειδιών

Οι πολλαπλές αντιγραφές κλειδιών ενδοεπικοινωνίας γενικής χρήσης, εκτός από το γεγονός ότι μπορούν να δημιουργήσουν ένα αντίγραφο οποιουδήποτε ψηφιακού τσιπ, έχουν μια σειρά από πρόσθετες λειτουργίες:

  • Δυνατότητα ενημέρωσης.
  • Διαθεσιμότητα βάσης μνήμης.
  • Δημιουργία κώδικα.

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

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

Η τρίτη λειτουργία σάς επιτρέπει να αναβοσβήνουν τα κλειδιά με αρχικούς κωδικούς, για παράδειγμα, για υπαλλήλους της εταιρείας, καθένας από τους οποίους πρέπει να έχει τον δικό του προσωπικό κωδικό πρόσβασης στην κλειδαριά. Στη συνέχεια, μπορείτε να παρακολουθείτε τον αριθμό των επισκέψεων σε ένα συγκεκριμένο αντικείμενο από ένα συγκεκριμένο άτομο.

Τι χρειάζεστε για να φτιάξετε το δικό σας αντιγραφικό κλειδιών ενδοεπικοινωνίας

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

Βάση στοιχείων που θα χρειαστεί για την κατασκευή της συσκευής:

  1. Ένας μικροελεγκτής τύπου Arduino Nano είναι ο κύριος «εγκέφαλος» της συσκευής, όπου γίνεται επεξεργασία πληροφοριών και καταγραφή δεδομένων.
  2. Πλακέτα RFID RC522, η οποία λειτουργεί ως μονάδα που διαβάζει κωδικούς και ανακατευθύνει πληροφορίες στον μικροελεγκτή.
  3. Βομβητής πιεζοηλεκτρικού τύπου;
  4. Δύο στοιχεία LED για την οθόνη.
  5. Δύο αντιστάσεις 330 Ohm.
  6. Τύπος μπλοκ πληκτρολογίου 4Χ4;
  7. Προσαρμογέας για οθόνη υγρών κρυστάλλων τύπου I2C (LCM1602), ο οποίος λειτουργεί ως μετατροπέας της οθόνης LCD σε μορφή συμβατή με το Arduino.
  8. Οθόνη υγρών κρυστάλλων τύπου LCD16X2BL.

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

Στη συνέχεια, τα καλώδια τροφοδοσίας παρέχονται στον προσαρμογέα οθόνης από τη μονάδα rf ID RC522: κόκκινο στην επαφή VCC (+) και μαύρο στην επαφή GND (κοινή). Τα καλώδια ελέγχου είναι κολλημένα στις επαφές SDA και SCL. Τα στοιχεία LED τοποθετούνται σε ζεύγη με αντιστάσεις περιορισμού ρεύματος.

Η αρχή των πλήκτρων που αναβοσβήνουν

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

Το κύκλωμα της συσκευής βασίζεται στη χρήση μη πτητικής μνήμης (με άλλα λόγια, ROM).

Μια ακολουθία συμβόλων ενός ψηφιακού μοναδικού κωδικού καταγράφεται σε μια τέτοια μνήμη.

Η αρχή της επανεγγραφής τέτοιων κλειδιών είναι ότι ο αντιγραφέας tmd διαβάζει τον κώδικα και τον αναδημιουργεί στην πλατφόρμα του κενού τσιπ.

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

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

Αυτό το συναρπαστικό σήμα θα είναι το σήμα που προέρχεται από την κεραία ενδοεπικοινωνίας ή τη συσκευή αναπαραγωγής. Διαφορετικά, η αρχή του τρόπου αντιγραφής ενός κώδικα στη μνήμη και η περαιτέρω αναπαραγωγή του δεν διαφέρουν από την αρχή λειτουργίας μιας συσκευής επαφής.

Η μόνη διαφορά είναι ότι οι προγραμματιστές μπορούν να κάνουν εγγραφή και αναπαραγωγή μόνο ενός συγκεκριμένου τύπου ψηφιακού σήματος. Η εξαίρεση είναι οι καθολικές συσκευές που μπορούν να προγραμματιστούν να λειτουργούν με οποιοδήποτε τύπο ψηφιακών δεδομένων.

συμπέρασμα

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

Αρχικά, μπορείτε να φτιάξετε ένα απλό φωτοαντιγραφικό κλειδιού ενδοεπικοινωνίας για τα πιο δημοφιλή "κενά".

Το πιο σημαντικό είναι ότι τέτοια κέρδη δεν απαιτούν μεγάλες επενδύσεις εκκίνησης και οι υπηρεσίες θα είναι πάντα σε ζήτηση, ειδικά στις μεγάλες πόλεις.

Βίντεο: Φτιάξτο μόνος σου αντιγραφέας κλειδιού ενδοεπικοινωνίας

Χρησιμοποιούνται αρκετά συχνά ως μέσο προστασίας των μπροστινών θυρών των σπιτιών από απρόσκλητους επισκέπτες.

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

Γιατί χρειάζεστε έναν αντιγραφέα κλειδιών;

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

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

Στο παγκόσμιο Διαδίκτυο υπάρχουν πολλά διαφορετικά έργα σχετικά με το πώς να χρησιμοποιήσετε το Arduino για να δημιουργήσετε μόνοι σας ένα αντίγραφο του κλειδιού στην ενδοεπικοινωνία. Το έργο δεν είναι τόσο δύσκολο όσο φαίνεται με την πρώτη ματιά.

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

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

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

Πώς να φτιάξετε ένα αντιγραφικό με βάση το Arduino

Για να δημιουργήσετε ένα αντίγραφο κλειδιών ενδοεπικοινωνίας στο Arduino Uno ή στο Nano, θα πρέπει να εκτελέσετε ξεχωριστή εργασία με το υλικό της μελλοντικής συσκευής και, στη συνέχεια, με το λογισμικό.

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

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

Ένα καλώδιο USB χρησιμοποιείται για τη σύνδεση της συσκευής στο τερματικό COM, καθώς και για την παροχή ρεύματος σε αυτήν. Στο σώμα του αντιγράφου κλειδιού θα πρέπει να εγκατασταθεί ένα κουμπί που δεν κλειδώνει, το οποίο θα χρησιμοποιείται σε περιπτώσεις όπου απαιτείται εναλλαγή μεταξύ των λειτουργιών «ανάγνωσης»/«εγγραφής»/«ανάκτησης».

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

Το ηλεκτρονικό κύκλωμα του μελλοντικού αντιγραφέα διακρίνεται για την απλότητά του. Περιλαμβάνει μια γραμμή ανταλλαγής δεδομένων 1 καλωδίου, στην οποία τροφοδοτείται ισχύς +5V μέσω τρανζίστορ, η ονομαστική τιμή του οποίου μπορεί να είναι 1÷4,5 kOhm.

Η καλύτερη επιλογή θα ήταν μια μέση τιμή αντίστασης 2,2 kOhm. Η λυχνία LED λειτουργίας συνδέεται μέσω μιας περιοριστικής αντίστασης της βέλτιστης τιμής. Το κουμπί διακόπτη λειτουργίας συνδέεται με τις ακίδες D2 και GND.

Μέρος λογισμικού

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

Ο υπόλοιπος κώδικας ξαναγράφεται για να ταιριάζει στις δικές σας ανάγκες, χρησιμοποιώντας την τυπική βιβλιοθήκη Arduino OneWire. Μπορείτε να γράψετε μόνοι σας ένα σκίτσο για τον προγραμματισμό της μονάδας Arduino που χρησιμοποιείται για τον αντιγραφέα κλειδιών ή να βρείτε μια έτοιμη έκδοση στο Διαδίκτυο που μπορεί να βελτιστοποιηθεί "για τον εαυτό σας".

Η δημιουργημένη και προγραμματισμένη ενότητα που βασίζεται στο Arduino θα επιτρέπει:

  1. διαβάστε από το αρχικό κλειδί το αναγνωριστικό του και στη συνέχεια ξαναγράψτε το σε ένα έτοιμο «κενό» κλειδί.
  2. σημειώστε το καθολικό αναγνωριστικό, το οποίο καθορίζεται στο σκίτσο.
  3. παρέχουν προστασία από τυχαία αντικατάσταση αναγνωριστικού με εσφαλμένη τιμή·
  4. ανάκτηση μη αναγνώσιμων κλειδιών μετά από εσφαλμένη εγγραφή ενός αναγνωριστικού.
  5. Εισαγάγετε τον αριθμό ταυτότητας με μη αυτόματο τρόπο.
  6. υποστήριξη λειτουργίας χωρίς τερματικό COM, με την προϋπόθεση ότι παρέχεται πηγή 5 V DC μέσω της υποδοχής USB.

Πώς να χρησιμοποιήσετε τη συσκευή

Ένας αντιγραφέας κλειδιού ενδοεπικοινωνίας do-it-yourself στο Arduino μπορεί να χρησιμοποιηθεί τόσο με όσο και χωρίς τερματικό COM. Για να εργαστείτε με το τερματικό COM, πρέπει πρώτα να εγκαταστήσετε τα κατάλληλα προγράμματα οδήγησης για την πλακέτα Arduino που χρησιμοποιείτε στον υπολογιστή σας.

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

Αφού ολοκληρωθούν οι ρυθμίσεις της συσκευής, θα πρέπει να συνδεθεί σε έναν προσωπικό υπολογιστή και να εκκινηθεί το τερματικό της θύρας COM. Η μονάδα Arduino θα επανεκκινήσει αυτόματα. Η ένδειξη LED θα αναβοσβήνει αρκετές φορές κατά τη διαδικασία εκκίνησης.

Αφού περάσουν μερικά δευτερόλεπτα μετά την ολοκλήρωση της λήψης, η συσκευή θα είναι έτοιμη για χρήση· η ενδεικτική λυχνία LED δεν θα ανάψει σε αυτήν την περίπτωση και θα εμφανιστεί ένα μήνυμα στο τερματικό που υποδεικνύει ότι το σύστημα είναι έτοιμο για χρήση.

Οι ακόλουθες εντολές θα είναι διαθέσιμες στον χρήστη μέσω του τερματικού:

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

Διαβάζοντας το κλειδί

Για να δημιουργήσετε ένα αντίγραφο κλειδιών ενδοεπικοινωνίας στο Arduino, πρέπει πρώτα να αντιγράψετε το αναγνωριστικό ID από το αρχικό κλειδί. Για να διαβάσετε το κλειδί, πρέπει να το συνδέσετε στο pad επαφής της συσκευής.

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

Για την αποθήκευση ενός κωδικού ID, χρησιμοποιούνται 8 bit, τα οποία εμφανίζονται σε έναν εξαψήφιο κωδικό.

Γράψε το κλειδί

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

Μετά από αυτό, πρέπει να συνδέσετε το εγγράψιμο κλειδί στο πληκτρολόγιο επαφής. Αυτή τη στιγμή, η λυχνία LED θα σβήσει και μετά από λίγα δευτερόλεπτα θα αρχίσει να αναβοσβήνει σε υψηλή συχνότητα, η οποία θα υποδεικνύει την πρόοδο της διαδικασίας εγγραφής.

Με την ολοκλήρωση της διαδικασίας επανεγγραφής αναγνωριστικού, η συσκευή θα μεταβεί αυτόματα στη λειτουργία ανάγνωσης. Αφού η συσκευή εισέλθει σε λειτουργία ανάγνωσης, θα μπορείτε να δείτε το νέο αναγνωριστικό που εγγράφηκε στο τερματικό.

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

Χάρη σε αυτό, η συσκευή προστατεύει το κλειδί ενδοεπικοινωνίας από την εγγραφή εσφαλμένων πληροφοριών σε αυτό.

Ανάκτηση ενός μη αναγνώσιμου κλειδιού

Για να επαναφέρετε ένα μη αναγνώσιμο κλειδί ενδοεπικοινωνίας, πρέπει να αλλάξετε τη συσκευή στην κατάλληλη λειτουργία, χρησιμοποιώντας μια ειδική εντολή στο τερματικό COM ή κρατώντας πατημένο το κουμπί στον μπροστινό πίνακα της συσκευής. Στη συνέχεια, θα πρέπει να συνδέσετε το κλειδί στο pad επαφής.

Εάν είναι λειτουργικό και ο κωδικός ID μπορεί να διαβαστεί από αυτό, τότε αυτό θα συμβεί όπως στην κανονική λειτουργία ανάγνωσης, μετά την οποία θα εμφανιστεί το αντίστοιχο 16-ψήφιο αναγνωριστικό στο τερματικό. Εάν το κλειδί δεν διαβαστεί, τότε, κατά συνέπεια, καμία διαδικασία δεν θα εφαρμοστεί πλήρως και ο κωδικός δεν θα εμφανιστεί στο τερματικό.

Σε αυτήν την περίπτωση, πρέπει να κρατήσετε το κλειδί που είναι συνδεδεμένο στο πληκτρολόγιο επαφής και να πατήσετε το κουμπί της συσκευής. Χάρη σε αυτή τη διαδικασία, θα πραγματοποιηθεί μια αναγκαστική καταγραφή του καθολικού αναγνωριστικού που ήταν προηγουμένως καταχωρημένο στο σκίτσο.

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

Άλλες λειτουργίες

Φόρτωση του καθολικού κωδικού ταυτότητας στο buffer. Αυτή η διαδικασία μπορεί να πραγματοποιηθεί εκτελώντας την κατάλληλη εντολή στο τερματικό ή κατά την επανεκκίνηση της συσκευής, εάν το καθολικό αναγνωριστικό καταχωρήθηκε στο σκίτσο.

Η αντιγραφή των κλειδιών ενδοεπικοινωνίας Arduino μπορεί να γίνει χωρίς το πρωτότυπο. Για να γίνει αυτό, αρκεί να γνωρίζετε το αναγνωριστικό του, το οποίο είναι γραμμένο στο μηδέν και χρησιμοποιείται ως καθολικός κωδικός.

Η συσκευή παρέχει τη δυνατότητα μη αυτόματης εισαγωγής ενός αναγνωριστικού αναγνωριστικού. Για να το κάνετε αυτό, πρέπει να ορίσετε την κατάλληλη εντολή στο τερματικό, μετά την εκτέλεση της οποίας μπορείτε να εισαγάγετε οποιονδήποτε κωδικό ID σε 16ψήφια μορφή.

συμπέρασμα

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

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

Βίντεο: Απλός αντιγραφέας πλήκτρων ενδοεπικοινωνίας στο Arduino Nano