16
DEPARTAMENTO DE INGENIERÍA E INVESTIGACIONES TECNÓLOGICAS Sistemas Operativos PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves Turno: Noche Alumno DNI Aguirre Luis 31.207.832 Ausfet Javier 30.276.236 Clerici Maximiliano 28.702.212 Mazzini Juan Pablo 28.528.099 Scopigno Danilo 33.778.977

PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

DEPARTAMENTO DE INGENIERÍA E

INVESTIGACIONES TECNÓLOGICAS

Sistemas Operativos

PROYECTO: Alarma Todo Está Bien

1er CUATRIMESTRE - AÑO 2016

Comisión: Lunes y Jueves

Turno: Noche

Alumno DNI

Aguirre Luis 31.207.832

Ausfet Javier 30.276.236

Clerici Maximiliano 28.702.212

Mazzini Juan Pablo 28.528.099

Scopigno Danilo 33.778.977

Page 2: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 2 de 16

Contenido INTRODUCCION ....................................................................................................................................... 3

PLAN DE TRABAJO ................................................................................................................................... 3

1. MATERIALES ................................................................................................................................ 3

2. ELECCIÓN DE LA FORMA DE FUNCIONAMIENTO DEL PROYECTO ............................................... 4

3. PROGRAMACIÓN ......................................................................................................................... 4

4. MONTAJE DE LA MAQUETA ......................................................................................................... 4

5. DIAGRAMA DE CONEXIONES (ARQUITECTURA) .......................................................................... 5

ESTADOS DE LA ALARMA ......................................................................................................................... 5

DIAGRAMA DE ESTADOS ......................................................................................................................... 6

CONFIGURACOIN INICIAL ........................................................................................................................ 6

MANUAL DE USO ..................................................................................................................................... 8

1. Agregar otro “control remoto” ................................................................................................... 9

2. Cambio de contraseña. ................................................................................................................ 9

3. Modo Automático. .................................................................................................................... 10

4. Modo Manual ............................................................................................................................ 10

5. Control de accesorios del automóvil. ........................................................................................ 10

6. Verificación de los sensores. ..................................................................................................... 11

COMPORTAMIENTO DE LA ALARMA ..................................................................................................... 11

ANEXO I ................................................................................................................................................. 13

Descripción de los comandos ............................................................................................................ 13

Page 3: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 3 de 16

INTRODUCCION Se trata de un sistema de alarma para automóviles totalmente automático que es disparado ante la

presencia de ruidos que superen cierto umbral. Un sensor (micrófono) mide el ruido ambiente, y este

envía una señal al sistema, evaluando si se debe disparar la alarma. En ese caso, la alarma se activa

emitiendo un sonido ululante, indicando la activación mediante un led y generando un mensaje en

una pequeña pantalla; además indica el estado de la alarma en el celular acompañado de la vibración

del mismo.

PLAN DE TRABAJO

1. MATERIALES Los materiales fueron entregados íntegramente por la cátedra (solo tuvimos que agregar una

microSD con el sistema operativo y un celular con sensor de temperatura, bluethoot, WIFI y GPS). A

continuación, detallaremos los materiales utilizados.

● Placa Intel Galileo

● MicroSD 16GB clase 10 marca Kingston

● Grove Starter Kit: del kit utilizamos lo siguiente

Shield

Micrófono

Potenciómetro

Led

Page 4: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 4 de 16

Buzzer

Pulsador

LCD – RGB

Celular Samsung S4

2. ELECCIÓN DE LA FORMA DE FUNCIONAMIENTO DEL PROYECTO En principio teníamos pensado realizar una alarma básica, con un pulsador, un buzzer y un

micrófono, pero a medida que fuimos acertando el correcto funcionamiento de los sensores, tuvimos

tiempo para ir adicionando otros a nuestro proyecto. De esta manera logramos realizar la interacción

de todos los sensores y actuadores descriptos en el punto anterior.

3. PROGRAMACIÓN Se ha realizado un programa en C++, el cual es grabado en la MicroSD para que el mismo se ejecute

automáticamente una vez finalizada la carga del SO en la placa Galileo cada vez que la placa se

