当前位置: 首页 > news >正文

嵌入式人工智能(13-基于树莓派4B的指纹识别-AS608)

1、指纹识别模块

指纹识别是一种生物识别技术,通过分析人体指纹的纹理特征来进行身份验证。每个人的指纹纹路都是独一无二的,通过将指纹与事先存储的指纹数据库进行比对,可以确定是否为同一人。指纹识别在安全领域得到广泛应用,例如手机指纹解锁、门禁系统和边境检查等。由于指纹识别准确度高、便捷快速,被认为是一种可靠的身份验证方法。

2、AS608指纹识别传感器

AS608指纹识别传感器是一种高性能的指纹识别模块。该模块采用高像素的光学传感器,能够快速、准确地识别指纹。它还配备了先进的算法,可以进行指纹图像的提取和比对。AS608指纹识别传感器具有以下特点:
(1)高性能:具备快速、准确的指纹识别能力,可以在极短的时间内完成指纹识别过程。
(2)高像素:采用高像素的光学传感器,能够捕捉到丰富的指纹信息,提高指纹识别的精确度。
(3)先进的算法:配备先进的指纹识别算法,可以对指纹图像进行提取和比对,提高识别的准确性和安全性。
(4)灵活应用:模块尺寸小巧,可以灵活嵌入各种设备中,如门禁系统、考勤机、安防设备等。
(5)高可靠性:具备良好的稳定性和抗干扰能力,适用于各种环境条件下的指纹识别。
总之,AS608指纹识别传感器是一种性能卓越的指纹识别模块,适用于各种应用场景,提供快速、准确的指纹识别功能。

仔细看下面的芯片,才能看清楚芯片是AS608。

3、AS608通过串口USB转换插树莓派USB口

请仔细看接线引脚说明。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 

4、上位机测试程序

Windows系统下载一个上位机测试程序SynoDemo_v2.7,选择正确的串口,如果不知道你的串口号,到设备管理器里面查看。

我们可以先录入一个指纹,便于后续测试。

录入指纹:录入指纹就是录入到指纹库 点录入后选指纹ID号 选库里没有的 录好后指纹库会出现对应ID号指纹
连续录入:连续录入 就是连续录入指纹 ID号自动加1 连续录入
显示图像:勾选后指纹显示区域在录指纹后会显示指纹图片 去掉勾选后不显示
保持覆盖:勾选与去掉未发现什么区别 可交流讨论
指纹库:录好指纹后会有对应编号 也就是ID号
指纹处理:
单一对比:选中对应ID指纹 点单一对比后 把手指放到传感器上 ID号对应指纹和当前指纹一样 会显示对比通过
单一删除:选中ID指纹 点单一删除 当前指纹会被删除
搜索:点搜索 把手指放到传感器上 之后会在指纹库中找到与当前指纹一样的ID库指纹(前提是之前这个指纹有录入)在信息显示区域会显示对应ID号
连续搜索:同搜索 只是会不断去搜索
清空指纹库:同单一删除 只是这个会把所有指纹库全删除

录入指纹可以将波特率设置高点,不然写数据太慢。

5、基本指令

6、综合案例

由于在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=128HEIGHT=64 # 创建I2C接口对象  serial = i2c(port=1, address=0x3C)  # 地址可能因显示屏型号而异,由命令行“sudo i2cdetect -y 1”得到# 创建OLED设备对象  device = ssd1306(serial, WIDTH, HEIGHT) return devicedef Oled_display(x,y,z):global devicedevice = 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 == '':continueelse:breakreturn datadef Serial_Init():global serialserial = serial.Serial('/dev/ttyUSB0', 57600, timeout=0.5)  #/dev/ttyUSB0if 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

7、其他

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

这样就可以录入、查找、删除指纹了。

相关文章:

嵌入式人工智能(13-基于树莓派4B的指纹识别-AS608)

1、指纹识别模块 指纹识别是一种生物识别技术,通过分析人体指纹的纹理特征来进行身份验证。每个人的指纹纹路都是独一无二的,通过将指纹与事先存储的指纹数据库进行比对,可以确定是否为同一人。指纹识别在安全领域得到广泛应用,例…...

【Vue】`v-on` 指令详解:事件绑定与处理的全面指南

文章目录 一、v-on 指令概述缩写语法 二、v-on 的基本用法1. 绑定方法2. 内联处理器 三、v-on 指令的高级用法1. 事件修饰符.stop.prevent.capture.self.once 2. 按键修饰符.enter自定义按键修饰符 3. 系统修饰符 四、v-on 指令的实际应用1. 表单处理模板部分 (<template>…...

【Spark On Hive】—— 基于电商数据分析的项目实战

文章目录 Spark On Hive 详解一、项目配置1. 创建工程2. 配置文件3. 工程目录 二、代码实现2.1 Class SparkFactory2.2 Object SparkFactory Spark On Hive 详解 本文基于Spark重构基于Hive的电商数据分析的项目需求&#xff0c;在重构的同时对Spark On Hive的全流程进行详细的…...

哪种SSL证书可以快速签发保护http安全访问?

用户访问网站&#xff0c;经常会遇到访问http网页时&#xff0c;提示网站不安全或者不是私密连接的提示&#xff0c;因为http是使用明文传输&#xff0c;数据传输中可能被篡改&#xff0c;数据不被保护&#xff0c;通常需要SSL证书来给数据加密。 SSL证书的签发速度&#xff0…...

深入探究理解大型语言模型参数和内存需求

概述 大型语言模型 取得了显著进步。GPT-4、谷歌的 Gemini 和 Claude 3 等模型在功能和应用方面树立了新标准。这些模型不仅增强了文本生成和翻译&#xff0c;还在多模态处理方面开辟了新天地&#xff0c;将文本、图像、音频和视频输入结合起来&#xff0c;提供更全面的 AI 解…...

maven 私服搭建(tar+docker)

maven私服搭建 一、linux安装nexus1、工具下载 二、 docker 搭建nexus1、镜像下载创建目录2、运行nexus3、访问确认&#xff0c;修改默认密码&#xff0c;禁用匿名用户登录4、创建仓库5、创建hostd仓库6、创建Blob Stores7、创建docker私服1、创建proxy仓库2、创建hotsed本地仓…...

银行业务知识全篇(财务知识、金融业务知识)

第一部分 零售业务 1.1 储蓄业务 4 1.1.1 普通活期储蓄(本外币) 4 1.1.2 定期储蓄(本外币) 5 1.1.3 活期一本通 9 1.1.4 定期一本通 10 1.1.5 电话银行 11 1.1.6 个人支票 11 1.1.7 通信存款 13 1.1.8 其他业务规…...

解决ElasticJob项目重启ZooKeeper注册冲突以及zkCli删除目录

解决ElasticJob项目重启ZooKeeper注册冲突以及zkCli删除目录 背景 在现代化的分布式调度系统中&#xff0c;ElasticJob 是一个非常流行的选择。它利用 ZooKeeper 作为注册中心来管理任务分片。然而&#xff0c;有时在项目重启时&#xff0c;会遇到 ZooKeeper 注册冲突的问题&…...

【EI检索】第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

一、会议信息 大会官网&#xff1a;www.mvipit.org 官方邮箱&#xff1a;mvipit163.com 会议出版&#xff1a;IEEE CPS 出版 会议检索&#xff1a;EI & Scopus 检索 会议地点&#xff1a;河北张家口 会议时间&#xff1a;2024 年 9 月 13 日-9 月 15 日 二、征稿主题…...

vscode通过ssh链接远程服务器上的docker

目录 1 编译docker image1.1 编译镜像1.2 启动镜像 2 在docker container中启动ssh服务2.1 确认是否安装ssh server2.2 修改配置文件2.3 启动ssh服务 3 生成ssh key4 添加ssh公钥到docker container中5 vscode安装插件Remote - SSH6 在vscode中配置 1 编译docker image 一般来…...

使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067

首先来看一下如何,使用NIFI 去连接瀚高数据库. 其实,只要配置好了链接的,连接字符串,和驱动,任何支持JDBC的数据库都可以连接的. 首先我们用一个ListDatabaseTables处理器,来连接瀚高DB 主要是看这里,连接地址,以及驱动,还有驱动的位置 这个是数据连接的配置 jdbc:highgo://…...

IDEA的工程与模块管理

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …...

[M前缀和] lc3096. 得到更多分数的最少关卡数目(前缀和+思维)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;3096. 得到更多分数的最少关卡数目 2. 题目解析 比较有意思的题目&#xff0c;仔细读题后发现解题没啥难度&#xff0c;但是如何写好、写的更简洁需要注意下&#xff1a; 思路&#xff1a; 数据量 1e5&#…...

基础vrrp(虚拟路由冗余协议)

一、VRRP 虚拟路由冗余协议 比如交换机上联两个路由器&#xff0c;由两个路由虚拟出一台设备设置终端设备的网关地址&#xff0c;两台物理路由的关系是主从关系&#xff0c;可以设置自动抢占。终端设备的网关是虚拟设备的ip地址&#xff0c;这样&#xff0c;如果有一台路由设备…...

《绝区零》是一款什么类型的游戏,Mac电脑怎么玩《绝区零》苹果电脑玩游戏怎么样

米哈游的《绝区零》最近在网上爆火呀&#xff0c;不过很多人都想知道mac电脑能不能玩《绝区零》&#xff0c;今天麦麦就给大家介绍一下《绝区零》是一款什么样的游戏&#xff0c;Mac电脑怎么玩《绝区零》。 一、《绝区零》是一款什么样的游戏 《绝区零》是由上海米哈游自主研发…...

Mysql sql技巧与优化

1、解决mysql同时更新、查询问题 2、控制查询优化 hint 3、 优化 特定类型的查 优化 COUNT() 查询 使用 近似值 业务能接受近似值的话&#xff0c;使用explain拿到近似值 优化关联查询 优化子查询 4、优化group by和distinct 优化GROUP BY WITH ROLLUP 5、优化 limit分页 其他…...

7.SpringBoot整合Neo4j

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> 说明&#xff1a;这里引入neo4j的版本跟spring框架的版本有关系。需要注意不同的版本在neo…...

教室管理系统的开发与实现(Java+MySQL)

引言 教室管理系统是学校和培训机构日常运营中不可或缺的工具。本文将介绍如何使用Java、Swing GUI、MySQL和JDBC开发一个简单而有效的教室管理系统&#xff0c;并涵盖系统的登录认证、教室管理、查询、启用、暂停和排课管理功能。 技术栈介绍 Java&#xff1a;作为主要编程…...

Go的入门

一、GO简介 Go语言&#xff08;也叫 Golang&#xff09;是Google开发的开源编程语言。 1. 语言特性 Go 语法简洁&#xff0c;上手容易&#xff0c;快速编译&#xff0c;支持跨平台开发&#xff0c;自动垃圾回收机制&#xff0c;天生的并发特性&#xff0c;更好地利用大量的分…...

windows中使用Jenkins打包,部署vue项目完整操作流程

文章目录 1. 下载和安装2. 使用1. 准备一个 新创建 或者 已有的 Vue项目2. git仓库3. 添加Jenkinsfile文件4. 成功示例 1. 下载和安装 网上有许多安装教程,简单罗列几个 Windows系统下Jenkins安装、配置和使用windows安装jenkins 2. 使用 在Jenkins已经安装的基础上,可以开始下…...

RocketMQ中概念知识点记录 和 与SpringBoot集成实现发送 同步、异步、延时、批量、tag、key、事务消息等

1. 消息模型 消息&#xff08;Message&#xff09;: 是 RocketMQ 中数据传输的基本单位&#xff0c;由主题、标签、键值、消息体等组成。主题&#xff08;Topic&#xff09;: 消息的分类&#xff0c;类似于邮件的主题&#xff0c;用于对消息进行粗粒度的分类。标签&#xff08…...

云计算实训09——rsync远程同步、自动化推取文件、对rsyncd服务进行加密操作、远程监控脚本

一、rsync远程同步 1.rsync基本概述 &#xff08;1&#xff09;sync同步 &#xff08;2&#xff09;async异步 &#xff08;3&#xff09;rsync远程同步 2.rsync的特点 可以镜像保存整个目录树和文件系统 可以保留原有权限&#xff0c;owner,group,时间&#xff0c;软硬链…...

【DGL系列】DGLGraph.out_edges简介

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 函数说明 用法示例 示例 1: 获取所有边的源节点和目标节点 示例 2: 获取特定节点的出边 示例 3: 获取所有边的边ID 示例 4: 获取所有信息&a…...

掌握品质之钥:ISO9001质量管理体系认证的巨大价值

在当今竞争激烈的市场环境中&#xff0c;企业若要脱颖而出并持续成功&#xff0c;就必须确保其产品和服务质量始终如一。ISO9001质量管理体系认证正是帮助企业实现这一目标的关键工具。本文将深入探讨ISO9001认证的巨大价值以及它如何助力企业提升竞争力、优化内部管理并赢得客…...

网络开局 与 Underlay网络自动化

由于出口和核心设备 部署在核心机房,地理位置集中,业务复杂,开局通常需要网络工程师进站调测。 因此核心层及核心以上的设备(包含核心层设备,旁挂独立AC设备和出口设备)推荐采用WEB网管开局方式或命令行开局方式。 核心以下的设备(包含汇聚层设备、接入层设备和AP)由于数量众…...

MySQL MVCC原理

全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制&#xff0c;主要是为了提高数据库的并发性能。 1、版本链 对于使用InnoDB存储引擎的表来说&#xff0c;它的聚簇索引记录中都包含两个必要的隐藏列&#xff1a; 1、trx_id&#xff1a;每次一个事务对某条…...

编织文字的魔法:探索WebKit的CSS文本效果

编织文字的魔法&#xff1a;探索WebKit的CSS文本效果 在现代网页设计中&#xff0c;文本不仅仅是信息的载体&#xff0c;更是视觉表现的重要元素。WebKit&#xff0c;作为众多浏览器的核心引擎&#xff0c;支持一系列CSS文本效果&#xff0c;使开发者能够创造出引人注目的文本…...

如何在Linux上部署Ruby on Rails应用程序

在Linux上部署Ruby on Rails应用程序是一个相对复杂的过程&#xff0c;需要按照一系列步骤进行。下面是一个基本的部署过程&#xff0c;涵盖了从安装所需软件到部署应用程序的所有步骤。 安装必要的软件 在部署Ruby on Rails应用程序之前&#xff0c;需要确保Linux系统上安装了…...

极狐GitLab 如何管理 PostgreSQL 扩展?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…...

SpringBoot如何使用Kafka来优化接口请求的并发

在Spring Boot中使用 Kafka 来优化接口请求的并发&#xff0c;主要是通过将耗时的任务异步化到Kafka消息队列中来实现。这样&#xff0c;接口可以立即响应客户端&#xff0c;而不需要等待耗时任务完成。 在Spring Boot应用程序中调用Kafka通常涉及使用Spring Kafka库&#xff…...

国外网购网站十大排名/企业网站优化推广

原文链接&#xff1a;http://blog.csdn.net/u012849872/article/details/51035938 maven工程标准目录结构&#xff1a; src -main –bin 脚本库 –java java源代码文件 –resources 资源库&#xff0c;会自动复制到classes目录里 –filters 资源过滤…...

建网站找汉狮/公司官网制作多少钱

扩展NSAttributedString 简单的实现方法是为NSAttributedString 添加一个category。 然后为此category添加额外的方法。 具体实现如下&#xff1a; [代码]c#/cpp/oc代码&#xff1a; interface NSAttributedString (Hyperlink) (id)hyperlinkFromString:(NSString*)inString wi…...

企业邮箱格式怎么填写才正确/深圳网站seo

刷题路线参考&#xff1a; https://github.com/chefyuan/algorithm-base https://github.com/youngyangyang04/leetcode-master 大家好&#xff0c;我是靠写博客督促自己刷题的老三&#xff0c;这一节我们对线栈和队列。 栈和队列基础 在正式开刷之前&#xff0c;我们先了解一…...

数字域名做网站/网店营销策划方案范文

现在很多公司在使用mysql时&#xff0c;由于数据量过大&#xff0c;都会使用分库或分表&#xff0c;分片就意味着需要有分片的key&#xff0c;有些场景下会使用自增的值来作为主键并作为分片的Key&#xff0c;由于mysql本身支持并发&#xff0c;因此很多公司就使用mysql数据库表…...

字体安装wordpress/百度官方人工客服电话

正则验证 20180818直接上代码// 正则验证车牌,验证通过返回true,不通过返回falsefunction isLicensePlate(str) {return /^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽…...

延边省建设局网站官网/app推广引流

之前在使用Ansible部署工具的时候&#xff0c;需要先配置好SSH免密登录&#xff0c;在配置时踩了很多的坑&#xff08;按照很多文章的步骤并不能完全配置好免密登录&#xff09;&#xff0c;因此在踩完所有的坑之后&#xff0c;总结出来这篇文章。 生成公钥、私钥对 在中控机…...