下面介紹兩種基於Adafruit FPM10A指紋感測器的門鎖系統,一種易於測試,另一種易於使用嵌入式。
所需元器件
硬體部分
Adafruit Standard LCD - 16x2 White on Blue *1
Arduino UNO & Genuino UNO *1
基於Arduino UNO板的門鎖系統這個專案做了兩個版本,第一個版本是包含FPM10A光學指紋感測器和i2c通訊的LCD屏,而另一個版本則需要加一個鍵盤。
確保不要忘記你要控制的門鎖系統 ,接下來你的接線和程式碼可能會要修改,但這個實現起來不會太難。
我使用的這個系統,大概花70元就可以買到,但在這個專案中我只使用它的鎖定單元,不需要用到鍵盤單元。
由於系統裡有一個直流電機,為了控制電機正反轉,新增L298 H橋模組,當然你也可以使用一個ic H橋來實現,此時我只能使用我手上這些工具來實現。
您可以使用電磁鎖,並透過Arduino控制電晶體實現它,您僅需一個引腳接線即可控制電晶體,而所需的線路也更少。
事不宜遲……瞭解您的系統如何工作並進行調整。
在繼續操作之前,確保知道如何使用上述所有元器件,因為這將使你的專案易於發現任何問題並做好除錯:
Arduino uno + 4×4 鍵盤矩陣 + LCD i2c 螢幕
將 FPM10A ( 50DY )指紋感測器與 Arduino 介面
Arduino LCD I2C 簡單易用,可從序列監視器直接寫入
逐步介紹如何在 Arduino 上使用 L298n 雙 H 橋驅動程式
版本1:
此版本所需器件:LCD、指紋感測器、L298n(用來控制系統)、帶1k歐電阻的按鈕。
對於第一個版本,你需要首先從指紋庫(下圖)上傳“註冊”程式碼,然後使用它來新增指紋,上傳並開啟序列監視器,然後輸入ID,再按“ Enter”,然後按照指紋教程中的步驟繼續上傳第二個指紋程式碼,併為每個使用者新增建立標籤,然後我們將指紋資訊儲存在模組內部快閃記憶體驅動器中。
一旦程式碼開始工作,Arduino將不斷等待從指紋感測器上獲取的資訊,如果你在裡面只需按下按鈕就能開門,在外面透過指紋識別開鎖,如果指紋匹配正確(與指紋資料庫),門將會開啟並在顯示器上顯示一段與你身份ID相關資訊,當然,如果指紋資訊不匹配,它將顯示一串亂碼:D…
接線圖
基本按上圖接線即可,按鈕位置一眼就能找到,實際上不是從Arduino 5V pin獲得高電平,這個需要新增其它接線(或許這樣會讓電路接線變得很亂),把8 pin設定成高電平,同時從9pin讀取按鈕的狀態,電阻具有下拉作用。
版本2:
正如你在第一個版本中看到的那樣,你需要使用電腦(或者其它能給Arduino寫入程式的裝置)將新的指紋錄入到快閃記憶體驅動器中,這就是為什麼我製作了這個嵌入式版本的原因,該版本僅需要電源即可工作,而新的指紋資訊現在透過一個鍵盤來新增(這個專案是完全基於資料庫內部指紋匹配來實現的,你可以與我之前做的一個純鍵盤專案結合,只需要小地方改動,這個還是非常容易的)。
這個鍵盤安裝在門的裡側,這意味著你可以透過按鈕來開鎖,我在這裡選擇將B鍵,A鍵用來新增新的使用者資訊。
要新增新的指紋資訊,請按“ A”,它將要求你輸入相應程式碼“ 1”,“ 2”,“ 3”,“ 4”中已經儲存的密碼,你可以在此處進行修改,輸入程式碼,然後輸入3位數字格式ID號,例如“ 001”,“ 021”或“ 115”,你可以輸入1到127之間的ID,點選ID後,它會要求您放開手指,將其移開然後再次放置……完成指紋錄入。
在第一個版本中,它將一直等待有效的指紋來開啟鎖。
接線圖
這是第二個版本的接線,由於裡面開門透過“ B”按鈕完成的,因此我取消下了之前按鈕。
資料庫:
下載 LCD i2c NewLiquidCrystal 庫
下載鍵盤庫
下載 FPM10A 光學指紋感測器程式
程式碼:
如果LCD的地址不同,請下載 i2c 掃描器
版本1中的第一個程式碼是指紋庫中的“註冊”程式碼
版本1的第二個程式碼
版本2的程式碼