Treść omówiona w tym artykule:
1: Wprowadzenie do czujnika RC522
MFRC522 to oparty na RFID oparty na kontakcie IC, który może odczytać i zapisywać dane o częstotliwości 13.56 MHz. Jest przeznaczony do łatwej integracji z szeroką gamą aplikacji, w tym systemów kontroli dostępu, terminali płatności i innych systemów wymagających bezpiecznej komunikacji bezprzewodowej.
Czujnik ma niski projekt zużycia energii i jest zgodny ze standardem ISO/IEC 14443 A/Mifare, który pozwala mu komunikować się z szeroką gamą kart i tagów kontaktowych.
Dodatkowo MFRC522 ma wbudowaną antenę, co czyni ją wygodnym i kompaktowym rozwiązaniem do dodawania możliwości komunikacji do projektu.
2: Pinout czujnika RC522
Czujnik ma łącznie 8 pinów, które łączą go z mikrokontrolerem lub innym urządzeniem sterującym. Pinout czujnika MFRC522 jest następujący:
SDA, SCK, MOSI, I Miso Piny są używane do interfejsu czujnika MFRC522 z mikrokontrolerem za pośrednictwem protokołu komunikacyjnego 4-przewodowego interfejsu peryferyjnego (SPI).
Irq PIN może być używany do wygenerowania przerwania, gdy wystąpią pewne zdarzenia, takie jak udana karta lub znacznik, jednak nie jest powszechnie używany w wielu projektach.
GND Pin łączy się z podłożem obwodu, a pin RST jest używany do zresetowania czujnika.
Wreszcie 3.3v PIN służy do dostarczania zasilania do czujnika.
Należy zauważyć, że nazwy pinów mogą się nieznacznie różnić w zależności od konkretnego modułu, więc zawsze najlepiej jest zapoznać się z arkuszem danych producenta, aby uzyskać prawidłowe informacje o pinout.
3: Czujnik RC522 RC522 z Arduino Nano
Interfejs czujnika MFRC522 z mikrokontrolerem Arduino to prosty proces, który można wykonać za pomocą biblioteki MFRC522, która jest swobodnie dostępna do pobrania. Ta biblioteka zapewnia łatwy w użyciu zestaw funkcji do dostępu do funkcji czujnika, w tym funkcje odczytu i pisania danych do kart i tagów kontaktowych.
Po zainstalowaniu biblioteki przykładowy szkic można znaleźć w menu przykłady, które pokazuje, jak zainicjować czujnik i komunikować się z kartą lub tagiem. W szkicu ważne jest, aby ustawić prawidłowe połączenia PIN między Arduino i czujnikiem MFRC522, takie jak Pinie SPI, PIN resetowania i inne, zgodnie z modelem używanej płyty Arduino.
Z odpowiednim okablowaniem i prawidłowym zainstalowaniem biblioteki Arduino będzie mógł komunikować się z czujnikiem MFRC522 i wykonywać pożądane działania, takie jak czytanie i pisanie na kartach i tagach.
1: Schemat
Schematyczny obraz RC522 z Arduino nano pokazano poniżej:
2: Instalowanie wymaganych bibliotek
Biblioteka MFRC522 jest potrzebna do odczytania karty i tagów RFID UID. Otwórz IDE, przejdź do menedżera biblioteki i wyszukaj bibliotekę MFRC522. Zainstaluj bibliotekę w Arduino IDE:
Po zainstalowaniu biblioteki MFRC522 przeczytamy UID dla tagów i kart RFID.
3: Uzyskanie UID dla karty/tagu RFID
Otworzyć DUBINFO Przykład dla czujnika MFRC522. Iść do: Plik> Przykłady> MFRC522> DUMPINFO
Następujący kod zostanie otwarty w nowym oknie IDE. Prześlij kod do Arduino nano. Pamiętaj, aby ustawić pin z resetem i niewolnikiem zgodnie z płytą Arduino. Każdy z cyfrowych pinów Arduino można ustawić jako RST I SS.
Po przesłaniu kodu do Arduino nano. Dotknij i przytrzymaj kartę/znacznik RFID za pomocą czujnika MFRC522.
Czujnik odczytuje dane zapisane wewnątrz znacznika RFID i wyświetli je na monitorze szeregowym. Tutaj możemy zobaczyć UID Dla tagu RFID stwierdzające 02 DC B4 C3.
W sumie 16 (0-15) sektorów, w których RFID Karta/Tag 1k Pamięć jest zorganizowana. Cztery (0-3) bloki są zawarte w każdym z tych 16 sektorów. Każdy blok może przechowywać 16 (0-15) bajtów danych.
Te dane reprezentują:
16 sektorów x 4 bloków x 16 bajtów danych = 1024 bajtów = pamięć 1k
Monitor szeregowy Arduino IDE pokazuje rozkład US Pamięć 1K znacznika RFID. Ten rozkład zawiera również sektory, bloki i informacje o danych w wierszach i kolumnach danych wyjściowych:
Możesz także przeczytać unikalny identyfikator (UID) dla karty na końcu wyjścia:
4: Czytanie znacznika RFID za pomocą Arduino nano
Teraz przeczytaliśmy unikalny identyfikator (UID) dla tagu RFID. Napiszemy kod Arduino, który zapisuje informacje o tej karcie i daje dostęp do użytkownika, jeśli znacznik RFID z tym samym UID jest wyczerpany z czujnikiem MFRC522.
1: Kod
Otwórz IDE, wybierz Nano Board i prześlij podany kod:
/*
****************
Linuxhint.com
****************
Linuxhint.com
****************
*/
#włączać
#włączać
#Define SS_Pin 10 /*Slave Wybierz pin* /
#Define RST_PIN 9 /*RESET PIN dla RC522* /
#Define LED_G 8 /*Pin 8 dla LED* /
MFRC522 MFRC522 (SS_PIN, RST_PIN); /*Utwórz zainicjowane MFRC522
void Setup ()
Seryjny.rozpocząć (9600); /*Komunikacja szeregowa rozpoczyna się*/
SPI.zaczynać(); /*Komunikacja SPI zainicjowana*/
MFRC522.Pcd_init (); /*Czujnik RFID zainicjował*/
pinmode (LED_G, wyjście); /*Zestaw szpilki LED jako wyjście*/
Seryjny.println („Umieść swoją kartę czytelnikowi…”);
Seryjny.println ();
Void Loop ()
/*Poszukaj karty RFID*/
Jeśli ( ! MFRC522.PICC_ISNEWCARDPRESENT ())
powrót;
/*Wybierz kartę*/
Jeśli ( ! MFRC522.Picc_ReadCardserial ())
powrót;
/*Pokaż UID dla karty/znacznika na monitorze szeregowym*/
Seryjny.print („UID Tag:”);
String content = "";
List bajtowy;
dla (bajt i = 0; i < mfrc522.uid.size; i++)
Seryjny.Drukuj (MFRC522.UID.uidbyte [i] < 0x10 ? " 0" : " ");
Seryjny.Drukuj (MFRC522.UID.uidbyte [i], hex);
treść.Conat (ciąg (MFRC522.UID.uidbyte [i] < 0x10 ? " 0" : " "));
treść.Conat (ciąg (MFRC522.UID.uidbyte [i], hex));
Seryjny.println ();
Seryjny.drukuj („wiadomość:”);
treść.ToupperCase ();
if (treść.Substring (1) == "02 DC B4 C3")/*UID dla karty/znacznika
Seryjny.println („autoryzowany dostęp”); /*Wydrukuj komunikat, jeśli UID pasuje do bazy danych*/
Seryjny.println ();
opóźnienie (500);
DigitalWrite (LED_G, High); /*Dioda LED włącza*/
opóźnienie (2500);
DigitalWrite (LED_G, niski);
w przeciwnym razie
Seryjny.println („Access odmowę”); /*Jeśli UID nie pasuje do wiadomości wydruku*/
Kod rozpoczął się od włączenia biblioteki SPI i MFRC522. Następnie zdefiniowaliśmy reset i niewolnik wybierz pin do czujnika. LED przy pin D8 jest inicjowany jako wyjście.
Karta RFID, którą chcemy odczytać, jest inicjowana przez definiowanie UID. To jest ten sam UID, którego użyliśmy DUBINFO Przykładowy kod:
Jakiś JEŚLI Warunek sprawdzi UID karty, która jest stukana czujnikiem. Jeśli UID będzie pasował do tego, który w środku LED kodu będzie włączony, a autoryzowana wiadomość dostępu zostanie wydrukowana, inaczej LED pozostanie wyłączony, a komunikat odmówił dostępu, jeśli jakakolwiek inna karta zostanie wykorzystana.
2: Wyjście
W wyjściu widzimy, że znacznik RFID nie jest stukany z czujnikiem MFRC522, więc nie ma diody LED:
Dotknij lub przynieś kartę/znacznik RFID w pobliżu czujnika następujące wyjście pojawi się na monitorze szeregowym wyświetlającym kartę UID:
LED jest włączony, jeśli dostęp jest przyznany, a UID pasuje do tego, który zdefiniowaliśmy w kodzie:
Zakończyliśmy interfejs znacznika RFID z czujnikiem RC522 za pomocą Arduino Nano Board i IDE.
Wniosek
Arduino Nano to płyta konserwująca energię, która ma kilka pinów GPIO do przyjmowania danych z różnych czujników. Arduino Nano ma wbudowane wsparcie dla protokołu UART, SPI i I2C, który umożliwia korzystanie z czujników za pomocą tych protokołów komunikacyjnych Arduino. W tym artykule obejmuje interfejs Arduino Nano z czujnikiem RC522 i kod wymagany do odczytania dowolnej karty/znacznika RFID.