?>

Hard Copy World

HCW

Sensor

Home > Info >

Sensor

지문 인식 센서 (Optical Fingerprint Sensor)

페이지 정보

작성자 하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-07-14 23:01 조회4,122회 댓글1건

본문

지문만큼 널리 사용되는 생체보안 기술은 없을겁니다. 그래서인지 지문 인식을 가능케 해주는 모듈도 꽤 오래 전부터 판매되고 있습니다. 아두이노에 붙여 사용하는 방법도 그리 어렵지 않기 때문에 보안이 필요한 프로젝트에 한 번 응용해 볼 만 합니다.

 

지문 인식 센서(모듈)

지문 인식 센서는 고성능 DSP 칩을 탑재해서 이미지 렌더링, 연산, 특징점 탐색과 검색을 빠르게 처리합니다. 이 모듈을 마이크로 컨트롤러에 연결하면 데이터 패킷을 보내서 지문 인식과 탐색 과정을 제어할 수 있습니다. 모듈에 탑재된 플래시 메모리에는 162개의 지문을 저장할 수 있습니다. 상세한 스펙은 아래와 같습니다.

  • Supply voltage: 3.6 - 6.0VDC
  • Operating current: 120mA max
  • Peak current: 150mA max
  • Fingerprint imaging time: <1.0 seconds
  • Window area: 14mm x 18mm
  • Signature file: 256 bytes
  • Template file: 512 bytes
  • Storage capacity: 162 templates
  • Safety ratings (1-5 low to high safety)
  • False Acceptance Rate: <0.001% (Security level 3)
  • False Reject Rate: <1.0% (Security level 3)
  • Interface: TTL Serial
  • Baud rate: 9600, 19200, 28800, 38400, 57600 (default is 57600)
  • Working temperature rating: -20C to +50C
  • Working humidy: 40%-85% RH
  • Full Dimensions: 56 x 20 x 21.5mm
  • Exposed Dimensions (when placed in box): 21mm x 21mm x 21mm triangular
  • Weight: 20 grams

유명한 Adafruit 에서 이 센서를 위한 전용 라이브러리를 만들어 배포하고 있으며 여기에는 간단히 센서의 동작을 확인할 수 있는 예제가 포함되어 있습니다. 일단 라이브러리를 받아 설치하는 것이 센서를 사용하기 위한 첫 걸음입니다.

Adafruit Fingerprint Sensor Library : https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library

 

지문 인식 모듈은 크게 2개의 동작 단계 - 인식(Enrolling), 탐색(Searching) 으로 나뉩니다.

인식(Enroll) 단계는 지문을 입력받아 각각의 지문에 ID를 부여하는 과정입니다. 일단 인식 단계가 끝나면 이후부터 센서를 통해 입력받은 지문을 검색해서 일치하는 ID를 찾을 수 있습니다. 이 과정이 탐색(Search) 과정입니다.

 

지문 인식 과정(Enrolling)

 

인식 과정은 Windows PC를 통해 지문 이미지를 확인하면서 할 수도 있고 아두이노에서 처리하게 할 수도 있습니다.

Windows PC 용 인식 프로그램만 배포되고 있긴 하지만 인식 과정은 한 번만 진행하면 됩니다. Windows PC에 연결하기 위해서는 USB/Serial 통신을 중계해주는 FTDI(USB to UART) 모듈이 필요합니다. 별도의 FTDI 모듈이 없어도 아래와 같이 아두이노 UNO 보드에 연결하면 사용이 가능합니다.

아두이노 --> 지문 인식 센서

  • VCC --> 5V
  • GND --> GND
  • D0 --> white line
  • D1 --> green(or blue) line

biometric_passthru

이렇게 연결한 상태에서 아두이노에 USB 케이블을 연결하면 붉은색 LED가 점등해야 합니다. 그리고 아두이노에는 아래 소스코드를 올립니다. 소스코드를 보면 아시겠지만 아무 내용이 없습니다. 실제 아두이노는 아무 동작을 할 필요가 없습니다. PC에 연결하기위해 아두이노가 가지고 있는 FTDI 모듈만 지문 인식 센서가 빌려쓰기 때문입니다.

// this sketch will allow you to bypass the Atmega chip
// and connect the fingerprint sensor directly to the USB/Serial
// chip converter.
 
// Red connects to +5V
// Black connects to Ground
// White goes to Digital 0
// Green goes to Digital 1
 
void setup() {}
void loop() {}

 주의!!! 아두이노 UNO/Nano 보드와 같이 Atmega328 기반의 FTDI 모듈을 탑재한 보드만 해당됩니다. Leonardo/Micro/Yun 또는 Atmega32U4 기반 보드는 Leo_passthru 스케치를 올려 사용해야 합니다. 위에서 소개한 Adafruit 라이브러리 링크에 예제 스케치로 포함되어 있습니다.

 

아두이노를 통해 PC와 센서가 연결되면 SFGDemo 프로그램을 실행합니다. 아래 링크로 받으실 수 있습니다.

