Diseño e implementación de un sistema de seguridad...

24
Diseño e implementación de un sistema de seguridad mediante notificaciones de mensajes de texto y notificaciones a correo electrónico Design and implementation of a security system using text message notifications and email notifications Leandro Esteban García Rodríguez, Gonzalo Andrés Chávez Beltrán Director Lic. Hermes Javier Eslava Blanco Universidad Distrital Francisco José de Caldas Resumen En el presente artículo se expone el estudio e implementación de un sistema de seguridad, que utiliza notificaciones de mensajes de texto y correos electrónicos, dicho diseño se realizó en un prototipo el cual consta de una red de sensores cuyos parámetros a medir son humo, apertura, golpes y movimiento, variables que son determinantes para un adecuado monitoreo; la parte de control de los sensores se realizó por medio de un microcontrolador ARDUINO UNO, que está comunicado mediante el puerto serial a una tarjeta RASPBERRY PI; en la que se encuentra un servidor web encargado de enviarnos las alertas de seguridad cuando alguno de los sensores haya sido activado. En cuanto al diseño del servidor fue necesario determinar que placa se acomodaba mejor a las necesidades del sistema de seguridad. Dentro de los resultados se registra una comparación de precios y rendimiento los cuales fueron clave para que se lograra el correcto funcionamiento de éste sistema. Palabras clave: sistema de seguridad, servidor web, sensores, Raspberry pi. Abstract In this paper the study and implementation of a security system that uses notifications of text messages and emails is exposed, this design was performed on a prototype which consists of a network of sensors, the parameters to be measured are smoke, opening, strokes and movement, variables that determine adequate monitoring; the control part of the sensors was performed by an ARDUINO UNO microcontroller, which is connected via the serial port to a RASPBERRY PI board; in which you can be found a web server responsible for sending security alerts when any of the sensors has been activated. Regarding the server design was necessary to determine which board is accommodated to the needs of the security system. Among the results we find a price comparison and performance which were key to the proper functioning

Transcript of Diseño e implementación de un sistema de seguridad...

Diseño e implementación de un sistema de seguridad mediante

notificaciones de mensajes de texto y notificaciones a correo

electrónico

Design and implementation of a security system using text message notifications and

email notifications

Leandro Esteban García Rodríguez, Gonzalo Andrés Chávez Beltrán

Director

Lic. Hermes Javier Eslava Blanco

Universidad Distrital Francisco José de Caldas

Resumen

En el presente artículo se expone el estudio e implementación de un sistema de seguridad, que utiliza

notificaciones de mensajes de texto y correos electrónicos, dicho diseño se realizó en un prototipo el cual

consta de una red de sensores cuyos parámetros a medir son humo, apertura, golpes y movimiento, variables

que son determinantes para un adecuado monitoreo; la parte de control de los sensores se realizó por medio

de un microcontrolador ARDUINO UNO, que está comunicado mediante el puerto serial a una tarjeta

RASPBERRY PI; en la que se encuentra un servidor web encargado de enviarnos las alertas de seguridad

cuando alguno de los sensores haya sido activado. En cuanto al diseño del servidor fue necesario determinar

que placa se acomodaba mejor a las necesidades del sistema de seguridad. Dentro de los resultados se

registra una comparación de precios y rendimiento los cuales fueron clave para que se lograra el correcto

funcionamiento de éste sistema.

Palabras clave: sistema de seguridad, servidor web, sensores, Raspberry pi.

Abstract

In this paper the study and implementation of a security system that uses notifications of text messages and

emails is exposed, this design was performed on a prototype which consists of a network of sensors, the

parameters to be measured are smoke, opening, strokes and movement, variables that determine adequate

monitoring; the control part of the sensors was performed by an ARDUINO UNO microcontroller, which

is connected via the serial port to a RASPBERRY PI board; in which you can be found a web server

responsible for sending security alerts when any of the sensors has been activated. Regarding the server

design was necessary to determine which board is accommodated to the needs of the security system.

Among the results we find a price comparison and performance which were key to the proper functioning

of the system is achieved. This project was conducted with the help of TELETECNO research group of

University Francisco José de Caldas.

Keywords: security system, web server, sensors, Raspberry Pi.

1. Introducción

Teniendo en cuenta que, aunque los hurtos en propiedades privadas como casas, apartamentos y locales

comerciales ha disminuido, se ha demostrado que no basta con una persona encargada de la seguridad de

todo un conjunto residencial, ya que ésta no está capacitada en su totalidad para brindar la vigilancia

adecuada. Son muchas las modalidades usadas por los criminales para violentar la seguridad de un recinto,

entre ellas el uso de llaves maestras, la violación de cerraduras y la ruptura de ventanas. Según datos del

Centro de Estudio y Análisis en Convivencia y Seguridad Ciudadana de la Secretaría de Gobierno de Bogotá

