ESP32开发之旅——AS608指纹识别模块

ESP32开发之旅——AS608指纹识别模块)

前言

  • 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块。
  • 需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时ESP8266通过更改引脚的方式也可以实现)。
  • 本文中使用的代码是由YPYBoard类库示例代码修改后而来,使其能够使用在MicroPython ESP32上。
  • 22.2.28更新,修改后的完整代码在文末提供。

AS608指纹识别模块介绍

在正文开始前,按照惯例对该模块进行简单的介绍。

简介

ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学指纹识别模块。ATK-AS608 模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司(Synochip)的 AS608 指纹识别芯片。芯片内置 DSP 运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征。模块配备了串口、USB 通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。

引脚定义

序号名称说明
1VI模块电源
2TX串行数据输出。TTL 逻辑电平
3RX串行数据输入。TTL 逻辑电平
4GND信号地。内部与电源地连接
5TCH(WAK)感应信号输出,默认高电平有效
6VA(Vt)触摸感应电源输入端,3.3v 供电
7D+USB D+
8D-USB D-

模块实物图

正文

所需材料

  • ESP32开发板(已刷入MicroPython固件,未刷入的小伙伴可以参考我前面的教程)
  • AS608指纹识别模块
  • Thonny(其他支持MicroPython开发的IDE皆可)

连线说明

在AS608模块中,一共引出来了8根线,实际上使用(VI、TX、RX、GND)这4根就可以完成开发,若要考虑低功耗,则可以加上(TCH、VA)这两根感应信号线,在本文中,只使用了4根线进行开发。

VITXRXGND
3.3V1312GND

官方指令文件

模块发出的
搜索	EF 01 FF FF FF FF 07 00 03 02 00 0C
搜索到后	EF 01 FF FF FF FF 07 00 03 00 00 0A
接着	EF 01 FF FF FF FF 02 00 82 EE EE EE EE EE EE EE EE EE EE EE EE EE ED DD DD DD DD DD DD ED DD CC DD DD DC CC DD DD DD DD DC CC DD DD DD DC CC BC CD DD DD CC BC CD DD DD DD CD DD DD DD DD CB BB CC CD DD DD DD CC CC DD CC CC DD DD ED DD DC CC CC CC CC CC DD DD DD DD DD DD CC CC CC CD DD DD DD DD DC DD DD DD DD DD EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE 70 45
最后	EF 01 FF FF FF FF 07 00 03 00 00 0A
找到指纹	EF 01 FF FF FF FF 07 00 07 00 00 0E 01 2B 00 48
	EF 01 FF FF FF FF 07 00 07 00 00 0F 00 40 00 5D	
	EF 01 FF FF FF FF 07 00 07 00 00 03 00 7E 00 8F
没有找到	EF 01 FF FF FF FF 07 00 07 09 00 0E 00 02 00 27

录入指纹:搜索指纹-搜索指纹-搜索到

PC发出的
连接	EF 01 FF FF FF FF 01 00 07 13 00 00 00 00 00 1B
	EF 01 FF FF FF FF 01 00 03 16 00 1A
	EF 01 FF FF FF FF 01 00 03 1D 00 21
	EF 01 FF FF FF FF 01 00 04 1F 00 00 24
	EF 01 FF FF FF FF 01 00 04 1F 01 00 25

搜索指纹	EF 01 FF FF FF FF 01 00 03 01 00 05
上传	EF 01 FF FF FF FF 01 00 03 0A 00 0E
	
	EF 01 FF FF FF FF 01 00 04 02 01 00 08
	EF 01 FF FF FF FF 01 00 03 01 00 05
	EF 01 FF FF FF FF 01 00 03 0A 00 0E

录入	EF 01 FF FF FF FF 01 00 04 02 02 00 09
	EF 01 FF FF FF FF 01 00 03 05 00 09

存入指纹	EF 01 FF FF FF FF 01 00 06 06 01 00 17 00 25
	EF 01 FF FF FF FF 01 00 06 06 01 00 0D 00 1B

识别指纹	EF 01 FF FF FF FF 01 00 03 01 00 05
找到后	EF 01 FF FF FF FF 01 00 03 0A 00 0E
没有找到	EF 01 FF FF FF FF 01 00 04 02 01 00 08
	EF 01 FF FF FF FF 01 00 08 04 01 00 00 01 2C 00 3B

找到	EF 01 FF FF FF FF 01 00 04 02 01 00 08
	EF 01 FF FF FF FF 01 00 08 04 01 00 00 01 2C 00 3B

核心代码

这里为修改思路。

YPYBoard源码

	def	searchfig(self):
		hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
		self.uart.read()
		self.sendcmd(cmd_search)
		hc=self.uart.read()
		while hc[11]!=0xa:
			self.sendcmd(cmd_search)
			hc=self.uart.read()
			self.sendcmd(cmd_upload)
  • 在运行中报错为:TypeError: 'NoneType' object isn't subscriptable,原因为hc= self.uart.read()读取到的数据有时候会是None,因此在下面运行hc[11] != 0xa时会报错。
  • 修改思路:通过查询官方指令文件发现,0xa是模块搜索到后反馈信息的最后一位,由于hc为None时没有下标,因此可以将它替换掉。

修改后:

    find_dis = b'\xef\x01\xff\xff\xff\xff\x07\x00\x03\x02\x00\x0c'  ###未搜索到指纹
    def searchfig(self):
        hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
        self.uart.read()
        self.sendcmd(cmd_search)
        hc=self.uart.read()
        while hc == None or hc == find_dis:
            self.sendcmd(cmd_search)
            time.sleep_ms(500)
            hc=self.uart.read() 

在源码中,还有一处错误相同的地方需要更改,由您去发现。

结尾处将附上源码。

结尾

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
ESP32 AS608是一款集成了ESP32芯片和AS608指纹模块开发板。ESP32是一款低功耗、高集成度的Wi-Fi和蓝牙芯片,它能够实现无线连接和数据传输。AS608指纹模块则是一种具有指纹识别功能的硬件设备。 ESP32 AS608开发板的特点是既具备了无线通信的功能,又能够进行指纹识别,提供了强大的硬件基础设施和功能扩展能力。我们可以通过该开发板实现无线通信以及利用指纹模块进行指纹识别。这使得我们能够用于一些需要保护安全的场景,如门禁系统、个人身份识别等。 由于ESP32芯片的强大性能和丰富的开发资源,我们可以在开发板上使用Arduino IDE或者其他开发工具来编写程序,并通过Wi-Fi或蓝牙连接到互联网或其他设备。同时,我们可以利用AS608指纹模块提供的接口和库实现指纹的采集、识别和比对功能。这样,我们就可以通过指纹识别来增加系统的安全性。 ESP32 AS608开发板的尺寸较小,方便携带和安装。它还具备低功耗的特点,能够长时间工作,适用于长时间运行的应用场景。另外,开发板上还提供了丰富的GPIO接口,方便我们连接其他外部设备和传感器,实现更多的功能扩展。 总之,ESP32 AS608是一款功能丰富的开发板,集成了ESP32芯片和AS608指纹模块,具备了无线通信和指纹识别功能。它为我们提供了一个强大的硬件平台,可以用于开发各种应用,增加系统的安全性和功能扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来程序猿小吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值