几年前,我们曾经在科幻电影中看到过指纹传感器,现在已经变得很普遍,它可以出于各种目的验证个人身份。目前,我们在日常生活中到处都能看到基于指纹的系统,例如在办公室出席,在银行进行员工验证,在ATM上取现或存款,在政府办公室进行身份验证等。我们已经将其与Arduino,今天,我们将接口指纹传感器与Raspberry Pi。使用此Raspberry Pi指纹系统,我们可以在系统中注册新的指纹,并可以删除已经送入的指纹。该系统的完整工作已在文章末尾的视频中显示。
所需组件:
- 树莓派
- USB转串口转换器
- 指纹模组
- 按按钮
- 16x2 LCD
- 1万锅
- 面包板或PCB(从JLCPCB订购)
- 跳线
- LED(可选)
- 电阻150 ohm -1 k ohm(可选)
电路图和说明:
在这个Raspberry Pi指纹传感器接口项目中,我们使用了4个按钮:一个按钮用于注册新的指纹,一个按钮用于删除已经进给的指纹,其余两个按钮用于增加/减少已经进给的指纹的位置。甲LED用于指示指纹传感器是准备采取手指用于匹配。在这里,我们使用了可在UART上工作的指纹模块。因此,在这里我们已经使用USB到串行转换器将该指纹模块与Raspberry Pi进行了接口。
因此,首先,我们需要进行所有必要的连接,如下电路图所示。连接很简单,我们刚刚使用USB到串行转换器将指纹模块连接到Raspberry Pi USB端口。16x2 LCD用于显示所有消息。LCD还使用一个10k的电位器来控制其对比度。16x2 LCD引脚RS,EN,d4,d5,d6和d7分别与Raspberry Pi的GPIO引脚18、23、24、25、8和7连接。四个按钮连接到Raspberry Pi的GPIO引脚5、6、13和19。LED也连接在RPI的引脚26上。
安装指纹传感器库:
完成所有连接后,我们需要打开Raspberry Pi的电源,并在终端打开的情况下做好准备。现在,我们需要按照以下步骤,以python语言为Raspberry Pi安装指纹库。
步骤1:要安装此库,需要root特权。因此,首先我们通过给定命令输入 root :
须藤bash
步骤2:然后使用给定的命令下载一些必需的软件包:
wget –O – http://apt.pm-codeworks.de/pm-codeworks.de.gpg-apt键添加– wget http://apt.pm-codeworks.de/pm-codeworks.list -P /等/apt/sources.list.d/
步骤3:在此之后,我们需要更新Raspberry pi并安装下载的指纹传感器库:
sudo apt-get更新sudo apt-get安装python-fingerprint –是
步骤4:现在安装了磁带库之后,我们需要使用给定的命令来检查指纹传感器所连接的USB端口:
ls / dev / ttyUSB *
现在,将USB端口号替换为屏幕上方的USB端口,并将其替换为python代码。在该项目的最后给出了完整的Python代码。
Raspberry Pi指纹传感器的操作:
该项目的操作很简单,只需运行python代码,LCD上就会显示一些介绍性消息,然后要求用户将 手指 放在指纹传感器上。现在,通过将手指放在指纹模块上,我们可以检查指纹是否已经存储。如果您的指纹已存储,则LCD将显示带有指纹存储位置的消息,例如“ Fount at Pos:2”, 否则将显示 “ No Match Found” 。
现在要注册指纹 ,用户需要按注册按钮并按照LCD屏幕上的指示信息进行操作。
如果用户想要删除任何指纹,则用户需要按下 删除按钮。 之后,LCD将询问要删除的指纹的位置。现在,通过使用另外两个按钮进行递增和递减操作,用户可以选择保存的指纹的位置,然后按注册按钮(此时注册按钮的行为类似于“确定”按钮)以删除该指纹。要了解更多信息,请查看项目结尾处提供的视频。
Python程式设计:
使用指纹库功能可轻松实现将指纹传感器与RPi接口的Python 。但是,如果用户想自己连接它,那么第一次会有点困难。在指纹传感器数据表中,给出了连接同一模块所需的一切。可以使用GitHub代码使用指纹传感器测试Raspberry pi。
这里我们使用了库,因此我们只需要调用库函数。在代码中,首先我们需要导入诸如指纹,GPIO和时间之类的库,然后我们需要为LCD,LED和按钮定义引脚。
从pyfingerprint.pyfingerprint导入时间以PpFingerprint导入RPi.GPIO为gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 enrol = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1低= 0
之后,我们需要初始化并为选定的引脚提供方向
gpio.setwarnings(False)gpio.setmode(gpio.BCM)gpio.setup(RS,gpio.OUT)gpio.setup(EN,gpio.OUT)gpio.setup(D4,gpio.OUT)gpio.setup(D5, gpio.OUT)gpio.setup(D6,gpio.OUT)gpio.setup(D7,gpio.OUT)gpio.setup(注册,gpio.IN,pull_up_down = gpio.PUD_UP)gpio.setup(删除,gpio.IN, pull_up_down = gpio.PUD_UP)gpio.setup(inc,gpio.IN,pull_up_down = gpio.PUD_UP)gpio.setup(dec,gpio.IN,pull_up_down = gpio.PUD_UP)gpio.setup(led,gpio.OUT)
现在我们已经初始化了指纹传感器
尝试:f = PyFingerprint('/ dev / ttyUSB0',57600,0xFFFFFFFF,0x00000000)if(f.verifyPassword()== False):引发ValueError('给定的指纹传感器密码错误!'),例外为e: print('Exception message:'+ str(e))exit(1)
我们已经编写了一些函数来初始化和驱动LCD,请在代码部分中检查下面的完整代码:
def begin(),def lcdcmd(ch),def lcdwrite(ch),def lcdprint(Str),def setCursor(x,y)
编写完所有LCD驱动程序功能后,我们放置了用于指纹注册,搜索和删除的功能。
def enrollFinger()函数用于注册或保存新的指纹。
def searchFinger()函数用于查找已存储的指纹
def deleteFinger()函数用于通过按相应的按钮来检测已经保存的指纹。
以上所有函数的代码均在下面给出的python代码中给出。
此后,最后,我们需要在 1个 循环中通过要求 将手指 放在指纹传感器 上来 初始化系统,然后系统将检查该指纹是否有效并相应显示结果。
begin()lcdcmd(0x01)lcdprint(“ FingerPrint”)lcdcmd(0xc0)lcdprint(“ Interface”)time.sleep(3)lcdcmd(0x01)lcdprint(“ Circuit Digest”)lcdcmd(0xc0)lcdprint(“欢迎您” )time.sleep(3)标志= 0 lcdclear()而1:gpio.output(led,HIGH)lcdcmd(1)lcdprint(“置入手指”)如果gpio.input(enrol)== 0:gpio.output( led,LOW)enrollFinger()elif gpio.input(delet)== 0:gpio.output(led,LOW)而gpio.input(delet)== 0:time.sleep(0.1)deleteFinger()else:searchFinger( )
完整的Python代码和工作视频如下。