아두이노에 연결:

먼저 MFRC522용 RFID 라이브러리를 설치해야 합니다.

모듈의 접점 RC522 RFID 모듈은 Arduino에 연결해야 합니다. 연결을 위해 아버지 - 어머니 전선을 사용하는 것이 편리합니다.


RFID 모듈 RC522의 연락처 설명:

  • VCC - 전원. 3.3V가 필요합니다.
  • RST - 재설정. 라인을 재설정합니다. CraftDuino의 RESET 핀에 ​​연결하지 마십시오! 이 핀은 PWM이 있는 디지털 포트에 달라붙습니다.
  • GND - 접지. 지구
  • MISO - 마스터 입력 슬레이브 출력 - 슬레이브에서 마스터로의 데이터, SPI;
  • MOSI - 마스터 출력 슬레이브 입력 - 마스터에서 슬레이브로 데이터, SPI;
  • SCK - 직렬 클록 - 클록 신호, SPI;
  • NSS - 슬레이브 선택 - 슬레이브 선택, SPI;
  • IRQ - 인터럽트 라인;
MFRC522 아두이노 우노 아두이노 메가 아두이노 나노 v3 아두이노 레오나르도/마이크로 아두이노 프로 마이크로
RST 9 5 D9 재설정/ICSP-5 RST
SDA(SS) 10 53 D10 10 10
모시 11 (ICSP-4) 51 D11 ICSP-4 16
미소 12 (ICSP-1) 50 D12 ICSP-1 14
SCK 13 (ICSP-3) 52 D13 ICSP-3 15
3.3V 3.3V 3.3V 안정기 3.3V 안정기 3.3V 안정기 3.3V
접지 접지 접지 접지 접지 접지

RFID-RC522 모듈은 두 개의 태그와 함께 제공됩니다. 플라스틱 카드, 그리고 두 번째는 키체인 형태입니다. 필요한 경우 별도로 구입할 수 있습니다.

모든 것이 연결되면 모듈의 표시등이 켜지며 RFID에 전원이 공급되었음을 나타냅니다. . 지금이 절호의 기회 다 우리가 설치한 라이브러리에 있는 테스트 스케치를 실행합니다.



주어진 상수의 정확성을 확인해야 합니다.

#define SS_PIN 10 #define RST_PIN 9 // 이 상수는 일치합니다.

이제 스케치를 arduino에 업로드하고 켜십시오. 직렬 포트 모니터링.

레이블을 판독기로 가져오고 모듈은 이 레이블의 모든 데이터(예: 레이블 UID의 고유 식별자)를 읽습니다.

RFID-RC522 작동 영상:

오늘의 튜토리얼은 Arduino와 함께 RFID 리더를 사용하여 간단한 잠금 시스템을 만드는 방법에 관한 것입니다. 간단한 말로- RFID 잠금.

RFID(Eng. Radio Frequency IDentification, 무선 주파수 식별)는 무선 신호를 사용하여 소위 트랜스폰더 또는 RFID 태그에 저장된 데이터를 읽거나 쓰는 물체를 자동으로 식별하는 방법입니다. 모든 RFID 시스템은 판독기(판독기, 판독기 또는 질문기)와 응답기(RFID 태그라고도 함, 때로는 RFID 태그라는 용어도 사용됨)로 구성됩니다.

튜토리얼에서는 Arduino와 함께 RFID 태그를 사용합니다. 장치는 판독기 옆에 배치한 각 RFID 태그의 고유 식별자(UID)를 읽고 이를 OLED 디스플레이에 표시합니다. 태그의 UID가 Arduino 메모리에 저장된 미리 정의된 값과 같으면 디스플레이에 "Unlocked"라는 메시지가 표시됩니다. 고유 식별자가 미리 정의된 값과 같지 않으면 "잠금 해제됨" 메시지가 나타나지 않습니다. 아래 사진을 참조하십시오.

성이 닫혀있다

성이 열려있다

1단계: 부품, 액세서리

이 프로젝트를 만드는 데 필요한 세부정보:

  • RFID 리더 RC522
  • OLED 디스플레이
  • 빵판
  • 전선

추가 세부 사항:

  • 배터리(전원 은행)

프로젝트 구성 요소의 총 비용은 약 $15였습니다.

2단계: RFID 리더 RC522

