본문 바로가기

아두이노우노 R4

MFRC522 RFID 리더 접근 제어 배열 사용

반응형

 

아두이노와 MFRC522 RFID 리더를 이용한 보안 접근 제어

 

이 블로그 게시물에서는 MFRC522 RFID 리더기를 사용하는 간단한 예제를 보여드리겠습니다. MFRC522 모듈 사용법과 라이브러리 설치, 아두이노 설정, 연결 회로도는 이전에 올린 포스팅을 참고하세요.

 

저는 설명한 것을 반복해서 사용함으로 디지털을 낭비하는 것을 좋아하지 않습니다. 인터넷에도 비용이 듭니다. 

 

설명

 

RFID는 무선 주파수 식별(Radio-Frequency Identification)의 약자입니다. RFID는 전자기장을 이용하여 단거리에서 데이터를 전송합니다. RFID는 사람 식별, 거래 처리 등에 유용하게 사용됩니다.

 

RFID 시스템을 사용하여 문을 열 수 있습니다. 예를 들어, 카드에 올바른 정보가 등록된 사람만 출입이 허용됩니다. RFID 시스템은 다음과 같은 기술을 사용합니다.

 

식별 대상에 부착된 태그는 이 예시에서 열쇠고리와 전자식 카드에 사용됩니다. 각 태그에는 고유한 식별 번호(UID)가 있습니다.

 

 

 

양방향 무선 송수신기인 리더기는 태그 에 신호를 보내고 태그의 응답을 읽습니다.

 

 

mfrc522 module

 

 

 

입력 전압: 3.3V

주파수: 125KHz, 13.56MHz

 

아두이노 IDE에서 miguelbalboa가 제작한 RFID 라이브러리를 설치하세요. 최근에 업데이트 된 다른 라이브러리라면 더욱 좋습니다.

 

핀 배선

 

Pin Wiring to Arduino Uno
SDA Digital 10
SCK Digital 13
MOSI Digital 11
MISO Digital 12
IRQ unconnected
GND GND
RST Digital 9
3.3V 3.3V

 

주의: 이 장치는 반드시 3.3V로 전원을 공급해야 합니다!

 

회로

 

 

 

RFID 태그에서 데이터 읽기

 

회로 준비가 완료되면 파일 > 예제 > MFRC522 > DumpInfo로 이동하여 코드를 업로드하세요. 이 코드는 (RFID 라이브러리를 설치한 후) Arduino IDE에서 사용할 수 있습니다.

 

다음으로 시리얼 모니터를 엽니다. 아래 그림과 같은 화면이 나타날 것입니다.

 

 

 

 

RFID 카드 또는 키체인을 리더기에 가까이 가져가세요. 모든 정보가 표시될 때까지 리더기와 태그를 더 가까이 두세요.

 

 

 

 

이것은 카드에서 읽을 수 있는 정보이며, 노란색으로 강조 표시된 카드 UID도 포함됩니다. 이 정보는 이전 그림에서 볼 수 있듯이 세그먼트와 블록으로 나뉜 메모리에 저장됩니다.

 

데이터 저장 공간은 1024바이트이며 16개의 섹터로 나뉘어 있고, 각 섹터는 A와 B라는 두 개의 서로 다른 키로 보호됩니다.

 

나중에 필요하니 UID 카드를 적어 두세요.

 

다음 코드를 업로드하세요.

 

#include <SPI.h>
#include <MFRC522.h>
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Approximate your card to the reader...");
  Serial.println();

}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(3000);
  }
 
 else   {
    Serial.println(" Access denied");
    delay(3000);
  }
}

 

 

위 코드에서 if (content.substring(1) == “REPLACE WITH YOUR UID”) 부분을 변경 하고 이전에 작성한 UID 카드를 입력해야 합니다.

 

이제 코드를 아두이노에 업로드하고 시리얼 모니터를 여세요. 접근 권한을 부여할 카드를 대략적으로 가리키면 다음과 같은 내용이 표시됩니다.

 

다른 UID를 가진 다른 태그를 유사하게 선택하면 거부 메시지가 표시됩니다.

 

 

 

이 튜토리얼을 읽어주셔서 감사합니다. 배움을 멈추지 마세요. 항상 즐거운 개발이 되길 바랍니다.

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