el hurto a residencias disminuyó en un 27,3% en cuanto a residencias y un 7,1% en locales comerciales

entre 2014 y 2015. La principal premisa con la cual se realizó el diseño de un sistema de seguridad es brindar

confianza al propietario de que su inmueble se encuentra asegurado; dicho sistema aprovecha los beneficios

que proporciona un ordenador de bajo costo, así como también la facilidad que brinda internet para

manipular y transmitir datos. [1]

Con el auge de los hosting ( que es el servicio que provee a los usuarios de Internet un sistema para poder

almacenar información, imágenes, vídeo, o cualquier contenido accesible vía web.), muchos dominios web

ofrecen éste alojamiento por un bajo costo (oscilante entre 2 y 14 € por mes, dependiendo del espacio y la

cantidad de correos corporativos asociados), pero estos dominios no ofrecen las herramientas necesarias

para el diseño del sistema de seguridad, además su principal desventaja radica en su estabilidad, un servidor

de éste tipo está propenso a caerse; por otra parte el servidor propio permite gestionar mucho más contenido,

así como también acceder a bases de datos y entrelazar aplicaciones y recursos útiles.

En éste caso el servidor fue alojado en una tarjeta de desarrollo RASPBERRY PI, la cual podría describirse

como un ordenado de bajo costo, o un computador de placa reducida; la gran ventaja de ésta es la cantidad

de aplicativos libres que pueden ser instalados dependiendo de la tarea que se vaya a desarrollar, en ella

pueden ser trabajados lenguajes y herramientas libres.

Las alertas deben ser tomadas por medio de una red de sensores, para ello se usaron sensores tales que

puedan monitorear las variables deseadas (Humo, apertura, ruptura en la venta, movimiento), Para ello se

utiliza un microcontrolador ARDUINO UNO que sensará las diferentes variables. En las variables como el

humo se utilizó un sensor detector de monóxido de carbono, para monitorear el estado de una ventana en

la que se detectará si esta fue rota o si tuvo algún movimiento brusco se usó un sensor de vibración, para el

detectar movimiento un sensor PIR y para el de apertura un sensor magnético.

2. Fundamentos teóricos para Diseño del sistema

El sistema fue desarrollado principalmente en RASPBERRI PI B+, donde se encontrará el servidor y será

el controlador en la gestión de las bases de datos como en él envió de las notificaciones, adicionalmente

contará con un microcontrolador ARDUINO UNO, que es el encargado de monitorear los sensores y enviar

los datos al servidor en el caso de que alguno fuese activado. En la figura 2-1 se observa un esquema general

del sistema.

FIGURA 2-1: Diagrama del sistema

El diseño del sistema se basa en la topología de red estrella. En una red de tipo estrella todos los dispositivos

se encuentran conectados a un punto central, el cual se encarga de establecer comunicación entre ellos, es

decir toda comunicación debe pasar por una estación central y las demás estaciones no están conectadas

entre sí, ésta topología tiene similitud con la topología bus, con la diferencia que en la estrella la estación

central es la única que puede leer los mensajes transmitidos a las demás estaciones.

La gran ventaja de éste tipo de red es que otros dispositivos pueden ser conectados de manera más fácil

logrando que la configuración pueda ser más rápida, además que en ella se pueden detectar de manera más

eficientes los fallos, en contraparte, las redes comunicadas de ésta forman tienen la desventaja de que si la

estación central falla, toda la red se verá seriamente resentida. [2][3]

2.1 Raspberry Pi B+

Posee un procesador ARM ARM1176JZF-S con velocidad de reloj de 700MHz, un procesador gráfico, 512

MB de memoria RAM y la posibilidad de tener un almacenamiento externo. El costo de montar un servidor

en ésta plataforma es muy bajo en comparación de contratar un servicio de Hosting que no proporcionará

los recursos necesarios, además de brindar la libertad de usar cualquier sistema y herramienta sin

limitaciones. En la figura 1-6 se puede observar una placa reducida RASPBERRY PI 2. [4][5]

Figura 2-2: Raspberry pi 2.[5]

2.1.1 Raspbian.

Raspbian es un sistema operativo libre para la plataforma RASPBERRY, se deriva de Linux, basado en

unix, en éste entorno se promueve la programación en plataformas como Python. Viene con unos 35 mil

paquetes, precompilados, de forma tal que sea fácil instalar el que necesitemos en la RASPBERRY PI. Se

puede modificar comandos mediante terminal.

2.1.2 Python

Python es un entorno de programación multiparadigma, es decir puede permitir varios estilos de

programación (a objetos, imperativa, funcional). El intérprete de Python estándar incluye un modo

interactivo en el cual se escriben las instrucciones en una especie de intérprete de comandos: las expresiones

