Circuit de citire RFID folosind Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest articol vom face un tur al tehnologiei circuitelor RFID. Vom explora modul în care funcționează etichetele și cititoarele RFID, cum să interfațăm modulul RFID (RC522) cu Arduino și să extragem câteva informații utile din etichetele RFID.

Utilizarea etichetelor RFID

Sunt sigur că fiecare dintre voi a folosit RFID pentru a obține acces de securitate cel puțin o dată la birou, școală, colegiu, bibliotecă etc.



Eticheta / cardul pe care îl purtați are cip electronic încorporat în acesta, cipul stochează identitatea dvs. electronic. Spre deosebire de codurile de bare, unde cardul ar trebui să fie linia de vizibilitate a cititorului, RFID-urile pot fi plasate aproape de cititor pentru a citi informațiile.

Majoritatea cardurilor noastre inteligente folosesc tehnologia RFID pasivă, ceea ce înseamnă că nu este necesară nicio energie pentru a citi informațiile de pe card. Cititorul alimentează cipul RFID și extrage informații în același timp.



Aceste tipuri de etichete pot citi informații de la milimetri la câțiva metri, în funcție de etichetă și aplicație.

O etichetă RFID activă este alimentată extern, aceste tipuri de etichete transmit informațiile până la 100 de picioare. Consumul de energie al bateriei este optimizat pentru a dura câțiva ani.

În acest proiect vom analiza tehnologia RFID pasivă. Folosim modulul cititor RC522 împreună cu arduino pentru extragerea și afișarea informațiilor. Modulul RC522 este disponibil în mod obișnuit pe site-urile de comerț electronic și în magazinul local de kituri electronice.

Ilustrarea modulului cititor / scriitor RC522:

Modulul cititor / scriitor RC522

Etichete de tip card și breloc:

Etichete de tip card și breloc

După cum putem vedea, o parte a PCB-ului este înconjurată de o cale de conducere în formă pătrată pe cititor, aceasta va genera câmp electromagnetic pentru etichetă la o frecvență de 13,56 MHz.

CEM generat este preluat de etichetă și se transformă în tensiune suficientă pentru ca eticheta să funcționeze, eticheta va trimite informațiile necesare în formă de impuls înapoi către cititor. Microcontrolerul de la bord decodează informațiile.

Cum functioneaza

Circuit RFID folosind Arduino

Schema este foarte ușoară și se explică de la sine, puține fire jumper sunt suficiente pentru a realiza acest proiect. Vom alimenta arduino și RFID prin portul USB al computerului. Tensiunea de funcționare a RC522 este de 3,3 V, nu conectați alimentarea de 5 V la modul și va deteriora componentele de la bord.

Prototipul circuitului Arduino RFID:

Acestea sunt toate conexiunile hardware, acum să trecem la codificare.

Înainte de a încărca programul, descărcați fișierul bibliotecii de pe următorul link și mutați-vă în dosarul bibliotecii IDE arduino.

github.com/miguelbalboa/rfid.git

Codul programului:

//-------------------------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------------------//

Bine! Ce funcționează programul de mai sus?

Programul de mai sus va afișa UID-ul etichetei pe monitorul serial al IDE, atunci când scanați pe cititor. UID este numărul unic de identificare al etichetei, nu poate fi modificat și este setat de producător.

IEȘIRE:

UID-ul cardului dvs.: FA: 4E: B2 // acesta este un exemplu.

Notă 1: Cele două valori sunt separate prin două puncte, ceea ce se realizează prin program, valorile reale nu pot fi separate prin două puncte, ci mai degrabă prin spațiu.

Notă 2: Numai etichetele RFID fabricate de NXP pot fi citite / scrise odată cu configurarea propusă, acestea sunt utilizate în mod obișnuit și comercial.

UID este utilizat pentru a recunoaște eticheta, eticheta care vine împreună cu kitul poate stoca până la 1 KB de informații. Există alte carduri care pot stoca până la 4KB de informații sau chiar mai mult.

Procesul de stocare și extragere a informațiilor din etichetă face obiectul unui alt articol.
Dacă aveți întrebări cu privire la acest proiect, nu ezitați să întrebați în secțiunea de comentarii.




Precedent: Circuit senzor de presiune barometrică - Detalii de lucru și interfață În continuare: Controlul fazei Triac utilizând proporționalul PWM Time