W tym artykule zamierzamy zrobić wycieczkę po technologii obwodów RFID. Będziemy badać, jak działają znaczniki i czytniki RFID, jak połączyć moduł RFID (RC522) z Arduino i wyodrębnić przydatne informacje z tagów RFID.
Korzystanie z tagów RFID
Jestem pewien, że każdy z was użył RFID, aby uzyskać dostęp do bezpieczeństwa przynajmniej raz w biurze, szkole, na uczelni, w bibliotece itp.
Przywieszka / karta, którą nosisz ze sobą, ma wbudowany elektroniczny chip, który przechowuje Twoją tożsamość elektronicznie. W przeciwieństwie do kodów kreskowych, w których karta powinna znajdować się na linii wzroku czytnika, identyfikatory RFID można umieścić tuż obok czytnika, aby odczytać informacje.
Większość naszych kart inteligentnych wykorzystuje pasywną technologię RFID, co oznacza, że do odczytania informacji z karty nie jest wymagane zasilanie. Czytnik zasila chip RFID i jednocześnie wydobywa informacje.
Tego rodzaju znaczniki mogą odczytywać informacje od milimetrów do kilku stóp, w zależności od znacznika i zastosowania.
Aktywne tagi RFID są zasilane z zewnątrz, tego rodzaju tagi przekazują informacje na odległość 100 stóp. Zużycie energii baterii jest zoptymalizowane na kilka lat.
W tym projekcie przyjrzymy się pasywnej technologii RFID. Używamy modułu czytnika RC522 wraz z arduino do wyodrębniania i wyświetlania informacji. Moduł RC522 jest powszechnie dostępny na stronach e-commerce oraz w lokalnym sklepie z elektroniką.
Ilustracja modułu czytnika / zapisu RC522:
Tagi typu karty i pęku kluczy:
Jak widać, część płytki drukowanej jest otoczona na czytniku ścieżką przewodzącą w kształcie kwadratu, co spowoduje wygenerowanie pola elektromagnetycznego dla znacznika o częstotliwości 13,56 MHz.
Wygenerowana EMF jest pobierana przez znacznik i konwertowana na napięcie wystarczające do działania znacznika, znacznik wysyła niezbędne informacje w postaci impulsu z powrotem do czytnika. Wbudowany mikrokontroler dekoduje informacje.
Jak to działa
Schemat jest bardzo prosty i zrozumiały, do realizacji tego projektu wystarczy kilka przewodów połączeniowych. Zamierzamy zasilać arduino i RFID przez port USB komputera. Napięcie robocze RC522 wynosi 3,3 V, nie podłączaj zasilania 5 V do modułu i spowoduje to uszkodzenie komponentów pokładowych.
Prototyp obwodu RFID Arduino:
To wszystkie połączenia sprzętowe, przejdźmy teraz do kodowania.
Przed wgraniem programu pobierz plik biblioteki z poniższego linku i przejdź do folderu biblioteki arduino IDE.
github.com/miguelbalboa/rfid.git
Kod programu:
//-------------------------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! Do czego służy powyższy program?
Powyższy program wyświetli UID tagu na monitorze szeregowym IDE, podczas skanowania czytnika. UID to unikalny numer identyfikacyjny przywieszki, którego nie można zmienić i jest ustawiany przez producenta.
WYNIK:
UID Twojej karty: FA: 4E: B2 // to jest przykład.
Uwaga 1: Obie wartości są oddzielone dwukropkiem, co jest wykonywane przez program. Wartości rzeczywiste nie mogą być oddzielane dwukropkiem, ale spacją.
Uwaga 2: Tylko tagi RFID wyprodukowane przez NXP są odczytywalne / zapisywalne w proponowanej konfiguracji, są one powszechnie używane i komercyjnie.
Identyfikator UID jest używany do rozpoznawania tagu, który przywieszka dołączona do zestawu może pomieścić do 1 KB informacji. Istnieją inne karty, które mogą przechowywać do 4 KB informacji lub nawet więcej.
Proces przechowywania i wydobywania informacji z tagu jest przedmiotem innego artykułu.
Jeśli masz pytania dotyczące tego projektu, możesz je zadać w sekcji komentarzy.
Poprzedni: Obwód czujnika ciśnienia barometrycznego - szczegóły działania i połączenia Dalej: Sterowanie fazą triaka za pomocą proporcjonalnego czasu PWM