pueden ser introducidas una a una, pudiendo verse el resultado de su evaluación inmediatamente, lo que da

la posibilidad de probar porciones de código en el modo interactivo antes de integrarlo como parte de un

programa. Esto resulta útil tanto para las personas que se están familiarizando con el lenguaje como para

los programadores más avanzados.

Existen otros programas, tales como IDLE, bpython o IPython,17 que añaden funcionalidades extra al modo

interactivo, como el autocompletado de código y el coloreado de la sintaxis del lenguaje. [6][7]

2.2 Sensado de variables.

2.2.1 Arduino uno.

Es una plataforma de programación de tipo Open Source que se basa en el uso fácil de Software y Hardware

libre, a través de los años Arduino ha sido el cerebro de miles de proyectos, a partir de una placa electrónica

basada en el ATmega328P. Cuenta con 14 pines digitales de entrada / salida (de los cuales 6 se podrán

utilizar como salidas PWM), 6 entradas analógicas, un cristal de cuarzo de 16 MHz, una conexión USB, un

conector de alimentación, un controlador de ICSP (In Circuit Serial Programing) y un botón de reinicio. En

la figura 2-3 se observa un arduino uno el cual fue utilizado en el desarrollo del sistema de seguridad, ye

en la tabla 2-1 una comparación entre las características de las dos plataformas que se usaron. [8]

Figura 2-3: Arudino uno [8]

Tabla 2-1: Tabla comparativa entre arduino y Raspberry [9]

Sistema.

Características.

Arduino Raspberry Pi

Precio en dólares.

$30 $35

Tamaño 7.6 cm*1.9 cm*6.4cm

8.6 cm*5.4 cm*1.7 cm

Memoria 0.002 MB 512 MB

Velocidad de reloj

16 MHz 700 MHz

On Board Network

Ninguna 10/100 wired Ethernet RJ45

Multitarea No Si

Voltaje de entrada

7 a 12 V 5 V

Memoria Flash 32 KB Tarjeta SD( 2 a 16 G)

Puertos USB Uno Dos

Sistema operativo

Ninguno Distribuciones de Linux

Entorno de desarrollo integrado(IDE)

Arduino Scratch,IDLE, cualquiera con soporte Linux

2.2.2 Sensor MQ.

La serie MQ de sensores de gas utilizan un pequeño calentador en el interior con un sensor electro-químico. Son

sensibles para una gama de gases y se utilizana en interiores a temperatura ambiente. Éstos pueden ser calibrados

gracias a la resistencia de carga presente en el módulo, pero se necesita saber con cual tipo de gas se está

trabajando, además de su concentración. En la tabla 1-2 se encuentran relacionados algunos sensores MQ y el

gas que detectan.y en la figura 2-4 el esquema de un sensor de éste tipo. [10]

Tabla 2-2: Relación de sensores MQ.[10]

Sensor Sensibilidad

MQ2 Metano, butano, humo

MQ3 Alcohol, etanol, humo

MQ4 Metano, gas natural

MQ5 Gas natural

MQ6 Gas licuado de petróleo, gas butano

MQ7 Monóxido de carbono

MQ8 Gas de hidrógeno

MQ9 Monóxido de carbono, gases inflamables

MQ131 Ozono

Figura 2-4: Circuito de conexión del MQ-7 sensor usado. [10]

2.2.3 Sensor PIR (Passive Infrared).

Los detectores PIR o Pasivo Infrarrojo, se caracterizan principalmente por su reducido tamaño, bajo costo,

indiferencia a la luz natural, bajo consumo de energía y fácil manejo. Reaccionan sólo ante determinadas

fuentes de energía tales como el calor del cuerpo humano o animales. Contiene un filtro llamado lente de

Fresnel, que centra las señales infrarrojas sobre el elemento, si estas cambian, el amplificador cambia. En la

figura 2-5 un sensor PIR y en la 2-6 su esquema interno. [11] [12]

Figura 2-5: Sensor PIR.[11]

Figura 2-6: Esquema interno de un PIR [12]

2.2.4 Sensor de vibración

El sensor de la vibración SW-420, es un dispositivo con un Comparador LM393 que utiliza para detectar si

hay alguna vibración o golpe brusco que va más allá de un nivel adecuado. El nivel puede ser ajustado por el

potenciómetro a bordo. Cuando ni hay ninguna vibración, la lógica de salida del módulo se encuentra en BAJO

y se indica en la señal de luz del LED incorporado, al igual que cuando se detecta una vibración. El módulo

cuenta con un elemento piezoeléctrico el cual es el encargado de detectar la vibración. En la figura 2-5 se

puede ver esquema del sensor mencionado. Un sensor de vibración es un dispositivo que reacciona ante

movimientos bruscos, golpes, o vibraciones, pero no a movimientos constantes o progresivos. En el caso de

