아두이노 - RFID/NFC | Arduino - RFID/NFC

이 튜토리얼에서는 아두이노와 RFID/NFC를 사용하는 방법을 배울 예정입니다. RFID/NFC 시스템은 리더와 태그 두 가지 구성 요소를 포함합니다. 가장 인기 있는 RFID/NFC 리더에는 RC522와 PN532 RFID/NFC 리더가 있습니다. 이 튜토리얼은 RC522 RFID/NFC 리더에 초점을 맞춥니다. PN532 RFID/NFC 리더는 다가오는 튜토리얼에서 소개될 예정입니다.

RC522 RFID/NFC 리더(또한 RFID-RC522 모듈이라고 불림)는 다음을 할 수 있습니다:

위 기능 중에서 아두이노에 있어서, UID를 읽는 것이 가장 널리 사용됩니다. 이 튜토리얼은 RFID/NFC 태그의 UID를 읽는 데에 중점을 둡니다. 다른 내용은 다음 튜토리얼에서 다룰 예정입니다.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×RFID/NFC RC522 Kit (reader + tags) 쿠팡 | Amazon
1×RFID Key Fob 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino Uno 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

RFID-RC522 모듈에 관하여

RFID-RC522 모듈 핀배열

RFID-RC522에는 8개의 핀이 있으며, 그 중 일부는 공통 핀이고, 나머지는 SPI, I2C, UART 세 가지 통신 모드 간에 공유됩니다. 한 번에 하나의 통신 모드만 사용할 수 있습니다. 핀은 다음과 같습니다:

  • GND 핀: GND(0V)에 연결해야 합니다.
  • VCC 핀: VCC(3.3V)에 연결해야 합니다.
  • RST 핀: 리셋 및 전원 차단을 위한 핀입니다. 이 핀이 저전압으로 떨어지면 하드 전원 차단이 활성화됩니다. 떠오르는 에지에서 모듈이 리셋됩니다.
  • IRQ 핀: RFID 태그가 인근에 있을 때 마이크로컨트롤러에 알릴 수 있는 인터럽트 핀입니다.
  • MISO/SCL/TX 핀: SPI 인터페이스가 활성화될 때 MISO로 작동하며, I2C 인터페이스가 활성화될 때 SCL로 작동하고, UART 인터페이스가 활성화될 때 TX로 작동합니다.
  • MOSI 핀: SPI 인터페이스가 활성화될 때 MOSI로 작동합니다.
  • SCK 핀: SPI 인터페이스가 활성화될 때 SCK로 작동합니다.
  • SS/SDA/RX 핀: SPI 인터페이스가 활성화될 때 SS로 작동하고, I2C 인터페이스가 활성화될 때 SDA로 작동하며, UART 인터페이스가 활성화될 때 RX로 작동합니다.
RFID-RC522 Pinout

※ NOTE THAT:

  • 핀의 순서는 제조업체에 따라 다를 수 있습니다. 항상 모듈에 인쇄된 라벨을 사용하세요. 위의 이미지는 DIYables 제조업체의 모듈 핀배열을 보여줍니다.
  • VCC 핀을 5V 핀에 연결하지 마십시오. 이렇게 하면 모듈이 손상될 수 있습니다.
  • MFRC522 라이브러리는 SPI 모드만 지원합니다. 따라서, 이 튜토리얼은 SPI 통신만을 사용합니다.

RFID/NFC가 어떻게 작동하는가

RFID/NFC는 두 가지 구성 요소로 이루어져 있습니다: 리더와 태그.

  • 리더기는 고주파 전자기장을 생성하는 라디오 주파수 모듈과 안테나로 구성되어 있습니다.
  • 태그는 일반적으로 전원이 필요 없는 수동 장치입니다. 태그는 정보를 저장하고 처리하는 마이크로칩과 신호를 수신 및 송신하는 안테나를 포함하고 있습니다. 태그는 UID(고유 ID)와 데이터 등의 정보를 저장하는 데 사용됩니다.
arduino rfid nfc system

태그에 있는 정보를 읽으려면 태그가 리더기와 가까이 있어야 합니다 (직접 시야가 필요하지 않습니다). 읽기 과정:

  • 리더기는 전자가 태그의 안테나를 통해 이동하고 그 결과로 칩에 전력을 공급하는 전자기장을 생성합니다.
  • 태그 안에 있는 칩은 요청된 정보를 다른 라디오 신호 형태로 리더기에게 돌려보내는 것으로 응답합니다.
  • 리더기는 신호를 감지하고 신호를 데이터로 변환합니다.
  • 아두이노는 리더기에서 데이터를 읽습니다.

RFID-RC522 모듈과 아두이노 간의 배선도

RFID-RC522 모듈은 3.3V 수준에서 작동하도록 설계되었으며, Arduino의 출력 핀은 5V 수준을 생성합니다. 그러므로:

  • 안전을 위해, RC522 모듈에 연결하기 전에 아두이노 핀의 5V 전압을 3.3V로 조정해야 합니다.
  • 간단하고 테스트 목적으로, 아두이노 핀을 직접 RC522 모듈에 연결할 수 있지만, 이렇게 하면 일부 경우에 아두이노가 올바르게 작동하지 않을 수 있습니다.

이 튜토리얼은 두 가지 경우 모두에 대해서 두 가지 다른 배선도를 제공합니다:

RC522와 아두이노 사이의 전압 조절기 없는 배선도

Arduino RFID RC522 wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

전압 조정기가 있는 RC522와 아두이노 사이의 배선도

Arduino RFID RC522 with voltage regulated wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

위 배선도에서 보여주듯이, 1kOhm과 2kOhm 저항 쌍이 5V를 3.3V로 조절하는 데 사용됩니다. 아두이노 핀과 RC522 모듈의 MISO 핀 사이의 전압을 조정할 필요는 없습니다. 그러나, 아두이노 핀과 RC522 모듈의 SS, SCK, MOSI, RST 핀 사이의 전압을 조절할 필요가 있습니다.

RFID/NFC RC522 모듈과 아두이노의 배선 표

RFID/NFC RC522 Arduino
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ(not connected)
GNDGND
RST → 5
VCC → 3.3V

아두이노 RFID/NFC 코드

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-rfid-nfc */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 5 MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // SPI 버스 초기화 rfid.PCD_Init(); // MFRC522 초기화 Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // 새 태그가 감지됨 if (rfid.PICC_ReadCardSerial()) { // NUID가 읽힘 MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); //Serial.print("RFID/NFC 태그 타입: "); //Serial.println(rfid.PICC_GetTypeName(piccType)); // 16진수 포맷으로 Serial Monitor에 NUID 출력 Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // PICC 중지 rfid.PCD_StopCrypto1(); // PCD에서 암호화 중지 } } }

사용 방법

  • Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘으로 이동하세요.
  • “MFRC522”를 검색한 다음, GithubCommunity가 만든 라이브러리를 찾으세요.
  • MFRC522 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
Arduino MFRC522 library
  • 위의 코드를 복사하여 Arduino IDE로 열기
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드하기
  • 시리얼 모니터 열기
  • RFID-RC522 모듈에 여러 RFID/NFC 태그를 탭하기
  • 시리얼 모니터에서 UID 확인하기
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!