enciende. Hemos utilizado la biblioteca MRAA y UPM para la administración de los sensores.

Para la interacción de datos con la aplicación final, hemos desarrollado una aplicación “antena” (se

ejecuta en el celular Samsung S4) la cual permite intercambiar datos entre la aplicación final y la

placa mediante protocolo UDP. Para más información sobre el protocolo, se adjunta el ANEXO I

Se utilizó Java como lenguaje de desarrollo para la aplicación final, utilizando el SDK de Android.

4. MONTAJE DE LA MAQUETA

Page 5: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 5 de 16

Para la presentación de la maqueta se ha utilizado cartón corrugado para almacenar la placa (sin

cubrir la superficie de la misma) y para colocar (a modo de centro de mando) los sensores y

actuadores.

Respecto de la conexión de los sensores y los actuadores, es indistinto el pin al cual se conecten

(respetando siempre si el pin es analógico/digital/pwm) dado que el sistema cuenta con un archivo

de configuración en el cual se deben setear los pines que corresponden a cada sensor/actuador. Se

utilizó un puerto analógico para el micrófono, un puerto analógico para el potenciómetro, un puerto

digital para los pulsadores (uno para encender/apagar la alarma y otro para simular la apertura de las

puertas), un puerto digital PWM para el buzzer, un puerto digital PWM para el led, 3 puertos

digitales para leds (A/C, calefacción y encendido del motor) y un puerto I2C para el Display RGB.

5. DIAGRAMA DE CONEXIONES (ARQUITECTURA)

ESTADOS DE LA ALARMA ● ENCENDIDA (la alarma se encuentra encendida esperando la activación)

● APAGADA (la alarma se encuentra apagada)

● ACTIVADA (con la alarma encendida)

o El ruido ambiente superó el umbral seteado desde la aplicación final.

o Se activó voluntariamente mediante el botón de pánico.

o Se abrió una de las puertas del automóvil.

Al ejecutar el programa por primera vez, la alarma pasa al estado ENCENDIDA automáticamente.

Page 6: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 6 de 16

DIAGRAMA DE ESTADOS

CONFIGURACOIN INICIAL Se debe instalar la aplicación en el celular “antena” (celular que está conectado a la placa y presta

servicios de los sensores). Se debe setear la IP de la placa y el puerto de comunicación.

Al instalar la aplicación final en el “control remoto” (a partir de ahora lo llamaremos control remoto

al celular que tiene instalada la aplicación final), cada vez que se lance la aplicación,

automáticamente se forzara la activación del Bluetooth en el mismo.

Page 7: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 7 de 16

Desde el “control remoto”, debemos ingresar al menú “Ajustes Auto” para configurar la IP de la

placa.

El siguiente paso inmediato, será, ingresando al menú “Contraseña”, cargar la contraseña a utilizar

en el campo “Contraseña Actual”. Para completar este proceso se debe “Enviar Contraseña”.

Page 8: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 8 de 16

MANUAL DE USO Este es el momento indicado para ajustar la intensidad del led y la sensibilidad del micrófono. Esto se

realiza a través del menú “configurar”. Desde aquí tenemos la posibilidad de configurar la intensidad

del led y la sensibilidad del micrófono. (estos valores podrán configurarse igualmente en cualquier

momento).

Al seleccionar el icono del led, configuraremos la intensidad del led de la alarma.

Al seleccionar el icono del micrófono, configuraremos el umbral del micrófono que debe ser

superado para que la alarma se active.

Page 9: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 9 de 16

1. Agregar otro “control remoto” Es posible controlar la alarma desde más de un dispositivo móvil. Simplemente se instala la aplicación

final en el mismo, se configura la IP de la placa y en el menú contraseña se deben completar los 3

campos con la misma contraseña que se configuro en el primer “control remoto” y enviar la

contraseña.

2. Cambio de contraseña. Existe la posibilidad de realizar un cambio de contraseña. El procedimiento para un solo “control

remoto” se realiza ingresando al menú “contraseña”, ingresando la contraseña actual, la nueva

Page 10: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 10 de 16

contraseña y la verificación finalizando con el envió de la contraseña. De esta forma la nueva

