眾所周知,適當(dāng)?shù)目记诠芾硐到y(tǒng)對(duì)任何類型的機(jī)構(gòu)都至關(guān)重要。由于紙質(zhì)人工考勤方法涉及很多實(shí)際問(wèn)題,因此如今幾乎所有公司都已將其考勤管理流程自動(dòng)化。
在本篇文章中,我們將向您介紹如何使用Arduino開(kāi)發(fā)板、指紋傳感器和SD卡模塊制作自己的考勤管理系統(tǒng)。如果您是工程專業(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歐姆電阻
● 面包板和跳線

所需的庫(kù)文件
● Adafruit指紋傳感器庫(kù)
● LiquidCrystal I2C庫(kù)
● SD Arduino庫(kù)
接線硬件
即使接線圖看起來(lái)很復(fù)雜,制作起來(lái)也很簡(jiǎn)單。

為了獲得用戶輸入,指紋掃描儀直接與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è)新用戶時(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ù)接收用戶的指紋并使用已存儲(chǔ)的指紋進(jìn)行檢查。
如果手指不在數(shù)據(jù)庫(kù)中,則掃描儀將返回錯(cuò)誤代碼。如果手指匹配,它將返回用戶ID號(hào)。
我已將ID號(hào)轉(zhuǎn)換為字符串變量,以將其存儲(chǔ)在SD卡中。最后,您將獲得如下的出勤報(bào)告:

指紋考勤系統(tǒng)演示
如您所見(jiàn),該項(xiàng)目的最終產(chǎn)品可以制作為便攜式設(shè)備。在注冊(cè)過(guò)程中,用戶必須提供兩次指紋。這意味著每個(gè)用戶都必須將手指從掃描儀上移開(kāi),然后再次放回原處才能進(jìn)行記錄。
在出勤過(guò)程中,我們需要按下開(kāi)始按鈕(藍(lán)色按鈕)以開(kāi)始該過(guò)程。 LCD顯示屏提示“Place the Finger”消息,以使我們知道該過(guò)程已開(kāi)始。然后,用戶必須將手指放在掃描儀上以標(biāo)記出勤。指紋匹配后,將提示“ Present”消息,并且藍(lán)色LED指示燈將亮起。如果不匹配,則紅色LED指示燈將閃爍并亮起,并顯示錯(cuò)誤消息“Finger not Found.”。
編輯:hfy
-
指紋識(shí)別
+關(guān)注
關(guān)注
43文章
1755瀏覽量
104733 -
指紋傳感器
+關(guān)注
關(guān)注
6文章
198瀏覽量
64494 -
考勤系統(tǒng)
+關(guān)注
關(guān)注
0文章
41瀏覽量
11558 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196974
發(fā)布評(píng)論請(qǐng)先 登錄
ElfBoard技術(shù)貼|借助AI編程,輕松搞定ELF-RK3506開(kāi)發(fā)板上光照傳感器的數(shù)據(jù)讀取
MCU 開(kāi)發(fā)板大比拼:STM32、ESP32、Arduino、樹(shù)莓派誰(shuí)更強(qiáng)?
探索FRDM-STBA-A8964傳感器工具箱開(kāi)發(fā)板:開(kāi)啟創(chuàng)新傳感之旅
探索FRDM-K22F-A8974傳感器工具箱開(kāi)發(fā)板:從入門到精通
探索FRDM - STBA - A8967傳感器工具箱開(kāi)發(fā)板
【免費(fèi)試用】正點(diǎn)原子STM32N647開(kāi)發(fā)板免費(fèi)試用
SparkFun 線束全解析:開(kāi)發(fā)板與傳感器通用指南
STM32 Nucleo-144開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南
?STM32 Nucleo-64開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南
?AVR-IoT蜂窩迷你開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南
?PIC32CZ CA70 Curiosity Ultra開(kāi)發(fā)板用戶指南總結(jié)
如何用Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder
【新品】遠(yuǎn)距離圖傳數(shù)傳模塊開(kāi)發(fā)板、藍(lán)牙模塊開(kāi)發(fā)板、無(wú)線模塊開(kāi)發(fā)板
第二章 開(kāi)發(fā)板與芯片介紹 詳解W55MH32芯片及開(kāi)發(fā)板
基于Arduino開(kāi)發(fā)板、指紋傳感器的考勤管理系統(tǒng)
評(píng)論