Sistemas de Alarmas con Arduino

Descripcion del Problema

Durante mucho tiempo la seguridad a sido un tema importante, debido a la existencia de muchos asaltos o robos a casas, se han desarrollado muchas medidas de seguridad a lo largo de la historia pero nunca se a logrado una seguridad completa o un monitoreo fácil de implementar.

Se propone crear un programa escrito en JAVA que mediante una interfaz gráfica se logre la interacción con un Arduino, de forma tal que se pueda implementar un monitoreo con diferentes tipos de alarmas las cuales estarán conectadas al Arduino.


Casos de Uso

Caso numero 1

Nombre: Recepción de Código de Protocolo Alarma

Propósito: Actualizar valores de lectura de sensores y activar alarma si corresponde

Actores: Sistema Arduino con sensores equipados

Pre-Condiciones: Conexión correctamente realizada mediante puerto serial

Evento: Se envía un código protocolizado que efectivamente pasa por el canal generado por el puerto serial, el programa lo toma y lo procesa

Post-Condiciones: Valores actualizados de los sensores se muestran al supervisor

Tipo: Automático

Curso normal de eventos:

ActorSistema
1) Lectura de Sensores
2) Envío de Protocolo
3) Lectura de Protocolo
4) Clasificacion
5) Interpreteación de valor recibido
6) Actualización de valores
7) Muestra valor gráficamente
8) Se activa alarma correspondiente
9) Se envia una notificación por Email

Curso alternativo de eventos:

2A1. Envió de protocolo por puerto serial sin conexión o erróneo. Error de configuración por lo que el programa no puede responder a este.

4A2. Tipo de Alarma recibido desconocido, sistema de alarma avisa al usuario de esto:“Alarm type unknown, please check protocol configuration in Arduino Board”.

Caso numero 2

Nombre: Configuración de Preferencias

Propósito: Cambiar preferencias del sistema de alarma

Actores: Usuario del sistema

Pre-Condiciones: Programa se ejecuta correctamente

Evento: El usuario ingresa parámetros de configuración, como umbrales para los sensores, mail de recepción de aviso de alarma y habilitación de alarma sonora

Post-Condiciones: La configuración seteada es aceptada por el programa

Tipo: Manual

Curso normal de eventos:

ActorSistema
1) Usuario Accede a Ventana de Configuración
2) Abre ventana de preferencia
3) Ingreso de Preferencias
4) Se presiona el botón OK
5) Actualización de Preferencias
6) Continua el programa

Curso alternativo de eventos:

3A1. Ingreso erróneo de preferencias.

Caso numero 3

Nombre: Testeo de Conexión Serial

Propósito: Probar que la conexión serial es correcta y está en funcionamiento

Actores: Usuario del sistema

Pre-Condiciones: Programa se ejecuta correctamente

Evento: El usuario ingresa a la opción SerialTest, en esta debe oprimir el botón de Conectar.

Post-Condiciones: Si la conexión es correcta, se debe mostrar en la ventana la recepción de información por el puerto serial desde la arduino

Tipo: Manual

Curso normal de eventos:

ActorSistema
1) Usuario accede a ventana de SerialTest
2) Abre ventana de SerialTest
3) Se presiona botón para conectar
4) Se conecta con el puerto serial
5) Lee valores en puerto serial
6) Muestra por pantalla la lectura
7) Se presiona botón para desconectar
8) Se termina la conexión serial

Curso alternativo de eventos:

3A1.No existe el puerto indicado por código. Se envía un error por consola indicando la falta de este.

3A2.El puerto indicado ya está siendo usado. Se envía un error por consola indicando el uso de este.

Caso numero 4

Nombre: Activación del sistema de alarma

Propósito: Activar el sistema, eligiendo el tipo de sensor que se quiere leer

Actores: Usuario del sistema

Pre-Condiciones: Programa se ejecuta correctamente y existe conexión serial correcta

Evento: El usuario presiona el botón de activación de la alarma y los botones de cada sensor

Post-Condiciones: Si la conexión es correcta, se debe mostrar en pantalla los valores de lectura de los sensores y si estos sobrepasan el umbral se activa la alarma

Tipo: Manual

Curso normal de eventos:

ActorSistema
1) Usuario activa la alarma
2) Se presiona botón para conectar
3) Abre ventana de SerialTest
4) Compara valores de sensores con umbral de aquellos que están activos
5) Muestra valores actuales de los sensores

Curso alternativo de eventos:

1A1. No existe conexión serial habilitada, se envía error por consola

2A1 Continua la ejecución del programa omitiendo el último cambio.

4A2. Valor actual supera el umbral del sensor.

5A2. Muestra valores actuales y luces de aviso necesarias.

6A2. Envía notificación de activación por mail correspondiente


Arquitectura de la solución

Diagrama de clases simplificado:

Diagrama de Clases UML detallado

Implementación de la solución

Imágenes:


Pruebas

Video de prueba:


Posibles Mejoras

Posibles mejoras serian las siguientes:

  1. Automatizar o elegir de forma manual la configuración del puerto serial ya que en este momento se hace mediante codigo
  2. Ser multiplataformas, problemas de configuración en MAC/Linux
  3. Ser implementado en internet para acceder en diferentes dispositivos y de manera remota
  4. Agregar analisis estadistico de las muestras
  5. Modularizar el Sistema y hacerlo expandible