基于物聯(lián)網(wǎng)的生物識(shí)別考勤系統(tǒng),采用NodeMCU ESP8266和谷歌表
掃描二維碼
隨時(shí)隨地手機(jī)看文章
現(xiàn)在,企業(yè)和辦公室正在采用生物識(shí)別考勤系統(tǒng),將手指放在指紋傳感器上記錄考勤。這些記錄保存在云服務(wù)器上,以便當(dāng)局從任何地方進(jìn)行監(jiān)控。
在這里,我們正在構(gòu)建一個(gè)基于物聯(lián)網(wǎng)的生物識(shí)別考勤系統(tǒng),該系統(tǒng)可以將考勤記錄存儲(chǔ)在谷歌表格中。ESP8266 NodeMCU模塊將與R305指紋模塊和LCD顯示屏接口,谷歌電子表格將用于保存考勤日志以備將來(lái)參考。我們還使用push box API將生物識(shí)別數(shù)據(jù)從NodeMCU發(fā)送到谷歌表。本項(xiàng)目對(duì)企業(yè)、教育機(jī)構(gòu)、醫(yī)院等單位的出勤有很大的幫助。
這種生物識(shí)別考勤系統(tǒng)比基于RFID的考勤系統(tǒng)更安全,更容易使用,因?yàn)镽FID考勤系統(tǒng)需要一個(gè)RFID標(biāo)簽來(lái)注冊(cè)考勤。
組件使用
?NodeMCU
?R305指紋傳感器
?I2C模塊用于16x2(1602)字母數(shù)字LCD
?電路試驗(yàn)板
?16*2字母數(shù)字液晶顯示
?跳線(xiàn)
使用谷歌電子表格
在開(kāi)始硬件模塊之前,首先我們將創(chuàng)建谷歌表來(lái)記錄出勤情況。以下是為該生物識(shí)別考勤系統(tǒng)創(chuàng)建和配置谷歌表的步驟:
步驟1:創(chuàng)建新工作表:
首先用你的谷歌賬戶(hù)登錄谷歌docs,然后選擇谷歌表格,然后選擇“開(kāi)始一個(gè)新的電子表格”。
步驟2:重命名工作表
將空白表重命名為您選擇的任何名稱(chēng)。在我的例子中,它是ESP_Datalogger。然后在工作表中為日期、時(shí)間和名稱(chēng)創(chuàng)建列
步驟3:
現(xiàn)在轉(zhuǎn)到工具并單擊“腳本編輯器”選項(xiàng),我們將在其中編寫(xiě)函數(shù)以將數(shù)據(jù)插入工作表。
步驟4:
新的Google Script以默認(rèn)名稱(chēng)“Untitled project”創(chuàng)建。您可以將此Google腳本文件重命名為您選擇的任何名稱(chēng)。在我的例子中,我將其重命名為“esp_datalogger”。
步驟5:
現(xiàn)在下載并粘貼下面給出的Google腳本代碼,并將代碼中的變量sheet_id替換為Sheet ID。
你可以從表單URL中獲取表單ID,如下所示:
獲取谷歌腳本ID
1. 轉(zhuǎn)到Publish并選擇“Deploy as web app”。
2. 選擇“項(xiàng)目版本”為“新建”。在“Execute the app as”字段中選擇“email id”。在“誰(shuí)有權(quán)訪(fǎng)問(wèn)應(yīng)用程序”字段中選擇“任何人,甚至匿名”。然后點(diǎn)擊“部署”。
3. 在下一步中,提供所有必需的權(quán)限?,F(xiàn)在你可以看到一個(gè)帶有給定鏈接的新屏幕,并將其命名為“當(dāng)前web應(yīng)用URL”。此URL包含Google Script ID。只需復(fù)制URL并將其保存在記事本中以備將來(lái)使用。
使用推箱API
步驟1:
現(xiàn)在轉(zhuǎn)到pushingbox.com并使用您用于谷歌表單的相同電子郵件創(chuàng)建一個(gè)帳戶(hù)。點(diǎn)擊“我的服務(wù)”選項(xiàng)卡,然后點(diǎn)擊“添加服務(wù)”按鈕。選擇“CustomURL”。填好彈出的表格。命名服務(wù),然后在根URL字段,粘貼谷歌表單web應(yīng)用程序的URL,我們已經(jīng)在上一步中保存。在字段方法中選擇GET選項(xiàng)。
步驟2:
接下來(lái),轉(zhuǎn)到“我的場(chǎng)景”。在文本字段中,為場(chǎng)景指定一個(gè)名稱(chēng),然后單擊“Add”。然后點(diǎn)擊“Add an Action”,選擇剛剛創(chuàng)建的服務(wù)的“Add an Action with this service”。然后彈出一個(gè)窗口,在表單中用“=$ name $”輸入輸入字段的名稱(chēng),如下所示。之后我們會(huì)得到一個(gè)設(shè)備ID。
基于物聯(lián)網(wǎng)的智能考勤系統(tǒng)電路圖
基于物聯(lián)網(wǎng)的生物識(shí)別考勤系統(tǒng)電路圖如下:
編程N(yùn)odeMCU發(fā)送考勤數(shù)據(jù)到谷歌表
在這里,我們將使用設(shè)備ID對(duì)NodeMCU進(jìn)行編程,使其與谷歌表同步,并使用push box API將數(shù)據(jù)發(fā)送到谷歌表。本文底部給出了完整的程序,這里給出了分步解釋。
在繼續(xù)該程序之前,請(qǐng)確保您已經(jīng)在Arduino IDE中安裝了所需的電路板詳細(xì)信息,使用電路板管理器對(duì)ESP8266 NodeMCU進(jìn)行編程。之后,使用Sketch -> Include Library -> Manage Library安裝以下庫(kù)。只需搜索所需的庫(kù)并單擊安裝。
Adafruit指紋傳感器庫(kù)
液晶LCD I2C接口庫(kù)
這里有很多ESP8266的NodeMCU項(xiàng)目,我們已經(jīng)解釋了如何使用Arduino IDE對(duì)NodeMCU進(jìn)行編程。
注冊(cè)指紋的編程:
1. 在Arduino IDE中,轉(zhuǎn)到File > Examples > Adafruit指紋傳感器庫(kù)> Enroll。
2. 將代碼上傳到NodeMCU,并以9600的波特率打開(kāi)串口監(jiān)視器。
重要:將程序中的軟件串行引腳更改為SoftwareSerial mySerial(D3, D4)。
3. 您應(yīng)該為要存儲(chǔ)指紋的指紋輸入ID。因?yàn)檫@是我的第一個(gè)指紋,所以我在左上角輸入了1,然后點(diǎn)擊發(fā)送按鈕。
4. 然后指紋傳感器上的燈會(huì)閃爍,這表明您應(yīng)該將手指放在傳感器上,之后,在串行監(jiān)視器中,您可以按照步驟進(jìn)行操作,直到它確認(rèn)您成功注冊(cè)。
指紋考勤系統(tǒng)的編程
因此,在注冊(cè)手指之后,是時(shí)候上傳考勤系統(tǒng)程序了。最后給出了基于指紋考勤系統(tǒng)的完整程序,并對(duì)代碼的工作原理進(jìn)行了說(shuō)明。
在程序中要做的第一件事是包含所有必需的庫(kù)。在我的情況下,我包括“Adafruit_Fingerprint.h”用于使用R305指紋傳感器和“ESP8266WiFi.h”用于使用ESP8266 NodeMCU Wi-Fi模塊。為了使用LCD顯示器的I2C接口,我們使用了LiquidCrystal_I2C.h庫(kù)。然后我們必須配置連接指紋傳感器的串口。在我的情況下,我已經(jīng)聲明D3為RX引腳和D4為T(mén)X引腳。
接下來(lái),在程序中設(shè)置您的Wi-Fi路由器憑證。將您的網(wǎng)絡(luò)SSID名稱(chēng)替換為“xyz”,密碼替換為“123456789”。因?yàn)槲覀儗⑹褂胮ushbox API將數(shù)據(jù)發(fā)送到Google表單,所以我將它分配給一個(gè)變量主機(jī),我將在稍后的程序中使用。
在設(shè)置功能內(nèi),初始化LCD并打印歡迎信息。之后,我們用給定的憑據(jù)將nodeMCU連接到Wi-Fi網(wǎng)絡(luò),并在LCD中打印IP地址。
連接成功后,編寫(xiě)一個(gè)程序塊來(lái)檢查指紋傳感器的可用性。這將確認(rèn)我們關(guān)于指紋傳感器與nodeMCU的成功配對(duì)。
在下一步中,編寫(xiě)一個(gè)函數(shù)getFingerprintID,該函數(shù)將為已經(jīng)注冊(cè)的指紋返回一個(gè)有效的指紋ID。
如果成功注冊(cè)指紋,則調(diào)用getFingerprintID函數(shù)來(lái)獲取有效的指紋ID。然后使用if-else循環(huán)進(jìn)行比較以獲得成員名,然后將該名稱(chēng)作為參數(shù)發(fā)送給函數(shù)connecthost,該函數(shù)將通過(guò)push box API將此數(shù)據(jù)發(fā)送到谷歌表。
在connecthost函數(shù)內(nèi)部,從循環(huán)函數(shù)發(fā)送的數(shù)據(jù)被賦值給一個(gè)變量成員。一個(gè)可變的標(biāo)志被設(shè)置為限制多個(gè)post的數(shù)據(jù)到谷歌表。然后用給定的主機(jī)和端口連接到Wi-Fi客戶(hù)端。
如果與客戶(hù)端的連接成功建立,則使用我們?cè)谕扑秃蠥PI中獲得的設(shè)備ID創(chuàng)建完整的URL。如果客戶(hù)端沒(méi)有響應(yīng)超過(guò)5秒,它將顯示客戶(hù)端超時(shí)。否則,它將通過(guò)推框API使用URL將數(shù)據(jù)發(fā)送到谷歌表。
重要提示:將您的設(shè)備ID替換為v81040XXXXXX。
下圖顯示了如何在谷歌表中記錄生物識(shí)別考勤。
這就是使用NodeMCU構(gòu)建基于物聯(lián)網(wǎng)的生物識(shí)別系統(tǒng)的方法。
本文編譯自iotdesignpro