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

Κλείδωμα πόρτας Arduino RFID: 5 βήματα (με εικόνες)
Κλείδωμα πόρτας Arduino RFID: 5 βήματα (με εικόνες)

Βίντεο: Κλείδωμα πόρτας Arduino RFID: 5 βήματα (με εικόνες)

Βίντεο: Κλείδωμα πόρτας Arduino RFID: 5 βήματα (με εικόνες)
Βίντεο: RFID door lock स्मार्ट लॉक 2024, Νοέμβριος
Anonim
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID
Κλείδωμα πόρτας Arduino RFID

*** Ενημερώθηκε 8/9/2010 *** Iθελα να κάνω έναν εύκολο και ασφαλή τρόπο για να μπω στο γκαράζ μου. Το RFID ήταν ο καλύτερος τρόπος για να ξεκλειδώσω την πόρτα μου, ακόμη και με γεμάτα χέρια μπορώ να ξεκλειδώσω την πόρτα και να την σπρώξω! Δημιούργησα ένα απλό κύκλωμα με ένα βασικό τσιπ arduino ATMega 168 και έναν αναγνώστη RFID ID-20 για τον έλεγχο μιας ηλεκτρονικής κλειδαριάς πόρτας. Το κύκλωμα αποτελείται από 3 ξεχωριστά μέρη, ένα Reader για να διαβάζει ετικέτες RFID, ένα Controller για να δέχεται δεδομένα από τον αναγνώστη και να ελέγχει την έξοδο του LED RGB και το κλείδωμα πόρτας Electric. Το κλείδωμα της πόρτας εγκαθίσταται πρώτα σε μια πόρτα και δοκιμάζεται με μπαταρία 9v για να διασφαλιστεί η σωστή εγκατάσταση. Στις περισσότερες περιπτώσεις θέλετε ένα κανονικά ανοιχτό κύκλωμα στην κλειδαριά της πόρτας ή Fail Secure. Αυτό σημαίνει ότι η πόρτα παραμένει κλειδωμένη όταν δεν περνά ρεύμα από αυτήν. Όταν το 12vDC διέρχεται από τον ηλεκτρομαγνήτη στην κλειδαριά της πόρτας, μια πλάκα στην κλειδαριά υποχωρεί και επιτρέπει την πόρτα να ανοίξει ελεύθερα. Ο αναγνώστης τοποθετείται στο εξωτερικό της πόρτας και είναι ξεχωριστός από το χειριστήριο στο εσωτερικό, έτσι ώστε κανείς να μην μπορεί να παρακάμψει την ασφάλεια ανοίγοντας τον αναγνώστη και προσπαθώντας να βραχυκυκλώσει τον αναγνώστη. Ο ελεγκτής λαμβάνει σειριακά δεδομένα από τον αναγνώστη και ελέγχει το led RGB και το κλείδωμα πόρτας. Σε αυτήν την περίπτωση έχω βάλει και τα δύο σε ξεχωριστές πλάκες ψωμιού για δοκιμή. Εδώ είναι μια επισκόπηση βίντεο του συστήματος σε λειτουργία Διαβάστε παρακάτω για να δείτε πώς να δημιουργήσετε ένα για τον εαυτό σας! ** Ενημέρωση ** Όλοι οι σχεδιασμοί κώδικα, διαγράμματα και PCB έχουν δοκιμαστεί και βελτιωθεί. Είναι όλα αναρτημένα εδώ από τις 8/9/2010 Ενημερωμένο βίντεο του τελικού συστήματος που έχει εγκατασταθεί και λειτουργεί.

Βήμα 1: Απαιτούνται εξαρτήματα

Απαιτούμενα ανταλλακτικά
Απαιτούμενα ανταλλακτικά

Ακολουθεί μια λίστα με εξαρτήματα και συνδέσμους προς το SparkFun.com από όπου τα αγόρασα. Αυτό είναι το βασικό σύνολο εξαρτημάτων που χρειάζεστε για την κατασκευή και το arduino και ένα κύκλωμα για την ανάγνωση ετικετών RFID στο arduino. Υποθέτω ότι έχετε ήδη ένα breadboard, τροφοδοτικό και καλώδια σύνδεσης.

Arduino Stuff

ATmega168 με Arduino Bootloader 4,95 $

Κρύσταλλος 16MHz 1,50 $

Πυκνωτής κεραμικός 22pF 0,25 $ (x2)

Αντίσταση 10k Ohm 1/6th Watt PTH 0,25 $

Mini Push Button Switch 0,35 $

Triple Output LED RGB - Διάχυτο 1,95 $

Υλικά RFID

Οποιοδήποτε από αυτά, το 20 έχει καλύτερη εμβέλεια, το 12 είναι μικρότερο