contraseña es modificada en la placa.

Para el resto de los “controles remotos” solo es necesario ingresar la nueva contraseña en el campo

“contraseña actual” y seleccionar el botón cambiar contraseña, dado que la misma se cambia solo en

este dispositivo.

3. Modo Automático. Es posible controlar la alarma automáticamente (Encender/Apagar). En modo automático, al

acercarse con el “control remoto” a la alarma, la misma se Apaga automáticamente al detectar el

“control remoto” vía bluethoot. De la misma manera, al alejarse lo suficiente (o cerrar la aplicación

final) para que la conexión bluethoot se corte, la alarma se Enciende automáticamente.

Cabe aclarar que, en modo manual, se deshabilitan las funciones de Encender y Apagar la alarma.

4. Modo Manual En modo manual, es posible Encender y Apagar la alarma, sin importar a la distancia que uno se

encuentre de la alarma (solo se debe tener en cuenta que la alarma y el “control remoto” deben

estar en la misma red).

Estando la alarma en modo manual y con la alarma Encendida, es posible activar la función Pánico en

caso de ser necesario que la alama suene (de esta manera pasa a modo activado). Para cancelar este

sonido se debe Apagar la alarma.

5. Control de accesorios del automóvil. Desde el “control remoto”, ingresando al menú “ajustes auto”, es posible controlar ciertos accesorios

del automóvil, siendo ellos la calefacción (on/off) y el aire acondicionado (on/off). Contando además

con la posibilidad de poder encender y apagar el motor del automóvil desde este menú.

Page 11: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 11 de 16

6. Verificación de los sensores. Desde el menú “sensores” es posible verificar el estado de cada uno de los sensores de la alarma

(intensidad del led, intensidad del ruido ingresando por el micrófono, ubicación por coordenadas,

velocidad de desplazamiento y temperatura).

COMPORTAMIENTO DE LA ALARMA Una vez que la alarma pasa al estado ENCENDIDA, el led indicador comienza a parpadear cada 2

segundos, se emite un (1) pitido desde el buzzer y se indica mediante un texto en el “control remoto”

que la alarma se encuentra ENCENDIDA. A partir de este momento, el sistema lee constantemente el

Page 12: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 12 de 16

ruido ambiente a través del micrófono. Si el ruido supera el umbral definido para el micrófono, la

alarma cambia de estado a ACTIVADA.

Cuando la alarma pasa al estado ACTIVADA, el buzzer comienza a realizar un sonido ululante, el led

comienza a apagarse y encenderse progresivamente y se refleja el estado en la pantalla del “control

remoto” indicando que la alarma se encuentra ACTIVADA.

Para detener la alarma se debe Apagar pasando la misma al estado APAGADA. Cuando la alarma pasa

a este estado, el buzzer realiza dos (2) pitidos y deja inmediatamente de emitir sonido, el led se

apaga y se indica en la pantalla que la alarma se encuentra APAGADA.

Para encender la alarma se debe Encender nuevamente la misma y pasará al estado ENCENDIDA.

Page 13: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 13 de 16

ANEXO I Protocolo de comunicación para la transferencia de datos entre la alarma “AlarmaTodoEstaBien” y la

app Smartphone control remoto.

HEADER DATOS

Descripción del header

Longitud del campo Tipo (notación de c) Nombre Descripción

1 byte uint8_t Len de password Longitud de la palabra secreta con 0 no está seteada y solo admite el comando de setear contraseña

N bytes string Password La contraseña secreta que se utiliza para habilitar el control

1 byte uint8_t Código de comando Código que identifica que datos se esperan

N bytes Binario Datos del comando Los datos propiamente dichos del comando

Listado de comandos

Código de comando Descripción

1 Establece contraseña

2 Estado alarma

3 Estado de sensores

4 Configurar Sensibilidad

5 Configurar intensidad led

6 Configurar distancia de encendido

7 Encender/Apagar motor

8 Encender/apagar/Activar alarma

9 Configurar modo

10 Encender calefacción/ventilación

11 Estado General

Descripción de los comandos

Comando establecer contraseña modo Solicitud

Longitud Tipo Nombre Descripción

