微雪(waveshare)指纹传感器

由于该指纹传感器需要串口通讯,目前而言并不太适合在基于ESP8266的NodeMCU上使用,因为ESP8266除了USB连接的UART0口,只提供了一个供TX的UART1口,并没有RX口。故而其实现很复杂。如确实想在8266版本的NodeMCU上使用,请查看源码自行修改。

将指纹传感器的电源线接好,将RX端接到SD3(GPIO10),将TX端接到SD2(GPIO9)。

声明对象:

f = FINGER()

如需设定超时,用如下方式声明:

f = FINGER(timeout=10)  # 将FINGER换成ZHIWEN也同效果

指纹录入:

f.add()  # 运行后会要求连续按压3次指纹,返回True代表录入成功,False代表录入失败,可能是指纹上有异物,重试即可

已保存的指纹数量:

count = f.count()  # 已保存的指纹数量赋值给count变量

删除所有保存的指纹:

f.delete()

匹配指纹:

f.match_finger()  # 如果当前指纹和已保存的指纹有相符的,会返回保存指纹的ID(ID必定>0),否则返回0或False

由于指纹匹配时,处于阻塞状态,无法进行任何其它操作,故而可以人工异步匹配:

import time

f = FINGER()
f.ready()  # 指纹模块进入识别状态
while True:
    result = f.match()
    if result == 0:
        print('Finger Error!')  # 匹配错误,指纹不是已录入指纹
        f.ready()  # 重新进入识别状态进行比对
    if result is None:
        print('Waiting for Finger!')  # 指纹还处于识别状态,还没有手指放上去让识别
    if result:
        print('Right!')
    time.sleep(0.1)