Sommario:

Serratura RFID Arduino: 5 passaggi (con immagini)
Serratura RFID Arduino: 5 passaggi (con immagini)

Video: Serratura RFID Arduino: 5 passaggi (con immagini)

Video: Serratura RFID Arduino: 5 passaggi (con immagini)
Video: Domotica #6 - Serratura con codice numerico o chiavi RFID 2024, Luglio
Anonim
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino
Blocco porta RFID Arduino

***Aggiornato 8/9/2010*** Volevo creare un modo facile e sicuro per entrare nel mio garage. L'RFID era il modo migliore per sbloccare la mia porta, anche con le mani occupate posso sbloccare la porta e aprirla! Ho costruito un circuito semplice con un chip arduino ATMega 168 di base e un lettore RFID ID-20 per controllare una serratura elettronica. Il circuito è composto da 3 parti separate, un Reader per leggere i tag RFID, un Controller per accettare i dati dal lettore e controllare l'uscita del LED RGB e la serratura elettrica. La serratura della porta viene prima installata in una porta e testata con una batteria da 9 V per garantire una corretta installazione. Nella maggior parte dei casi si desidera un circuito normalmente aperto sulla serratura della porta o Fail Secure. Ciò significa che la porta rimane bloccata quando non viene attraversata da corrente. Quando 12vDC viene fatto passare attraverso l'elettromagnete nella serratura della porta, una piastra nella serratura cede e permette alla porta di essere aperta liberamente. Il lettore è posizionato all'esterno della porta ed è separato dal controller all'interno in modo che nessuno possa eludere la sicurezza aprendo il lettore e cercando di cortocircuitare il lettore. Il controller riceve i dati seriali dal Reader e controlla il led RGB e la serratura. In questo caso ho messo entrambi su breadboard separati per il test. Ecco una panoramica video del sistema in azione Continua a leggere per vedere come costruirne uno per te! **Aggiornamento** Tutto il codice, gli schemi e i progetti PCB sono stati testati e perfezionati. Sono tutti pubblicati qui a partire dal 8/9/2010 Video aggiornato del sistema finale installato e funzionante.

Passaggio 1: parti necessarie

Parti necessarie
Parti necessarie

Ecco un elenco di parti e collegamenti a SparkFun.com dove li ho acquistati. Questo è il set di base di parti necessarie per costruire e arduino e un circuito per leggere i tag RFID nell'arduino. Suppongo che tu abbia già una breadboard, alimentatore e cavi di collegamento.

Roba da Arduino

ATmega168 con Arduino Bootloader $4.95

Cristallo 16MHz $ 1,50

Condensatore ceramico 22pF $ 0,25 (x2)

Resistore 10k Ohm 1/6 di Watt PTH $ 0,25

Mini interruttore a pulsante $ 0,35

LED RGB a tripla uscita - Diffusa $ 1,95

Roba RFID

Uno di questi, 20 ha una portata migliore, 12 è più piccolo ID lettore RFID-12 $ 29,95 ID lettore RFID-20 $ 34,95

Breakout lettore RFID $ 0,95

Intestazioni Break Away - Dritto $2.50

Tag RFID - 125kHz $ 1,95

Altro

Transistor TIP31A (baracca radio/negozio di elettronica locale $ 1,50)

La serratura della porta è di ebay. Door Fail Controllo di accesso sicuro Electric Strike v5 NO $ 17,50 (kawamall, bay)

Passaggio 2: crea il controller Arduino

Costruisci il controller Arduino
Costruisci il controller Arduino
Costruisci il controller Arduino
Costruisci il controller Arduino
Costruisci il controller Arduino
Costruisci il controller Arduino

Il primo passo per costruire una serratura RFID con un Arduino di base è creare un arduino funzionante di base. La maggior parte dei chip ATMega 168 pre-flash di Arduino viene fornita con il programma blink predefinito preinstallato. Collegare un LED all'uscita digitale 13 e verificare che tutto funzioni.