detectar una vibración genera una señal digital, que cesa al finalizar la vibración.

El principio de funcionamiento es muy sencillo. El dispositivo dispone de un cilindro, con dos contactos. Uno

de los contactos está unido a una varilla metálica ubicada en el centro del cilindro. A su alrededor, el otro

contacto se arrolla a su alrededor en forma de muelle.

En caso de una vibración, el muelle se deforma por efecto de la inercia, estableciendo contacto en varios

puntos con el contacto fijo. De esta forma, se establece una conexión eléctrica entra ambos contactos, que

puede ser leída con un microcontrolador. [13]

Figura 2-5: Esquemático del sensor SW-420[13]

2.2.5 Sensor magnético

Un sensor que detecta campos magnéticos que provocan los imanes o las corrientes eléctricas, básicamente en

forma de interruptor que consiste en dos laminas ferromagnéticas que se atraen y hacen contacto cuando están

en presencia de un campo magnético cerrando el circuito, debido a que es un interruptor, éste no necesita

ningún tipo de acondicionamiento. La figura 2-6 muestra el símbolo del sensor [14]

Figura 2-6: Símbolo del sensor [14]

2.3 Acondicionamiento de los sensores

Para obtener las lecturas deseadas en el microcontrolador es necesario realizar un acondicionamiento para la

señal de salida de cada uno de los sensores, en el caso del sensor de apertura, éste acondicionamiento puede

ser obviado, ya que éste se comporta como un simple interruptor, en cuanto a los otros tres sensores, se puede

notar que dos de ellos son lógicos, es decir tienen dos estados; uno en alto (1) y otro en bajo (0), éste es el

caso del sensor de golpe y el sensor PIR; por otro lado el sensor de humo es de salida análoga; esto significa

que a distinta concentración de gas o PPM (partes por millón) el sensor arrojará un valor distinto de voltaje;

para éste caso, desde el microcontrolador se asignará un valor de voltaje de referencia, a partir de éste valor,

se determinará si la concentración de gas o humo es peligrosa y pueda ocasionar algún tipo de contratiempo

(incendio en éste caso). Aunque el sensor de golpe y PIR sean de salida lógica, ellos deben tener un

acondicionamiento para trabajar en un rango adecuado de valores que sean de fácil lectura para el

microcontrolador.

Para el acondicionamiento del sensor de vibración encontramos un circuito comparador, que se compone de

un amplificador operacional LM-393, el umbral puede ser ajustado mediante la resistencia variable que hace

parte del módulo, en la figura 2-7 se encuentra el circuito comparador utilizado en la mayoría de módulos de

sensores utilizados.

Figura 2-7: Circuito comparador utilizado por los sensores. [15]

El circuito hace una comparación entre los voltajes de entrada del amplificador operacional, en la entrada

no inversora se obtiene la señal del transductor, mientras que en la no inversora un voltaje de referencia, el

cual es ajustado con la resistencia variable del módulo, cuando la entrada no inversora es mayor que la

inversora por una cantidad mayor a una pequeña fracción de voltio, la salida salta a un voltaje de saturación

positivo estable, es decir un uno lógico, o sea que el sensor no se ha activado, adicionalmente a la salida se

encuentra un LED el cual indica el estado del sensor.

En el sensor PIR se cuentan con dos resistencias variables con las cuales se puede ajustar la distancia de

operación o sensibilidad, y con la otra el tiempo en el cual se envía el pulso, la sensibilidad de éste módulo

es a la radiación, gracias al lente de Fresnel se le puede dar un rango de operación más alto. Al igual que el

sensor de vibración el circuito de comparación se basa en un LM 393.

2.4 Características de los sensores.

A continuación se presentará en la tabla 2-3 las principales características de funcionamiento de los sensores

a utilizer

.

Tabla 2-3: Características de los sensores. [16][17][18]

Sensor Parámetro

PIR (HC-SR501)

HUMO (MQ7)

VIBRACIÓN (SW-420)

APERTURA

Voltaje de operación

5V-20V±0.1

5V±0.1

5V±0.1

5V-20V

Voltaje de calentamiento (Alto)

3.3V

5V±0.1

3.3V

N.A.

Voltaje de calentamiento (Bajo)

0V

1.4V±0.1

1.4V±0.1

N.A.

Consumo de corriente

50µA

60mA

15mA

10mA

Potencia

25mW

350mW

75mW

50mW

Resistencia

0-20KΩ

0-20KΩ

0-20KΩ

N.A.

Sensibilidad

2m-7m en un ángulo cónico de

100°

100-330 ppm*

360° de inclinación

N.A.

Delay

5s-300s

60s-90s

5s-200s

N.A.

*Ppm: (partes por millón): es una unidad de medida con la que se mide la concentración. Se refiere a la cantidad de