http://www.adafruit.com/datasheets/SFGDemoV2.0.rar

프로그램이 실행되면 아래 순서로 지문을 인식시키면 됩니다.

  • 좌측 하단 Open Device 선택 > COM port 선택
  • 우측 상단에 파란색 Open Device Success! 메시지가 표시되어야 함
  • 왼쪽 하단에서 Baudrate = 57600, Secure Level  = 3(감도) 확인, 기본값이므로 일단 이 설정으로 진행
  • 우측 중간에 Enroll 영역에서 Preview 체크박스 on
  • Enroll 버튼 클릭 (여러개의 지문을 인식할 때 Con Enroll 선택 - Continuous Enroll)
  • User address 팝업이 뜨면 원하는 ID를 부여 (162 까지 가능)
  • 우측 상단에 파란색 메시지 "Please put your finger to sensor!" 가 보이면 손가락을 댐
  • 좌측 상단 preview 창에서 인식 결과 이미지를 확인 가능
  • 깨끗한 이미지를 위해서는 위 과정을 반복

윈도우 1

 

지문 탐색 과정(Searching)

지문 인식 과정이 끝나면 지문 탐색 과정을 테스트 해보는 것이 좋습니다. SFGDemo 프로그램에서 중앙 Match 영역 - Search 버튼을 클릭합니다. 센서에 동일한 혹은 다른 손가락을 대고 지문이 정확히 찾아지는지 확인하세요.

  • 정확히 찾아질 경우 : Find same finger! ID = xx 출력
  • 찾지 못한 경우 : Not find same finger! 출력

 

아두이노에 연결해서 사용하기

본격적으로 아두이노와 연결해서 사용하는 방법을 보겠습니다.

앞서와는 다르게 아두이노의 D2, D3 핀을 사용해서 연결합니다. 두 개의 디지털 핀을 이용해 시리얼 통신을 할 수 있도록 SoftwareSerial 라이브러리를 사용할 것입니다.

아두이노 --> 지문 인식 센서

  • VCC --> 5V
  • GND --> GND
  • D2 --> white line
  • D3 --> green(or blue) line

주의!!! Leonardo 보드의 경우는 D8, D9를 사용해야 합니다. Mega 보드의 경우는 D10, D11 핀을 사용해야 합니다. 물론 여기에 맞게 소스코드도 수정해줘야 합니다.

연결 후 아두이노에 전원을 넣으면 지문 인식 센서의 빨간 LED가 빠르게 깜빡이고 곧 꺼집니다.

앞서 Adafruit 에서 제작한 지문 인식 센서용 라이브러리를 설치한게 기억나실 겁니다. 아직 설치하지 않으셨다면 다시 설치를...

Adafruit Fingerprint Sensor Library : https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library

[File→Examples→Adafruit_Fingerprint→fingerprint] 예제를 불러와서 아두이노에 업로드 합니다. 업로드 완료되면 시리얼 모니터 실행하고 손가락을 댄 뒤 아래와 같이 메시지가 나오는지 확인하세요. (인식 enroll 과정이 완료된 센서여야 합니다.)

biometric_arduinosearch

지문 ID #3과 일치하는 결과가 나왔습니다. confidence 값 157은 얼마나 DB의 지문과 잘 일치하는지를 보여주는 점수입니다. 0~255까지의 값을 가지며 값이 클 수록 결과가 좋다는 의미입니다. 센서가 일치한다고 판단되는 지문을 찾았다는 것 자체가 중요한 것이고 confidence 는 부가적인 수치입니다. 높은 보안이 요구되는 경우에만 사용하는 수치이므로 일반적으로는 무시해도 됩니다.

아두이노에서도 인식 과정을 진행할 수 있습니다. 아래 경로에 있는 예제 스케치를 사용하면 됩니다. 아무래도 PC에서 할 때 보다는 불편하고 시리얼 모니터를 통해 ID를 입력해 줘야 하는 번거로움이 있습니다.

[File→Examples→Adafruit_Fingerprint→enroll]

 

 

활용

예제 스케치를 본인의 프로젝트에 맞게 적당히 수정해서 사용하세요. 디지털 도어락 혹은 나만의 전자 금고를 만드는데 활용하기 딱 좋을겁니다.

 

 

 참고자료

 


하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물

모든 전통이 한 때는 오해를 면치 못했다. 마찬가지로 모든 아이디어는 한 때는 비웃음을 면치 못했다. -홀브룩 잭슨 ::::: 느닷없이 떠오르는 생각이 가장 귀중한 것이며, 보관해야할 가치가 있는 것이다. -베이컨 ::::: 미리 숙고하면 힘든 일도 그저 실행에 옮기는 순간 쉬워진다. - 로버트 M. 피어식

추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

티토리슈님의 댓글

티토리슈 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

지문인식 센서 찾을수 없다는데 해결방법이 없나요?
 처음부터 작동이 안하던건 아니고 사용중에 갑자기 불도 안들어오고
Did not find fingerprint sensor 나오면서 작동이 안됩니다.