Interfejs czujnik RCTOP 102 RFID z Arduino UNO

Interfejs czujnik RCTOP 102 RFID z Arduino UNO
Arduino UNO to płyta oparta na mikrokontrolerze, która ma wiele pinów GPIO dla czujników interfejsów, siłowników i zewnętrznego sprzętu. W tym samouczku Arduino Uno będzie połączone z czujnikami RFID za pomocą kodu Arduino. RC522 to inteligentny czujnik oparty na SPI, który może odczytać karty, tagi i inteligentne pasma RFID.

Treść omówiona w tym artykule:

  • 1: Wprowadzenie do czujnika RC522
  • 2: Pinout czujnika RC522
  • 3: Czujnik RC522 RC522 z Arduino Uno
  • 3.1: Schemat
  • 3.2: Instalowanie wymaganych bibliotek
  • 3.3: Uzyskanie UID dla karty/tagu RFID
  • 4: Czytanie znacznika RFID za pomocą Arduino Uno
  • 4.1: Kod
  • 4.2: Wyjście
  • Wniosek

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 i RST PIN służy 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 Uno

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.

3.1: Schemat

Schematyczny obraz RC522 z Arduino Uno pokazano poniżej:

3.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.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 Uno. 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 Uno. 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 Uno

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.

4.1: Kod

Otwórz IDE, wybierz płytę UNO 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.

4.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 UNO Board i IDE.

Wniosek

Arduino to kompaktowa płyta z wieloma pinami GPIO do czujników interfejsu i sprzętu. Arduino ma wbudowaną obsługę protokołu UART, SPI i I2C, który umożliwia użycie czujników za pomocą tych protokołów komunikacyjnych Arduino. W tym artykule obejmuje interfejs Arduino UNO z czujnikiem RC522 i kodem wymaganym do odczytania dowolnej karty/znacznika RFID.