- Потребни материјали
- ГТ511Ц3 модул сензора отиска прста (ФПС)
- Повезивање сензора за отисак прста ГТ511Ц3 са Ардуином
- Ардуино са ГТ511Ц3
- Програмирање Ардуина за сензор за отисак прста ГТ511Ц3
- Рад сензора за отисак прста ГТ511Ц3 са Ардуином
Биометрија се већ дуго користи као поуздан систем за потврду идентитета. Данас постоје сложени биометријски системи који могу идентификовати особу према ритму откуцаја срца или чак према ДНК. Остале могуће методе укључују препознавање гласа, препознавање лица, скенирање шаренице и скенирање отиска прста. Међу којима је препознавање отиска прста најчешће коришћена метода, можемо је пронаћи од једноставног система за присуство, паметних телефона до безбедносних провера и још много тога.
У овом упутству научићемо како се користи популарни ГТ511Ц3 сензор за отисак прста (ФПС) са Ардуином. Доступно је много ФПС-а и већ смо научили како да их користимо за израду дизајна као што су Аттенданце систем, Вотинг Мацхине, Сигурносни систем итд. Али ГТ511Ц3 је напреднији са великом тачношћу и бржим временом одзива, па ћемо научити како га користити помоћу Ардуина да на њега уписује отиске прстију, а затим открива отиске кад год је то потребно. Па кренимо.
Потребни материјали
- Ардуино Нано / УНО
- ГТ511Ц3 Сензор за отисак прста
- ЛЦД екран од 16к2
- Пот - 10к и 1к, 10к, 22к отпорници
- Тастер
- Повезивање жица
- Даска за хлеб
ГТ511Ц3 модул сензора отиска прста (ФПС)
Пре него што уђемо у пројекат, обавестимо нас о модулу сензора за отисак прста ГТ511Ц3 и како он функционише. Овај сензор се веома разликује од капацитивног и ултразвучног сензора отиска прста који се обично користе у нашим паметним телефонима. ГТ511Ц3 је оптички сензор отисака прстију, што значи да се ослања на слике вашег прста да призна свој образац. Да, добро сте прочитали, сензор заправо има камеру која снима ваше отиске прстију и затим их обрађује помоћу моћног уграђеног ИЦ-а АРМ Цортек М3. Слика испод приказује предњу и задњу страну сензора са пиновима.
Као што видите, сензор има камеру (црну тачку) окружену плавим ЛЕД-има, ови ЛЕД-ови морају бити упаљени да би направили јасну слику отиска прста. Те слике се затим обрађују и претварају у бинарну вредност помоћу АРМ микроконтролера упарен са ЕЕПРОМ-ом. Модул такође има зелену СМД ЛЕД диоду која показује снагу. Свака слика отиска прста има 202к258 пиксела у резолуцији 450дпи. Сензор може да се упише ЕУ 200 отисака прстију и за сваку отиска прста шаблон који су додељени е ИД образац 0 до 199. Затим током откривања може аутоматски упоредити скенирани отисак прста са свих 200 шаблона и ако се пронађе подударање даје ИД број тог одређеног отиска прста помоћу Смацк Фингер 3.0Алгоритам на АРМ микроконтролеру. Сензор може да ради од 3,3 В до 6 В и комуницира серијском комуникацијом на 9600. За комуникационе пинове (Рк и Тк) се каже да су толерантни само 3,3 В, међутим, у техничком листу се не наводи много о томе. Испод ГТ511Ц3 ФПС приказан је доле.
Осим серијске комуникације, модул се такође може директно повезати са рачунаром путем УСБ везе користећи игле приказане на претходној слици. Једном повезан са рачунаром, модулом се може управљати помоћу апликације СДК_ДЕМО.еке која се може преузети са везе. Ова апликација омогућава кориснику да упише / верификује / избрише отиске прстију и да препозна отиске прстију. Софтвер вам такође може помоћи да прочитате слику коју је забележио сензор и вреди покушати. Такође можете да користите овај софтвер чак и ако је сензор повезан са Ардуином, о томе ћемо разговарати касније у овом чланку.
Још једна занимљива карактеристика сензора је метално кућиште око сензорског подручја. Као што сам раније рекао, плава ЛЕД мора бити укључена да би сензор радио. Али у апликацијама у којима сензор треба активно да чека отисак прста, није могуће држати ЛЕД укљученим увек, јер ће загрејати сензор и тако га оштетити. Стога се у тим случајевима метално кућиште може повезати на капацитивни додирни улазни пин МЦУ-а да би се открило да ли га се додирује. Ако је одговор да, ЛЕД се може укључити и започети поступак очитавања. Ова метода овде није демонстрирана јер је изван делокруга овог чланка.
Када ради на 3.3В, сензор троши око 130мА. Потребно је скоро 3 секунде за упис прста и 1 секунда за идентификацију. Међутим, ако је број регистрованих предложака мањи, брзина препознавања биће велика. За више детаља о сензору можете погледати овај технички лист компаније АДХ-Тецх који је званични произвођач модула.
Повезивање сензора за отисак прста ГТ511Ц3 са Ардуином
ГТ511Ц3 ФПС има два пина за напајање који се могу напајати помоћу + 5В пина Ардуина и два пина за комуникацију Рк и Тк који се могу повезати на било који дигитални пин Ардуина за серијску комуникацију. Поред тога, додали смо и тастер и ЛЦД за приказ статуса сензора. Комплетна шема кола за повезивање ГТ511Ц3 ФПС са Ардуином може се наћи у наставку.
Будући да су Рк и Тк пинови толерантни на 3.3В, користили смо потенцијални разделник на Рк страни да претворимо 5В у 3.3В. 10к отпорник и 22к отпорник претварају 5В сигнал са Ардуино Тк пина у 3.3В пре него што стигне до Рк пина ФПС-а. Сензор се такође може напајати од 3,3 В, али побрините се да ваш Ардуино може произвести довољно струје за сензор. Повезали смо ЛЦД у 4-битном режиму напајаном од 5В пина Ардуина. На тастер Д2 повезан је тастер који ће притиском ставити програм у режим уписа у који корисник може да упише нови прст. Након регистрације програм ће остати у режиму скенирања да би скенирао било који прст који додирује сензор.
Ардуино са ГТ511Ц3
Као што је раније поменуто, ГТ511Ц3 ФПС комуницира серијском комуникацијом, сензор разуме хек код и за сваки хек код се изводи одређена операција. Можете да проверите табелу како бисте знали све хексадецималне вредности и одговарајућу функцију ако сте заинтересовани. Али, на нашу срећу, ббоихо је већ створио библиотеку која се може користити директно са Ардуином за регистрацију и откривање отисака прстију. Гитхуб библиотеку за ГТ511Ц3 ФПС можете преузети са доње везе
ГТ511Ц3 Ардуино Либрари
Веза ће преузети ЗИП датотеку, а затим ћете је морати додати у свој Ардуино ИДЕ пратећи наредбу Скица -> Укључи библиотеку -> Додај.ЗИП библиотеку. Након што додате библиотеку, поново покрените ИДЕ и могли бисте да пронађете примере програма за ГТ511Ц3 ФСП у оквиру Датотека -> Пример -> Скенер отиска прста ТТЛ као што је приказано испод
Требали бисте видети четири примера програма, програм за трептање ће трептати плавом лампом на ФПС-у, програм за упис и ИД прсти могу се користити за упис и идентификацију прстију у складу с тим. Имајте на уму да ће модул једном уписан прст памтити чак и ако је искључен.
Серијски пролазни програм може се отпремити на Ардуино да би се користила апликација Демо_СДК.еке о којој смо говорили раније у овом чланку. Да бисте избрисали било који образац отиска прста или сачували копију на рачунару, може се користити ова СДК апликација.
Програмирање Ардуина за сензор за отисак прста ГТ511Ц3
Наш циљ овде је да напишемо програм који ће уписати прст када се притисне дугме и приказати ИД број прста који је већ уписан. Такође бисмо требали бити у могућности приказати све информације на ЛЦД-у како бисмо омогућили да пројекат буде самосталан. Комплетан код да учине исто се дају на дну ове странице. Овде их делим на мале исечке како бих вам помогао да боље разумете.
Као и увек започињемо програм укључивањем потребних библиотека, овде ће нам требати библиотека ФПС_ГТ511Ц3 за наш ФПС модул, серијски софтвер за употребу Д4 и Д5 у серијској комуникацији и течни кристал за ЛЦД повезивање. Затим морамо напоменути на које су пинове повезани ФПС и ЛЦД. Ако сте пратили дијаграм кола као такав, то је 4 и 5 за ФПС и Д6 до Д11 за ЛЦД. Код за исти приказан је испод
#инцлуде "ФПС_ГТ511Ц3.х" // Преузми библиотеку са хттпс://гитхуб.цом/спаркфун/Фингерпринт_Сцаннер-ТТЛ #инцлуде "СофтвареСериал.х" // Софтверска серијска библиотека #инцлуде
Унутар функције подешавања приказујемо уводну поруку на ЛЦД-у, а затим иницијализујемо ФПС модул. Команда фпс.СетЛЕД (труе) ће укључити плаву ЛЕД на сензору, можете је искључити фпс.СетЛЕД (фалсе) када није потребна, јер би загревала сензор ако се непрекидно укључује. Такође смо направили пин Д2 као улазни пин и повезали смо га са унутрашњим отпорником на извлачење како бисмо на тастер повезали тастер.
воид сетуп () { Сериал.бегин (9600); лцд.бегин (16, 2); // Иницијализација ЛЦД ЛЦД штампе са 16 * 2 ("ГТ511Ц3 ФПС"); // Увод у линију поруке 1 лцд.сетЦурсор (0, 1); лцд.принт („са Ардуином“); // Увод у поруци реда за одлагање 2 (2000); лцд.цлеар (); фпс.Опен (); // слање серијске команде за иницијализацију фп фпс.СетЛЕД (труе); // укључимо ЛЕД тако да фпс може видети пинМоде отиска прста (2, ИНПУТ_ПУЛЛУП); // повезивање са унутрашњим отпорником на извлачење као улазни пин }
Унутар функције воид лооп морамо да проверимо да ли је дугме притиснуто, ако притиснемо, пријавићемо нови прст и сачувати његов образац са ИД бројем помоћу функције уписа. Ако не, наставићемо да чекамо да се притисне прст у сензору. Ако се притисне, идентификоваћемо отисак прста упоређујући га са свим уписаним шаблоном отисака прстију методом 1: Н. Једном када је идентификациони број откривен, приказаћемо добродошлицу, а затим ИД број. Ако се отисак прста не подудара ни са једним од уписаних прстију, број ид ће бити 200, у том случају ћемо приказати добродошлицу непознато.
иф (дигиталРеад (2)) // Ако је притиснуто дугме { Енролл (); // Региструјте отисак прста } // Идентификујте тест отиска прста иф (фпс.ИсПрессФингер ()) { фпс.ЦаптуреФингер (фалсе); инт ид = фпс.Идентифи1_Н (); лцд.цлеар (); лцд.принт ("Добродошли:"); иф (ид == 200) лцд.принт ("Непознато"); // Ако није препознат лцд.принт (ид); кашњење (1000); }
Функција уписа би требала узети три узорка улаза да би успјешно уписала један прст. Једном уписан, направит ће се предложак за тај одређени прст који се неће избрисати уколико га корисник не присили помоћу ХЕКС наредби. Код за упис прста приказан је испод. Метода ИсПрессФингер користи се за проверу да ли је детектован прст, ако је одговор да, слика се снима помоћу ЦаптуреФингер а затим се коначно Енролл1, Енролл2 и Енролл3 користе за три различита узорка за успешан упис једног прста. На ЛЦД-у се приказује ИД број прста ако је успешно пријављен, у супротном ће се приказати порука о грешци са кодом. Шифра 1 значи да отисак прста није био јасно снимљен и зато морате покушати поново. Код 2 је показатељ неуспеха у меморији, а код 3 означава да је прст већ уписан.
воид Енролл () // Функција уписа из примера библиотеке { инт енроллид = 0; боол уседид = тачно; вхиле (уседид == труе) { уседид = фпс.ЦхецкЕнролл (енроллид); иф (уседид == труе) енроллид ++; } фпс.ЕнроллСтарт (енроллид); // енролл лцд.принт ("Енролл #"); лцд.принт (енроллид); вхиле (фпс.ИсПрессФингер () == фалсе) кашњење (100); боол брет = фпс.ЦаптуреФингер (тачно); инт ирет = 0; иф (брет! = фалсе) { лцд.цлеар (); лцд.принт ("Уклони прст"); фпс.Енролл1 (); док (фпс.ИсПрессФингер () == труе) кашњење (100); лцд.цлеар (); лцд.принт („Притисните поново“); вхиле (фпс.ИсПрессФингер () == фалсе) кашњење (100); брет = фпс.ЦаптуреФингер (тачно); иф (брет! = фалсе) { лцд.цлеар (); лцд.принт ("Уклони прст"); фпс.Енролл2 (); док (фпс.ИсПрессФингер () == труе) кашњење (100); лцд.цлеар (); лцд.принт („Притисните још једном“); вхиле (фпс.ИсПрессФингер () == фалсе) кашњење (100); брет = фпс.ЦаптуреФингер (тачно); иф (брет! = фалсе) { лцд.цлеар (); лцд.принт ("Уклони прст"); ирет = фпс.Енролл3 (); иф (ирет == 0) { лцд.цлеар (); лцд.принт („Упис успеха“); } елсе { лцд.цлеар (); лцд.принт ("Упис није успео:"); лцд.принт (ирет); } } елсе лцд.принт ("Фаилед 1"); } елсе лцд.принт ("Фаилед 2"); } елсе лцд.принт ("Фаилед 3"); }
Рад сензора за отисак прста ГТ511Ц3 са Ардуином
Сада када су наш хардвер и код спремни, време је да тестирамо наш пројекат. Пошаљите код на Ардуино и укључите га, ја само користим мицро-усб порт за напајање пројекта. Приликом покретања требали бисмо на ЛЦД-у видети уводну поруку, а затим би требало да се појави „Здраво!..“. То значи да је ФПС спреман за скенирање прста, ако се притисне било који уписани прст, писало би „Добродошли“, а затим ИД број тог прста како је приказано доле.
Ако треба да се упише нови прст, можемо помоћу дугмета да уђемо у режим за упис и следимо упутства на ЛЦД-у за упис прста. По завршетку поступка уписа, на ЛЦД екрану ће се поново приказати „Здраво!..“ да би се означило да је поново прочитан да би се идентификовали прсти. Комплетан радни може наћи на видео снимку чија је веза испод.
Одавде на овом месту можете развити много занимљивих ствари помоћу сензорског модула Фингер Принт. Надам се да сте разумели водич и уживали сте у стварању нечег корисног, ако имате питања, оставите их у одељку за коментаре или користите форуме за друга техничка питања.