安全是我们日常生活中的一个主要问题,数字锁已成为这些安全系统的重要组成部分。有许多类型的安全系统可用来保护我们的位置。一些示例是基于PIR的安全系统,基于RFID的安全系统,数字锁系统,生物矩阵系统,电子密码锁。在这篇文章中,我们将指纹识别模块与Arduino接口,并将构建一个带门锁的基于指纹的生物识别安全系统。指纹被认为是锁定或解锁任何系统的最安全的键之一,因为它可以唯一地识别任何人,并且不容易被复制。
所需组件:
- Arduino Uno
- 指纹模块
- 按钮-4
- LED -2
- 1K电阻-3
- 2.2K电阻-1`
- 电源供应
- 连接线
- 纸板箱
- 伺服马达-1
- 16x2液晶屏-1
- 面包板-1
带有Arduino的指纹传感器模块:
指纹传感器模块或指纹扫描仪是一个模块,可捕获手指的打印图像,然后将其转换为等效模板,并通过Arduino将其保存到选定ID(位置)的内存中。在这里,所有过程都是由Arduino命令的,例如拍摄指纹图像,将其转换为模板并存储位置等。
在此Arduino指纹传感器项目中,我们使用了指纹传感器模块将手指或拇指的印象作为系统中的输入。在这里,我们使用4个按钮进行注册/返回,删除/确定,向上和向下。每个键都有双重功能。登记键用于将新的手指印记也登记到系统和后退功能中。意味着当用户想要注册新手指时,他/她需要按注册键,然后LCD询问用户想要存储指纹输出的ID或位置。现在,如果此时用户不想继续前进,则他/她可以再次按登记键返回(这次登记键的作用与返回键相同)。表示注册密钥同时具有注册和后退功能。DEL / OK键还具有相同的双重功能,例如当用户注册新手指时,他/她需要使用另外两个键(即UP / MATCH和DOWN / MATCH(也具有双重功能)来选择手指ID或位置(现在也具有双重功能),现在用户需要按DEL / OK键(这次该键的行为类似于OK)以继续选择的ID或位置。向上/向下键还支持指纹匹配功能。最后查看视频,以进行完整演示。
在这里,我们还连接了带有伺服电机的纸箱,作为安全门,只有当系统读取正确的指纹后,该纸箱才会打开。黄色LED指示门已关闭,绿色LED指示门已打开。
工作说明:
指纹传感器门锁的工作简单。在该项目中,我们使用了一个门,当将存储的手指放在指纹模块上时,该门将打开。首先,用户需要借助按钮/按键来注册手指。为此,用户需要按ENROLL键,然后LCD要求输入手指将存储的位置/ ID。因此,现在用户需要使用UP / DOWN键输入ID(位置)。选择位置/ ID后,用户需要按确定键(DEL键)。现在,LCD会要求将手指放在指纹模块上。现在,用户需要将手指放在指纹模块上。然后,LCD将要求从指纹模块中拔出手指,然后再次要求放置手指。现在,用户需要再次将手指放在指纹模块上。现在,指纹模块拍摄图像并将其转换为模板,并通过选定的ID将其存储到指纹模块的内存中。现在,用户可以通过放置已添加或已注册到系统中的同一根手指来打开门,然后按MATCH键(上/下键)。通过相同的方法,用户可以添加更多手指。请查看下面的视频以进行完整演示。
现在,如果用户要删除或删除任何已存储的ID,则需要按DEL键,在按DEL键之后,LCD会询问选择位置,即选择要删除的ID。现在,用户需要选择ID并按OK键(相同的DEL键)。现在,LCD将通知您手指已成功删除。现在,用户可以通过将同一根手指放在指纹模块上并按MATCH键(上/下键)来检查它是否已删除。
当手指放在有效位置时,绿色LED会闪烁五秒钟,并且门也同时打开。5秒后,门将自动关闭。用户可以根据自己的要求定制门/门的开闭。伺服电机负责门的打开和关闭。
电路说明:
该Arduino指纹安全系统的电路非常简单,其中包含Arduino,可控制项目,按钮,蜂鸣器和LCD的整个过程。 Arduino控制着整个过程。
该按钮相对于地面直接连接至Arduino的D14(ENROL),D15(DEL),D16(UP)和D17(DOWN)引脚,黄色LED通过一个相对于地面的Arduino数字引脚D7连接至Arduino用相同的方法将1k电阻器和绿色LED连接到Arduino的D6。指纹模块的Rx和Tx直接连接到Arduino的软件串行或数字引脚D2和D3。5v电源用于为从Arduino板上获取的指纹模块供电,并且伺服电机也连接到Arduino的PWM引脚D5。一个16x2 LCD配置为4位模式,其RS,EN,D4,D5,D6和D7直接连接到Arduino的数字引脚D13,D12,D11,D10,D9和D8。
注意: 此处D14,D15,D16,D17分别为A0,A1,A2,A3。
程序说明:
在程序中,我们使用了Adafruit指纹传感器库来将指纹模块与Arduino板接口。您可以在下面查看完整的代码,这很容易理解。在这里,我们解释了Arduino程序的主要功能。
下面的代码用于将指纹作为输入,并根据手指的验证采取措施。如果手指将通过验证,则门将打开,否则保持关闭状态。
for(int i = 0; i <5; i ++){lcd.clear(); lcd.print(“放置手指”); delay(2000); int result = getFingerprintIDez(); if(result> = 0){digitalWrite(openLight,HIGH); digitalWrite(closeLight,LOW); lcd.clear(); lcd.print(“ Allowed”); lcd.setCursor(0,1); lcd.print(“ Gete Opened”); myServo.write(0); 延迟(5000); myServo.write(180); digitalWrite(closeLight,HIGH); digitalWrite(openLight,LOW); lcd.setCursor(0,1); lcd.print(“ Gate Closed”);
给定void checkKeys() 函数用于检查是否按下了Enroll或DEL键,以及按下该怎么办。如果按下ENROLL键,则调用 Enroll() 函数,而按DEL键,则将调用 delete() 函数。
void checkKeys(){if(digitalRead(enroll)== 0){lcd.clear(); lcd.print(“请稍候”); 延迟(1000); while(digitalRead(enroll)== 0); 注册(); } else if(digitalRead(del)== 0){lcd.clear(); lcd.print(“请稍候”); 延迟(1000); 删除(); }}
给定函数用于输入要删除的ID,并调用 uint8_t deleteFingerprint(uint8_t id) 函数,该函数将从记录中删除手指。
void delet(){int count = 0; lcd.clear(); lcd.print(“删除手指”); lcd.setCursor(0,1); lcd.print(“ Location:”); while(1){lcd.setCursor(9,1); lcd.print(count); if(digitalRead(up)== 0){count ++; if(count> 25)count = 0; 延迟(500); }……………….
给定功能用于从所选ID的记录中删除指纹。
uint8_t deleteFingerprint(uint8_t id){uint8_t p = -1; lcd.clear(); lcd.print(“请稍候”); p = finger.deleteModel(id); 如果(p == FINGERPRINT_OK){Serial.println(“ Deleted!”); lcd.clear(); lcd.print(“ Figer已删除”); lcd.setCursor(0,1); lcd.print(“成功”); 延迟(1000); } else {Serial.print(“有问题的地方”); lcd.clear(); lcd.print(“出现问题”); lcd.setCursor(0,1); lcd.print(“稍后重试”); delay(2000); 返回p; }}
给定功能用于获取指纹图像并将其转换为模板,并通过选定的ID将其保存到指纹模块存储器中。
uint8_t getFingerprintEnroll(){int p = -1; lcd.clear(); lcd.print(“手指ID:”); lcd.print(id); lcd.setCursor(0,1); lcd.print(“放置手指”); delay(2000); while(p!= FINGERPRINT_OK){p = finger.getImage();…………………
这就是我们将Arduino与指纹读取器模块一起用于安全系统的方式。