RFID, NFC 모듈(RC522)
NFC 통신 방식을 사용하는 RFID 리더입니다.
아두이노, 라즈베리파이 보드에서 사용 가능합니다.
사양
- 작동전압 : 3.3V
- 작동전류 : 13mA ~ 26mA
- 인터페이스 : SPI
- 동작 주파수 : 13.56MHz
하드웨어
- 아두이노
- RC522, nfc 카드키
- 점퍼케이블
연결
RC522 | Arduino | |||||
3.3V | 3.3V | |||||
RST | 9 | |||||
GND | GND | |||||
MISO | 12 | |||||
MOSI | 11 | |||||
SCK | 13 | |||||
SDA | 10 |
라이브러리
- MFRC522 (by GithubCommunity)
- SPI (기본 포함 라이브러리)
라이브러리 설치방법
예제 코드
태그된 ID 값을 시리얼 모니터에 출력합니다.
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // reset핀은 9번으로 설정
#define SS_PIN 10 // SS핀은 10번으로 설정
// SS핀은 데이터를 주고받는 역할의 핀( SS = Slave Selector )
MFRC522 mfrc(SS_PIN, RST_PIN); // MFR522를 이용하기 위해 mfrc객체를 생성해 줍니다.
void setup(){
Serial.begin(9600); // 시리얼 통신, 속도는 9600
SPI.begin(); // SPI 초기화
// (SPI : 하나의 마스터와 다수의 SLAVE(종속적인 역활)간의 통신 방식)
mfrc.PCD_Init();
}
void loop(){
if ( !mfrc.PICC_IsNewCardPresent() || !mfrc.PICC_ReadCardSerial() ) {
// 태그 접촉이 되지 않았을때 또는 ID가 읽혀지지 않았을때
delay(500); // 0.5초 딜레이
return; // return
}
Serial.print("Card UID:"); // 태그의 ID출력
for (byte i = 0; i < 4; i++) { // 태그의 ID출력하는 반복문.태그의 ID사이즈(4)까지
Serial.print(mfrc.uid.uidByte[i]); // mfrc.uid.uidByte[0] ~ mfrc.uid.uidByte[3]까지 출력
Serial.print(" "); // id 사이의 간격 출력
}
Serial.println();
}