RFID Reader Breakout 0,95 $

Break Away Headers - Ευθεία 2,50 $

Ετικέτα RFID - 125kHz 1,95 $

Αλλα

TIP31A τρανζίστορ (ραδιόφωνο/τοπικό κατάστημα ηλεκτρονικών ειδών 1,50 $)

Το Door Lock είναι από το ebay. Door Fail Ασφαλής έλεγχος πρόσβασης Electric Strike v5 ΟΧΙ 17,50 $ (kawamall, bay)

Βήμα 2: Δημιουργήστε το Arduino Controller

Δημιουργήστε το Arduino Controller
Δημιουργήστε το Arduino Controller
Δημιουργήστε το Arduino Controller
Δημιουργήστε το Arduino Controller
Δημιουργήστε το Arduino Controller
Δημιουργήστε το Arduino Controller

Το πρώτο βήμα για την κατασκευή μιας κλειδαριάς πόρτας RFID με ένα βασικό Arduino είναι η τοποθέτηση ενός βασικού arduino εργασίας. Τα περισσότερα τσιπ ATMega 168 προ-λάμψης Arduino συνοδεύονται από προεγκατεστημένο το προεπιλεγμένο πρόγραμμα αναλαμπής. Συνδέστε ένα LED στην ψηφιακή έξοδο 13 και βεβαιωθείτε ότι όλα λειτουργούν.

Το τμήμα υλικού αυτού του προγράμματος ανάγνωσης RFID θα ήταν πολύ απλό αν χρησιμοποιούσαμε ένα κανονικό arduino με ενσωματωμένο προγραμματιστή USB. Δεδομένου ότι σκοπεύω να το βάλω στον τοίχο και να μην το αγγίξω ξανά, δεν θέλω να χρησιμοποιήσω έναν μεγάλο ογκώδη πίνακα arduino αξίας $ 30, όταν μπορώ να αγοράσω ένα ATMega 168 $ 5 και να φτιάξω ένα πολύ μικρότερο προσαρμοσμένο PCB.

Επειδή επέλεξα να φτιάξω μόνος μου ένα βασικό κύκλωμα Arduino, χρειάζομαι έναν εξωτερικό προγραμματιστή USB-> Serial FDIT. Έχω συμπεριλάβει σχήματα Eagle του ελεγκτή με τροφοδοτικό κατασκευασμένο από ρυθμιστή τάσης 7805. Κατά τη δοκιμή χρησιμοποίησα τροφοδοτικό από μια σανίδα ψωμιού.

Για να τεθεί σε λειτουργία ένα arduino το μόνο που χρειάζεστε είναι το ATMega168 με το λογισμικό arduino να αναβοσβήνει, πυκνωτές 2x 22pF, κρύσταλλο 16 mhz, αντίσταση 10k ohm, κουμπί και ένα breadboard. Η σύνδεση για αυτό είναι γνωστή, αλλά έχω συμπεριλάβει ολόκληρο το σχήμα για το κύκλωμα.

Το arduino θα ενεργοποιήσει 4 εξόδους, 1 έκαστη για κόκκινα/πράσινα/μπλε LED και 1 για να ενεργοποιήσει το TIP31A για να στείλει 12vDC στην κλειδαριά της πόρτας. Το arduino λαμβάνει σειριακά δεδομένα στη γραμμή Rx από τον αναγνώστη RFID ID-20.

Βήμα 3: Δημιουργήστε τον αναγνώστη RFID

Δημιουργήστε τον αναγνώστη RFID
Δημιουργήστε τον αναγνώστη RFID
Δημιουργήστε τον αναγνώστη RFID
Δημιουργήστε τον αναγνώστη RFID
Δημιουργήστε τον αναγνώστη RFID
Δημιουργήστε τον αναγνώστη RFID

Τώρα που έχετε βάλει το ψωμί arduino και δουλεύετε, μπορείτε να συνδυάσετε το τμήμα ανάγνωσης RFID του κυκλώματος που θα περιέχει το ID-10 ή ID-20 και RGB LED για να υποδείξει την κατάσταση του κυκλώματος. Θυμηθείτε ότι ο αναγνώστης θα είναι έξω και χωριστός από τον ελεγκτή μέσα, έτσι ώστε κάποιος να μην μπορεί εύκολα να εισέλθει.