각 RFID 태그에는 작은 칩(사진의 흰색 카드)이 있습니다. 이 RFID 카드를 손전등으로 가리키면 작은 칩과 그것을 둘러싸고 있는 코일을 볼 수 있습니다. 이 칩에는 전력을 생성하는 배터리가 없습니다. 이 큰 코일을 사용하여 무선으로 리더로부터 전력을 수신합니다. 이와 같은 RFID 카드는 최대 20mm 떨어진 곳에서도 판독이 가능합니다.

동일한 칩이 RFID 열쇠 고리 태그에 존재합니다.

각 RFID 태그에는 고유 번호, 식별합니다. OLED 디스플레이에 표시되는 UID입니다. 이 UID를 제외하고 각 태그는 데이터를 저장할 수 있습니다. 이 유형의 카드는 최대 1,000개의 데이터를 저장할 수 있습니다. 인상적이지 않습니까? 이 기능은 오늘 사용되지 않습니다. 오늘날 관심 있는 것은 UID로 특정 카드를 식별하는 것입니다. RFID 리더와 이 두 RFID 카드의 가격은 약 $4입니다.

3단계 OLED 디스플레이

튜토리얼은 0.96" 128x64 I2C OLED 모니터를 사용합니다.

이것은 Arduino와 함께 사용하기에 아주 좋은 디스플레이입니다. OLED 디스플레이이기 때문에 전력 소모가 적습니다. 이 디스플레이의 소비 전력은 약 10-20mA이며 픽셀 수에 따라 다릅니다.

디스플레이는 128 x 64 픽셀의 해상도를 가지며 크기가 작습니다. 두 가지 표시 옵션이 있습니다. 그 중 하나는 단색이고 다른 하나는 튜토리얼에서 사용된 것처럼 노란색과 파란색의 두 가지 색상을 표시할 수 있습니다. 화면 상단은 노란색만 가능하며, 바닥 부분- 푸른.

이 OLED 디스플레이는 매우 밝고 Adafruit가 이 디스플레이를 위해 개발한 훌륭하고 훌륭한 라이브러리를 가지고 있습니다. 이 외에도 디스플레이는 I2C 인터페이스를 사용하므로 Arduino에 연결하는 것은 매우 쉽습니다.

Vcc와 GND를 제외하고 2개의 전선만 연결하면 됩니다. Arduino를 처음 사용하고 프로젝트에서 저렴하고 간단한 디스플레이를 사용하려면 여기에서 시작하세요.

4단계: 모든 부품을 함께 모으기

최근에는 RFID(Radio Frequency Identification) 기술의 사용이 매우 대중화되고 있습니다. 많은 애플리케이션이 에서 구현되고 있습니다. 다양한 분야우리의 삶과 다양한 용도로 사용됩니다. RFID는 식별 및 기타 목적을 위해 물체에 부착되거나 내장된 전자 태그 판독기를 사용하여 무선 데이터 수집을 가능하게 합니다. 이 기사에서는 Arduino UNO와 RFID 리더(EM-18)를 사용하여 LED와 릴레이를 제어하는 ​​간단한 수제 RFID 액세스 제어 장치를 구축하는 방법을 보여줍니다. 배선도아두이노 스케치( 원천) 아래에 나와 있습니다.

활성화되면 리더가 RF 신호를 전송합니다. RFID 태그를 리더기 근처에 놓으면 태그 내부의 안테나를 통해 RF 신호를 수신합니다. 수신된 RF 신호는 태그에서 RFID 리더로 데이터를 다시 전송하기에 충분한 전기 에너지로 변환됩니다. 또한 리더는 태그 ID를 전송하는 동안 외부 장치직렬 데이터 포트를 통해 현재 다양한 리더 모델을 사용할 수 있습니다. 가장 일반적이고 사용하기 편리한 EM-18 모듈입니다. 이 모듈은 RFID 패시브 태그를 읽고 태그 ID를 Arduino 마이크로컨트롤러로 보냅니다.

독서RFID 태그 ID

시작하려면 간단한 프로그래밍 코드 rfid1.ino안에 아두이노 우노 IDE 개발 도구를 사용합니다.

이제 아래 그림과 같이 회로를 조립하십시오.

Arduino IDE에서 직렬 모니터를 열고 RFID 태그를 RFID 리더의 중앙에 매우 가깝게 잡고 표시된 태그 ID를 확인합니다. 이 고유 식별자는 다음 스케치에서 필요합니다! (우리 태그의 ID는 51005F46642C입니다.)

액세스 제어

이 시점에서 시스템은 고유 식별자(사용 중인 레이블)를 읽을 레이블의 식별자와 비교하도록 구성됩니다.

기존 연결을 구문 분석하고 새 스케치 업로드 rfid2.ino아두이노 마이크로컨트롤러에