unidades de una determinada sustancia (agente, etc) que hay por cada millón de unidades del conjunto.

3 Implementación.

El servidor web se alojó dentro de una placa RASPBERRY, el tipo de servidor que se instala es LAMP

(Linux + Apache + MySQL + PHP), mediante la consola de raspbian se dan las órdenes para que se instalen

los paquetes necesarios. Apache es el servidor HTTP libre en lenguajes basados en UNIX, PHP nos

permitirá la generación de páginas de una manera dinámica y MySQL facilitará el tratamiento de

información mediante bases de datos.

A pesar de que haya muchas maneras de montar un servidor en RASPBERRY, el servidor LAMP es el que

mejor se acomoda al diseño, por ser ligero y además la simplicidad y solidez que éste tiene. Además del

servidor LAMP se deberán instalar servicios complementarios como MUTT, el cual es un cliente libre de

correo electrónico, Mutt se enfoca en ser un Mail User Agent, y fue originalmente escrito sólo para ver

correo. Debido a esto, la recuperación de correo, características de envío y filtrado implementadas

posteriormente son básicas comparadas con otras aplicaciones. La mayoría de las instalaciones de Mutt

dependen de programas externos para estas tareas.

3.1 Instalación De Servidores.

3.1.1 Servidor Local

En la creación de las páginas web se necesita un lugar propicio donde se deberán alojar los archivos web,

este proceso se podría realizar en un hosting. Esta función del hosting presta el servicio para guardar estos

archivos y subirla a la red como un valor, pero el tiempo que termine en realizarla, se hace más

recomendable iniciar un servidor local que puede ser cualquier ordenador con un sistema operativo y una

serie de aplicaciones instaladas. Alojándola en un servidor local se podrá corregir cualquier error y tenerla

en perfectas condiciones para después pueda ser alojada en el servidor ftp y sea online.

3.1.1.1 Aplicaciones instaladas en un servidor local:

Sistema operativo (SO) : servirá de plataforma para instalación de las aplicaciones. Podría ser

Windows que es normalmente la más usada, pero por demanda usaremos Raspian Jessie basado en

Debian Linux.

Apache: es una aplicación que crea un servidor http de código abierto para sistemas UNIX y

Windows, un sistema robusto, de grado comercial y open source (código abierto). [19]

SQL: para la transición de datos necesitamos una memoria o un sistema que guarde estos datos

para después ser consultados y tener actualizada la información que se maneja, para poder resolver

este problema se creó las bases de datos y toda su arquitectura. Así para interactuar con los datos

de los formularios y datos recibidos con la base de datos usa consultas, estas se hacen para acceder

a la base de datos, pero para ello se usan los lenguajes de manipulación de datos la más utilizada

es la SQL, aunque existen varios DML son los usados por bases de datos IMS/DL1, CODASYL u

otras. Es la aplicación que usa un lenguaje de consulta que crea, modifica y consulta las bases de

datos mediante QUERYS soportados por apache.

PHP: Éste tipo de lenguaje puede programar scripts desde el lado del servidor, lo cual puede ser

útil para recopilar los datos de un formulario y para generar páginas de contenido dinámico. PHP

puede ser utilizado en todos los sistemas operativos.

3.1.2 Configurando el Servidor Local

Para no tener problemas en sus librerías y propio sistema cause conflicto en las instalaciones necesarias, se

debe actualizar la Raspberry debidamente conectada a internet, en este caso esta comunicada por cable

Ethernet. Esto se realiza mediante comandos en la terminal del ordenador Raspberry, estos comandos son:

sudo apt-get update

sudo apt-get upgrade

Ya actualizada y lista conectada a internet, se instala el apache por su poder y sencillez en la creación del

servidor, adicional los módulos puede ser usado como servidor dinámico utilizando php.

3.1.3 Instalación de apache y php

En la terminal de la Raspberry, llamada LXTerminal se instala en primer lugar apache2,

Sudo apt-get install apache2

Se deben añadir varios módulos y más Para que este pueda ser un sitio dinámico con sus funciones php, se

instala php y las librerías necesarias, para esto se debe ejecutar estos comandos:

sudo apt-get install php5 libapache2-mod-php5 libapache2-mod-perl2 php5-cli php5-cgi php5-common

php5-curl

3.1.4 Instalación de MySQL

Para el uso de las bases de datos, se debe referenciar Mysql como el programa que gestiona aquellas bases

de datos que se utilizara. Para ello se instala mediante comandos en la terminal:

sudo apt-get install mysql-server mysql-client php5-mysql

Siguiente a ello, la aplicación solicitara que se le coloque una serie de medidas de seguridad. Como

contraseña, nombre de usuario y unas restricciones.

3.1.5 Instalación del PhpMyadmin