Για να το φτιάξουμε, θα στείλουμε 5v/Ground από την κύρια σανίδα ψωμιού σε μια δευτερεύουσα σανίδα ψωμιού στην οποία χτίζουμε το Reader. Στείλτε επίσης πάνω από 3 καλώδια από 3 ακίδες arduino εξόδου για να ελέγξετε το LED RGB, ένα για κάθε χρώμα. Ένα ακόμη καλώδιο, το Brown στις εικόνες, θα είναι μια σειριακή σύνδεση για το ID-20 για να μιλήσει με τη σειριακή είσοδο Rx του arduino. Αυτό είναι ένα πολύ απλό κύκλωμα για σύνδεση. Οι αντιστάσεις LED παίρνουν και μερικά σημεία στο ID-20 συνδέονται με τη γείωση/5v για να ορίσετε τη σωστή κατάσταση.

Για να διευκολύνετε το breadboard, το ID-10/ID-20 Sparkfun πωλεί έναν πίνακα Breakout που σας επιτρέπει να συνδέσετε μεγαλύτερες κεφαλίδες καρφιτσών που απέχουν μεταξύ τους για να χωρέσουν μια σανίδα ψωμιού. Αυτό το μέρος και τα pinheaders και παρατίθενται στη λίστα μερών.

Το σχήμα πρέπει να είναι στενό και εύκολο να ακολουθηθεί.

Βήμα 4: Πρόγραμμα

Timeρα να προγραμματίσετε το arduino σας. Αυτό μπορεί να είναι λίγο δύσκολο με τη χρήση ενός βασικού arduino, ίσως χρειαστεί να πατήσετε το κουμπί επαναφοράς πολλές φορές πριν και κατά τη διάρκεια του πρώτου μέρους της μεταφόρτωσης. Ένα πολύ σημαντικό πράγμα που πρέπει να θυμάστε, θα λάβετε ένα σφάλμα μεταφόρτωσης εάν δεν αποσυνδέσετε προσωρινά τη σειριακή γραμμή ID-20 στη γραμμή Rx του arduino. Το ATMega168 έχει μόνο 1 είσοδο Rx και το χρησιμοποιεί για να ανεβάσει κώδικα για να μιλήσει με τον προγραμματιστή. Αποσυνδέστε το ID-20 κατά τον προγραμματισμό και, στη συνέχεια, συνδέστε το ξανά όταν τελειώσετε. Χρησιμοποίησα έναν προγραμματιστή FTDI που σας επιτρέπει να προγραμματίσετε το arduino μέσω USB με μόνο 4 καλώδια. Το σχήμα Controller δείχνει μια σύνδεση κεφαλίδας pin για να σας επιτρέψει να την συνδέσετε απευθείας. Το Sparkfun πωλεί επίσης αυτό το μέρος, αλλά πολλοί μπορεί να το έχουν ήδη.

Μπορείτε εύκολα να ανεβάσετε τον κωδικό μου στο arduino σας και να μην κοιτάξετε ποτέ πίσω, αλλά τι είναι το διασκεδαστικό σε αυτό; Επιτρέψτε μου να εξηγήσω τη βασική ιδέα για το πώς λειτουργεί.

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

Το πρόγραμμα ανάβει το μπλε LED για να δείξει ότι είναι έτοιμο να διαβάσει μια νέα κάρτα. Όταν διαβάζεται η κάρτα, αποφασίζει εάν είναι έγκυρη κάρτα ή όχι συγκρίνοντας αυτό που διαβάζει με μια λίστα έγκυρων καρτών. Εάν ο χρήστης είναι έγκυρος, το arduino απενεργοποιεί το μπλε LED και ανάβει το πράσινο LED για 5 δευτερόλεπτα. Ενεργοποιεί επίσης μια άλλη υψηλή έξοδο για 5 δευτερόλεπτα. Αυτή η έξοδος συνδέεται με το τρανζίστορ TIP31A και επιτρέπει στο μικροσκοπικό arduino να ελέγχει μια πολύ μεγαλύτερη κλειδαριά πόρτας 12v 300mA χωρίς να καταστραφεί. Μετά από 5 δευτερόλεπτα το κλείδωμα της πόρτας ξανακλειδώνει και η λυχνία LED γίνεται ξανά μπλε για να περιμένει να διαβαστεί άλλη κάρτα. Εάν η κάρτα δεν είναι έγκυρη, τότε η λυχνία LED αλλάζει σε RED για μερικά δευτερόλεπτα και επιστρέφει σε μπλε για να περιμένετε άλλη κάρτα.

Είναι σημαντικό το κλείδωμα της πόρτας να εξακολουθεί να λειτουργεί ακόμα κι αν το arduino χάσει την τροφοδοσία από τη μια μέρα στην άλλη ή μηδενιστεί. Επομένως, όλα τα έγκυρα αναγνωριστικά κάρτας αποθηκεύονται στη μνήμη EEPROM. Το ATMega168 διαθέτει 512 Bytes μνήμης EEPROM. Κάθε κάρτα RFID έχει έναν σειριακό αριθμό 5 Hex Byte και ένα άθροισμα 1 Hex Byte Check που μπορούμε να χρησιμοποιήσουμε για να επαληθεύσουμε ότι δεν υπήρχαν σφάλματα στη μετάδοση μεταξύ του ID-20 και του arduino.