위 그림과 같이 하드웨어 구성 요소를 다시 배선합니다(일부 수정 포함). 다음은 D12의 출력입니다. 아두이노 마이크로컨트롤러표준 5mm LED를 구동하는 데 사용됩니다. 핀 D13은 제어 트랜지스터를 통해 전자기 릴레이를 제어하는 ​​데 사용됩니다. 마크가 일치할 때마다 핀 D13에 5초 동안 높은 제어 신호가 나타납니다. 릴레이는 도어 스톱과 같은 외부 부하를 제어하는 ​​데 사용할 수 있습니다. 레이블 값이 일치하지 않으면 출력 D13에 낮은 신호 레벨이 유지되지만 동시에 출력 D12에 신호가 나타납니다. 높은 레벨알람 LED를 트리거합니다.

1 독자에 대한 설명 RFID RC522

RFID-RC522 모듈은 NXP MFRC522 칩을 기반으로 합니다. 이 칩은 13.56MHz의 주파수에서 양방향 무선(최대 6cm) 통신을 제공합니다.

MFRC522 칩 지원 다음 옵션사이:

사용하여 이 모듈다양한 RFID 태그에서 데이터를 쓰고 읽을 수 있습니다. 인터콤의 열쇠 고리, 플라스틱 패스 카드 및 지하철 티켓 및 지상 운송, 뿐만 아니라 점점 더 인기 있는 NFC 태그.

RFID는 "Radio Frequency IDentification"의 줄임말이며 "Radio Frequency Identification"으로 번역됩니다.
NFC는 "근거리 무선 통신", "근거리 무선 통신" 또는 "근접 무선 통신"입니다.

2 배선도 RFID-RC522에서 Arduino로

위의 그림에 따라 SPI 인터페이스를 통해 RFID-RC522 모듈을 Arduino에 연결해 보겠습니다.


모듈은 2.5~3.3V의 전압으로 전원이 공급됩니다. 나머지 핀은 다음과 같이 Arduino에 연결됩니다.

핀 RC522아두이노 핀
RSTD9
SDA(SS)D10
모시D11
미소D12
SCKD13

Arduino에는 특별한 ICSP 커넥터 SPI 인터페이스에서 작동합니다. 핀아웃도 그림에 나와 있습니다. RC522 모듈의 RST, SCK, MISO, MOSI 및 GND 핀을 Arduino의 ICSP 헤더에 연결할 수 있습니다.

3 업무용 도서관 RFID가 있는 아두이노

MFRC522 칩에는 상당히 광범위한 기능이 있습니다. 그녀의 여권(데이터 시트)을 조사하여 모든 가능성에 대해 알 수 있습니다. 우리는 가능성을 알고 있습니다 이 기기우리는 다음을 위해 작성된 기성 라이브러리 중 하나를 사용할 것입니다. 아두이노 작업 RC522로. 다운로드하여 Arduino IDE\libraries\ 디렉토리에 압축을 풉니다.


Arduino가 RFID 태그와 함께 작동하도록 "rfid-master" 라이브러리 설치

그런 다음 Arduino IDE를 실행합니다.

4 정보를 읽기 위한 스케치, RFID 태그에 쓰여진

이제 예제에서 스케치를 열어 보겠습니다. 파일 샘플 MFRC522 DumpInfo아두이노 메모리에 로드합니다.


이 스케치는 리더기에 부착된 장치의 종류를 결정하고 RFID 태그나 카드에 기록된 데이터를 읽어 직렬 포트로 출력합니다.

#포함 #포함 상수 정수 RST_PIN = 9; // 핀 RST const int SS_PIN = 10; // SDA 핀(SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // MFRC522 객체 생성 무효 설정()( Serial.begin(9600); // 마지막 초기화. 포트 SPI.begin(); // SPI 버스 초기화 mfrc522.PCD_Init(); // RC522 리더 초기화 ) 무효 루프() (// 새로운 RFID 태그가 적용될 때까지 대기: if (! mfrc522.PICC_IsNewCardPresent()) ( return; // 적용되지 않으면 종료 새 지도) // 일련 번호 읽기: if (! mfrc522.PICC_ReadCardSerial()) ( return; // 일련 번호를 읽을 수 없으면 종료 ) 포트: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

스케치의 텍스트는 상당히 잘 설명되어 있습니다.

이상 완전 아는 사람라이브러리 탐색 파일 사용 MFRC522.h그리고 MFRC522.cpp디렉토리에서 RFID 마스터.

