RFID, NFC 모듈(RC522): 두 판 사이의 차이
(새 문서: dd) |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
== '''스펙''' == | |||
* 작동전압 : 3.3V | |||
* 작동전류 : 13mA ~ 26mA | |||
* 인터페이스 : SPI | |||
* 동작 주파수 : 13.56MHz | |||
== 하드웨어 == | |||
* 아두이노 우노 | |||
* RC522, nfc 카드키 | |||
* 점퍼케이블 | |||
== 연결 == | |||
{| class="wikitable" | |||
| colspan="4" rowspan="1" |RC522 | |||
| colspan="3" rowspan="1" |Arduino | |||
|- | |||
| colspan="4" rowspan="1" |3.3V | |||
| colspan="3" rowspan="1" |3.3V | |||
|- | |||
| colspan="4" rowspan="1" |RST | |||
| colspan="3" rowspan="1" |9 | |||
|- | |||
| colspan="4" rowspan="1" |GND | |||
| colspan="3" rowspan="1" |GND | |||
|- | |||
| colspan="4" rowspan="1" |MISO | |||
| colspan="3" rowspan="1" |12 | |||
|- | |||
| colspan="4" rowspan="1" |MOSI | |||
| colspan="3" rowspan="1" |11 | |||
|- | |||
| colspan="4" rowspan="1" |SCK | |||
| colspan="3" rowspan="1" |13 | |||
|- | |||
| colspan="4" rowspan="1" |SDA | |||
| colspan="3" rowspan="1" |10 | |||
|} | |||
== 라이브러리 == | |||
* MFRC522 (by GithubCommunity) | |||
* SPI (기본 포함 라이브러리) | |||
=== [[아두이노 라이브러리|라이브러리 설치방법]] === | |||
== '''예제 코드''' == | |||
태그된 ID 값을 시리얼 모니터에 출력합니다.<syntaxhighlight lang="c++" line="1"> | |||
#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(); | |||
} | |||
</syntaxhighlight> | |||
=== 실행 결과 === | |||
== '''구매 링크''' == | |||
[https://gongzipsa.com/shop/1699939296 공집사몰] | |||
[https://smartstore.naver.com/gongzipsa/products/7473048471 공집사 스마트스토어] | |||
2023년 11월 23일 (목) 15:42 판
스펙
- 작동전압 : 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();
}