Para administrar estas bases de datos, phpmyadmin es un gestor muy sencillo para las bases de datos y la

instalamos con este comando

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Al igual que el MySQL el pedirá contraseña que sea agregada por el usuario, ya instalado todas las

aplicaciones. Se debe reiniciar la Raspberry, se ejecuta con este comando.

Sudo reboot

3.1.6 Agregando al servidor los archivos de página WEB

Ya instalado el servidor con sus respectivas herramientas con éxito, se debe agregar la página web hecha

para la verificación de los datos y ser una interfaz con el usuario para que este pueda acceder a ella y pueda

conocer su información así como habilitar y deshabilitar el sistema.

Generalmente este compendio de archivos que forman una página web, en el sistema operativo rasbian es

la carpeta: /var/www. En la carpeta www se agregan estos archivos, una forma de verificar, es especificar

la ip de la Raspberry acompañada de la dirección del directorio de los archivos, ejemplo:

“ http://192.168.0.7/html/ProyectoWeb”.

3.2 Estructura de directorio y archivos.

Previo al desarrollo de un sitio web es necesario preparar la estructura de archivos y carpetas con el

fin de obtener un rápido y fácil acceso a los datos y aplicaciones que se necesitan, en el caso del sitio

web desarrollado para el sistema de seguridad, la tabla 3-1 muestra la estructura necesaria

para el funcionamiento de dicho sistema.

CACHE

CSS

MOVIL

PC1

PCHD

TABLET

ESTILOS

TEMPLATES

PUBLIC

ACTIVAR

DESACTIVAR

INDEX

IMG

INCLUDES

LIBS

CLASS.ACCESO

CLASS.CONECTION

CLASS.ESTADOALARMA

COMUNES

JS

JQUERY

ACCESO.PHP

INDEX.HTML

SESION.PHP

3.3 Bases de Datos

3.3.1 Estructura de bases de datos

El tipo de base de datos es una base relacional, para el proceso de formación de las bases de datos se

usan3 bases, como se puede observar en las figuras 3-1 a 3-3.

Figura 3-1: El estado de la alarma: la base de datos que indica si está encendida o

apagada.

Figura 3-2: El estado de los

sensores.

Figura 3-3: La base de datos de los usuarios para que ellos inicien

sesión.

3.3.2 Estructura Relacional.

Ésta herramienta nos permite establecer interconexiones entre los datos guardados en tablas, y a

través de dichas interconexiones relacionar los datos de las tablas. En la figura 2-4 observamos la

estructura relacional del sistema planteado.

Figura 3-4: Estructura relacional del

sistema

3.4 Recepción de señales y transmisión de datos de los

sensores.

La Raspberry pi b+ cuenta con diferentes puertos GPIO para hacer la recepción de las señales enviadas

por los sensores, se podrían conectar de forma sencilla y obtener estas señales pero su cableado lo hace

engorroso y siendo un dispositivo de seguridad lo que se realiza, algunas de las ubicaciones de los

sensores podrían estar lejanas de la Raspberry. Así el arduino recepciona las señales de los sensores y

solo envía por serial una cadena de estado de los sensores luego la Raspberry consulta la base de datos

de encendido y decide si inserta los datos o no respecto a su estado de actividad (activado / desactivado).

El arduino realiza la recepción de las señales. Así éste transmite los valores dados; en el caso del sensor

MQ7 el cual es un sensor análogo se debió hacer una parametrizacion de esta señal para dejarlo en un

nivel digital. El arduino envía señal por señal en una cadena de datos string el estado de cada una

separadas por tabulaciones (\t) , cuando el estado publicado de los cuatro sensores esta se hace un salto

de línea (\n) y así se sabra el final de la línea información como visualiza en la imagen de la terminal

usb. La forma como funciona la recepción de señales digitales y análogas del arduino, en el flujograma

de la figura 3-5. En la figura 3-5 se pueden ver los datos que se transmiten por serial.

Figura 3-5: Flujograma de programación del arduino

Figura 3-6: Imagen del terminal serial del arduino

3.5 Recepción de datos e inserción a la base de datos

La Raspberry al conectar el arduino lo detectará automáticamente e iniciará la transmisión, el puerto

serial conectado será el '/dev/ttyACM0' por defecto. Ya en python se crea un script usando un módulo

python- serial. Este se podrá instalar por la terminal del rasbian con los comandos

sudo apt-get install python-serial

El script lee los datos por serial que llegan desde el arduino, el dato recibido por serial llega como

una cadena completa, por serial se guarda en una variable

datosrecibidos=ser.readline()

Con el método Split que devuelve una lista de las palabras en cadena separadas en vectores o tupla [20]:

dato=datosrecibidos.sp

lit( )

Así, ya se tiene una tupla de 4 posiciones cada posición guarda un dato de las señales de los datos,

