- Потребне компоненте
- Опис пројекта:
- ФингерПринт модул:
- Рад система за праћење заснован на отисцима прстију
- Шема и опис за пројекат система присуства отисака прстију
- Објашњење кода:
Системи похађања су обично коришћени системи за обележавање присуства у канцеларијама и школама. Од ручног обележавања присуства у регистрима присутности до коришћења високотехнолошких апликација и биометријских система, ови системи су се значајно побољшали. У нашим претходним пројектима покрили смо неколико других пројеката електронског похађања система користећи РФИД и АВР микроконтролер, 8051 и Распберри Пи. У овом пројекту користили смо Модул отиска прста и Ардуино за узимање и чување података и евиденције о присутности. Коришћењем сензора за отисак прста систем ће постати сигурнији за кориснике. Следећи одељци објашњавају техничке детаље о изради биометријског система за присуство на основу отиска прста помоћу Ардуина.
Потребне компоненте
- Ардуино -1
- Модул за отисак прста -1
- Тастер - 4
- ЛЕД диоде -1
- 1К отпорник -2
- Отпорник 2.2К -1
- Снага
- Повезивање жица
- Кутија
- Зујалица -1
- ЛЦД 16к2 -1
- Даска за хлеб -1
- РТЦ модул -1
Опис пројекта:
У овом кругу система за присуство отиска прста користили смо модул Сензор отиска прстаза аутентификацију истинске особе или запосленика уносом прста у систем. Овде користимо 4 тастера за регистрацију, Делете, УП / Довн. Тастер ЕНРОЛЛ и ДЕЛ има три функције. Тастер ЕНРОЛЛ се користи за упис нове особе у систем. Дакле, када корисник жели да упише нови прст, он / она треба да притисне тастер ЕНРОЛЛ и тада ЛЦД тражи ИД, где корисник жели да сачува слику отиска прста. Сада, ако у овом тренутку корисник не жели да настави даље, може поново да притисне тастер ЕНРОЛЛ да се врати. Овог пута типка ЕНРОЛЛ понаша се као типка за повратак, тј. Типка ЕНРОЛЛ има функцију уписа и функције повратка. Поред тога, кључ за регистрацију користи се и за преузимање података о присутности преко серијског монитора. Слично томе, тастер ДЕЛ / ОК такође има исту двоструку функцију као када корисник упише нови прст,тада треба да одабере ИД прста помоћу још два тастера, наиме ГОРЕ и ДОЉЕ. Сада корисник треба да притисне тастер ДЕЛ / ОК (овај пут се овај тастер понаша као ОК) да би наставио са изабраним ИД-ом. А Дел тастер служи за ресетовање или брисање података са ЕЕПРОМ-а Ардуино.
ФингерПринт модул:
Модул сензора отиска прста снима слику отиска прста, а затим је претвара у еквивалентан образац и чува у својој меморији према одабраном ИД-у Ардуино-а. Свим процесом заповеда Ардуино попут снимања отиска прста, претварања у предлошке и чувања као ИД итд. Још неке пројекте можете проверити помоћу модула отиска прста:
Сигурносни систем заснован на отисцима прстију
Биометријска машина за гласање заснована на отисцима прстију
Овде смо додали жуту ЛЕД диоду која указује на то да је модул за отисак прста спреман за снимање прста. Зујалица се такође користи за разне индикације. Ардуино је главна компонента овог система, одговоран је за контролу целокупног система.
Рад система за праћење заснован на отисцима прстију
Рад овог пројекта система присуства на отисцима прстијује прилично једноставно. Пре свега, корисник треба да упише отиске прстију корисника помоћу тастера. Да би то урадио, корисник треба да притисне тастер ЕНРОЛЛ, а затим ЛЦД тражи унос ИД-а за отисак прста како би га сачувао у меморији по имену ИД-а. Дакле, сада корисник треба да унесе ИД помоћу тастера ГОРЕ / ДОЉЕ. Након одабира ИД-а, корисник треба да притисне тастер ОК (тастер ДЕЛ). Сада ће ЛЦД тражити да стави прст преко модула за отиске прстију. Сада корисник треба да стави прст преко модула за отисак прста, а затим модул снима прст. Сада ће ЛЦД рећи да уклоните прст са модула за отиске прстију и поново затражити да поново ставите прст. Сада корисник треба поново да стави прст, а модул снима слику и претвара је у предлошке и чува је по одабраном ИД-у у меморији модула за отисак прста.Сада ће корисник бити регистрован и он / она може хранити присутност стављањем прста преко модула за отиске прстију. Истим методом, сви корисници ће бити регистровани у систем.
Сада ако корисник жели да уклони или избрише било који сачувани ИД или отисак прста, тада мора да притисне тастер ДЕЛ. Једном када се притисне тастер за брисање, ЛЦД ће затражити да изабере ИД који треба избрисати. Сада корисник треба да изабере ИД и притисне тастер ОК (исти тастер ДЕЛ). Сада ће вас ЛЦД обавестити да је отисак прста успешно избрисан.
Како посећеност функционише у овом пројекту система присуства отисака прстију:
Кад год корисник стави прст преко модула отиска прста, тада модул отиска прста снима слику прста и претражује да ли је неки ИД повезан са овим отиском прста у систему. Ако се открије ИД отиска прста, на ЛЦД-у ће се приказати присуство присутности, ау исто време ће се зујати једном, а ЛЕД ће се искључити док систем не буде спреман да поново унесе податке.
Уз модул отиска прста, користили смо и РТЦ модул за време и датум. Време и датум непрекидно раде у систему. Дакле, Ардуино узима време и датум кад год прави корисник стави прст преко отиска прста и сачува их у ЕЕПРОМ-у на додељеном слоту меморије.
Овде смо створили 5 корисничких простора у овом систему за 30 дана. Притиском на тастер РЕСЕТ у Ардуину, а затим одмах кључем за регистрацију, биће одговоран за преузимање података о присутности преко серијског монитора из Ардуино ЕЕПРОМ меморије.
Управљање меморијом:
У Ардуино УНО имамо 1023 бајта меморије, од чега имамо 1018 бајта за чување података, а узели смо 5 података о посећености корисника за 30 дана. А свака посета ће бележити време и датум, тако да ово постаје 7-бајтни податак.
Дакле, укупна потребна меморија је
5 * 30 * 7 = 1050, тако да нам овде треба још 32 бајта
Али ако ћемо користити 4 корисника, тада смо то захтевали
4 * 30 * 7 = 840
Овде смо извели демонстрацију овог пројекта узимајући 5 корисника меморије. Овим нећемо моћи да сачувамо 32 бајта или 5 записа о присуству петог корисника.
Можете да пробају 4 корисника променом неких редова у коду. Дао сам коментаре у коду тамо где су потребне промене.
Шема и опис за пројекат система присуства отисака прстију
Круг овог пројекта система присуства заснован на отисцима прстију, како је приказано на горњем дијаграму, прилично је једноставан. Поседује Ардуино за контролу целокупног процеса пројекта, дугме за упис, брисање, одабир ИД-ова и присуство, зујалицу за упозорење, ЛЕД диоде за индикацију и ЛЦД за упутства корисника и приказивање резултујућих порука.
Као што је приказано на дијаграму кола, дугме је директно повезано на пин А0 (ЕНРОЛЛ), А1 (ДЕЛ), А2 (УП), А3 (ДОЉЕ) Ардуина у односу на земљу. Жута ЛЕД је повезана на дигитални пин Д7 Ардуина у односу на масу кроз 1к отпорник. Рк и Тк модула отиска прста су директно повезани на серијски пин Д2 и Д3 (софтверски серијски) Ардуина. Напајање од 5в користи се за напајање модула за отисак прста преузетог са плоче Ардуино. Зујалица је такође повезана на пин А5. ЛЦД од 16к2 је конфигурисан у 4-битном режиму и његови РС, ЕН, Д4, Д5, Д6 и Д7 су директно повезани на дигитални пин Д13, Д12, Д11, Д10, Д9 и Д8 Ардуина.
Објашњење кода:
Код систем присуство отисак прста за Ардуино дат је у наредним поглављима. Иако је код добро објашњен коментарима, овде разматрамо неколико важних делова кода. За повезивање модула за штампу прстију са Ардуино плочом користили смо библиотеку отисака прстију.
Пре свега, укључујемо заглавље и дефинишемо улазни и излазни пин и дефинишемо макро и декларисане променљиве. Након тога, у функцији подешавања, дајемо смер дефинисаном пин-у и покрећемо ЛЦД и модул за штампу прстију
После ње морамо да напишемо код за преузимање података о присутности.
воид сетуп () {кашњење (1000); лцд.бегин (16,2); Сериал.бегин (9600); пинМоде (енролл, ИНПУТ_ПУЛЛУП); пинМоде (горе, ИНПУТ_ПУЛЛУП); пинМоде (доле, ИНПУТ_ПУЛЛУП); пинМоде (дел, ИНПУТ_ПУЛЛУП); пинМоде (подударање, ИНПУТ_ПУЛЛУП); пинМоде (зујалица, ИЗЛАЗ); пинМоде (индФингер, ОУТПУТ); дигиталВрите (зујалица, ЛОВ); иф (дигиталРеад (енролл) == 0) {дигиталВрите (зујалица, ВИСОКО); кашњење (500); дигиталВрите (зујалица, ЛОВ); лцд.цлеар (); лцд.принт ("Молимо сачекајте"); лцд.сетЦурсор (0,1); лцд.принт ("Преузимање података");
После тога морамо да напишемо код за брисање података о присутности са ЕЕПРОМ-а.
иф (дигиталРеад (дел) == 0) {лцд.цлеар (); лцд.принт ("Молимо сачекајте"); лцд.сетЦурсор (0,1); лцд.принт ("Ресетовање….."); за (инт и = 1000; и <1005; и ++) ЕЕПРОМ.врите (и, 0); за (инт и = 0; и <841; и ++) ЕЕПРОМ.врите (и, 0кфф); лцд.цлеар (); лцд.принт ("Ресетовање система"); кашњење (1000); }
Након њега покрећемо модул за отисак прста, приказује поруку добродошлице преко ЛЦД-а и такође покренути РТЦ модул.
Након њега, у функцији петље, очитали смо РТЦ време и приказали га на ЛЦД-у
воид лооп () {сада = ртц.нов (); лцд.сетЦурсор (0,0); лцд.принт ("Време->"); лцд.принт (нов.хоур (), ДЕЦ); лцд.принт (':'); лцд.принт (нов.минуте (), ДЕЦ); лцд.принт (':'); лцд.принт (нов.сецонд (), ДЕЦ); лцд.принт (""); лцд.сетЦурсор (0,1); лцд.принт ("Датум->"); лцд.принт (нов.даи (), ДЕЦ); лцд.принт ('/'); лцд.принт (нов.монтх (), ДЕЦ); лцд.принт ('/'); лцд.принт (нов.иеар (), ДЕЦ);
После њега, чека се да отисак прста унесе и упореди ИД снимљене слике са сачуваним ИД-овима. Ако се догоди аматцх, пређите на следећи корак. И проверу уписивања дел тастера такође
инт резултат = гетФингерпринтИДез (); иф (резултат> 0) {дигиталВрите (индФингер, ЛОВ); дигиталВрите (зујалица, ВИСОКО); кашњење (100); дигиталВрите (зујалица, ЛОВ); лцд.цлеар (); лцд.принт ("ИД:"); лцд.принт (резултат); лцд.сетЦурсор (0,1); лцд.принт ("Молимо сачекајте…."); кашњење (1000); присуство (резултат); лцд.цлеар (); лцд.принт ("Присуство"); лцд.сетЦурсор (0,1); лцд.принт ("Регистрован"); кашњење (1000); дигиталВрите (индФингер, ХИГХ); повратак; }
Дата воид цхецкКеис () функција се користи за проверу да ли је тастер Енролл или ДЕЛ притиснут или не и шта треба учинити ако се притисне. Ако је тастер ЕНРОЛЛ притиснут, позива се функција Енролл () и притисне се тастер ДЕЛ, а затим се позива функција делете () .
функција воид делет () користи се за унос ИД-а који се брише и позивање функције уинт8_т делетеФингерпринт (уинт8_т ид) која ће избрисати прст из записа.
Дата функција се користи за снимање слика са отиском прста и њихово претварање у образац, као и чување по одабраном ИД-у у меморију модула за отисак прста.
уинт8_т гетФингерпринтЕнролл () {инт п = -1; лцд.цлеар (); лцд.принт ("ИД прста:"); лцд.принт (ид); лцд.сетЦурсор (0,1); лцд.принт ("Плаце Фингер"); кашњење (2000); вхиле (п! = ФИНГЕРПРИНТ_ОК) {п = фингер.гетИмаге ();…………………
Дата функција се користи за чување времена и датума присуства у додељеном слоту ЕЕПРОМ-а
поништено присуство (инт ид) {инт усер = 0, еепЛоц = 0; иф (ид == 1) {еепЛоц = 0; корисник = корисник1 ++; } иначе иф (ид == 2) {еепЛоц = 210; корисник = корисник2 ++; } иначе ако (ид == 3)………….
Дата функција се користи за преузимање података са ЕЕПРОМ-а и слање на серијски монитор
преузимање воид (инт еепИндек) {иф (ЕЕПРОМ.реад (еепИндек)! = 0кфф) {Сериал.принт ("Т->"); ако је (ЕЕПРОМ.реад (еепИндек) <10) Сериал.принт ('0'); Сериал.принт (ЕЕПРОМ.реад (еепИндек ++)); Сериал.принт (':'); ако је (ЕЕПРОМ.реад (еепИндек) <10) Сериал.принт ('0'); Сериал.принт (ЕЕПРОМ.реад (еепИндек ++));………….