La parte hardware di questo lettore RFID sarebbe troppo semplice se usassimo un normale arduino con programmatore USB integrato. Dato che ho intenzione di metterlo nel muro e non toccarlo di nuovo, non voglio usare una grande scheda arduino da $ 30 ingombrante quando posso acquistare un ATMega 168 da $ 5 e creare un PCB personalizzato molto più piccolo.

Poiché ho scelto di creare da solo un circuito Arduino di base, ho bisogno di un programmatore USB-> Seriale FDIT esterno. Ho incluso gli schemi Eagle del controller con un alimentatore costruito da un regolatore di tensione 7805. Nel test ho usato un alimentatore per breadboard.

Per ottenere un arduino installato e funzionante, tutto ciò di cui hai veramente bisogno è l'ATMega168 con il software arduino installato su di esso, 2 condensatori da 22 pF, cristallo da 16 mhz, resistore da 10 k ohm, pulsante e una breadboard. Il collegamento per questo è ben noto, ma ho incluso l'intero schema del circuito.

L'arduino attiverà 4 uscite, 1 ciascuna per i LED rosso/verde/blu e 1 per attivare il TIP31A per inviare 12vDC alla serratura della porta. L'arduino riceve i dati seriali sulla sua linea Rx dal lettore RFID ID-20.

Passaggio 3: crea il lettore RFID

Costruisci il lettore RFID
Costruisci il lettore RFID
Costruisci il lettore RFID
Costruisci il lettore RFID
Costruisci il lettore RFID
Costruisci il lettore RFID

Ora che hai il tuo arduino bread a bordo e funzionante puoi mettere insieme la porzione di lettore RFID del circuito che conterrà l'ID-10 o ID-20 e il LED RGB per indicare lo stato del circuito. Ricorda che il lettore sarà fuori e separato dal controller all'interno in modo che qualcuno non possa facilmente entrare.

Per costruirlo, invieremo 5v/Ground dalla breadboard primaria a una breadboard secondaria su cui stiamo costruendo il Reader. Invia anche 3 fili da 3 dei pin di uscita di Arduino per controllare il LED RGB, uno per ogni colore. Un altro filo, marrone nelle immagini, sarà una connessione seriale per l'ID-20 per parlare con l'ingresso seriale Rx dell'arduino. Questo è un circuito molto semplice da collegare. I LED ottengono resistori e alcuni punti sull'ID-20 sono collegati a terra/5v per impostare lo stato corretto.

Per semplificare il breadboard, l'ID-10/ID-20 Sparkfun vende una scheda Breakout che consente di collegare intestazioni pin più lunghe distanziate per adattarsi a una breadboard. Questa parte e le intestazioni sono elencate nell'elenco delle parti.

Lo schema dovrebbe essere semplice e facile da seguire.

Passaggio 4: programma

È ora di programmare il tuo arduino. Questo può essere un po 'complicato usando un arduino di base, potresti dover premere il pulsante di ripristino più volte prima e durante la prima parte del caricamento. Una cosa molto importante da ricordare, RICEVERAI un errore di caricamento se non disconnetti temporaneamente la linea seriale ID-20 alla linea Rx di arduino. L'ATMega168 ha solo 1 ingresso Rx e lo usa per caricare il codice per parlare con il programmatore. Scollega l'ID-20 durante la programmazione, quindi ricollegalo quando hai finito. Ho utilizzato un programmatore FTDI che permette di programmare l'arduino tramite USB con soli 4 fili. Lo schema del controller mostra una connessione dell'intestazione del pin per consentire di collegarne uno direttamente. Sparkfun vende anche questa parte, ma molti potrebbero già averlo.

Puoi facilmente caricare il mio codice sul tuo arduino e non guardare mai indietro, ma qual è il divertimento in questo? Lascia che ti spieghi l'idea di base di come funziona.

Prima di tutto, non volevo pulsanti/interruttori/ecc. esterni e non volevo riprogrammare l'arduino ogni volta che volevo aggiungere una nuova scheda. Pertanto ho voluto utilizzare solo RFID per controllare il funzionamento del circuito così come il controllo della serratura della porta.

