眾所周知,適當(dāng)?shù)目记诠芾硐到y(tǒng)對(duì)任何類(lèi)型的機(jī)構(gòu)都至關(guān)重要。由于紙質(zhì)人工考勤方法涉及很多實(shí)際問(wèn)題,因此如今幾乎所有公司都已將其考勤管理流程自動(dòng)化。
在本篇文章中,我們將向您介紹如何使用Arduino開(kāi)發(fā)板、指紋傳感器和SD卡模塊制作自己的考勤管理系統(tǒng)。如果您是工程專(zhuān)業(yè)的學(xué)生,那么這個(gè)項(xiàng)目可能是最佳選擇。而且,容易制作,時(shí)間短,預(yù)算不會(huì)太大。
所需組件
● Arduino Uno或Mega開(kāi)發(fā)板
● R305 / R307指紋模塊
● 帶I2C模塊的1602 LCD
● 2個(gè)按鈕
● 2個(gè)LED
● 2個(gè)10K歐姆電阻
● 面包板和跳線(xiàn)
所需的庫(kù)文件
● Adafruit指紋傳感器庫(kù)
● LiquidCrystal I2C庫(kù)
● SD Arduino庫(kù)
接線(xiàn)硬件
即使接線(xiàn)圖看起來(lái)很復(fù)雜,制作起來(lái)也很簡(jiǎn)單。
為了獲得用戶(hù)輸入,指紋掃描儀直接與Arduino交互。 LCD模塊和LED指示輸出結(jié)果。 SD卡模塊將出勤記錄保存在SD卡上??梢允褂脙蓚€(gè)或多個(gè)按鈕來(lái)控制不同的過(guò)程。
讓我們研究一下每個(gè)模塊如何與Arduino進(jìn)行交互。
R305掃描儀與Arduino的連接
R305 / R307指紋掃描儀具有TTL UART接口,可以直接連接到Arduino的UART引腳。
SD卡模塊與Arduino的連接
SD卡模塊通過(guò)串行外圍接口(SPI)通信協(xié)議與Arduino通信。它可以簡(jiǎn)單地連接到Arduino的硬件SPI引腳。
帶I2C模塊的LCD與Arduino的連接
顧名思義,LCD模塊通過(guò)I2C通信與Arduino通信。
最后,可以如下圖所示連接兩個(gè)LED和按鈕。
指紋掃描儀系統(tǒng)概述
以下框圖顯示了系統(tǒng)的基本概述。
指紋傳感器和按鈕用作輸入模塊。在這里,我使用兩個(gè)按鈕進(jìn)行注冊(cè)和身份識(shí)別過(guò)程。當(dāng)我們要注冊(cè)新用戶(hù)時(shí),必須按下注冊(cè)按鈕以開(kāi)始注冊(cè)過(guò)程。按下考勤按鈕后,手指將被驗(yàn)證以標(biāo)記出勤。 LCD模塊和LED充當(dāng)輸出模塊。他們將打印消息和錯(cuò)誤以給出該過(guò)程的輸出。
指紋保存在指紋傳感器的閃存中。 R305模塊本身執(zhí)行指紋收集、比較和搜索。經(jīng)過(guò)驗(yàn)證的指紋的ID保存在SD卡上的文本文件中。我們可以通過(guò)從模塊中卸下microSD卡來(lái)使用該出勤報(bào)告。
Arduino代碼
該項(xiàng)目的Arduino代碼相當(dāng)長(zhǎng)。
我將基于兩個(gè)主要過(guò)程來(lái)解釋代碼:
● 指紋注冊(cè)
● 指紋識(shí)別和考勤
指紋注冊(cè)流程
指紋傳感器的所有功能均由Adafruit指紋傳感器庫(kù)控制。該庫(kù)包含驅(qū)動(dòng)指紋掃描儀的方法和功能。
在這里,我創(chuàng)建了一個(gè)名為getFingerprintEnroll()的函數(shù)來(lái)注冊(cè)新的指紋。調(diào)用此函數(shù)后,傳感器將接收兩次指紋掃描(指紋圖片)。然后,通過(guò)將這兩次掃描合并到內(nèi)置數(shù)據(jù)庫(kù)中的256個(gè)條目之一來(lái)保存指紋圖像。如果由于手指放置錯(cuò)誤而無(wú)法正確捕獲圖像,您將一直收到錯(cuò)誤消息。
在存儲(chǔ)指紋時(shí),我們必須在考慮傳感器存儲(chǔ)的同時(shí)確定數(shù)據(jù)庫(kù)位置。
如您所見(jiàn),我們首先必須找到已存儲(chǔ)在傳感器中的指紋數(shù)量。我們可以使用getTemplateCount()函數(shù)獲得該數(shù)字。由于存儲(chǔ)位置編號(hào)從0開(kāi)始,因此通過(guò)將數(shù)字增加1來(lái)設(shè)置ID。ID號(hào)是全局變量。因此,存儲(chǔ)指紋時(shí),分配的ID號(hào)將在getFingerprintEnroll()函數(shù)中使用。
指紋識(shí)別與標(biāo)記考勤過(guò)程
在考勤標(biāo)記過(guò)程中,將調(diào)用getFingerprintIDez()函數(shù)。此函數(shù)接收用戶(hù)的指紋并使用已存儲(chǔ)的指紋進(jìn)行檢查。
如果手指不在數(shù)據(jù)庫(kù)中,則掃描儀將返回錯(cuò)誤代碼。如果手指匹配,它將返回用戶(hù)ID號(hào)。
我已將ID號(hào)轉(zhuǎn)換為字符串變量,以將其存儲(chǔ)在SD卡中。最后,您將獲得如下的出勤報(bào)告:
指紋考勤系統(tǒng)演示
如您所見(jiàn),該項(xiàng)目的最終產(chǎn)品可以制作為便攜式設(shè)備。在注冊(cè)過(guò)程中,用戶(hù)必須提供兩次指紋。這意味著每個(gè)用戶(hù)都必須將手指從掃描儀上移開(kāi),然后再次放回原處才能進(jìn)行記錄。
在出勤過(guò)程中,我們需要按下開(kāi)始按鈕(藍(lán)色按鈕)以開(kāi)始該過(guò)程。 LCD顯示屏提示“Place the Finger”消息,以使我們知道該過(guò)程已開(kāi)始。然后,用戶(hù)必須將手指放在掃描儀上以標(biāo)記出勤。指紋匹配后,將提示“ Present”消息,并且藍(lán)色LED指示燈將亮起。如果不匹配,則紅色LED指示燈將閃爍并亮起,并顯示錯(cuò)誤消息“Finger not Found.”。
編輯:hfy
-
指紋識(shí)別
+關(guān)注
關(guān)注
43文章
1738瀏覽量
102017 -
指紋傳感器
+關(guān)注
關(guān)注
6文章
193瀏覽量
63417 -
考勤系統(tǒng)
+關(guān)注
關(guān)注
0文章
40瀏覽量
11179 -
Arduino
+關(guān)注
關(guān)注
187文章
6453瀏覽量
185931
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論