RFID (Radio Frequency Identification)는 저렴하고 접근 가능한 기술입니다. 액세스 제어, 보안, 자산 추적, 사람 추적 등과 같은 많은 응용 프로그램에서 사용할 수 있습니다. RFID 리더 근처에 카드를두기 만하면되는 호텔, 사무실 및 기타 여러 장소에서 RFID 도어락 시스템 을 보았습니다. 잠깐 동안 문이 열립니다. 우리는 많은 RFID 기반 프로젝트에서 RFID 리더와 태그를 사용했습니다.
이전 게시물에서는 간단한 RFID 도어록을 구축했으며 이번에는 실제 솔레노이드 도어록을 사용하여 RFID와 Arduino로 제어합니다. 여기에서는 홀 효과 센서와 자석이 문 움직임을 감지하는 데 사용됩니다. 홀 효과 센서는 도어 프레임에 배치되고 자석은 도어 자체에 배치됩니다. 홀 이펙트 센서와 자석이 가까이있을 때 홀 이펙트 센서는 로우 상태가되고 문은 닫힌 상태로 유지되며 센서와 자석이 닫히지 않으면 문이 열려 있고 홀 센서가 하이에 있음을 의미합니다. 상태. 이 홀 효과 메커니즘을 사용하여 문을 자동으로 잠그고 잠금 해제합니다. 홀 센서와 그 작동에 대해 자세히 알아 보려면 링크를 따르십시오.
필요한 구성 요소
- Arduino Uno
- RFID-RC522 모듈
- 12v 솔레노이드 잠금
- 릴레이 모듈
- 홀 효과 센서
- 10kΩ 저항기
- 부저
솔레노이드 잠금
솔레노이드 잠금 장치는 전자 기계식 잠금 메커니즘에서 작동합니다. 이 유형의 잠금 장치에는 비스듬히 잘린 슬러그와 좋은 장착 브래킷이 있습니다. 전원이 공급되면 DC는 슬러그를 내부로 이동시키고 도어를 잠금 해제 위치에 유지하는 자기장을 생성합니다. 슬러그는 전원이 제거 될 때까지 위치를 유지합니다. 전원이 차단되면 슬러그가 밖으로 나가 문을 잠급니다. 잠금 상태에서는 전원을 사용하지 않습니다. 솔레노이드 잠금을 구동하려면 12V @ 500mA를 제공 할 수있는 전원이 필요합니다.
회로도
Arduino를 사용한 솔레노이드 도어록의 회로도 는 다음과 같습니다.
Arduino와 RFID 간의 연결은 아래 표에 나와 있습니다. 부저의 양극 핀은 Arduino의 디지털 핀 4에 연결되고 GND 핀은 Arduino의 접지 핀에 연결됩니다. 10K 저항은 홀 효과 센서 의 VCC와 OUT 핀 사이에 사용됩니다. 솔레노이드 잠금 장치는 릴레이 모듈을 통해 Arduino에 연결됩니다.
RFID 핀 | Arduino Uno 핀 |
SDA | 디지털 10 |
SCK | 디지털 13 |
MOSI | 디지털 11 |
MISO | 디지털 12 |
IRQ | 연결되지 않음 |
GND | GND |
RST | 디지털 9 |
3.3V | 3.3V |
홀 효과 센서 핀 | Arduino Uno 핀 |
5V | 5V |
GND | GND |
밖 | 삼 |
회로도에 따라 성능 기판의 모든 구성 요소를 납땜하면 아래 이미지와 같습니다.
코드 설명
이 Arduino 솔레노이드 잠금 장치에 대한 전체 코드 는 문서 끝에 제공됩니다. 여기에서는 더 나은 이해를 위해이 코드를 단계별로 설명합니다.
필요한 모든 라이브러리를 포함하여 코드를 시작합니다. 여기서는 Arduino와 RFID 간의 SPI 통신을위한 라이브러리와 RFID 모듈을위한 두 개의 라이브러리 만 필요합니다. 두 라이브러리 모두 아래 링크에서 다운로드 할 수 있습니다.
- SPI.h
- MFRC522.h
이제 버저, 솔레노이드 잠금 및 RFID 모듈에 대한 핀을 정의하십시오.
int 부저 = 4; const int LockPin = 2; #define SS_PIN 10 #define RST_PIN 9
그런 다음 잠금 핀과 버저 핀을 출력으로 정의하고 홀 효과 센서 핀을 입력으로 정의하고 SPI 통신을 시작합니다.
pinMode (LockPin, OUTPUT); pinMode (부저, 출력); pinMode (홀 _ 센서, INPUT); SPI.begin (); // SPI 버스 시작 mfrc522.PCD_Init (); // MFRC522 시작
보이드 루프 내부에서 홀 센서 값을 읽고 낮아지면 문을 닫습니다.
상태 = digitalRead (hall_sensor); Serial.print (상태); 지연 (3000); if (상태 == LOW) {digitalWrite (LockPin, LOW); Serial.print ("문이 닫힘"); digitalWrite (부저, HIGH); 지연 (2000); digitalWrite (부저, LOW);}
무효 루프 기능 내에서 새 RFID 카드가 있는지 확인하고 새 카드가 있으면 카드의 UID를 확인합니다. 유효한 카드의 경우 자물쇠가 열립니다. 그렇지 않으면 ' 권한이 없습니다. '완성 된 작업은 마지막에 주어진 비디오에 표시됩니다.
if (! mfrc522.PICC_IsNewCardPresent ()) {return; } // 카드 중 하나를 선택 if (! mfrc522.PICC_ReadCardSerial ()) {return; } // 직렬 모니터에 UID 표시 String content = ""; 바이트 문자; for (byte i = 0; i <mfrc522.uid.size; i ++) {content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (String (mfrc522.uid.uidByte, HEX)); } Serial.println (); Serial.print ("메시지:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // 여기에서 액세스 권한을 부여 할 카드 / 카드의 UID를 변경합니다. {digitalWrite (LockPin, HIGH); Serial.print ("도어 잠금 해제"); digitalWrite (부저, HIGH); 지연 (2000); digitalWrite (부저, LOW); } else {Serial.println ("권한이 없습니다"); digitalWrite (부저, HIGH); 지연 (2000); digitalWrite (부저,낮은); }}
RFID 솔레노이드 잠금 장치 테스트
코드와 하드웨어가 준비되면 Solenoid Door Lock 프로젝트 테스트를 시작할 수 있습니다. 여기에서는 퍼프 보드의 모든 구성 요소를 납땜하여 도어에 쉽게 장착 할 수 있습니다.
따라서 테스트를 위해 도어 프레임에 퍼프 보드를 장착하고 도어에 자석을 장착하여 도어의 움직임을 감지 할 수 있도록합니다. 아래 그림은 자석과 홀 센서가 문에 어떻게 고정되어 있는지 보여줍니다.
이제 승인 된 RFID 카드를 스캔하여 도어록을 엽니 다. 솔레노이드 도어 잠금 장치는 홀 효과 센서 출력이 높을 때까지 열려 있습니다. 이제 문이 닫히는 동안 다시 Hall 센서에 가까워지면 자기장 (문에 부착 된 자석에 의해 생성됨)에 의해 Hall Effect 센서 상태가 Low로 변경되고 잠금이 다시 닫힙니다.
홀 효과 센서를 사용하는 대신 정의 된 시간 동안 문을 열어두기 위해 지연을 도입 할 수 있습니다.
완전한 코드와 작업 비디오가 아래에 나와 있습니다. 또한 다른 기술을 사용하여 다른 유형의 도어록을 확인하십시오.