1. Objetivo
Implementar un sistema de seguridad que permita abrir una puerta únicamente tras ingresar un código de acceso correcto, utilizando indicaciones visuales para notificar al usuario si la contraseña es válida o incorrecta.
2. Justificación
Este proyecto es fundamental para el módulo DPIOT, ya que abarca la integración de múltiples tipos de periféricos con un microcontrolador: adquisición de datos mediante una matriz de contactos (teclado), comunicación de datos a través del bus I2C (pantalla) y aislamiento de potencia mediante un actuador electromecánico (relé) para manejar cargas inductivas.
3. Descripción y alcance
El sistema está gobernado por una placa Arduino Uno. El usuario interactúa introduciendo una clave en un teclado de membrana de 4x4. El microcontrolador evalúa la clave y muestra el resultado en una pantalla LCD retroiluminada. Si el código es incorrecto, la pantalla muestra el mensaje "WRONG!". Si es correcto, el Arduino activa un módulo de relé que permite el paso de corriente hacia una cerradura electrónica (solenoide), retrayendo el pasador para abrir la puerta.
Dentro del alcance
- Lectura de entradas desde un teclado matricial de membrana 4x4.
- Visualización de mensajes de estado en una pantalla LCD con módulo I2C.
- Control de potencia de un solenoide de cerradura a través de un módulo relé.
- Sistema de alimentación autónomo mediante un portapilas con dos baterías 18650 y un módulo regulador de tensión.
Fuera del alcance (por ahora)
- Conectividad Wi-Fi o Bluetooth para apertura remota.
- Registro de historial de accesos en memoria SD o base de datos externa.
- Sistemas de biometría o tarjetas RFID.
Simulador interactivo de cerradura
Introduce el código de acceso y comprueba la respuesta de la puerta.
Teclado 4 × 4
PIN DE ACCESO
Puerta y cerradura
RELÉ + CERRADURA ELECTROMAGNÉTICA
4. Requisitos
4.1 Funcionales
- • El sistema debe leer secuencialmente las pulsaciones del teclado matricial.
- • La pantalla LCD debe indicar cuando el código ingresado es erróneo mostrando el mensaje "WRONG!".
- • Al introducir el código correcto, el sistema debe accionar el relé para abrir la cerradura electromagnética durante un tiempo determinado.
- • El sistema debe restablecerse automáticamente tras un intento fallido o exitoso para permitir una nueva lectura.
4.2 No funcionales
-
Alimentación: Autónoma, suministrada por dos baterías de litio tipo 18650 acopladas a un módulo regulador para proveer el voltaje adecuado tanto al Arduino como al solenoide.
-
Lenguaje / IDE: C/C++ a través del IDE de Arduino.
-
Tipo de montaje: Todos los componentes estarán fijados e interconectados mediante cables Dupont sobre una base plana de madera o MDF para su exhibición y prueba.
5. Esquema de bloques
Teclado de membrana 4x4 (envía señales de filas y columnas)
Arduino Uno (evalúa la contraseña y gestiona lógica)
Pantalla LCD I2C y Módulo Relé (controla la Cerradura Solenoide)
Pack 18650 + Regulador DC-DC (alimenta placa y actuador)
6. Flujo de funcionamiento
Inicio
Inicializar pantalla LCD I2C y configurar pines del teclado y del relé. Mostrar mensaje de bienvenida.
Leer
Capturar las teclas presionadas por el usuario hasta alcanzar la longitud de la contraseña.
Decidir (Comparar contraseña)
Volver
Regresar al estado inicial y esperar una nueva entrada.
7. Asignación de pines
| Periférico | Señal | GPIO / PIN | Observaciones |
|---|---|---|---|
| Teclado Membrana 4x4 | Filas (R1-R4) | D9, D8, D7, D6 | Entradas/Salidas matriciales |
| Teclado Membrana 4x4 | Columnas (C1-C4) | D5, D4, D3, D2 | Entradas/Salidas matriciales |
| Módulo Relé | IN | D10 | Salida digital para control de bobina |
| Pantalla LCD | SDA | A4 | Línea de datos del bus I2C |
| Pantalla LCD | SCL | A5 | Línea de reloj del bus I2C |
8. Materiales y presupuesto
8.1 Lista de materiales
- Arduino Uno
- Teclado membrana 4x4
- Pantalla LCD (16x2) + I2C
- Módulo relé 1 canal (5V)
- Cerradura solenoide
- Portapilas + Baterías 18650
- Módulo regulador DC-DC
- Cables Dupont y base
8.2 Presupuesto estimado
| Ud. | Denominación | Precio | Observaciones |
|---|---|---|---|
| 1 | Arduino Uno R3 (Clon) | 8,00 € | Controlador principal |
| 1 | Teclado Membrana 4x4 | 1,50 € | Interfaz de usuario |
| 1 | Pantalla LCD 16x2 + I2C | 4,50 € | Visualización de estado |
| 1 | Cerradura Solenoide | 6,50 € | Actuador electromagnético |
| 1 | Módulo Relé 1 Canal | 1,50 € | Control de potencia |
| 1 | Portapilas + 2x Baterías | 9,00 € | Fuente de energía |
| 1 | Módulo regulador DC-DC | 2,00 € | Estabilizador de tensión |
| Total Estimado | 33,00 € | Con IVA incluido | |
9. Plan de trabajo
| Fase | Tareas | Estimación | Estado |
|---|---|---|---|
| 1. Anteproyecto | Documento, esquema, presupuesto | 1 sesión | En curso |
| 2. Montaje | Fijación en madera y cableado de componentes | 2 sesiones | Pendiente |
| 3. Firmware | Programación del Keypad, I2C y validación | 2 sesiones | Pendiente |
| 4. Pruebas | Verificación de apertura y testeo de tensión | 1 sesión | Pendiente |
| 5. Memoria | Fotos, código, conclusiones | 1 sesión | Pendiente |
10. Criterios de aceptación
- El teclado lee de manera precisa los 16 caracteres sin presentar rebotes (múltiples lecturas de una pulsación).
- La pantalla LCD muestra de forma nítida y sin parpadeos el texto "WRONG!" al introducir un PIN falso.
- El módulo de relé conmuta correctamente separando el circuito de control del de potencia.
- El solenoide tiene la fuerza y la energía suficiente para retraer el pasador por completo, permitiendo abrir la puerta simulada.
11. Riesgos y precauciones
| Riesgo | Impacto | Mitigación |
|---|---|---|
| Picos inductivos del solenoide | Daño permanente al Arduino o reinicios constantes. | Utilizar el módulo de relé para aislar el circuito y añadir un diodo flyback en paralelo. |
| Caída de tensión al activar relé | Apagado de la pantalla LCD o cuelgue del microcontrolador. | Emplear fuente de baterías 18650 con regulador separando líneas lógicas de las de carga. |
| Confusión en el bus I2C | Pantalla LCD no muestra texto o caracteres extraños. | Confirmar dirección I2C (0x27 o 0x3F) mediante escáner y verificar conexiones SDA/SCL. |