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