RFID-leserkrets med Arduino

Prøv Instrumentet Vårt For Å Eliminere Problemer





I denne artikkelen skal vi ta en tur på RFID-kretsteknologi. Vi vil utforske hvordan RFID-koder og lesere fungerer, hvordan man kan grensesnitt RFID-modul (RC522) med Arduino og trekke ut nyttig informasjon fra RFID-koder.

Bruke RFID-koder

Jeg er sikker på at hver og en av dere har brukt RFID for å få sikkerhetstilgang minst en gang på kontor, skole, høyskole, bibliotek etc.



Merkelappen / kortet du bærer rundt har elektronisk brikke innebygd, brikken lagrer identiteten din elektronisk. I motsetning til strekkoder, der kortet skal være siktelinje for leseren, kan RFID-er plasseres like i nærheten av leseren for å lese informasjonen.

De fleste av våre smartkort bruker passiv RFID-teknologi, noe som betyr at det ikke kreves strøm for å lese informasjonen fra kortet. Leseren driver RFID-brikken og trekker ut informasjon samtidig.



Slike tagger kan lese informasjon fra millimeter til få meter, avhengig av taggen og applikasjonen.

En aktiv RFID-koder drives eksternt, denne typen koder overfører informasjonen opp til 100 fot. Batteristrømforbruket er optimalisert til å vare i noen år.

I dette prosjektet skal vi se på passiv RFID-teknologi. Vi bruker RC522 lesermodul sammen med arduino for å hente ut og vise informasjon. RC522-modulen er ofte tilgjengelig på e-handelsnettsteder og i lokale elektronikkutstyr.

Illustrasjon av RC522 leser / skrivermodul:

RC522 leser / skrivermodul

Merkelapper for kort og nøkkelring:

Merkelapper for kort og nøkkelring

Som vi kan se at en del av kretskortet er omgitt av ledende bane i firkantet form på leseren, vil dette generere elektromagnetisk felt for koden ved 13,56 MHz frekvens.

Den genererte EMF plukkes av merkelappen og konverterer til tilstrekkelig spenning for at koden skal fungere, koden sender ut nødvendig informasjon i pulsform tilbake til leseren. Den innebygde mikrokontrolleren dekoder informasjonen.

Hvordan det fungerer

RFID-krets ved hjelp av Arduino

Skjematisk er veldig enkelt og selvforklarende, få hoppetråder er nok til å gjennomføre dette prosjektet. Vi skal drive arduino og RFID via USB-porten på datamaskinen. Driftsspenningen til RC522 er 3,3V, ikke koble 5V forsyning til modulen og vil skade de innebygde komponentene.

Arduino RFID-kretsprototype:

Det er alle maskinvaretilkoblingene, la oss nå hoppe inn i koding.

Før du laster opp programmet, må du laste ned biblioteksfilen fra følgende lenke og flytte til biblioteksmappen til arduino IDE.

github.com/miguelbalboa/rfid.git

Programkode:

//-------------------------Program developed by R.Girish------------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID:')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//-------------------------Program developed by R.Girish------------------//

Ok! Hva er det ovennevnte programmet designet for å fungere?

Ovennevnte program vil vise UID for koden i seriell skjerm på IDE når du skanner på leseren. UID er unikt identifikasjonsnummer for koden, den kan ikke endres, og den angis av produsenten.

PRODUKSJON:

Kortets UID: FA: 4E: B2 // dette er et eksempel.

Merk 1: De to verdiene er atskilt med kolon, noe som gjøres av programmet. Ekte verdier kan ikke skilles fra kolon, men heller mellomrom.

Merknad 2: Bare NXP-produserte RFID-koder er lesbare / skrivbare med det foreslåtte oppsettet, disse brukes ofte og kommersielt.

UID brukes til å gjenkjenne taggen som taggen som følger med settet kan lagre opptil 1 KB informasjon. Det er andre kort som kan lagre opptil 4KB informasjon eller enda mer.

Prosessen med å lagre og trekke ut informasjonen fra taggen er gjenstand for en annen artikkel.
Hvis du har spørsmål angående dette prosjektet, spør gjerne i kommentarseksjonen.




Forrige: Barometrisk trykksensorkrets - Arbeids- og grensesnittdetaljer Neste: Triac Phase Control ved bruk av PWM Time Proportional