基于Arduino和智能手機(jī)的指紋門鎖系統(tǒng)
傳統(tǒng)的基于鑰匙的門鎖現(xiàn)在正在慢慢退出趨勢,隨著物聯(lián)網(wǎng)環(huán)境的增加,電子控制門鎖在市場上越來越受歡迎。人們現(xiàn)在正在建造物聯(lián)網(wǎng)控制的家庭,這不僅使控制設(shè)備變得容易,而且還為您的家庭增加了更多的安全性。有許多物聯(lián)網(wǎng)控制的鎖可用,如Web控制的門鎖,人臉識別門鎖等。
在這個項(xiàng)目中,我們將使用Arduino Nano與藍(lán)牙模塊,電磁鎖和安卓手機(jī)構(gòu)建一個生物識別鎖。除了硬件之外,還使用移動應(yīng)用程序掃描和驗(yàn)證指紋,并通過藍(lán)牙將確認(rèn)ID發(fā)送給Arduino。這里我們將使用智能手機(jī)指紋傳感器來鎖定和解鎖門鎖。
組件的要求
?Arduino納米
?藍(lán)牙模塊(HC05)
?繼電器模塊
?電磁鎖
?蜂鳴器
?LED
?跳線
電磁鎖
在傳統(tǒng)的門鎖中,有一把鑰匙來拉或推門閂,我們必須手動操作,但在電磁鎖中,門閂可以通過施加電壓自動操作。電磁鎖有一個低壓電磁閥,當(dāng)中斷(按鈕,繼電器等)被激活時,將門閂拉回門中。鎖存器將保持其位置,直到中斷被啟用。電磁鎖的工作電壓為12V。您也可以使用9V,但它會導(dǎo)致較慢的操作。電磁門鎖主要用于偏遠(yuǎn)地區(qū),實(shí)現(xiàn)自動化操作,不涉及任何人力。
線路圖
使用Arduino實(shí)現(xiàn)指紋門鎖的電路圖如下:
這個項(xiàng)目的連接非常簡單。這里我們只連接一個電磁鎖,繼電器模塊,和一個藍(lán)牙模塊與Arduino Nano。繼電器的輸入引腳連接Arduino Nano的9號引腳,VCC和接地引腳連接Nano的5V和GND引腳,藍(lán)牙模塊的5V和GND引腳連接Nano的5V和GND, Tx和Rx引腳分別連接Nano的Rx和Tx。蜂鳴器的正引腳連接Arduino的引腳7,負(fù)引腳連接Arduino的GND。
藍(lán)牙是構(gòu)建物聯(lián)網(wǎng)項(xiàng)目非常有用的無線通信媒介,我們之前使用藍(lán)牙構(gòu)建了許多物聯(lián)網(wǎng)項(xiàng)目。
代碼的解釋
使用Arduino的指紋鎖的完整代碼在頁面末尾給出。下面給出了代碼的逐步描述。
Arduino Nano和藍(lán)牙模塊通過串行通信進(jìn)行通信,這使得代碼非常簡單。由于我們使用Arduino的硬件串行引腳(Rx & Tx)而不是軟件串行,因此我們不需要包含用于串行通信的庫。
該代碼的基本功能是監(jiān)控傳入的串行數(shù)據(jù),并將其與預(yù)定義的條件進(jìn)行比較,如果指紋經(jīng)過授權(quán),則打開鎖,否則保持鎖定狀態(tài)。
因此,通過聲明一個變量來保存從藍(lán)牙接收到的數(shù)據(jù)并定義中繼和蜂鳴器連接的Arduino引腳來啟動代碼。
在setup()函數(shù)中,以9600的波特率啟動串行通信,并為Relay和蜂鳴器引腳設(shè)置pinMode。
接下來,在loop()函數(shù)中,檢查來自藍(lán)牙模塊的數(shù)據(jù)是否可用,如果數(shù)據(jù)可用,則讀取數(shù)據(jù)并將其存儲在一個變量中。之后,使用if語句對其進(jìn)行比較,看看它是1還是0。如果數(shù)據(jù)為1,則打開鎖,如果數(shù)據(jù)為0,則保持鎖。
基于Arduino的指紋門鎖Android應(yīng)用程序
這個項(xiàng)目的應(yīng)用程序是使用Kodular應(yīng)用程序發(fā)明人設(shè)計的。使用Kodular創(chuàng)建應(yīng)用程序非常簡單;你可以根據(jù)你的項(xiàng)目流程圖組合這些塊來制作一個應(yīng)用程序。
要使用Kodular創(chuàng)建應(yīng)用程序,請導(dǎo)航到Kodular。如果你還沒有創(chuàng)建一個賬戶,登錄到你的賬戶,然后點(diǎn)擊“創(chuàng)建應(yīng)用”選項(xiàng)。
之后,您將被帶到Projects屏幕。點(diǎn)擊“Create Project”按鈕創(chuàng)建一個項(xiàng)目。
命名應(yīng)用程序并單擊“完成”。項(xiàng)目將被創(chuàng)建,您將被帶到項(xiàng)目的設(shè)計器頁面?,F(xiàn)在在Designer頁面上,從components Palette中添加這四個組件來創(chuàng)建應(yīng)用程序的布局:Bluetooth Client, Fingerprint, List Picker和Image Button。列表選擇器和按鈕可以在“用戶界面”中找到,而指紋和藍(lán)牙可以從“傳感器”和“連接”中選擇。
可以通過更改每個塊的屬性來更改屏幕屬性。
之后,移動到“Blocks”屏幕,使用Blocks構(gòu)建應(yīng)用程序。
現(xiàn)在向下滾動,點(diǎn)擊“List_Picker1”,拖放第一個代碼塊,如圖所示:
在下一步中,單擊“Control”塊,然后在Viewer屏幕上拖放第一個代碼塊。
之后,轉(zhuǎn)到“Bluetooth_client1”塊并選擇“Bluetooth_client”。連接代碼塊。
然后轉(zhuǎn)到“List_Picker”模塊,選擇“Selection code”模塊,如下圖所示。
現(xiàn)在在下一步中,再次轉(zhuǎn)到“List_Picker”塊并選擇“List_Picker”。文本到代碼塊如下圖所示。
之后,轉(zhuǎn)到“Text”塊并選擇第一個代碼塊。
這樣,第一個代碼塊就完成了。我們需要再創(chuàng)建三個代碼塊來調(diào)用Android手機(jī)的指紋傳感器并驗(yàn)證指紋。完整的代碼塊如下圖所示。使用此圖片連接其余的代碼塊。
當(dāng)所有的塊連接,導(dǎo)出。apk文件在您的筆記本電腦上,或者您可以直接導(dǎo)出apk到您的手機(jī)使用QR碼。
此應(yīng)用程序的。aia和。apk文件可以從這里下載。
生物識別鎖的3D打印外殼
我為這個生物識別鎖設(shè)計了一個3D打印的外殼。為此,我測量了Perfboard和LED孔的尺寸。一旦完成,設(shè)計看起來就像下面這樣。
之后,我將它導(dǎo)出為STL文件,根據(jù)打印機(jī)設(shè)置進(jìn)行切片,最后打印出來。STL文件可從Thingiverse下載,您可以使用它打印自己的大小寫。
打印完外殼后,將電路組裝到外殼中,它看起來像下面這樣。
使用Arduino項(xiàng)目測試指紋門鎖
在安裝。apk并按照電路圖連接硬件后,將Arduino連接到筆記本電腦并上傳代碼(在上傳代碼之前移除TX和Rx引腳)。之后,打開手機(jī)的藍(lán)牙,然后將藍(lán)牙模塊與手機(jī)配對。
現(xiàn)在打開應(yīng)用,點(diǎn)擊藍(lán)牙圖標(biāo),連接藍(lán)牙模塊。
藍(lán)牙模塊與應(yīng)用連接后,藍(lán)牙圖標(biāo)變?yōu)殒i定圖標(biāo)。
之后,觸摸指紋按鈕,它會要求你掃描指紋傳感器上的手指。如果指紋是真實(shí)的,那么它將打開門,否則門將保持鎖定狀態(tài)。
這就是你如何使用智能手機(jī)的指紋傳感器來控制門鎖。
本文編譯自iotdesignpro