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 按照通讯协议便可控制模块。

引脚定义

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

模块实物图

正文

所需材料

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

连线说明

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

VI TX RX GND
3.3V 13 12 GND

官方指令文件

模块发出的
搜索  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 48EF 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 1BEF 01 FF FF FF FF 01 00 03 16 00 1AEF 01 FF FF FF FF 01 00 03 1D 00 21EF 01 FF FF FF FF 01 00 04 1F 00 00 24EF 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 0EEF 01 FF FF FF FF 01 00 04 02 01 00 08EF 01 FF FF FF FF 01 00 03 01 00 05EF 01 FF FF FF FF 01 00 03 0A 00 0E录入   EF 01 FF FF FF FF 01 00 04 02 02 00 09EF 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 25EF 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 08EF 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 08EF 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()

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

结尾处将附上源码。

结尾

  • 参考文献:[AS608 — AS608指纹识别关联功能函数 — MicroPython TPYBoard 1.0.1 文档]

  • 源码地址:源码地址

  • 修改好的代码:ESP32开发之旅——AS608指纹识别模块——修改好的懒人包

ESP32开发之旅——AS608指纹识别模块相关推荐

  1. 硬件速攻-AS608指纹识别模块

    简介 AS608指纹识别模块是一种小型化.低功耗.高精度的指纹识别模块.它采用了高速DSP处理器和先进的算法,可以快速.准确地完成指纹图像的采集和识别. 这个指纹识别模块内部集成了指纹传感器.处理器. ...

  2. 【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行

    一.产品简介 ATK-AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块.它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片.该芯片内置DSP运算单 ...

  3. AS608指纹识别模块+STM32实现指纹录入

    视频演示 d9148ed412b24119db81eef6c2c8e9ec 1.特性参数 (资料来自ALIENTEK文档) ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学 ...

  4. AS608指纹识别模块(树莓派)

    0.前言 Github项目地址:AS608 项目实现了官方用户开发手册中所有列出的功能,函数声明在 as608.h中.用户可直接调用相应的函数与AS608模块进行通信. 另外,项目中有一个命令行程序, ...

  5. 基于Arduino开发板的光学指纹识别模块(FPM10A)

    本篇文章主要介绍如何在Arduino开发板上使用指纹传感器模块FPM10A.我们将向您介绍如何注册新的指纹ID,以及如何查找匹配的指纹. 所需的硬件 Arduino UNO开发板 指纹传感器模块 跳线 ...

  6. ATK-AS608 指纹识别模块常见问题和疑问

    最近在做一个项目,要用到AS608指纹识别模块,当软硬件联调的时候,直接就是一个Docking failure,也查了一些资料和例子. 这种情况就是单片机和指纹识别模块的通信出现了问题,而这个问题一般 ...

  7. AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块

    一.注册指纹 /*[Arduino]168种传感器模块系列实验(资料+代码+图形+仿真)实验一百五十:AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块实验之二:输入序号,注册指纹示例安装 ...

  8. ESP32开发之旅——RC522模块的使用

    ESP32开发之旅--RC522模块的使用 前言 在本文中,您将学会如何使用ESP32连接RFID模块RC522,本文提供了简单的示例供学习参考. 需要注意的是,本文中的ESP32是使用Micro P ...

  9. 51驱动AS608光学指纹识别模块 12864显示

    51驱动AS608光学指纹识别模块 12864显示 AS608光学指纹识别模块 模块工作原理 1.指纹特征 2.指纹处理 模块参数 引脚说明 实验程序 硬件设备和接线 程序讲解 按键 主函数 实验步骤 ...

最新文章

  1. 如何从机器学习数据中获取更多收益
  2. android调节声音大小
  3. tyvj1305 最大子序和 【单调队列优化dp】
  4. Redis持久化和备份数据
  5. MATLAB学习笔记(二)
  6. python 回测模块_回测调用研究模块总结(慎用Python3 PacVer 2.0)
  7. 146. LRU 缓存机制
  8. 前端学习(3034):vue+element今日头条管理-markdown补充
  9. 【Python开发】Python 适合大数据量的处理吗?
  10. POJ 1417 True Liars 并查集+背包
  11. np python_python小白之np功能快速查
  12. outlook 表格使用技巧
  13. 开发缺点_利用模板去建设开发企业网站好不好?模板建站的缺点?
  14. 事务超时时间无效_架构设计 | 基于消息中间件,图解柔性事务一致性
  15. SqlServer2012升级到SqlServer2016
  16. 语料库mysql_国内语料库建设一览表
  17. PMP估算方法对比:参数估算、类比估算、自下而上估算、三点估算和粗略量级估算
  18. 关于Latex学习网站推荐
  19. MT4-EA自动化交易研究笔记(2022-05-15)
  20. MySQL高手篇:精妙SQL语句介绍

热门文章

  1. 【2021最新版】Spring Boot面试题总结(92道题含答案解析)
  2. 浪潮服务器主机型号,浪潮英信服务器NF5270M5
  3. 数据结构与算法——31. 图的应用:拓扑排序、强连通分支、最短路径问题、最小生成树
  4. 和ha水解的不同_水解蛋白奶粉有哪些,让超启能恩缓解宝宝的“小敏感”
  5. TCP是什么?为什么要三次握手四次挥手? (本文近9千字,建议收藏)
  6. c语言用单链表实现lru算法,手写单链表实现和LRU算法模拟
  7. 解决身份证挂失的问题
  8. linux通过钩子阻断端口,用钩子钩住你的中断处理函数
  9. 工作流审批业务代码详解(三)
  10. springboot+vue 审批工作流集成flowable(springboot实现工作流)