- Componentes utilizados:
- Conexión del teclado 4x4 con Raspberry Pi mediante multiplexación:
- Descripción del circuito:
- Explicación de trabajo:
- Explicación de programación:
La seguridad es una preocupación importante en nuestro día a día, y las cerraduras digitales se han convertido en una parte importante de estos sistemas de seguridad. Hay muchos tipos de tecnologías disponibles para asegurar nuestro lugar, como sistemas de seguridad basados en PIR, sistemas de seguridad basados en RFID, alarmas de seguridad láser, sistemas de biomatriz, etc.
Anteriormente hemos construido un candado digital con contraseña usando Arduino y usando 8051, aquí vamos a construir este candado digital usando Raspberry Pi con contraseña definida por el usuario. Una vez que se establece la contraseña, el usuario solo puede acceder a la puerta con la contraseña correcta.
Si no está familiarizado con Raspberry Pi, hemos creado una serie de tutoriales para aprender Raspberry Pi, con interfaz con todos los componentes básicos y algunos proyectos simples para comenzar, verifique.
Componentes utilizados:
- Raspberry Pi (con tarjeta SD iniciada)
- Módulo de teclado
- Zumbador
- LCD de 16x2
- Bote de 10k
- Paquete de resistencias de 10k (pull-up)
- LED
- Resistencia de 1k
- Tabla de pan
- Carro de CD / DVD como puerta
- Potencia 5 voltios
- Controlador de motor L293D
- Batería de 12 voltios
- Cables de conexión
Conexión del teclado 4x4 con Raspberry Pi mediante multiplexación:
En este circuito, hemos utilizado la técnica de multiplexación para conectar el teclado para ingresar la contraseña en el sistema. Aquí estamos usando un teclado multiplex 4x4 con 16 teclas. Normalmente, si queremos usar 16 teclas, necesitamos 16 pines para la conexión a Arduino, pero en la técnica de multiplexación solo necesitamos 8 pines para interconectar 16 teclas. Para que sea una forma inteligente de interconectar un módulo de teclado. Obtenga más información sobre la técnica de multiplexación y su funcionamiento en esta cerradura digital con 8051.
La técnica de multiplexación es una forma muy eficiente de reducir la cantidad de pines utilizados con el microcontrolador para proporcionar entrada o contraseña o números. Básicamente, esta técnica se utiliza de dos maneras: una es el escaneo de filas y la otra es el escaneo de columnas. Si usamos la biblioteca de teclado (#include
Pero aquí, en este proyecto, hemos implementado una forma corta de codificación para el mismo teclado, sin usar la biblioteca de teclados. Véalo en la sección de programación a continuación.
Descripción del circuito:
El circuito de esta cerradura de puerta digital Raspberry Pi es muy simple y contiene Raspberry Pi 3, módulo de teclado, zumbador, carro de DVD / CD como puerta y LCD. Aquí Raspberry Pi controla el proceso completo, como tomar el módulo de teclado del formulario de contraseña, comparar contraseñas, activar el timbre, abrir / cerrar la puerta y enviar el estado a la pantalla LCD. El teclado se usa para ingresar la contraseña. El zumbador se utiliza para las indicaciones y es impulsado por un transistor NPN incorporado. La pantalla LCD se utiliza para mostrar el estado o los mensajes en ella.
Los pines de columna del módulo de teclado están conectados directamente al pin 22, 23, 24, 25 de GPIO y los pines de fila están conectados a 21, 14, 13, 12 de los pines wringPi de Raspberry Pi. Una pantalla LCD de 16x2 está conectada con raspberry Pi en modo de 4 bits. Los pines de control RS, RW y En de la pantalla LCD están conectados directamente a los pines GPIO 11, GND y 10. Los pines de datos D4-D7 están conectados a los pines GPIO 6, 15, 4 y 1. Un zumbador está conectado al GPIO pin 8. Y el controlador del motor L293D está conectado en GPIO pin 28 y 29 de Raspberry Pi. Una batería de 12 voltios está conectada en el pin 8 de L293D con respecto a tierra.
Explicación de trabajo:
El trabajo de este proyecto es simple. Cuando el usuario ejecuta el código en Raspberry Pi, la pantalla LCD muestra un mensaje de bienvenida y después muestra “A- Ingresar contraseña” y en la segunda línea B- Cambiar contraseña ”. Ahora el usuario puede seleccionar su elección presionando A y B en el teclado.
Ahora, si el usuario desea abrir la puerta, debe presionar 'A' en el teclado y luego el sistema le pedirá la contraseña. La contraseña predeterminada es "1234". Ahora el usuario debe ingresar la contraseña y luego este sistema verificará la contraseña, ya sea válida o no:
1. Si el usuario ingresa la contraseña correcta, el sistema abrirá la puerta.
2. Si el usuario ingresa una contraseña incorrecta, el sistema enviará un comando al timbre para que emita un pitido y mostrará "Acceso denegado" en la pantalla LCD.
Ahora suponga que el usuario quiere cambiar la contraseña, luego necesita presionar 'B' en el teclado y luego se le pedirá al usuario “Contraseña actual” o “Contraseña actual”. Ahora el usuario debe ingresar la contraseña actual, luego el sistema verifica su corrección y realiza una de las tareas asignadas.
1. Si el usuario ingresa la contraseña correcta, el sistema le pedirá una “Nueva contraseña” y ahora el usuario puede cambiar la contraseña ingresando una nueva contraseña.
2. Y si el usuario ingresa la contraseña incorrecta, el sistema activará el timbre y mostrará “Contraseña incorrecta: en la pantalla LCD.
Ahora el usuario debe repetir todo el proceso nuevamente para cambiar la contraseña.
Básicamente, abrir y cerrar la puerta no es más que girar un motor en sentido horario y antihorario para abrir y cerrar la puerta. Para un proyecto pequeño, simplemente puede agregar un motor de CC para abrir y cerrar la puerta. También podemos usar Servo o motor paso a paso, pero necesitamos cambiar el Código en consecuencia.
Además, puede utilizar una cerradura de puerta electrónica adecuada (fácilmente disponible en línea) en lugar del carro de CD. Tiene un electroimán que mantiene la puerta bloqueada cuando no pasa corriente a través de la cerradura (circuito abierto), y cuando pasa algo de corriente a través de ella, la cerradura se desbloquea y la puerta se puede abrir. El código se cambiará en consecuencia, también verifique esta revisión del proyecto compartido: Arduino RFID Door Lock
Explicación de programación:
La programación es muy similar a Arduino. La función Arduino usa clases pero aquí hemos hecho este código, usando programación c, sin clases. También hemos instalado una biblioteca wirePi para GPIO.
Ahora, en primer lugar, debemos incluir las bibliotecas necesarias y luego definir los pines para LCD, zumbador, LED y motor.
#incluir
Después, defina los pines para las filas y columnas del teclado y defina la matriz para almacenar la contraseña y los números del teclado.
pase char; char pass1 = {'1', '2', '3', '4'}; int n = 0; fila de caracteres = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Después de eso, hemos escrito algunas funciones para manejar la pantalla LCD:
La función void lcdcmd se usa para enviar comandos a la pantalla LCD y la función de escritura nula se usa para enviar datos a la pantalla LCD.
La función void print se utiliza para enviar cadenas a la pantalla LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
La función void setCursor se utiliza para configurar la posición del cursor en la pantalla LCD.
void setCursor (int x, int y) {int set = 0; si (y == 0) conjunto = 128 + x; si (y == 1) conjunto = 192 + x; lcdcmd (conjunto); }
La función void clear () se usa para borrar la pantalla LCD y void zumber () se usa para hacer sonar el timbre.
Las funciones void gate_open (), void gate_stop () y void gate_close () se utilizan para conducir la puerta (CD Trolley)
void gate_open () {digitalWrite (m1, LOW); escritura digital (m2, ALTA); retraso (2000); } void gate_stop () {digitalWrite (m1, LOW); escritura digital (m2, BAJA); retraso (2000); } void gate_close () {digitalWrite (m1, HIGH); escritura digital (m2, BAJA); retraso (2000); }
La función dada se utiliza para inicializar la pantalla LCD en modo de 4 bits.
inicio vacío (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
La función de teclado void dada () se usa para interconectar el módulo de teclado con Raspberry Pi con un 'método corto'.
anular el teclado () {int i, j; int x = 0, k = 0; retraso (2000); while (k <4) {para (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (fila) == 0) {setCursor (x, 1);…………………
Verifique todas las funciones en el código completo a continuación, el código es fácil y se explica por sí mismo.