- Componentes necessários:
- Diagrama de circuito e explicação:
- Instalando a biblioteca para sensor de impressão digital:
- Operação do sensor de impressão digital com Raspberry Pi:
- Programação Python:
O sensor de impressão digital, que víamos em filmes de ficção científica alguns anos atrás, agora se tornou muito comum para verificar a identidade de uma pessoa para diversos fins. No presente, podemos ver sistemas baseados em impressão digital em toda a nossa vida diária, como atendimento em escritórios, verificação de funcionários em bancos, retirada de dinheiro ou depósitos em caixas eletrônicos, verificação de identidade em escritórios do governo, etc. Já fizemos a interface com o Arduino, hoje vamos fazer a interface do sensor de impressão digital com o Raspberry Pi. Usando este sistema de impressão digital Raspberry Pi, podemos registrar novas impressões digitais no sistema e excluir as impressões digitais já alimentadas. O funcionamento completo do sistema foi mostrado no Vídeo fornecido no final do artigo.
Componentes necessários:
- Raspberry Pi
- Conversor USB para serial
- Módulo de impressão digital
- Apertar botões
- LCD 16x2
- Pote de 10k
- Bread Board ou PCB (pedido da JLCPCB)
- Fios de ligação
- LED (opcional)
- Resistor 150 ohm -1 k ohm (opcional)
Diagrama de circuito e explicação:
Neste projeto de interface do sensor de impressão digital Raspberry Pi, usamos 4 botões: um para registrar a nova impressão digital, um para excluir as impressões digitais já alimentadas e os restantes dois para aumentar / diminuir a posição das impressões digitais já alimentadas. Um LED é usado para indicar que o sensor de impressão digital está pronto para receber o dedo para correspondência. Aqui, usamos um módulo de impressão digital que funciona no UART. Aqui, conectamos este módulo de impressão digital ao Raspberry Pi usando um conversor de USB para serial.
Portanto, em primeiro lugar, precisamos fazer todas as conexões necessárias conforme mostrado no Diagrama de Circuito abaixo. As conexões são simples, acabamos de conectar o módulo de impressão digital à porta USB do Raspberry Pi usando o conversor USB para serial. Um LCD 16x2 é usado para exibir todas as mensagens. Um potenciômetro de 10k também é usado com LCD para controlar o contraste do mesmo. 16x2 LCD pinos RS, EN, d4, d5, d6 e d7 são conectados com GPIO Pin 18, 23, 24, 25, 8 e 7 de Raspberry Pi respectivamente. Quatro botões estão conectados ao GPIO Pin 5, 6, 13 e 19 do Raspberry Pi. O LED também está conectado no pino 26 do RPI.
Instalando a biblioteca para sensor de impressão digital:
Depois de fazer todas as conexões, precisamos ligar o Raspberry Pi e deixá-lo pronto com o terminal aberto. Agora precisamos instalar a biblioteca de impressão digital para Raspberry Pi na linguagem python, seguindo as etapas abaixo.
Etapa 1: Para instalar esta biblioteca, são necessários privilégios de root. Então, primeiro entramos no root por meio de um comando:
sudo bash
Passo 2: Em seguida, baixar alguns pacotes necessários usando comandos dados:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - apt-key add - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / etc / apt / sources.list.d /
Etapa 3: depois disso, precisamos atualizar o Raspberry pi e instalar a biblioteca baixada do sensor de impressão digital:
sudo apt-get update sudo apt-get install python-fingerprint - sim
Etapa 4: depois de instalar a biblioteca agora, precisamos verificar a porta USB na qual o sensor de impressão digital está conectado, usando o comando fornecido:
ls / dev / ttyUSB *
Agora substitua a porta USB nº, pela porta USB que você obteve na tela e substitua-a no código python. O código Python completo é fornecido no final deste projeto.
Operação do sensor de impressão digital com Raspberry Pi:
A operação deste projeto é simples, basta executar o código python e haverá algumas mensagens de introdução no LCD e, em seguida, o usuário será solicitado a colocar o dedo no sensor de impressão digital. Agora, colocando um dedo sobre o módulo de impressão digital, podemos verificar se nossas impressões digitais já estão armazenadas ou não. Se a sua impressão digital for armazenada, o LCD mostrará a mensagem com a posição de armazenamento da impressão digital como ' Fonte na posição 2', caso contrário, mostrará 'Nenhuma correspondência encontrada' .
Agora, para registrar uma impressão digital , o usuário precisa pressionar o botão de registro e seguir as mensagens de instruções na tela LCD.
Se o usuário deseja excluir qualquer uma das impressões digitais, ele precisa pressionar o botão Excluir. Depois disso, o LCD pedirá a posição da impressão digital que deve ser excluída. Agora, usando mais dois botões de pressão para aumentar e diminuir, o usuário pode selecionar a posição da impressão digital salva e pressionar o botão de registro (neste momento, o botão de registro se comporta como o botão OK) para excluir essa impressão digital. Para mais compreensão, dê uma olhada no vídeo fornecido no final do projeto.
Programação Python:
Python para interface do sensor de impressão digital com RPi é fácil com o uso de funções de biblioteca de impressão digital. Mas se o usuário quiser fazer a interface sozinho, será um pouco difícil pela primeira vez. Nas fichas técnicas do sensor de impressão digital, tudo o que é necessário para fazer a interface do mesmo módulo é fornecido. Um código GitHub está disponível para testar seu Raspberry pi com sensor de impressão digital.
Aqui, usamos a biblioteca, então só precisamos chamar a função da biblioteca. No código, primeiro precisamos importar bibliotecas como impressão digital, GPIO e tempo, depois precisamos definir pinos para LCD, LED e botões.
importar tempo de pyfingerprint.pyfingerprint importar PyFingerprint importar RPi.GPIO como gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 matricular = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1 LOW = 0
Depois disso, precisamos inicializar e dar direção aos pinos selecionados
gpio.setwarnings (False) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (matricular, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (delet, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (inc, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (dec, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (led, gpio.OUT)
Agora, inicializamos o sensor de impressão digital
try: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): raise ValueError ('A senha do sensor de impressão digital fornecida está errada!') exceto Exceção como e: imprimir ('Mensagem de exceção:' + str (e)) sair (1)
Escrevemos algumas funções para inicializar e conduzir o LCD, verifique o código completo abaixo na seção de código:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Depois de escrever todas as funções do driver LCD, colocamos funções para registro, pesquisa e exclusão de impressões digitais.
A função def registerFinger () é usada para registrar ou salvar as novas impressões digitais.
A função def searchFinger () é usada para pesquisar as impressões digitais já armazenadas
def deleteFinger () functinos é usada para destinar a impressão digital já salva pressionando o botão correspondente.
Todos os códigos das funções acima são fornecidos em código python abaixo.
Depois disso, finalmente, precisamos inicializar o sistema por in while 1 loop, pedindo para colocar o dedo no sensor de impressão digital e então o sistema irá verificar se esta impressão digital é válida ou não e exibir os resultados de acordo.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint ("Congratula-se com você") time.sleep (3) flag = 0 lcdclear () while 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("Coloque o dedo") se gpio.input (matricular) == 0: gpio.output (led, LOW) registerFinger () elif gpio.input (delet) == 0: gpio.output (led, LOW) enquanto gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
O código Python completo e um vídeo de trabalho são fornecidos abaixo.