基于Arduino構(gòu)建觸摸屏電磁門鎖系統(tǒng)
今天,我們將構(gòu)建一個(gè)基于Arduino的觸摸屏門鎖系統(tǒng),該系統(tǒng)包含一個(gè)2.4英寸TFT屏幕,用于輸入個(gè)人識(shí)別號(hào)碼(PIN)和輸入PIN的視覺顯示。它還包含一個(gè)12V電磁鎖和繼電器模塊。電磁鎖用于門鎖和開鎖。
當(dāng)用戶使用TFT顯示器輸入PIN時(shí),Arduino捕獲PIN并將其與存儲(chǔ)在EEPROM中的PIN進(jìn)行匹配。如果輸入的PIN碼與存儲(chǔ)的PIN碼匹配,Arduino將打開大門,并在顯示屏上顯示“Welcome”字樣;否則,TFT上顯示“Access Denied”,門保持關(guān)閉狀態(tài)??梢酝ㄟ^(guò)長(zhǎng)按“取消”鍵,然后在下一個(gè)屏幕上選擇“是”來(lái)更改PIN。然后,系統(tǒng)要求輸入當(dāng)前的PIN,并將其與存儲(chǔ)的PIN進(jìn)行匹配。如果找到匹配,則要求用戶輸入新的PIN。這個(gè)門鎖系統(tǒng)可以安裝到任何你現(xiàn)有的門,以確保他們與數(shù)字密碼。在此之前,我們還構(gòu)建了其他有趣的自動(dòng)門鎖系統(tǒng)項(xiàng)目,如下所列:
?基于物聯(lián)網(wǎng)的電磁門鎖使用樹莓派4
?基于物聯(lián)網(wǎng)的智能門鎖系統(tǒng)使用NodeMCU
?基于Arduino和智能手機(jī)的指紋門鎖系統(tǒng)
?使用樹莓派的人臉識(shí)別門鎖系統(tǒng)
Arduino觸摸屏門鎖所需組件
?Arduino Uno
?2.4 " TFT液晶顯示屏
?電磁鎖
?繼電器模塊
?蜂鳴器
2.4 " TFT液晶顯示屏-介紹
2.4英寸TFT液晶觸摸屏是最常見的RGB彩色顯示模塊之一。液晶顯示器具有出色的生動(dòng)色彩對(duì)比,并配有內(nèi)置microSD卡連接。這款TFT顯示屏由一個(gè)明亮的背光(4個(gè)白光led背光)和一個(gè)240 × 320像素的彩色顯示屏組成。它還具有單獨(dú)的RGB像素控制,提供比黑白128×64顯示器更好的分辨率。我們?cè)谥暗奈锫?lián)網(wǎng)菜單訂購(gòu)系統(tǒng)和生物識(shí)別投票系統(tǒng)項(xiàng)目中使用了此顯示。在將其與Arduino一起使用之前,讓我們看看這個(gè)2.4“TFT LCD屏幕模塊的引腳。
正如你所看到的,28個(gè)引腳將完美地適合任何Arduino Uno / Arduino Mega板。TFT顯示引腳分為四個(gè)主要部分,即命令引腳,數(shù)據(jù)引腳,SD卡引腳和電源引腳。下表給出了這些引腳的一個(gè)小分類。
TFT LCD與Arduino的連接
2.4英寸TFT液晶屏是一個(gè)完美的Arduino Shield。您可以直接將此顯示器安裝在Arduino Uno/Mega的頂部,它將與下圖所示的引腳完美匹配。
觸摸屏門鎖系統(tǒng)電路圖
下面給出了使用Arduino構(gòu)建智能門鎖的完整原理圖。電路是用fritz繪制的,因?yàn)闆]有電磁鎖可用,我用電機(jī)來(lái)表示它。電磁鎖和直流電機(jī)都沒有任何極性,因此可以這樣連接。
在Arduino上安裝TFT顯示器,我們只需要將繼電器模塊和蜂鳴器連接到Arduino上。繼電器模塊的Vcc和GND引腳連接Arduino的5V和GND, Input引腳連接Arduino的第11個(gè)引腳。Buzzer的正引腳連接Arduino的數(shù)字引腳12,負(fù)引腳連接Arduino的GND引腳。整個(gè)設(shè)置由12V適配器供電。板載7805穩(wěn)壓器用于獲得穩(wěn)壓的5V,為Arduino Uno供電。
3D打印觸摸屏門鎖系統(tǒng)外殼
接下來(lái),我用刻度測(cè)量了設(shè)置的尺寸,還測(cè)量了桶千斤頂和TFT顯示器的尺寸,以設(shè)計(jì)一個(gè)套管。我的設(shè)計(jì)完成后是這樣的。
設(shè)計(jì)完成后,我將其導(dǎo)出為STL文件,并根據(jù)打印機(jī)設(shè)置進(jìn)行切片,最后進(jìn)行打印。STL文件也可以從Thingiverse下載,你可以使用它打印你的大小寫。打印完成后,我開始將項(xiàng)目組裝在一個(gè)永久的外殼中,并將其安裝在一個(gè)設(shè)施中。與完整的連接是作出的,我組裝電路到我的外殼和一切都很好適合,你可以看到在這里。
觸摸屏門鎖系統(tǒng)的Arduino編程
這里我們使用的是SPFD5408庫(kù),這是原始Adafruit庫(kù)的修改版本。本頁(yè)末尾給出了完整的代碼。這里我們將解釋代碼的重要部分。這段代碼包含四個(gè)部分。第一部分是創(chuàng)建一個(gè)pin鎖的UI。第二部分是根據(jù)用戶的觸摸檢測(cè)按鈕,第三部分是檢查用戶輸入的密碼,最后一部分是重置密碼。
通過(guò)包含所有必需的庫(kù)來(lái)啟動(dòng)代碼。所有這三個(gè)SPFD5408庫(kù)都在ZIP文件中,您可以從上面提供的鏈接下載它們。
現(xiàn)在在下一行中,定義最小和最大校準(zhǔn)的X和y軸值。這里給出的價(jià)值觀是普遍的,幾乎適用于每個(gè)人。您可以校準(zhǔn)TFT,如果您覺得校準(zhǔn)不令人滿意,可以更改TFT。
在setup()函數(shù)中,為調(diào)試目的將串行監(jiān)視器初始化為9600波特率,并初始化TFT顯示。然后定義繼電器和蜂鳴器引腳作為輸出引腳。
初始化變量和引腳之后,現(xiàn)在我們可以進(jìn)入主要的編程部分。如前所述,這個(gè)程序涉及四個(gè)部分,第一部分是創(chuàng)建一個(gè)pin鎖的UI。我只是簡(jiǎn)單地做了一個(gè)基本布局的pin鎖與12個(gè)按鈕和一個(gè)顯示單元。TFT顯示庫(kù)允許您繪制直線、矩形、圓形、圖表、字符串等等。我使用直線和矩形來(lái)設(shè)計(jì)UI。每個(gè)框的寬度為80像素,高度為60像素。
現(xiàn)在,在創(chuàng)建UI之后,第二部分包括檢測(cè)每個(gè)按鈕的用戶觸摸,然后執(zhí)行與該按鈕相關(guān)的任務(wù)。每次用戶觸摸屏幕,我們就能知道他/她觸摸的像素的X和Y位置。該值可以顯示在串行監(jiān)視器上,如下所示。
或者,我們可以預(yù)測(cè)每個(gè)按鈕的位置,如下圖所示:
在獲得所有框的位置后,將這些值與用戶觸摸進(jìn)行比較,以預(yù)測(cè)他觸摸的按鈕位置。
第三部分是檢查用戶輸入的密碼和控制大門。由于默認(rèn)密碼存儲(chǔ)在Arduino的EEPROM中,所以首先,我們將從EEPROM讀取密碼,然后將其與用戶輸入的密碼進(jìn)行比較。密碼存儲(chǔ)在兩個(gè)不同的地址,因?yàn)锳rduino Uno EEPROM只能在一個(gè)地址存儲(chǔ)0-255個(gè)數(shù)字。
觸摸屏門鎖系統(tǒng)測(cè)試
連接所有硬件并上傳代碼之后,現(xiàn)在是測(cè)試項(xiàng)目的時(shí)候了。我們使用外部12V 1A適配器為設(shè)備供電。默認(rèn)情況下,它將在TFT顯示上顯示Pin鎖UI。只要輸入正確的密碼,門鎖就會(huì)解鎖,8秒后又會(huì)被鎖上??梢酝ㄟ^(guò)長(zhǎng)按“取消”鍵,然后在下一個(gè)屏幕上選擇“是”來(lái)更改默認(rèn)密碼。
這是如何使用TFT顯示器和電磁鎖構(gòu)建Arduino電磁門鎖系統(tǒng)。
本文編譯自iotdesignpro