Cómo conectar y codificar un sensor de huellas dactilares a una Raspberry Pi

Tenía un proyecto universitario para implementar tecnología de sensores de huellas digitales para calcular la asistencia. Entonces nuestro equipo comenzó con Raspberry Pi y esto es lo que habíamos hecho.

En primer lugar, necesita una biblioteca para ejecutar su sensor de huellas digitales. Encontré uno aquí: https: //github.com/bastianraschk…

Siga las instrucciones para instalar la biblioteca en su pi. Luego conecte su escáner de huellas digitales a la frambuesa usando los puertos GPIO. Puede encontrar qué puertos corresponden a qué en el manual del sensor de huellas digitales.

Utilizamos el puerto serie disponible en Raspberry con un RS232 / TTL y un ADAPTADOR DE SERIE USB De forma predeterminada, el puerto serie de la Raspberry Pi está configurado para usarse para la entrada / salida de la consola. Esto puede ayudar a solucionar problemas durante el arranque o para iniciar sesión en Pi si el video y la red no están disponibles.

Para poder utilizar el puerto serie para conectarse y comunicarse con otros dispositivos (por ejemplo, un módem, una impresora …), el inicio de sesión de la consola del puerto serie debe estar desactivado.

Aquí usamos Raspberry Pi 2, y conectamos un adaptador RS232 / TTL 3-5,5V a los pines 4 (5V), 6 (GND), 8 (TX), 10 (RX) de Raspberry, obviamente conectamos tx con rx y viceversa.

Para buscar los puertos seriales disponibles, usamos el comando

dmesg | grep tty

La salida es algo como esto

[correo electrónico protegido] ~ $ dmesg | grep tty
[0.000000] Línea de comando del kernel: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa01041 bcm2709.serial = 0x93f9c7f9 smsc95xx.macaddr: B2: F2: f2: f2: f2: f2f2: ffff: Bf2 = 1 bcm2709.disk “. elevador ext4 = espera raíz
[0.001774] consola [tty1] habilitada
[0.749509] dev: f1: ttyAMA0 en MMIO 0x3f201000 (irq = 83, base_baud = 0) es un PL011 rev3
[1.268971] consola [ttyAMA0] habilitada
[correo electrónico protegido] ~ $

La última línea indica que la consola está habilitada en el puerto serie ttyAMA0, por lo que la deshabilitamos

Ejecute el comando de configuración y siga las instrucciones a continuación.

sudo raspi-config

Reinicia y prueba con

dmesg | grep tty

salida ahora es

[correo electrónico protegido] ~ $ dmesg | grep tty
[0.000000] Línea de comando del kernel: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa01041 bcm2709.serial = 0x93f9c7f9 smsc95xx.macaddr: B2: F2: f2: f2: f2: f2f2: ffff: Bf2 = 1 bcm2709.disk_led_gpio = 47 bcm2709.disk_led_active_low = 0 sdhci-bcm2708.emmc_clock_freq = 250000000 vc_mem.mem_base = 0x3dc00000 vc_mem.mem_size = 0x3f00.fq_fq.tf = 0fc.fcfc.f = 2.
[0.001769] consola [tty1] habilitada
[0.749438] dev: f1: ttyAMA0 en MMIO 0x3f201000 (irq = 83, base_baud = 0) es un PL011 rev3
[correo electrónico protegido] ~ $

Ahora podemos usar la serie ttyAMA0. Conectamos un adaptador usb / serial, luego intentaremos establecer una comunicación entre los dos puertos seriales; obviamente, en una aplicación práctica para cada serie, podríamos conectar un dispositivo, por ejemplo, un módem, una impresora, un lector RFID, etc.

Después de conectar el segundo puerto serie, iniciamos el comando para encontrar el nombre que le da Raspberry

dmesg | grep tty

La salida es algo como esto

[correo electrónico protegido] ~ $ dmesg | grep tty
[0.000000] Línea de comando del kernel: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa01041 bcm2709.serial = 0x93f9c7f9 smsc95xx.macaddr: B2: F2: f2: f2: f2: f2f2: ffff: Bf2 = 1 bcm2709.disk_led_gpio = 47 bcm2709.disk_led_active_low = 0 sdhci-bcm2708.emmc_clock_freq = 250000000 vc_mem.mem_base = 0x3dc00000 vc_mem.mem_size = 0x3f00.fq_fq.tf = 0fc.fcfc.f = 2.
[0.001769] consola [tty1] habilitada
[0.749438] dev: f1: ttyAMA0 en MMIO 0x3f201000 (irq = 83, base_baud = 0) es un PL011 rev3
[971.919417] usb 1-1.2: convertidor pl2303 ahora conectado a ttyUSB0
[correo electrónico protegido] ~ $

Ok, ahora creamos dos archivos, uno que escribe algo en el puerto ttyAMA0 y el otro que lee en el puerto ttyUSB0.

serial_write.py

#! / usr / bin / env python

tiempo de importación
importar en serie

ser = serial.Serial (

puerto = ‘/ dev / ttyAMA0’,
velocidad de transmisión = 9600,
paridad = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
tiempo de espera = 1
)
contador = 0

mientras que 1:
ser.write (‘Escribir contador:% d \ n’% (contador))
time.sleep (1)
contador + = 1

serial_read.py

#! / usr / bin / env python

tiempo de importación
importar en serie

ser = serial.Serial (

puerto = ‘/ dev / ttyUSB0’,
velocidad de transmisión = 9600,
paridad = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
tiempo de espera = 1
)
contador = 0

mientras que 1:
x = ser.readline ()
imprimir x

Si ejecutamos ambos archivos, serial_read.py leerá lo que serial_write.py escribe

Este es solo un pequeño ejemplo, pero puede servir como punto de partida para enviar una impresión a una impresora antigua o leer datos desde un enrutador o un gps.

PD: Cancelamos con Raspberry porque era costoso, así que ahora lo hacemos con NODEMCU.

Espero que debajo del sitio te ayude. Puedes hablar o contactar con los chicos del taller de ingenieros, ya que algunos de ellos han trabajado en proyectos similares en los que estás involucrado.

Comunicación con el módulo lector de huellas digitales R303A

BUENA SUERTE !