ahora solo es guardar cada dato en la base de datos para ello debemos importar otra librería de python

MySQLdb, esta librería es la interfaz con mysql desde python.[21]

Para acceder a ella se debe conectar iniciando a la base de datos que se desea entrar, usuario y

contraseña y nombre donde está alejado la base de datos que es por defecto localhost Se adicionan los

datos por un método basededatos.execute() ese ejecutara el comando MySQL que se agregue, para

ingresar estos nuevos

datos .[22]

curs.execute ("""INSERT INTO sensores (ruptura, humo, apertura, rif)

VALUES ('%s','%s','%s','%s')"""%(dato[0],dato[1],dato[2],dato[3]))

3.6 Envío de Notificaciones SMS y

correo.

En las notificaciones para mensaje de texto, tigo y claro ofrecen una función al público que es enviar

mensajes de texto desde correo electrónicos, este servicio desde claro es el número de celular seguido

con el @clarocolombia.com.co. y tiene un costo adicional. El problema se limita sólo a enviar dos

correo electrónicos por alerta. Se usa la aplicación mutt, usando la librería os desde python que escribe

desde el Shell de python a la terminal de linux:

os.system("echo \"Sensor activado\" | mutt -s \"Alarma activa\" [email protected]")

os.system("echo \"Sensor activado\" | mutt -s \"Alarma activa\"

[email protected].")

Los correos y sms notificaran siempre cuando este la alarma activada y no se halla desactivado desde

el administrador web. Cuando la alarma se encuentre desactivada, no enviara estados de los sensores

ni alertara. Así como se muestra en el flujograma de la figura 3-6. La figura 3-7 muestra como se envían

las notificaciones en terminal.

Figura 3-6: Flujograma de la programación del script en python por la Raspberry Pi

B+

Figura 3-7: Notificación en terminal de

Raspberry

En la figura 3-8 y 3-9 podremos observar que las alertas son enviadas por el sistema al correo y a

celular respectivamente.

Figura 3-8: Alerta enviada a correo

Figura 3-9: Alerta enviada a celular

En la figura3-9 se puede observar el funcionamiento de la página web en donde se administra

el sistema de seguridad. Se puede observar que cuando un sensor es activado se muestra un 1,

mientras los demás se encuentran a la espera de una interrupción.

Figura 3-9: Interfaz de usuario

3.7 Prototipo.

La implementación del sistema se llevará a cabo en un prototipo, el cual será la réplica de una oficina, la

cual posiblemente podría ser el lugar más óptimo para la instalación de dicho sistema. A continuación en

la figura 3-9 se tendrá el plano de la oficina donde se implementará el sistema.

Figura 3-10: Plano de la oficina.

4. Conclusiones y recomendaciones

4.1 Conclusiones

1. A pesar de no tener las mismas características de un computador de escritorio o un laptop, la

RASPBERRY PI es una herramienta de gran desarrollo en la actualidad, un sin número de

aplicaciones se han realizado gracias a ésta pequeña pero poderosa herramienta de programación.

A comparación de ARDUINO, Raspberry cuenta con la posibilidad de incluir periféricos así como

un almacenamiento, lo que es fundamental para el desarrollo del sistema, puesto que se necesita

espacio de almacenamiento para que puedan ser procesados por la base de datos.

2. El sistema fue principalmente considerado en ARDUINO, pero al constatar que éste no ofrecía la

velocidad adecuada en el procesamiento de datos, se decidió tomar otra alternativa, y teniendo en

cuenta que la RASPBERRY contaba con la posibilidad de llevar un sistema operativo, además de

contar con puertos para entradas digitales se eligió como mejor opción; aunque en el proceso, se

logró observar que era mejor utilizar un microcontrolador para que tomase las medidas de los

sensores y que trabajara de forma independiente.

3. Ya que los puertos GPIO de la RASPBERRY no soportan voltajes mayores a 3.3 voltios, y dado

que los sensores con los que se contaban funcionaban a más de 5 voltios, se tomó ARDUINO como

la parte de control para nuestra red de sensores.

4. Gracias al open source se puede considerar realizar muchos más proyectos de ésta índole, ya que

se le da al usuario la libertad de elegir desde el hardware que va a utilizar y que se acomodará mejor

a sus condiciones.

5. A pesar de ser un recurso muy utilizado en la actualidad, los servicios de hosting no ofrecen los

suficientes recursos que pueda necesitar un usuario para poder realizar alún proyecto de éste tipo,

ya que están orientados al manejo de cuentas de correo.

4.2 Recomendaciones

El proyecto actual podría ser complementado adicionando sensores a la red, sólo que se tendría que cambiar

el microcontrolador por alguno que tuviese una mayor cantidad de puertos tanto análogos como digitales. A

futuro se piensa mejorar el proyecto agregando mayor capacidad para el procesamiento de datos, así como

la adición de más sensores para mejorar la seguridad, que en sí es el objetivo principal del mismo.,

al igual se considerará utilizar las tecnologías actuales en cuanto a transmisión de información, como las

que se pueden observar a diario en los teléfonos inteligentes.

Bibliografía

[1] “Balance Delitos de Mayor Impacto Enero noviembre 2014 - 2015.” [Online]. Available:

http://www.ceacsc.gov.co/index.php/que-hacemos/informes/balances-estadisticos [Accessed: 27-Mar- 2016].

[2] M. Acosta, “ESTUDIO DEL ESTÁNDAR IEEE 802.15.4 ‘ZIGBEE’ PARA COMUNICACIONES INALÁMBRICAS DE ÁREA PERSONAL DE BAJO CONSUMO DE ENERGÍA Y SU COMPARACIÓN CON EL ESTÁNDAR IEEE 802.15.1 ‘BLUETOOTH,’” pp. 1–151, 2006.

[3] “Topología estrella” [Online]. Available: http://www.uazuay.edu.ec/estudios/ sistemas/teleproceso/apuntes_1/estrella.htm [Accessed: 27-Mar-2016].

[4] Upton, E., & Halfacree, G. , “Raspberry Pi user guide”, John Wiley & Sons. pp. 1-312, 2004.

[5] Valera, A., Soriano, A., & Vallés, M. (2014). Plataformas de Bajo Coste para la Realización de Trabajos

Prácticos de Mecatrónica y Robótica. Revista Iberoamericana de Automática E Informática Industrial RIAI, 11(4), 363–376. http://doi.org/10.1016/j.riai.2014.09.002

[6] “Python” Página oficial de Python [Online]. Available: https://www.python.org [Accessed: 27-Mar-

2016].