5 데이터 덤프 RFID 태그로

메뉴를 통해 Ctrl + Shift + M 키 조합으로 직렬 포트 모니터를 시작합니다. 도구또는 돋보기 버튼. 이제 지하철 티켓이나 기타 RFID 태그를 리더기에 부착해 보겠습니다. 직렬 포트 모니터는 RFID 태그 또는 티켓에 기록된 데이터를 표시합니다.


예를 들어 제 경우에는 고유 티켓 번호, 구매 날짜, 만료 날짜, 남은 여행 횟수 및 서비스 정보가 여기에 암호화됩니다. 우리는 향후 기사 중 하나에서 지하철 및 지상 교통 지도에 기록된 내용을 분석할 것입니다.

메모

예, RFID-RC522 모듈을 사용하여 지하철 티켓에 데이터를 쓸 수 있습니다. 그러나 자신을 아첨하지 마십시오. 각 카드에는 다시 쓸 수 없는 쓰기 주기 카운터가 있으므로 지하철에 여행을 "추가"할 수 없습니다. 즉시 감지되고 카드가 개찰구에서 거부됩니다. 그러나 지하철 티켓을 사용하여 1에서 4kb까지 소량의 데이터를 기록할 수 있습니다. 그리고 당신이 그것을 사용할 수 있는 방법은 당신의 상상력에 의해서만 제한됩니다.

이 단원에서는 다음을 수행하는 방법을 배웁니다. 단식, 잠금을 해제합니다 전자 열쇠(메트케).

앞으로 기능을 개선하고 확장할 수 있습니다. 예를 들어 "새 키 추가 및 메모리에서 제거" 기능을 추가합니다. 기본적인 경우, 고유 키 식별자가 프로그램 코드에 미리 지정된 경우 간단한 예를 고려하십시오.

이 튜토리얼에서는 다음이 필요합니다.

프로젝트를 구현하려면 라이브러리를 설치해야 합니다.

2) 이제 키가 작동하고 자물쇠가 열리면 신호를 보내고 자물쇠가 닫힐 때 두 번째 신호를 보내는 부저를 연결해야 합니다.

부저를 다음 순서로 연결합니다.

아두이노 부저
5V VCC
접지 접지
핀 5 IO

3) 잠금 해제 메커니즘으로 서보가 사용됩니다. 필요한 치수와 서보가 생성하는 힘에 따라 모든 서보를 선택할 수 있습니다. 서보에는 3개의 핀이 있습니다.

더 명확하게, 아래 그림에서 모든 모듈을 어떻게 연결했는지 알 수 있습니다.

이제 모든 것이 연결되면 프로그래밍을 진행할 수 있습니다.

스케치:

#포함 #포함 #포함 // "RFID" 라이브러리. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); 서명되지 않은 긴 uidDec, uidDecTemp; // 태그 번호를 10진수 형식으로 저장합니다. Servo 서보; void setup() ( Serial.begin(9600); Serial.println("카드 대기 중..."); SPI.begin(); // SPI 초기화 / SPI 버스 초기화 mfrc522.PCD_Init(); // 초기화 MFRC522 / MFRC522 초기화 card.servo.attach(6); servo.write(0); // 서보를 닫힌 상태로 설정) void loop() ( // 새 레이블 검색 if (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // 라벨 선택 if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // 발행 일련 번호레이블. (바이트 i = 0; 나는< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем 소리 신호, 서보.write(90) 열기; // 서보를 90도 회전(모든 메커니즘 잠금 해제: 래치, 키 돌리기 등) delay(3000); // 3초 동안 일시 중지하면 메커니즘이 잠깁니다. 톤(5, 500, 500); // 비프음 울림, 닫기 ) 서보.write(0); // 서버를 닫힌 상태로 설정)

스케치를 더 자세히 분석해 보겠습니다.

카드의 UID(레이블)를 찾으려면 이 스케치를 arduino에 작성하고 위에서 설명한 회로를 조립하고 콘솔(직렬 포트 모니터링)을 열어야 합니다. 태그를 RFID에 가져가면 콘솔에 번호가 표시됩니다.

결과 UID는 다음 줄에 입력해야 합니다.

If (uidDec == 3763966293) // 레이블의 Uid를 비교하고 지정된 것과 같으면 서보가 밸브를 엽니다.

각 카드에 대해 이 식별자는 고유하며 반복되지 않습니다. 따라서 프로그램에서 설정한 ID의 카드를 제시하면 시스템이 서보를 사용하여 액세스를 엽니다.

동영상: