物联网AI MicroPython传感器学习 之 AS608指纹识别模块

这篇具有很好参考价值的文章主要介绍了物联网AI MicroPython传感器学习 之 AS608指纹识别模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学物联网,来万物简单IoT物联网!!ai识别模块,物联网传感器,物联网,人工智能,学习,嵌入式硬件,python

一、产品简介

AS608指纹识别模块是一款高性能的光学指纹识别模块。它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片。该芯片内置DSP运算单元,集成了指纹识别算法,能高效快速采集图像并对指纹特征进行识别。 该模块配备了串口和USB接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜 、指纹门禁系统、指纹锁等场合。
本文中主控板和AS608模块之间使用UART进行通信,实际使用过程中最少只需要使用VCC/TX/RX/GND四根引脚和主控板进行通信。模块接口外观及其定义如下:
ai识别模块,物联网传感器,物联网,人工智能,学习,嵌入式硬件,python

引脚定义

名称 说明
VCC 模块电源正极
TX 串行数据输出,TTL逻辑电平
RX 串行数据输入,TTL逻辑电平
GND 地线
TOUCH 触摸板感应信号,默认高电平有效
UA 触摸板电源输入,3.3V
D+ USB D+数据线
D- USB D-数据线

二、技术参数

  • 供电电压:3.0V~5.5V,典型值:3.3V
  • 工作电流:30~60mA,典型值:40mA
  • ADC测量速率:8Bps~860Bps,可设置
  • UART接口配置(默认波特率:57600,数据位:8,停止位1,校验位:none,TTL电平)
  • USB接口支持全速2.0标准
  • 图像处理时间:<0.4秒
  • 上电延时:<0.1秒,模块上电后需要约 0.1S 初始化工作
  • 指纹搜索时间:<0.3秒
  • 拒真率:<1%
  • 认假率:<0.001%
  • 指纹存容量:300枚
  • 工作环境:温度-20~60摄氏度,湿度<90%(无凝露)

三、软件接口

AS608(uartObj) - 创建AS608驱动对象

  • 函数原型:

as608Obj = AS608(uartObj)

  • 参数说明:
参数 类型 必选参数? 说明
uartObj UART 传入uart对象
  • 返回值:

执行成功,返回指纹识别模块对象;创建失败,抛出Exception

  • 示例代码:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")
  • 输出:
AS608 inited!

getEmptyPosition - 获取空白位置ID

  • 函数功能:
    查询AS608内部空闲指纹存储ID,即未存储有效指纹模板的存储空间
  • 函数原型:

AS608.getEmptyPosition()

  • 参数说明:

  • 返回值:
    成功返回非负值,代表可用指纹存储ID,失败返回as608.FAIL
  • 示例:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

id = as608Obj.getEmptyPosition()
print("available id:", id)
  • 输出:
AS608 inited!
available id: 1

fingerEnroll - 指纹注册

  • 函数功能:
    开始指纹注册操作,指纹识别的是通过将采集到的指纹和指纹库中的指纹进行特征匹配,匹配成功则指纹识别通过;否则指纹识别失败。需要“指纹注册”过程才能完成向指纹库录入指纹的目的。
  • 函数原型:

AS608.fingerEnroll(id)

  • 参数说明:
参数 类型 必选参数? 说明
id int 本次指纹注册成功后放在指纹识别库中的位置ID,范围为0~299
  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

id = as608Obj.getEmptyPosition()
print("available id:", id)

if id >= 0:
    fig.fingerEnroll(id)
  • 输出:
AS608 inited!
available id:1
wait for finger print on the pannel
finger detected
take off your finger, please
put on your finger again, please
creating finger model
store finger model
store finger model success

fingerSearch - 指纹识别

  • 函数功能:
    进行指纹识别操作
  • 函数原型:

AS608.fingerSearch()

  • 参数说明:

  • 返回值:
    (result, id, confidence),返回值说明如下:
参数 类型 说明
result int as608.SUCCESS代表在指纹库中搜索到指纹;as608.FAIL代表未搜索到指纹
id int 该指纹在指纹库中的位置
confidence int 可信度,范围:0~65535,数值越大,可信度越高
  • 示例:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

result, id, confidence = as608Obj.fingerSearch()

if result == as608.SUCCESS:
    print('finger search successs,', id, confidence)
else:
    print('your finger was not enrolled')
  • 输出:
AS608 inited!
finger search successs, 0, 190

deleteModel - 从指纹库中删除特定指纹

  • 函数功能:
    从指纹库中删除特定指纹
  • 函数原型:

AS608.deleteModel(id)

  • 参数说明:
参数 类型 必选参数? 说明
id int 要删除的指纹在指纹识别库中的位置ID,范围为0~299
  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

id = 0
as608Obj.deleteModel(id)
print("model delete done")
  • 输出:
AS608 inited!
model delete done

emptyDatabase - 清空指纹库

  • 函数功能:
    清空指纹库

!慎用!

  • 函数原型:

AS608.emptyDatabase()

  • 参数说明:

  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

as608Obj.emptyDatabase()
print("empty database done")
  • 输出:
AS608 inited!
empty database done

下面的API是AS608模块提供的原子功能的API,如果开发者对这个模块的功能比较熟悉,可以采用,但如果开发者对这个模块不熟悉,不建议直接使用下面的API。

getImage - 采集指纹图片

  • 函数功能:
    清空指纹库

!慎用!

  • 函数原型:

AS608.getImage()

  • 参数说明:

  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
    请参考fingerEnroll函数实现里边的用法

image2Character - 指纹图片生成特征值

  • 函数功能:
    清空指纹库

!慎用!

  • 函数原型:

AS608.image2Character(bufferId)

  • 参数说明:
参数 类型 必选参数? 说明
bufferId int 转换后的特征值存储缓冲区ID, 1代表将特征值存储在Buffer1中;2代表将特征值存储在Buffer2中
  • 返回值:
    成功返回0;失败返回as608.FAIL
  • 示例:
    请参考fingerEnroll函数实现里边的用法

createModel - 合并特征并生成模板

  • 函数功能:
    合并特征并生成模板
  • 函数原型:

AS608.createModel()

  • 参数说明:

  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
    请参考fingerEnroll函数实现里边的用法

storeModel - 存储模板

  • 函数功能:
    将指纹对应的特征模板存放到指纹数据库中
  • 函数原型:

AS608.storeModel(id)

  • 参数说明:
参数 类型 必选参数? 说明
id int 指纹存储在指纹库中的位置,范围[0,299]
  • 返回值:
    成功返回as608.SUCCESS;失败返回as608.FAIL
  • 示例:
    请参考fingerEnroll函数实现里边的用法

search - 在指纹库中搜索指纹

  • 函数功能:
    在指纹库中搜索特征模板
  • 函数原型:

AS608.search()

  • 参数说明:
  • 返回值:

(result, id, confidence),变量说明如下:

参数 类型 说明
result int as608.SUCCESS代表在指纹库中搜索到指纹;as608.FAIL代表未搜索到指纹
id int 该指纹在指纹库中的位置
confidence int 可信度,范围:0~65535,数值越大,可信度越高
  • 示例:
    请参考fingerSearch函数实现里边的用法

四、接口案例

  • 案例代码:
from machine import UART,Pin    # 驱动库
import as608               # AS608指纹识别模块库

uartObj = UART(1, baudrate=57600,bits = 8,stop = 2, tx=Pin(33), rx=Pin(32))
as608Obj = as608.AS608(uartObj) # AS608指纹识别设备初始化
print("AS608 inited!")

id = as608Obj.getEmptyPosition()
print("empty record id:", id)

ret = as608Obj.fingerEnroll(id)
if ret:
    print("finger enroll failed!")
else:
    print("finger enroll success!")

while True:
    ret, id, score = as608Obj.fingerSearch()
    print(ret, id, score)
  • 输出:
AS608 inited!
empty record id:1
wait for finger print on the pannel
finger detected
take off your finger, please
put on your finger again, please
creating finger model
store finger model
store finger model success
finger enroll success!

五、通信协议

主控芯片和AS608之间采用UART进行通信。
发往AS608模块的指令都遵循如下的格式:

名称 包头 芯片地址 包标识 包长度 指令标识 参数1 参数n 校验和
字节数(单位:bytes) 2 4 1 2 1 N N N 2
内容 0xEF01 xxxx 01 N=

AS608模块回复的响应都遵循如下的格式:

名称 包头 芯片地址 包标识 包长度 确认码 返回参数 校验和
字节数(单位:bytes) 2 4 1 2 1 N 2
内容 0xEF01 xxxx 01 N=

AS608模组共提供31条指令,实际使用中最常用的指令有如下几条:

指令码 功能说明
01H 从传感器上读入图像存于图像缓冲区
02H 根据原始图像生成指纹特征存于CharBuffer1或CharBuffer2
03H 精确比对CharBuffer1与CharBuffer2中的特征文件
04H 以CharBuffer1或CharBuffer2中的特征文件搜索整个或部分指纹库
05H 将CharBuffer1与CharBuffer2中的特征文件合并生成模板存于CharBuffer1与CharBuffer2
06H 将特征缓冲区中的文件储存到flash指纹库中
0CH 删除flash指纹库中的一个特征文件
0DH 清空flash指纹库
0EH 设置系统参数
0FH 读系统基本参数
1BH 高速搜索FLASH
1DH 读有效模板个数

AS608模块回复的响应包中的确认码如下:

确认码 功能说明
00H 表示指令执行完毕或OK
01H 表示数据包接收错误
02H 表示传感器上没有手指
03H 表示录入指纹图像失败
04H 表示指纹图像太干、太淡而生不成特征
05H 表示指纹图像太湿、太糊而生不成特征
06H 表示指纹图像太乱而生不成特征
07H 表示指纹图像正常,但特征点太少(或面积太小)而生不成特征
08H 表示指纹不匹配
09H 表示没搜索到指纹
0aH 表示特征合并失败
0bH 表示访问指纹库时地址序号超出指纹库范围
0cH 表示从指纹库读模板出错或无效
0dH 表示上传特征失败
0eH 表示模块不能接受后续数据包
0fH 表示上传图像失败
10H 表示删除模板失败
11H 表示清空指纹库失败
13H 表示口令不正确
15H 表示缓冲区内没有有效原始图而生不成图像
18H 表示读写 FLASH 出错
19H 未定义错误
1AH 无效寄存器号
1BH 寄存器设定内容错误号
1CH 记事本页码指定错误
1DH 端口操作失败
1EH 自动注册失败
1FH 指纹库满

实际控制此指纹识别模块进行指纹录入和指纹识别的流程请参考下图。
ai识别模块,物联网传感器,物联网,人工智能,学习,嵌入式硬件,python

参考文献及购买链接

[1] AS60x指纹识别SoC通讯手册
[2] AS60x指纹识别购买链接文章来源地址https://www.toymoban.com/news/detail-859869.html

到了这里,关于物联网AI MicroPython传感器学习 之 AS608指纹识别模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 物联网AI MicroPython传感器学习 之 ADXL345 3轴加速度传感器

    学物联网,来万物简单IoT物联网!! ADXL345是一款完整的3轴加速度测量系统,可选择的测量范围有士2g,士4g,士8g或士16g。它既能测量运动或冲击导致的动态加速度,也能测量静止加速度,例如重力加速度,这样的特性让它可作为倾斜传感器使用。该传感器还具备单击 /双击

    2024年03月26日
    浏览(51)
  • Arduino开发实例-AS608光学指纹传感器驱动

    AS608 光学指纹传感器可用于扫描指纹,它也可以通过串行通信将处理后的数据发送到微控制器。 所有注册的指纹都存储在这个模块中。 AS608 最多可存储 127 个独立指纹。 最重要的特点是: 电源电压:3.3V 最大电流供应:60mA 分辨率:500dpi 最大指纹成像时间:1s 传感器引脚

    2024年01月17日
    浏览(57)
  • 人工智能+物联网:从传感器到机器学习:智能化的数据采集和分析

    作者:禅与计算机程序设计艺术 大数据时代是一个数据爆炸的时代。如何从海量数据中快速找到隐藏在其中价值的信息,成为当今企业竞争中不可或缺的能力?人工智能和物联网正在成为经济领域和产业界的主流,新一代互联网物联网平台、AI智能终端、海量数据和算法驱动

    2024年02月09日
    浏览(73)
  • 智能传感器阅读笔记-物联网用智能传感器技术的发展重点

    物联网用智能传感器技术的发展重点 包含 边缘计算算法优化 、 身份认证算法优化 和 能量采集技术 。 图1  物联网用智能传感器技术的发展重点 边缘计算算法优化 边缘计算是指在靠近物或数据源头的一侧(传感器侧),采用集检测、计算、存储、通信功能于一体的平台,

    2024年02月20日
    浏览(51)
  • 物联网之传感器如何选型

    传感器的选型是一个涉及多个因素的过程,需要根据具体的应用场景、需求、预算和技术要求来进行综合考虑。以下是一些建议的步骤和方法,帮助您在自动窗帘系统中进行传感器选型: (1)明确需求:首先,明确自动窗帘系统的功能需求。例如,您需要控制窗帘的开关、调节

    2024年04月09日
    浏览(51)
  • 智能井盖传感器,物联网智能井盖系统

    随着城市人口的不断增加和城市化进程的不断推进,城市基础设施的安全和可靠性变得愈发重要,城市窨井盖作为城市基础设施重要组成部分之一,其安全性事关城市安全有序运行和居民生产生活安全保障。 近年来,各地都在加强城市窨井盖治理,在窨井盖管理方面也存在一

    2024年02月11日
    浏览(43)
  • 3个月快速入门LoRa物联网传感器开发

    在这里插入图片描述 LoRa作为一种LPWAN(低功耗广域网络)无线通信技术,非常适合物联网传感器和行业应用。要快速掌握LoRa开发,需要系统学习理论知识,并通过实际项目积累经验。 摘要: 先学习LoRa基础知识:原理、网络架构、协议等,大概需要2周时间。 然后选择LoRa开发板,编写简

    2024年02月14日
    浏览(49)
  • 【物联网】光影奇航:激光传感器探秘与按键妙用

    ​​ 🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《物联网实战 | 数字奇迹记》 ⏰翰墨致赠:狂风挟雷霆舞苍穹,剑气横扫万里空。英雄豪情铸不朽,激荡壮志燃热风。 目录 ⛳️1. 初识物联网 ⛳️2. 光影奇航:激光传感器探秘与按键妙用 🌍一、 研究目的 🌍二、 研究

    2024年02月05日
    浏览(52)
  • 周立功DTU+温度传感器,ZWS物联网平台尝试

    了解到周立功有相关的物联网云平台,近期在调研动态环境监控项目,可以进行一个上云的尝试。购置了传感器、周立功的DTU等硬件,将传感器的温度、湿度等数据进行一个云平台的上传。 传感器用了之前放置了较久的MX温度传感器 购买了 CATCOM-100 ,还需要自备SIM卡(上位机

    2024年02月02日
    浏览(48)
  • 【物联网】MPU6050传感器数据采集与滤波算法

    当谈到嵌入式电子设备和机器人的姿态控制和运动检测时,MPU6050往往是一个备受关注的传感器模块。它是一款小巧但功能强大的六轴传感器,集成了三轴加速度计和三轴陀螺仪。在本博客中,我们将详细介绍MPU6050的特点、工作原理以及与stm32配合的使用方法,后面看情况更新

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包