보안은 일상 생활에서 주요 관심사이며 디지털 잠금은 이러한 보안 시스템의 중요한 부분이되었습니다. 우리 집을 보호하기 위해 사용할 수있는 보안 시스템에는 여러 가지가 있습니다. 몇 가지 예로는 PIR 기반 보안 시스템, RFID 기반 보안 시스템, 디지털 잠금 시스템, 바이오 매트릭스 시스템, 전자 코드 잠금이 있습니다. 이 게시물에서는 지문 센서 모듈을 Arduino 와 인터페이스하고 도어 잠금 기능이 있는 지문 기반 생체 인식 보안 시스템 을 구축 할 것 입니다. 지문은 모든 사람을 고유하게 인식 할 수 있고 쉽게 복사 할 수 없기 때문에 모든 시스템을 잠 그거나 잠금 해제하는 가장 안전한 키 중 하나로 간주됩니다.
필요한 구성 요소:
- Arduino Uno
- 지문 모듈
- 푸시 버튼 -4
- LED -2
- 1K 저항기 -3
- 2.2K 저항 -1`
- 전원 공급
- 전선 연결
- 골판지 상자
- 서보 모터 -1
- 16x2 LCD -1
- 브레드 보드 -1
Arduino를 사용한 지문 센서 모듈:
지문 센서 모듈 또는 지문 스캐너 는 지문 이미지를 캡처 한 다음 해당 템플릿으로 변환하여 Arduino가 선택한 ID (위치)에 메모리에 저장하는 모듈입니다. 여기에서 모든 프로세스는 Arduino에서 지문 이미지를 찍고 템플릿으로 변환하고 위치를 저장하는 등의 명령을 내립니다.
이 Arduino 지문 센서 프로젝트에서 우리는 지문 센서 모듈 을 사용 하여 시스템의 입력으로 손가락 또는 엄지 인상을 가져 왔습니다. 여기에서는 4 개의 푸시 버튼을 사용하여 등록 / 뒤로, 삭제 / 확인, 위 및 아래로 이동합니다. 모든 키에는 두 가지 기능이 있습니다. 등록 키 는 새 손가락 인상을 시스템에 등록하고 뒤로 기능을하는데도 사용됩니다. 사용자가 새로운 지문을 등록하고자 할 때 등록 키를 눌러야하며 LCD는 지문 출력을 저장할 ID 또는 위치를 묻습니다. 이제 사용자가 더 이상 진행하지 않으려면 등록 키를 다시 눌러 뒤로 이동할 수 있습니다 (이번에는 등록 키가 뒤로 키로 동작 함). 등록 키에 등록 및 뒤로 기능이 모두 있음을 의미합니다. DEL / OK 키또한 사용자가 새 손가락을 등록 할 때와 동일한 이중 기능을 가지고 있으며 다른 두 키 즉 UP / MATCH AND DOWN / MATCH (이중 기능도 있음)를 사용하여 손가락 ID 또는 위치를 선택해야합니다. 이제 사용자는 DEL / OK를 눌러야합니다. 키 (이번에는이 키가 OK처럼 동작 함)를 눌러 선택한 ID 또는 위치로 진행합니다. UP / DOWN 키는 지문 일치 기능도 지원합니다. 전체 데모를 보려면 끝에 있는 비디오 를 확인하십시오.
여기에는 시스템이 올바른 지문을 읽을 때만 열리는 보안 게이트 역할을하는 서보 모터가있는 판지 상자도 부착되어 있습니다. 노란색 LED는 게이트가 닫 혔음을 나타내고 녹색 LED는 게이트가 열렸 음을 나타냅니다.
작동 설명:
이 지문 센서 도어록의 작동쉽습니다. 이 프로젝트에서 우리는 지문 모듈에 저장된 손가락을 놓을 때 열리는 게이트를 사용했습니다. 우선, 사용자는 누름 버튼 / 키를 사용하여 손가락을 등록해야합니다. 이를 위해 사용자는 ENROLL 키를 눌러야하며 LCD는 손가락이 가게 될 위치 / ID를 입력하도록 요청합니다. 이제 사용자는 UP / DOWN 키를 사용하여 ID (위치)를 입력해야합니다. 위치 / ID를 선택한 후 사용자는 확인 키 (DEL 키)를 눌러야합니다. 이제 LCD는 지문 모듈 위에 손가락을 올려달라고 요청할 것입니다. 이제 사용자는 지문 모듈 위에 손가락을 올려야합니다. 그런 다음 LCD는 지문 모듈에서 손가락을 제거하라는 메시지를 표시하고 다시 손가락을 넣을 것을 요청합니다. 이제 사용자는 지문 모듈 위에 다시 손가락을 올려야합니다.이제 지문 모듈은 이미지를 가져와 템플릿으로 변환하고 선택한 ID로 지문 모듈의 메모리에 저장합니다. 이제 사용자는 자신이 추가하거나 등록한 동일한 손가락을 시스템에 놓고 MATCH 키 (위 / 아래 키)를 눌러 게이트를 열 수 있습니다. 같은 방법으로 사용자는 더 많은 손가락을 추가 할 수 있습니다. 전체 데모는 아래 비디오를 확인하십시오.
이제 사용자가 저장된 ID를 삭제하거나 삭제하려면 DEL 키를 눌러야합니다. DEL 키를 누른 후 LCD는 삭제할 위치를 선택하라는 메시지가 표시됩니다. 이제 사용자는 ID를 선택하고 확인 키 (동일한 DEL 키)를 눌러야합니다. 이제 LCD는 손가락이 성공적으로 삭제되었음을 알려줍니다. 이제 사용자는 지문 모듈 위에 같은 손가락을 놓고 MATCH 키 (위 / 아래 키)를 눌러 삭제되었는지 여부를 확인할 수 있습니다.
손가락을 올렸을 때 녹색 LED가 5 초 동안 빛나고 게이트도 동시에 열립니다. 5 초 후 게이트가 자동으로 닫힙니다. 사용자는 필요에 따라 게이트 / 도어 개폐를 사용자 지정할 수 있습니다. 서보 모터는 게이트의 개폐를 담당합니다.
회로 설명:
이 Arduino 지문 보안 시스템 의 회로는 프로젝트의 전체 프로세스를 제어하는 Arduino, 푸시 버튼, 부저 및 LCD를 포함하는 매우 간단합니다. Arduino는 전체 프로세스를 제어합니다.
누름 버튼은 아두 이노의 D14 (ENROL), D15 (DEL), D16 (UP), D17 (DOWN) 핀에 접지를 직접 연결하고 노란색 LED는 아두 이노 디지털 핀 D7에 접지를 통해 연결합니다. Arduino의 D6에 1k 저항과 Green LED를 같은 방법으로 연결합니다. Arduino의 소프트웨어 직렬 또는 디지털 핀 D2 및 D3에 직접 연결된 지문 모듈의 Rx 및 Tx. 5v 전원은 Arduino 보드에서 가져온 지문 모듈에 전원을 공급하는 데 사용되며 서보 모터도 Arduino의 PWM 핀 D5에 연결됩니다. 16x2 LCD는 4 비트 모드로 구성되며 RS, EN, D4, D5, D6 및 D7은 Arduino의 디지털 핀 D13, D12, D11, D10, D9 및 D8에 직접 연결됩니다.
참고: 여기서 D14, D15, D16, D17은 각각 A0, A1, A2, A3입니다.
프로그램 설명:
프로그램에서 우리는 Arduino 보드와 지문 모듈 을 인터페이스 하기 위해 Adafruit 지문 센서 라이브러리를 사용 했습니다. 아래의 전체 코드를 확인할 수 있으며 쉽게 이해할 수 있습니다. 아두 이노 프로그램의 주요 기능을 설명합니다.
아래 코드는 지문을 입력으로 사용하고 손가락의 유효성에 따라 조치를 취하는 데 사용됩니다. 손가락이 확인되면 게이트가 열리고 그렇지 않으면 닫힌 상태로 유지됩니다.
for (int i = 0; i <5; i ++) {lcd.clear (); lcd.print ("손가락 놓기"); 지연 (2000); int result = getFingerprintIDez (); if (결과> = 0) {digitalWrite (openLight, HIGH); digitalWrite (closeLight, LOW); lcd.clear (); lcd.print ("허용됨"); lcd.setCursor (0,1); lcd.print ("Gete Opened"); myServo.write (0); 지연 (5000); myServo.write (180); digitalWrite (closeLight, HIGH); digitalWrite (openLight, LOW); lcd.setCursor (0,1); lcd.print ("게이트 닫힘");
주어진 void checkKeys () 함수는 Enroll 또는 DEL 키를 눌렀는지 여부와 눌렀을 때 수행 할 작업을 확인하는 데 사용됩니다. ENROLL 키를 누르면 Enroll () 함수가 호출되고 DEL 키를 누르면 delete () 함수가 호출됩니다.
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("기다려주십시오"); 지연 (1000); while (digitalRead (enroll) == 0); 싸다(); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("기다려주십시오"); 지연 (1000); delet (); }}
삭제할 ID를 입력 하고 레코드에서 손가락을 삭제 하는 uint8_t deleteFingerprint (uint8_t id) 함수를 호출하는 함수입니다.
void delet () {정수 개수 = 0; lcd.clear (); lcd.print ("손가락 삭제"); lcd.setCursor (0,1); lcd.print ("위치:"); while (1) {lcd.setCursor (9,1); lcd.print (수); if (digitalRead (up) == 0) {count ++; if (count> 25) count = 0; 지연 (500); }……………….
주어진 기능은 선택된 ID의 기록에서 지문을 삭제하는 데 사용됩니다.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("기다려주십시오"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("삭제됨!"); lcd.clear (); lcd.print ("Figer 삭제됨"); lcd.setCursor (0,1); lcd.print ("성공적으로"); 지연 (1000); } else {Serial.print ("뭔가 잘못됨"); lcd.clear (); lcd.print ("뭔가 잘못됨"); lcd.setCursor (0,1); lcd.print ("나중에 다시 시도"); 지연 (2000); 반환 p; }}
주어진 기능은 지문 이미지를 가져와 템플릿으로 변환하여 선택한 ID로 지문 모듈 메모리에 저장하는 데 사용됩니다.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("손가락 ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("손가락 놓기"); 지연 (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
이것이 보안 시스템 용 지문 인식 모듈과 함께 Arduino를 사용하는 방법 입니다.