Il programma accende il LED Blu per indicare che è pronto per leggere una nuova tessera. Quando la carta viene letta, decide se è una carta valida o meno confrontando ciò che ha letto con un elenco di carte valide. Se l'utente è valido, l'arduino spegne il LED blu e accende il LED verde per 5 secondi. Attiva anche un'altra uscita alta per 5 secondi. Questa uscita è collegata al transistor TIP31A e consente al piccolo arduino di controllare una serratura della porta 12v 300mA molto più grande senza essere danneggiata. Dopo 5 secondi la serratura si richiude e il led torna blu per attendere la lettura di un'altra tessera. Se la carta non è valida, il LED cambia in ROSSO per alcuni secondi e torna in blu per attendere un'altra carta.

È importante che la serratura della porta funzioni ancora anche se l'arduino perde potenza durante la notte o viene ripristinato. Pertanto tutti gli ID della carta validi vengono archiviati nella memoria EEPROM. ATMega168 dispone di 512 byte di memoria EEPROM. Ogni scheda RFID ha un numero di serie di 5 Hex Byte e una somma di controllo di 1 Hex Byte che possiamo utilizzare per verificare che non ci siano stati errori nella trasmissione tra l'ID-20 e l'arduino.

Le tessere valide vengono memorizzate nella EEPROM utilizzando il primo Byte come contatore. Ad esempio, se ci sono 3 carte valide memorizzate, il primo Byte nella EEPROM sarà 3. EEPROM.read(0); = 3. Sapendo questo, e il fatto che ogni ID è lungo 5 Byte, sappiamo che 1-5 è la carta uno, 6-10 è la carta 2 e 11-15 è la carta 3. Possiamo fare un ciclo che guarda attraverso la EEPROM 5 byte alla volta e cerca di trovare la carta che è stata letta dal lettore.

Ma come possiamo aggiungere nuove schede alla EEPROM dopo aver installato il circuito?? Ho letto una delle carte RFID in mio possesso e l'ho codificata in modo che fosse la carta RFID principale. Quindi, anche se l'intera EEPROM viene cancellata, la scheda master continuerà a funzionare. Ogni volta che viene letta una carta, controlla prima se è la carta Master, in caso contrario, poi continua a vedere se è una carta valida o meno. Se la scheda è la scheda master, facciamo entrare l'arduino in una "modalità di programmazione" dove lampeggia RGB e attende che venga letto un altro tag valido. Il tag successivo letto viene aggiunto al successivo punto libero nella EEPROM e il contatore viene incrementato di 1 se la scheda non esiste già nella memoria EEPROM. Il lettore torna quindi in modalità normale e attende la lettura di una nuova tessera.

Al momento non ho programmato un modo per eliminare una carta poiché i motivi per l'eliminazione di una carta molto probabilmente sono la perdita o il furto. Poiché molto probabilmente verrebbe utilizzato con 1-10 persone, la cosa più semplice da fare sarebbe programmare una scheda Master Erase che cancellerà tutte le schede dalla EEPROM e poi le aggiungerà nuovamente, il che richiede solo pochi secondi. Ho aggiunto il codice per cancellare la EEPROM ma non ho ancora implementato questa funzione..

Il codice è allegato in un file di testo insieme a una copia dell'elenco delle parti.

Passaggio 5: espandere

Queste sono solo alcune delle cose interessanti che puoi fare con l'RFID. Potresti espandere ulteriormente questo aspetto con un'uscita LCD, la registrazione di chi entra e quando, connessione di rete/twitter ecc. Ho intenzione di realizzare una versione PCB finita di questo circuito. Non ho mai realizzato un PCB prima, quindi sto ancora lavorando al design e al layout delle parti. Appena li avrò completi li posterò anche io. Incoraggio chiunque a prendere il codice che ho scritto e modificarlo per fare cose ancora più interessanti!

Finalista al Concorso Arduino

Consigliato: