Interfejsowanie czujnika RCTOP 102 RFID z ESPTOP 10 za pomocą Arduino IDE

Interfejsowanie czujnika RCTOP 102 RFID z ESPTOP 10 za pomocą Arduino IDE
ESP32 to zasilana kompaktowa płyta oparta na mikrokontrolerze, która zawiera wiele pinów GPIO dla czujników interfejsu. W tym samouczku ESP32 będzie połączony z czujnikiem RFID za pomocą kodu Arduino. RC522 to inteligentny czujnik oparty na SPI, który może odczytać karty, tagi i inteligentne karty RFID.

Treść omówiona w tym artykule:

  • 1: Wprowadzenie do czujnika RC522
  • 2: Pinout czujnika RC522
  • 3: Interfejsowanie czujnika RC522 RFID z ESP32
  • 3.1: Schemat
  • 3.2: Instalowanie wymaganych bibliotek
  • 3.3: Uzyskanie UID dla karty/tagu RFID
  • 4: Czytanie znacznika RFID za pomocą ESP32
  • 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: Interfejsowanie czujnika RC522 RFID z ESP32

Interfejs czujnika MFRC522 z mikrokontrolerem ESP32 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 ESP32 i czujnikiem MFRC522, takie jak piny SPI, PIN resetowania i inne, zgodnie z modelem używanej płyty ESP32.

Z odpowiednim okablowaniem i poprawnie zainstalowaną biblioteką ESP32 będzie mógł komunikować się z czujnikiem MFRC522 i wykonywać pożądane działania, takie jak czytanie i pisanie na kartach i tagach.

Aby uzyskać więcej informacji na temat ESP32 Protokół SPI i praca Przeczytaj artykuł ESP32 SPI.

3.1: Schemat

Schematyczny obraz RC522 z ESP32 pokazano poniżej:

3.2: Instalowanie wymaganych bibliotek

MFRC522 Biblioteka 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 ESP32. Pamiętaj, aby ustawić pin z resetem i niewolnikiem zgodnie z płytą. Każdy z cyfrowych pinów ESP32 można ustawić jako RST I SS:

Po przesłaniu kodu do ESP32. 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ą ESP32

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 płytę IDE Wybierz ESP32 i prześlij podany kod.

/*
****************
Linuxhint.com
****************
Linuxhint.com
****************
*/
#włączać
#włączać
#Define SS_Pin 21 /*Slave Wybierz pin* /
#Define RST_PIN 22 /*RESET PIN dla RC522* /
#Define LED_G 12 /*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 D12 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 dioda LED jest wyłączona.:

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ą płyty ESP32 i IDE.

Wniosek

ESP32 to płyta IoT, która zawiera wszystkie niezbędne interfejsy komunikacyjne do wymiany danych między różnymi urządzeniami. ESP32 ma kilka pinów GPIO do odczytu danych z czujników. Korzystanie z protokołu SPI ESP32 może odczytać dane czujnika RFID i można zaprojektować wiele projektów. W tym artykule obejmuje interfejs ESP32 z czujnikiem RC522 i kodem wymagane do odczytania dowolnej karty/znacznika RFID.