1 Byte uint8_t Len Longitud de la contraseña

N bytes string contraseña Contraseña a establecer

Page 14: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 14 de 16

Comando establecer contraseña modo Respuesta

Longitud Tipo Nombre Descripción

1 byte uint8_t Código de resultado •0- Contraseña establecida. •1- Error de autenticación. •2- Error interno vuelva intentar

Comando estado de alarma modo Solicitud (SIN DATOS)

Comando estado de alarma modo Respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resultado •1- Error de autenticación •2- Alarma encendida. •3- Alarma Apagada. •4- Alarma activa.

Comando estado de sensores modo Solicitud (SIN DATOS)

Comando estado de sensores modo Respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resultado •0- Ok •1- Error de autenticación. •2- Error obteniendo estado de sensores.

4 Bytes Float Estado de micrófono Es un valor entre 0 y 1 con el ultimo valor captado del micrófono

4 Bytes Float Estado de potenciómetro

Es un valor entre 0 y 1 con el ultimo valor leído del potenciómetro.

Comando configurar sensibilidad modo Solicitud

Longitud Tipo Nombre Descripción

4 Bytes Float Nuevo valor de la sensibilidad del micrófono

Es un valor entero 0 y 1, es el valor con el cual sobrepasado la alarma se activa

Comando configurar sensibilidad modo Respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error guardando datos.

Comando configurar intensidad del led modo solicitud

Longitud Tipo Nombre Descripción

4 Bytes Float Valor de la intensidad del led

Es el valor con el cual se seteara el led. (También lo puede cambiar el potenciómetro)

Comando configurar intensidad del led modo Respuesta

Page 15: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 15 de 16

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error guardando datos.

Comando configurar distancia de encendido modo Solicitud

Longitud Tipo Nombre Descripción

4 Bytes Int Valor de activación Valor mediante el cual la alarma se encenderá y apagará.

Comando configurar distancia de encendido modo respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error guardando datos.

Comando encender/apagar motor modo solicitud

Longitud Tipo Nombre Descripción

1 Byte uint8_t Enciende o apaga el motor

•0- Apagar. •1- Encender

Comando encender/apagar motor modo respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error ejecutando acción.

Comando encender/apagar alarma modo solicitud

Longitud Tipo Nombre Descripción

1 Byte uint8_t Enciende, apaga o activa la alarma.

•0- Apagar. •1- Encender •2- Activar

Comando encender/apagar alarma modo respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error ejecutando acción.

Comando configurar modo, modo solicitud

Longitud Tipo Nombre Descripción

1 Byte uint8_t Configura la alarma en modo automático o manual

•0- Manual. •1- Automático

Comando configurar modo, modo respuesta

Longitud Tipo Nombre Descripción

Page 16: PROYECTO: Alarma Todo Está Bienso-unlam.com.ar/soa/iot-2016-c1-alarma-todo-esta-bien.pdf · PROYECTO: Alarma Todo Está Bien 1er CUATRIMESTRE - AÑO 2016 Comisión: Lunes y Jueves

Página 16 de 16

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error ejecutando acción.

Comando encender calefacción/ventilación, modo solicitud

Longitud Tipo Nombre Descripción

1 Byte uint8_t Enciende apaga la calefacción/ventilación.

•0- Apagar. •1- Encender calefacción. •2- Encender ventilación

1 Byte uint8_t Nivel de potencia de la calefacción/ventilación

•Nivel de la potencia.

Comando encender calefacción/ventilación, modo respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error ejecutando acción.

Comando Estado general, modo solicitud (Sin Datos)

Comando Estado general, modo respuesta

Longitud Tipo Nombre Descripción

1 Byte uint8_t Código de resulta •0- Ok •1- Error de autenticación •2- Error ejecutando acción.

1 Byte uint8_t Estado calefacción/ventilación

•0- apagadas •1- calefacción encendida •2- ventilación encendida

1 Byte uint8_t Nivel de calefacción/ventilación

1 Byte uint8_t Modo de funcionamiento

•0- manual •1- automático

1 Byte uint8_t Estado motor •0- Apagado •1- Encendido