Arduino, RFID

이도현·2023년 8월 10일
0

아두이노 학습

목록 보기
22/34

1. RFID

  • Radio Frequency Identification
  • 무선 주파수를 이용한 자동인식 기술 중 하나
  • 주파수를 이용해 태그 안에 ID 데이터를 저장하고 리더와 안테나를 이용해 태그가 부착된 사물을 관리, 판독, 추적
  • ID를 저장하는 태그(Tag)와 ID 데이터를읽는 리더(Reader)로 분류

2. 동작원리

  • Reader가 자기장을 발생
  • Tag를 판독기 가까이에 가져가면 태그의 코일에서 유도전류가 발생
  • 이 전류를 통해 태그에 내장된 칩에 전원을 공급
  • 태그의 정보가 리더의 안테나로 전송

3. SPI 통신

  • Serial Peripheral Interface
  • 1:N 통신을 지원하는 동기식 통신 방식
  • 반드시 하나의 마스터와 하나 이상의 슬레이브 기기가 존재 해
  • 통신을 위해서는 최소 4개의 선이 필요
  • MOSI(Master Out, Slave In): 마스터에서 데이터를 출력하기 위한 신호 선
  • MISO(Master In, Slave Out): 슬레이브에서 데이터를 출력하기 위한 선
  • SCK: Clock 신호 선
  • SS(Slave Select): 데이터를 송수신할 슬레이브를 선택하기 위한 신호 선



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 객체 생성

void setup(){
	Serial.begin(9600);
	SPI.begin();
	mfrc.PCD_Init(); 
}
	
void loop(){
	if ( !mfrc.PICC_IsNewCardPresent() || !mfrc.PICC_ReadCardSerial() ) { 
	// 태그 접촉이 되지 않았을때 또는 ID가 읽혀지지 않았을때
		delay(500);
		return;
	}

	Serial.print("Card UID:"); // 태그의 ID출력

	// 태그의 ID출력하는 반복문.태그의 ID사이즈(4)까지
	for (byte i = 0; i < 4; i++) { 
		// mfrc.uid.uidByte[0] ~ mfrc.uid.uidByte[3]까지 출력
		Serial.print(mfrc.uid.uidByte[i]); 
		Serial.print(" "); // id 사이의 간격 출력
	}
	Serial.println(); 
}
profile
좋은 지식 나누어요

0개의 댓글