赞
踩
指纹识别是一种生物识别技术,通过分析人体指纹的纹理特征来进行身份验证。每个人的指纹纹路都是独一无二的,通过将指纹与事先存储的指纹数据库进行比对,可以确定是否为同一人。指纹识别在安全领域得到广泛应用,例如手机指纹解锁、门禁系统和边境检查等。由于指纹识别准确度高、便捷快速,被认为是一种可靠的身份验证方法。
AS608指纹识别传感器是一种高性能的指纹识别模块。该模块采用高像素的光学传感器,能够快速、准确地识别指纹。它还配备了先进的算法,可以进行指纹图像的提取和比对。AS608指纹识别传感器具有以下特点:
(1)高性能:具备快速、准确的指纹识别能力,可以在极短的时间内完成指纹识别过程。
(2)高像素:采用高像素的光学传感器,能够捕捉到丰富的指纹信息,提高指纹识别的精确度。
(3)先进的算法:配备先进的指纹识别算法,可以对指纹图像进行提取和比对,提高识别的准确性和安全性。
(4)灵活应用:模块尺寸小巧,可以灵活嵌入各种设备中,如门禁系统、考勤机、安防设备等。
(5)高可靠性:具备良好的稳定性和抗干扰能力,适用于各种环境条件下的指纹识别。
总之,AS608指纹识别传感器是一种性能卓越的指纹识别模块,适用于各种应用场景,提供快速、准确的指纹识别功能。
仔细看下面的芯片,才能看清楚芯片是AS608。
请仔细看接线引脚说明。AS608的接线头有防呆口,插上即可,只用到4根线,VCC接USBToTTL的VCC(注意这里要接3.3V,否则容易损坏,将黄色的跳线帽连接5V与VCC引脚,AS608插到3.3上面),AS608的GND接USBToTTL的GND,AS608的TX接USBToTTL的RXD,AS608的RX接USBToTTL的TXD。接线完成后插入到树莓派的USB端口。
查看是否发现了设备,并且找到串口的设备号,该设备号为/dev/ttyUSB0
通过minicom软件设置下串口通信的波特率,我们设置小一点即可。sudo minicom -b 9600 -o -D /dev/ttyUSB0
Windows系统下载一个上位机测试程序SynoDemo_v2.7,选择正确的串口,如果不知道你的串口号,到设备管理器里面查看。
我们可以先录入一个指纹,便于后续测试。
录入指纹:录入指纹就是录入到指纹库 点录入后选指纹ID号 选库里没有的 录好后指纹库会出现对应ID号指纹
连续录入:连续录入 就是连续录入指纹 ID号自动加1 连续录入
显示图像:勾选后指纹显示区域在录指纹后会显示指纹图片 去掉勾选后不显示
保持覆盖:勾选与去掉未发现什么区别 可交流讨论
指纹库:录好指纹后会有对应编号 也就是ID号
指纹处理:
单一对比:选中对应ID指纹 点单一对比后 把手指放到传感器上 ID号对应指纹和当前指纹一样 会显示对比通过
单一删除:选中ID指纹 点单一删除 当前指纹会被删除
搜索:点搜索 把手指放到传感器上 之后会在指纹库中找到与当前指纹一样的ID库指纹(前提是之前这个指纹有录入)在信息显示区域会显示对应ID号
连续搜索:同搜索 只是会不断去搜索
清空指纹库:同单一删除 只是这个会把所有指纹库全删除
录入指纹可以将波特率设置高点,不然写数据太慢。
由于在windows系统使用调试程序,将as608的指纹模块波特率设置为57600,注意这个串口的速度一定要和这个波特率匹配。
录入指纹等显示信息到OLED屏幕上,如果录入成功则LED灯亮1S,然后再检测,相当于指纹门禁啥的监控程序。
- import binascii
- import serial
- import serial.tools.list_ports
- import time
- from PIL import Image
- from PIL import ImageDraw
- from PIL import ImageFont
- import RPi.GPIO as GPIO
- import luma.oled as oled
- from luma.core.interface.serial import i2c
- from luma.oled.device import ssd1306
- from luma.core.render import canvas
-
- #将GPIO编程方式设置为BOARD模式
- GPIO.setmode(GPIO.BOARD)
- #设置GPIO11输出模式
- GPIO.setup(11,GPIO.OUT)
-
- def load_device():
- WIDTH=128
- HEIGHT=64
- # 创建I2C接口对象
- serial = i2c(port=1, address=0x3C) # 地址可能因显示屏型号而异,由命令行“sudo i2cdetect -y 1”得到
- # 创建OLED设备对象
- device = ssd1306(serial, WIDTH, HEIGHT)
- return device
-
- def Oled_display(x,y,z):
- global device
- device = load_device()
- font = ImageFont.truetype('STKAITI.TTF',16)
- with canvas(device) as draw:
- draw.rectangle(device.bounding_box, outline=0, fill=0)
- draw.text((x,y),str(z),font=font, fill='white')
-
- def recv(serial):
- while True:
- data = serial.read_all()
- if data == '':
- continue
- else:
- break
- return data
-
- def Serial_Init():
- global serial
- serial = serial.Serial('/dev/ttyUSB0', 57600, timeout=0.5) #/dev/ttyUSB0
- if serial.isOpen() :
- print("open success ")
- else :
- print("open failed ")
-
-
- if __name__ == '__main__':
- Serial_Init()
- try:
- while True:
- a = 'EF 01 FF FF FF FF 01 00 03 01 00 05'
- d = bytes.fromhex(a)
- serial.write(d)
- time.sleep(1)
- data =recv(serial)
- if data != b'' :
- data_con = str(binascii.b2a_hex(data))[20:22]
- if(data_con == '02'):
- print("请按下手指")
- GPIO.output(11,GPIO.HIGH)
- Oled_display(0,0,"请按下手指")
- elif(data_con == '00'):
- print("载入成功")
- Oled_display(0,10,"载入成功")
- buff = 'EF 01 FF FF FF FF 01 00 04 02 01 00 08'
- buff = bytes.fromhex(buff)
- serial.write(buff)
- time.sleep(1)
- buff_data = recv(serial)
- buff_con = str(binascii.b2a_hex(buff_data))[20:22]
- if(buff_con == '00'):
- print("生成特征成功")
- Oled_display(0,20,"生成特征成功")
- serch = 'EF 01 FF FF FF FF 01 00 08 04 01 00 00 00 64 00 72'
- serch = bytes.fromhex(serch)
- serial.write(serch)
- time.sleep(1)
- serch_data = recv(serial)
- serch_con = str(binascii.b2a_hex(serch_data))[20:22]
- if (serch_con == '09'):
- print("指纹不匹配")
- Oled_display(0,30,"指纹不匹配 ")
- elif(serch_con == '00'):
- print("指纹匹配成功")
- Oled_display(0,30,"指纹匹配成功")
- GPIO.output(11,GPIO.LOW)
- time.sleep(1)
- #serial.close()
- #exit()
- else:
- print("不成功")
- except Exception as e:
- print(e)
- finally:
- serial.close()
- exit()
-
因为在设备指纹库里面我已经录入了一个指纹,ID为0,因此我在按下指纹时去库里比对正确,就返回指纹匹配成功。
AS608
Python包有个Adafruit的CircuitPython Fingerprint指纹库,通过sudo pip install adafruit-circuitpython-fingerprint 安装
通过gitHub克隆Adafruit的CircuitPython Fingerprint脚本
git clone https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint.git如果下载问题,可以到镜像站Links for adafruit-circuitpython-fingerprint下载adafruit-circuitpython-fingerprint-2.2.15.tar.gz,解压后也有examples的例子学习。注意树莓派的指纹案例文件名为fingerprint_simpletest_rpi.py
这样就可以录入、查找、删除指纹了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。