[7] Beazley, D. M. (2009). Python Essential Reference. Addison-Wesley Professional. Retrieved from

https://books.google.com/books?id=Chr1NDlUcI8C&pgis=1 [Accessed: 27-Mar-2016].

[8] “ARDUINO” Página oficial del proyecto ARDUINO [Online]. Available: https://www.arduino.cc/ [Accessed: 27-Mar-2016].

[9] Mican P. E., Sánchez M. A. ,” PROTOTIPO DE AUTOMATIZACIÓN DOMÓTICA DEL SISTEMA

DE ILUMINACIÓN DE UNA CASA MEDIANTE COMUNICACIONES VÍA INTERNET.”, Universidad

Distrital Francisco José de Caldas, Colombia, 2015.

[10] “Sensores MQ”, [Online], Available: http://playground.arduino.cc/Main/MQGasSensors [Accessed: 27-Mar-2016].

[11] [1] A. Goransson and D. C. Ruiz, Professional Android Open Accessory Programming with Arduino. John Wiley & Sons, 2013.

[12] “Sensor PIR con Arduino” [Online]. Available: http://www.omniblug.com/index.php/blog/122- sensor-de-movimiento-pir-arduino [Accessed: 27-Mar-2016].

[13] “Sensor SW-420” [Online], Available: http://www.elecrow.com/vibration-sensor-module-sw420-p-

525.html [Accessed: 27-Mar-2016].

[14] “Sensor magnético” [Online], Available: http://recursostic.educacion.es/secundaria/edad/

4esotecnologia/quincena11/4quincena11_contenidos_3f.html [Accessed: 27-Mar-2016].

[15] “Sensor de vibración” [Online], Available: http://www.mactronica.com.co/sensor-de-vibracion-

46681979xJM [Accessed: 27-Mar-2016].

[16] “MQ-7” [Online], Available: https://www.sparkfun.com/datasheets/Sensors/Biometric/MQ-7.pdf

[Accessed: 27-Mar-2016].

[17] “HC-SR501 PIR MOTION DETECTOR” [Online], Available: https://www.mpja.com/download

/31227sc.pdf [Accessed: 27-Mar-2016].

[18] “SW-420”[Online], Available: http://www.elecrow.com/vibration-sensor-module-sw420-p-525.html

[Accessed: 27-Mar-2016].

[19] “Sensor magnético” [Online], Available: [http://recursostic.educacion.es/secundaria/

edad/4esotecnologia/quincena11/4quincena11_contenidos_3f.htm [Accessed: 27-Mar-2016].

[20] “Apache server”, página official de apache [Online]. Available: https://httpd.apache.org/ABOUT_APACHE.html [Accessed: 27-Mar-2016].

[21] “Método Split” [Online]. Available :http://www.tutorialspoint.com/python/string_split.htm

[Accessed: 27-Mar-2016].

[22] “Librería MySQL-Python” [Online]. Available: http://mysql-python.sourceforge.net /MySQLdb.html]

[Accessed: 27-Mar-2016].