Vous êtes sur la page 1sur 4

# SPDX-FileCopyrightText : 2021 ladyada pour Adafruit Industries

# SPDX-License-Identifier : MIT

import time
import board
import busio
from digitalio import DigitalInOut, Direction
import adafruit_fingerprint

led = DigitalInOut(board.D13)
led.direction = Direction.SORTIE

uart = busio.UART(board.TX, board.RX, baudrate = 57600 )

# En cas d'utilisation avec un ordinateur tel que Linux/RaspberryPi, Mac, Windows


avec convertisseur USB/série :
# import serial
# uart = serial.Serial("/dev/ttyUSB0", baudrate=57600, timeout=1)

# Si vous utilisez Linux/Raspberry Pi et UART matériel :


# import serial
# uart = serial.Serial("/dev/ttyS0", baudrate=57600, timeout=1)

doigt = adafruit_fingerprint.Adafruit_Fingerprint(uart)

#####################################################

def get_fingerprint ():


"""Obtenez une image d'empreinte digitale, modèlez-la et voyez si elle
correspond!"""
print ( "En attente de l'image..." )
while finger.get_image() != adafruit_fingerprint.OK:
pass
print ( "Templating..." )
if finger.image_2_tz( 1 ) != adafruit_fingerprint.OK:
return False
print ( "Searching..." )
if finger.finger_search() != adafruit_fingerprint.OK:
return False
return True

# pylint: disable=too-many-branches
def get_fingerprint_detail ():
""" Obtenez une image d'empreinte digitale, modèlez-la et voyez si elle
correspond !
Cette fois, imprimez chaque erreur au lieu de simplement renvoyer en cas
d'échec"""
print ( "Getting image..." , end= "" , flush= True )
i = doigt.get_image()
if i == adafruit_fingerprint.OK:
print ( "Image prise" )
else :
if i == adafruit_fingerprint.NOFINGER:
print ( "Aucun doigt détecté" )
elif i == adafruit_fingerprint.IMAGEFAIL:
print ( "Imaging error" )
else :
print ( "Autre erreur" )
return False

print ( "Templissage..." , end= "" , flush= True )


i = finger.image_2_tz( 1 )
if i == adafruit_fingerprint.OK:
print ( "Templated" )
else :
if i == adafruit_fingerprint.IMAGEMESS:
print ( "Image too désordre" )
elif i == adafruit_fingerprint.FEATUREFAIL:
print ( "Impossible d'identifier les caractéristiques" )
elif i == adafruit_fingerprint.INVALIDIMAGE:
print ( "Image invalide" )
else :
print ("Autre erreur" )
renvoie False

print ( "Recherche..." , end= "" , flush= True )


i = doigt.finger_fast_search()
# pylint: disable=no-else-return
# Ce bloc doit être refactorisé lorsqu'il peut être testé.
if i == adafruit_fingerprint.OK:
print ( " empreinte digitale trouvée!" )
return True
else :
if i == adafruit_fingerprint.NOTFOUND:
print ( " Aucune correspondance trouvée " )
else :
print ( " Other error " )
return False

# pylint: disable=too-many-statements
def enroll_finger ( location ):
"""Prenez une image à 2 doigts et modèlez-la, puis stockez-la dans
'location'"""
pour fingerimg dans la plage ( 1 , 3 ):
if fingerimg = = 1 :
print ( "Placer le doigt sur le capteur..." , end= "" , flush= True )
else :
print ( "Placer à nouveau le même doigt..." , end= "" ,flush= True )

tandis que True :


i = doigt.get_image()
if i == adafruit_fingerprint.OK:
print ( "Image prise" )
break
if i == adafruit_fingerprint.NOFINGER:
print ( "." , end= "" , flush= True )
elif i == adafruit_fingerprint.IMAGEFAIL:
print ( " Erreur d'imagerie" )
return False
else :
print ( "Autre erreur" )
return False

print ( "Templissage..." , end= "" , flush= True )


i = doigt.image_2_tz(fingerimg)
if i == adafruit_fingerprint.OK:
print ( "Modèle" )
else :
if i == adafruit_fingerprint.IMAGEMESS:
print ( " Image trop désordonnée " )
elif i == adafruit_fingerprint.FEATUREFAIL:
print ( " Impossible d'identifier les caractéristiques " )
elif i == adafruit_fingerprint.INVALIDIMAGE:
print ( "Image invalide" )
else :
print ( "Autre erreur")
retourner Faux

if fingerimg == 1 :
print ( "Supprimer le doigt" )
time.sleep( 1 )
tandis que i != adafruit_fingerprint.NOFINGER :
i = doigt.get_image()

print ( "Création du modèle..." , end= "" , flush= True )


i = finger.create_model()
if i == adafruit_fingerprint.OK:
print ( "Créé" )
else :
if i == adafruit_fingerprint.ENROLLMISMATCH:
print ( "Les impressions ne correspondent pas" )
else :
print ( "Autre erreur" )
return False

print ( "Stockage du modèle #%d..." % location, end= "" , flush= True )


i = finger.store_model(emplacement)
if i == adafruit_fingerprint.OK:
print ( "Stocké" )
else :
if i == adafruit_fingerprint.BADLOCATION:
print ( "Mauvais emplacement de stockage" )
elif i == adafruit_fingerprint.FLASHERR:
print ( "Erreur de stockage Flash" )
else :
print ( "Autre erreur" )
return False

retourner vrai

#####################################################

def get_num ():


"""Utilisez input() pour obtenir un nombre valide de 1 à 127. Réessayez
jusqu'au succès!"""
i = 0
while (i > 127 ) ou (i < 1 ):
try :
i = int ( input ( "Enter ID # from 1-127: " ))
sauf ValueError:
pass
return i
while True :
print ( "----------------" )
if finger.read_templates() != adafruit_fingerprint.OK:
raise RuntimeError( "Impossible de lire les modèles" )
print ( "Fingerprint templates:" , finger.templates)
print ( "e) s'inscrire print" )
print ( "f) find print" )
print ( "d) delete print" )
print ( "------------ ----" )
c = entrée ( " > " )

si c == "e" :
enroll_finger(get_num())
if c == "f" :
if get_fingerprint():
print ( "Detected #" , finger.finger_id, "with confidence" ,
finger.confidence)
else :
print ( "Finger not found" )
if c == "d" :
if finger.delete_model(get_num()) == adafruit_fingerprint.OK:
print ( "Supprimé !" )
else :
print ( "Impossible de supprimer" )

Vous aimerez peut-être aussi