Guardián digital para la gestión segura del hogar

Descripción

El proyecto de Sistema de Control de Acceso IoT busca resolver la problemática de seguridad y gestión de accesos en hogares y espacios comerciales, reemplazando las vulnerables y poco prácticas llaves físicas con un sistema seguro y eficiente basado en tarjetas NFC y aplicación javaFX. Este sistema permite una autenticación avanzada, monitoreo en tiempo real, gestión remota de accesos y notificaciones inmediatas, proporcionando una solución moderna que mejora significativamente la seguridad, conveniencia y control sobre quién puede ingresar a las instalaciones, reduciendo riesgos y aumentando la eficiencia en la gestión de accesos.


Análisis

El problema de seguridad en accesos físicos involucra varios actores y elementos:

El sistema interactúa con el medio externo mediante la autenticación de usuarios, la gestión de accesos y la comunicación segura con dispositivos móviles y servidores.

Seguridad de Accesos Físicos:

Conveniencia y Flexibilidad:

Solución:

Implementación de un Sistema de Control de Acceso IoT con OOP:

Uso de Tarjetas NFC y Aplicaciones Móviles:

Diseño Modular y Escalable mediante OOP:

Gestión y Control Remoto:

Integración con IoT:

Pros:

Contras:


Definición de Requerimientos

Casos de Uso

Primer caso de uso: Registrar Usuario

  1. Nombre: Registrar Usuario
  2. Propósito: Permitir al administrador agregar nuevos usuarios al sistema y asignarles permisos de acceso.
  3. Actores: Administrador
  4. Pre-condiciones:
    • El administrador debe estar autenticado en el sistema.
    • El sistema debe estar en funcionamiento.
  5. Evento: El administrador decide agregar un nuevo usuario.
  6. Curso normal de eventos:
    Curso normal de eventos
    Paso Descripción
    1 El administrador selecciona la opción de "Registrar Usuario" en la aplicación.
    2 El sistema muestra un formulario para ingresar los datos del nuevo usuario (nombre, tarjeta NFC, permisos).
    3 El administrador completa y envía el formulario.
    4 El sistema valida los datos ingresados.
    5 El sistema guarda la información del nuevo usuario en la base de datos.
    6 El sistema confirma el registro exitoso del nuevo usuario.
    sequence-diagram
  7. Curso alternativo de eventos:
    Curso alternativo de eventos
    Paso Descripción
    1 Si los datos ingresados no son válidos, el sistema muestra un mensaje de error y solicita correcciones.
    2 Si el sistema no puede guardar la información debido a un problema técnico, se muestra un mensaje de error y se registra el fallo para su revisión.
  8. Requerimientos no funcionales:
    • El formulario debe ser intuitivo y fácil de usar.
    • La validación de datos debe ser rápida (menos de 2 segundos).
    • El sistema debe asegurar la integridad de los datos guardados.

Segundo caso de uso: Autenticación y Acceso

caso de uso
  1. Nombre: Autenticar y Permitir Acceso
  2. Propósito: Verificar la identidad del usuario y permitirle el acceso a las áreas autorizadas.
  3. Actores: Administrador y usuario
  4. Pre-condiciones:
    • El usuario debe tener una tarjeta NFC registrada en el sistema.
    • La cerradura electrónica (luces led para simular la cerradura) y la Raspberry Pi Pico W deben estar operativas.
  5. Evento: El usuario intenta acceder a una área utilizando su tarjeta NFC.
  6. Curso normal de eventos:
    Curso normal de eventos
    Paso Descripción
    1 El usuario presenta su tarjeta NFC al lector.
    2 El sistema lee los datos de la tarjeta NFC.
    3 El sistema verifica la validez de la tarjeta NFC y los permisos del usuario.
    4 Si la verificación es exitosa, el sistema envía una señal para abrir la cerradura electrónica.
    5 El usuario recibe acceso al área autorizada.
    sequence-diagram
  7. Curso alternativo de eventos:
    Curso alternativo de eventos
    Paso Descripción
    1 Si la tarjeta NFC no es válida, el sistema muestra un mensaje de acceso denegado y registra el intento fallido.
    2 Si la comunicación con la cerradura electrónica falla, el sistema notifica al usuario y al administrador del problema.
  8. Requerimientos no funcionales:
    • La verificación de la tarjeta NFC debe ser rápida (menos de 1 segundo).
    • El sistema debe asegurar la privacidad y seguridad de los datos de autenticación.

Tercer caso de uso: Monitoreo en Tiempo Real

  1. Nombre: Monitorear Accesos en Tiempo Real
  2. Propósito: Permitir al administrador monitorear los intentos de acceso en tiempo real y recibir notificaciones de eventos.
  3. Actores: Administrador
  4. Pre-condiciones:
    • El administrador debe estar autenticado en el sistema.
    • El sistema debe estar conectado a internet para enviar y recibir notificaciones.
  5. Evento: Se produce un intento de acceso al sistema.
  6. Curso normal de eventos:
    Curso normal de eventos
    Paso Descripción
    1 Se produce un intento de acceso (exitoso o fallido).
    2 El sistema registra el intento de acceso y su resultado.
    3 El sistema envía una notificación al administrador con los detalles del intento de acceso.
    4 El administrador recibe y revisa la notificación en tiempo real.
    5 El administrador puede tomar acciones si es necesario (por ejemplo, bloquear un usuario).
    sequence-diagram
  7. Curso alternativo de eventos:
    Curso alternativo de eventos
    Paso Descripción
    1 Si el envío de la notificación falla, el sistema intenta reenviar la notificación y registra el fallo.
    2 Si el administrador no puede acceder a la notificación, el sistema guarda los detalles para una revisión posterior.
  8. Requerimientos no funcionales:
    • Las notificaciones deben ser enviadas y recibidas en tiempo real (menos de 1 segundo de retraso).
    • El sistema debe ser capaz de manejar múltiples intentos de acceso simultáneos.
    • La interfaz de notificaciones debe ser clara y accesible desde dispositivos móviles y web.

Diseño

Diagrama de Clases UML

Diagrama de Clases UML

Arquitectura del proyecto

Arquitectura del proyecto

Dificultades

Integración de modulo RFID: Se presento un problema la intentar integrar el modulo RFID con la Raspberry Pi Pico W, no se logró incorporar el modulo RFID al sistema debido a problemas de compatibilidad y falta de tiempo. Por lo que se opto por hacer uso de un emulador de tarjetas NFC para simular el acceso. iterativas.


Código del Proyecto

El proyecto puede ser descargado en el siguiente link

Descargar Home Sentry IoT

Nota: El archivo comprimido incluye el código fuente, makefile, readme y otros archivos necesarios para compilar y ejecutar el proyecto. No incluye códigos fuentes externos ni archivos generados por el IDE. Las dependencias externas y cómo obtenerlas se detallan en el archivo readme.