RFID-läsarkrets med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I den här artikeln ska vi ta en rundtur om RFID-kretsteknik. Vi kommer att utforska hur RFID-taggar och läsare fungerar, hur man gränssnitt RFID-modul (RC522) med Arduino och extrahera användbar information från RFID-taggar.

Använda RFID-taggar

Jag är säker på att var och en av er har använt RFID för att få säkerhetsåtkomst åtminstone en gång på kontor, skola, college, bibliotek etc.



Taggen / kortet som du bär med dig har elektroniskt chip inbäddat, chipet lagrar din identitet elektroniskt. Till skillnad från streckkoder, där kortet ska vara siktlinje för läsaren, kan RFID placeras nära läsaren för att läsa informationen.

De flesta av våra smartkort använder passiv RFID-teknik, vilket innebär att ingen kraft krävs för att läsa informationen från kortet. Läsaren driver RFID-chipet och extraherar information samtidigt.



Dessa typer av taggar kan läsa information från millimeter till några meter, beroende på tagg och applikation.

En aktiv RFID-tagg drivs externt, den här typen av taggar överför informationen upp till 100 fot. Batteriets energiförbrukning är optimerad för att hålla i några år.

I detta projekt ska vi titta på passiv RFID-teknik. Vi använder RC522 läsarmodul tillsammans med arduino för att extrahera och visa information. RC522-modulen är vanligtvis tillgänglig på e-handelswebbplatser och i lokala elektronikpaketbutiker.

Illustration av RC522 läsare / skrivarmodul:

RC522 läsare / skrivarmodul

Taggar för kort och nyckelring:

Taggar för kort och nyckelring

Som vi kan se är en del av kretskortet omgiven av ledande bana i kvadratisk form på läsaren, vilket genererar elektromagnetiskt fält för taggen vid 13,56 MHz-frekvensen.

Den genererade EMF plockas av taggen och konverterar till tillräcklig spänning för att taggen ska fungera, taggen skickar ut nödvändig information i pulsform tillbaka till läsaren. Den inbyggda mikrokontrollern avkodar informationen.

Hur det fungerar

RFID-krets med Arduino

Schemat är mycket enkelt och självförklarande, få bygelkablar räcker för att genomföra detta projekt. Vi ska driva arduino och RFID via USB-porten på datorn. RC522s driftspänning är 3,3V, anslut inte 5V-matningen till modulen och skadar de inbyggda komponenterna.

Arduino RFID-kretsprototyp:

Det är alla hårdvaruanslutningar, nu ska vi hoppa in i kodning.

Innan du laddar upp programmet, ladda ner biblioteksfilen från följande länk och flytta till biblioteksmappen för arduino IDE.

github.com/miguelbalboa/rfid.git

Programkod:

//-------------------------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! Vad är ovanstående program utformat för att fungera?

Ovanstående program visar taggens UID i seriell bildskärm för IDE när du skannar på läsaren. UID är unikt identifikationsnummer för taggen, det kan inte ändras och det ställs in av tillverkaren.

PRODUKTION:

Ditt korts UID: FA: 4E: B2 // detta är ett exempel.

Anmärkning 1: De två värdena är separerade med kolon, vilket görs av programmet. De verkliga värdena kan inte separeras av kolon utan snarare av mellanslag.

Anmärkning 2: Endast NXP-tillverkade RFID-taggar är läsbara / skrivbara med den föreslagna installationen, dessa används ofta och kommersiellt.

UID används för att känna igen taggen som taggen som följer med satsen kan lagra upp till 1 KB information. Det finns andra kort som kan lagra upp till 4KB information eller ännu mer.

Processen med att lagra och extrahera informationen från taggen är föremål för en annan artikel.
Om du har frågor angående detta projekt är du välkommen att fråga i kommentarsektionen.




Tidigare: Barometrisk trycksensorkrets - Arbets- och gränssnittsdetaljer Nästa: Triac-faskontroll med PWM Time Proportional