Οι έγκυρες κάρτες αποθηκεύονται στο EEPROM χρησιμοποιώντας το πρώτο Byte ως μετρητή. Για παράδειγμα, εάν υπάρχουν 3 έγκυρες κάρτες αποθηκευμένες, το πρώτο Byte στο EEPROM θα ήταν 3. EEPROM.read (0); = 3. Γνωρίζοντας αυτό και το γεγονός ότι κάθε ID έχει μήκος 5 Bytes γνωρίζουμε ότι το 1-5 είναι η κάρτα ένα, το 6-10 είναι η κάρτα 2 και το 11-15 είναι η κάρτα 3. Μπορούμε να κάνουμε έναν βρόχο που κοιτάζει μέσα από το EEPROM 5 bytes κάθε φορά και προσπαθεί να βρει την κάρτα που διαβάστηκε από τον αναγνώστη.

Πώς μπορούμε όμως να προσθέσουμε νέες κάρτες στο EEPROM μετά την εγκατάσταση του κυκλώματος;; Έχω διαβάσει σε μία από τις κάρτες RFID που έχω και την κωδικοποίησα σκληρά για να είναι η κύρια κάρτα RFID. Έτσι, ακόμη και αν σκουπιστεί ολόκληρο το EEPROM, η κύρια κάρτα θα εξακολουθήσει να λειτουργεί. Κάθε φορά που διαβάζεται μια κάρτα, ελέγχει πρώτα αν είναι η κύρια κάρτα, αν όχι, τότε συνεχίζει να βλέπει αν είναι έγκυρη κάρτα ή όχι. Εάν η κάρτα είναι η κύρια κάρτα, το arduino μπαίνει σε "λειτουργία προγραμματισμού" όπου αναβοσβήνει RGB και περιμένει να διαβαστεί άλλη έγκυρη ετικέτα. Η επόμενη ετικέτα που διαβάζεται προστίθεται στο επόμενο δωρεάν σημείο στο EEPROM και ο μετρητής αυξάνεται 1 εάν η κάρτα δεν υπάρχει ήδη στη μνήμη EEPROM. Ο αναγνώστης επιστρέφει στην κανονική λειτουργία και περιμένει να διαβαστεί μια νέα κάρτα.

Επί του παρόντος δεν έχω προγραμματίσει έναν τρόπο διαγραφής μιας κάρτας, καθώς οι λόγοι διαγραφής μιας κάρτας πιθανότατα θα ήταν να χαθεί ή να κλαπεί. Δεδομένου ότι αυτό πιθανότατα θα χρησιμοποιηθεί με 1-10 άτομα, το πιο εύκολο πράγμα που θα μπορούσατε να κάνετε είναι να προγραμματίσετε σκληρά μια κάρτα Master Erase που θα σκουπίσει όλες τις κάρτες από το EEPROM και στη συνέχεια θα τις προσθέσετε ξανά όλες, η οποία διαρκεί μόνο λίγα δευτερόλεπτα. Έχω προσθέσει κώδικα για να σκουπίσω το EEPROM, αλλά δεν έχω εφαρμόσει ακόμα αυτήν τη δυνατότητα. Το

Ο κώδικας επισυνάπτεται σε ένα αρχείο κειμένου μαζί με ένα αντίγραφο της λίστας μερών.

Βήμα 5: Αναπτύξτε

Αυτά είναι μόνο μερικά από τα υπέροχα πράγματα που μπορείτε να κάνετε με το RFID. Θα μπορούσατε να το επεκτείνετε πολύ περισσότερο με έξοδο LCD, καταγραφή του ποιος εισέρχεται και πότε, σύνδεση δικτύου/twitter κ.λπ. Σκοπεύω να φτιάξω μια τελική έκδοση PCB αυτού του κυκλώματος. Δεν έχω κάνει ποτέ PCB στο παρελθόν, οπότε εξακολουθώ να δουλεύω στο σχεδιασμό και τη διάταξη των εξαρτημάτων. Μόλις τα ολοκληρώσω θα τα δημοσιεύσω επίσης. Ενθαρρύνω οποιονδήποτε να πάρει τον κώδικα που έχω γράψει και να τον τροποποιήσει για να κάνει ακόμα πιο ωραία πράγματα!

Τελικός στο Διαγωνισμό Arduino

Συνιστάται: