Post on 24-Feb-2018
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
1/87
VII
UNIVERSIDAD NACIONAL DE INGENIERAFACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
DISEO DE UN SISTEMA DOMTICO PARA VIVIENDA
INFORME DE SUFICIENCIA
PARA OPTAR EL TTULO PROFESIONAL DE:
INGENIERO ELECTRNICO
PRESENTADO POR:JOS ALEJANDRO LUNA MATOS
PROMOCIN
2006- I
LIMA PER
2015
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
2/87
VII
DEDICATORIA:Dedico este informe a mi
familia y a todo aquel que meapoy para poder llegar a estameta.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
3/87
VII
DISEO DE UN SISTEMA DOMTICO PARA VIVIENDA
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
4/87
VII
SUMARIO
En el presente informe se describe la elaboracin de un prototipo de sistema domtico
orientado a viviendas, que consta de hardware y software, haciendo uso de la plataforma de
desarrollo de hardware libre Arduino, del software de programacin grfica LabView, del
software Data Dashboard para Ipad recopilando los datos en una base de datos relacional
Oracle Express, datos que realimentaran al sistema.
El aporte de este informe se muestra esencialmente en el captulo III donde est el anlisis
de diversas alternativas de solucin en cada uno de los niveles, que fueron determinantes
para el autor para escoger la solucin planteada, que consiste en un sistema que en
hardware est basada en la plataforma de hardware libre Arduino, los sensores y
actuadores que pueden conectarse a esta, las rutinas que permiten la comunicacin serial de
la placa con los dispositivos y con la computadora personal, la aplicacin en LabVIEWy la
aplicacin en Data Dashboard. Se explica en este informe las rutinas utilizadas y
mostrando las interfaces obtenidas para el sistema domtico desarrollado.
El costo de lo implementado es presentado en el captulo 4 junto a los anlisis de las
variables, anlisis terico y anlisis descriptivo.
El propsito de este proyecto es formar una base para un negocio en la implementacin de
viviendas inteligentes y/o negocios con esta tecnologa.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
5/87
VII
NDICE
SUMARIO. V
INTRODUCCIN. 1
CAPTULO I
ANLISIS Y DESCRIPCIN DEL PROBLEMA....2
1.1 Descripcin del Problema. 2
1.2 Objetivos del Trabajo 2
1.3 Evaluacin del Problema. 2
1.3.1 Temperatura.............. 2
1.3.2 Humedad del aire y de suelos... 2
1.3.3 Luminosidad. 2
1.3.4 Seguridad.. 3
1.3.5 Control de utensilios para el confort..... 3
1.4 Limitaciones del Trabajo. 4
1.5 Sntesis del Trabajo.. 4
CAPTULO II
ESTUDIO DE TECNOLOGAS PARA LA IMPLEMENTACIN DE UN SISTEMA
DOMTICO.......... 5
2.1 Antecedentes del Problemas. ... 5
2.2 Bases tericas 5
2.2.1 Caractersticas bsicas del Arduino. 5
2.2.2 Arduino Mega 2560 R3... 6
2.2.3 Dispositivos acoplables a Arduino... 9
2.2.4 Sensores.... 10
2.2.5 Actuadores.... 16
2.2.6 Interfaces... 17
2.2.7 Comunicadores...... 18
2.2.8 Plataforma de desarrollo, lenguaje Arduino. 23
2.2.9 LabVIEW.. 27
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
6/87
VII
2.2.10 Data Dashboard para LabVIEW... 29
2.2.11 Base de Datos Oracle Express Edition.. 34
2.3 Definicin de Trminos 34
CAPTULO III
DISEO DEL SISTEMA DOMTICO, IMPLEMENTACIN DE PROTOTIPO 373.1 Alternativas de solucin 37
3.1.1 A nivel de hardware.. 37
3.1.2 A nivel de programacin de Arduino 37
3.1.3 A nivel de la aplicacin de escritorio.... 37
3.1.4 A nivel de la aplicacin de dispositivo mvil... 38
3.2 Solucin al problema. 40
CAPTULO IV
ANLISIS Y PRESENTACIN DE RESULTADOS.. 584.1 Anlisis descriptivo... 58
4.2 Anlisis terico de los datos y resultados obtenidos en relacin con las bases
tericas de la investigacin....... 58
4.3 Anlisis de las variables y resumen de apreciaciones relevantes.. 58
4.4 Presupuestos y tiempo de ejecucin.. 59
CONCLUSIONES Y RECOMENDACIONES.. 60
ANEXO A
CDIGO DEL PROGRAMA LABVIEW_VISA_ORACLE.INO.. 61
ANEXO B
IMPRESIN DEL PANEL DE CONTROL DEL PROYECTO..73
BIBLIOGRAFIA... 78
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
7/87
VII
NDICE DE FIGURAS
Figura 2.1 Imagen Frontal de la Placa Arduino Mega 6
Figura 2.2 Imagen Posterior de la Placa Arduino Mega 6
Figura 2.3 Carpetas de Bibliotecas de Arduino 10
Figura 2.4 Sensor de Gas y diagrama 11
Figura 2.5 Mdulo PIR Sensor de Movimiento 12
Figura 2.6 Sensor Foto electrnico 12
Figura 2.7 Sensores DHT11 y DHT22 13
Figura 2.8 Mdulo Sensor de Humedad de Suelo 13
Figura 2.9 Mdulo Sensor de Lluvia YL-83 14
Figura 2.10 Mdulo de medicin de corriente ACS712 15
Figura 2.11 Mdulo sensor de distancia HC-SR04 15
Figura 2.12 Termistor Anlogo NTC 103 16
Figura 2.13 Mdulos Relevadores 16
Figura 2.14 Mdulo LED 17
Figura 2.15 Mdulo Timbre 17
Figura 2.16 Mdulo teclado 18
Figura 2.17 Mdulo Pantalla LCD 18
Figura 2.18 Mdulo Ethernet W5100 19
Figura 2.19 Mdulo WiFi 20
Figura 2.20 Mdulo WiFi vista frontal y posterior 20
Figura 2.21 Shield XBee Pro y Mdulo XBee Pro 21
Figura 2.22 Mdulo Bluetooth HC-06 21
Figura 2.23 Mdulo Infrarojo 22
Figura 2.24 Mdulo RS 485 Comunicacin Serial 23
Figura 2.25 Entorno de desarrollo Arduino 24
Figura 2.26 Opciones del Men Herramientas 25
Figura 2.27 Opciones de Sub Men Puerto 26
Figura 2.28 Botones Comunes 26
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
8/87
VII
Figura 2.29 rea de Edicin 27
Figura 2.30 rea de Mensajes 27
Figura 2.31 Consola de Texto 27
Figura 2.32 Panel frontal ejemplo 29
Figura 2.33 Diagrama de bloques ejemplo 29Figura 2.34 Data Dashboard para LabVIEW 30
Figura 2.35 Men indicadores Data DashBoard 30
Figura 2.36 Paleta de Indicadores 31
Figura 2.37 Seleccionando la variable a conectar 31
Figura 2.38 Seleccionando el Servidor 32
Figura 2.39 Seleccionando la Variable Compartida 32
Figura 2.40 Men de Propiedades de Indicador 33
Figura 2.41 Ejemplo de Panel de Control (Dashboard) finalizado sin ejecutar 33Figura 2.42 Dashboard en ejecucin 33
Figura 3.1 Pantalla de Desarrollo MIT APP Inventor 2 38
Figura 3.2 Diagrama de Bloques MIT APP Inventor 2 39
Figura 3.3 Software Creado e Instalado en Smartphone 39
Figura 3.4 Diagrama de Bloques de Sensores (Opcin 0 : Temperatura) 45
Figura 3.5 Objetos Visuales Parte 1 Sensores 48
Figura 3.6 Objetos Visuales Parte 2 Luces y Electrodomsticos 49
Figura 3.7 Diagrama de Bloques de Luces 50
Figura 3.8 Diagrama de Bloques de Persianas 52
Figura 3.9 Diagrama de bloques de Electrodomsticos 53
Figura 3.10 Diagrama de bloques de un Electrodomstico 53
Figura 3.11 Diagrama de bloques de luces RGB inicial 54
Figura 3.12 Control de colores y paleta de colores 54
Figura 3.13 Diagrama de bloques de control automtico RGB parte 1 55
Figura 3.14 Diagrama de bloques RGB automtico parte 2 55
Figura 3.15 Diagrama de bloques generacin de archivo salida.txt 56
Figura 3.16 Dashboard Final 57
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
9/87
VII
PRLOGO
Las personas comnmente suelen pasar por alguna de las siguientes situaciones: se olvidan
de apagar las luces al dormir, salen sin estar seguros de haber apagado la hornilla de la
cocina a gas, la plancha de cabello o de ropa, salen de viaje y no tienen a una persona que
cuide el jardn, llegan a casa y encuentran una inundacin porque alguien olvido cerrar la
llave del bao, salen de viaje y tienen que dejar las luces prendidas para dar la apariencia
de que hay alguien en casa a fin evitar que ladrones identifiquen la casa como vaca , o
tienen un familiar que este con alguna dificultad de no poder alcanzar los interruptores.
La vivienda se ha convertido en una extensin de nosotros mismos quienes ya estamos
habituados al uso de tecnologa y de los mandos a distancia, antes debamos acercarnos a
activar el televisor o cambiar de canal, ahora para algunos nios eso debe parecerles raro.
El poder tener el control de nuestra vivienda en la palma de la mano ya es algo posible y
existen soluciones que pueden adquirirse en el mercado, pero muchas de estas soluciones
escapan al presupuesto de la mayora, este trabajo propone una solucin ms econmica.
Para el desarrollo del presente trabajo se ha implementado un prototipo en hardware y
software, el cual permite en forma prctica experimentar el control inteligente de una
vivienda.
Un agradecimiento muy especial a mi asesor Mauricio Glvez Legua quien me orient y
alent en el aprendizaje del manejo de microcontroladores, brindndome la oportunidad de
colocar en un solo proyecto conocimientos que aprend durante el programa de titulacin y
conocimientos adquiridos previamente.
.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
10/87
1
INTRODUCCIN
Durante el programa de titulacin profesional por actualizacin de conocimientos, se
programaron cuatro asignaturas, dos de las cuales marcaron de gran manera en la eleccin
del tema:
Asignatura 1: Aplicaciones Industriales Basadas en Microcontroladores
Asignatura 2: Aplicaciones de Automatizacin usandoLabVIEW.
El tema cuyo ttulo es Diseo De Sistema Domtico Para Vivienda incluso podra
abarcar temas de la asignatura Inteligencia Artificial aplicada a Sistemas de Control,pero se recurre a los conocimientos del autor en el campo de Administracin de Base de
Datos a fin de explotar los datos obtenidos del sistema. En la primera asignatura se
desarrollaron aplicaciones con microcontroladores, con lenguaje ensamblador, lenguaje C
y tambin se vio la plataforma de desarrollo Arduino, es precisamente Arduino, la
plataforma de hardware que se usar para el planteamiento de la solucin. En la segunda
asignatura se present la herramienta de programacin LabVIEW que servir para
establecer la Interfaz Hombre Mquina conocida como HMI por sus siglas en ingls, con
esta herramienta se realizan sistemas de supervisin, control y adquisicin de datos ms
conocido por su acrnimo en ingls SCADA (Supervisory Control And Data Acquisition).
Las limitaciones con las que el prototipo se encuentra al momento de elaboracin del
informe estn relacionadas con la trasmisin de datos desde los sensores hacia la placa
Arduino en cuanto a la distancia, pero esto es solo una motivacin para poder profundizar
en este tema a futuro.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
11/87
2
CAPTULO I
ANLISIS Y DESCRIPCIN DEL PROBLEMA
1.1
Descripcin del problema
La necesidad de tener control de la vivienda de manera centralizada, remota e inteligente.
1.2 Objetivos del trabajo
El objetivo de este trabajo es disear, simular y elaborar un prototipo de un sistema
domtico orientado a viviendas, haciendo uso de la tecnologa Arduino.
1.3
Evaluacin del problemaLas variables a controlar en una vivienda de manera automtica son las descritas en los
siguientes apartados.
1.3.1 Temperatura
La temperatura de la vivienda debe ser estable en algunos puntos, se debe identificar los
sensores a usar y el actuador que elevar o descender la temperatura en caso ser necesario.
1.3.2 Humedad del aire y de suelos
La humedad del aire y de suelos debe ser limitada entre valores mximos y mnimos, se
debe identificar los sensores a usar y el actuador que elevar o descender la humedad encaso ser necesario. La humedad en exceso puede causar problemas de salud, as como la
proliferacin de hongos en las ropas, en cambio en los jardines o maceteros un control de
humedad de suelos podra evitar que se sequen las plantas, que se malogren por exceso de
agua o que se rieguen innecesariamente, controlar esta humedad podra significar un
ahorro en el consumo de agua.
1.3.3 Luminosidad
Ya sea luz natural o artificial, la luz permite a las personas desarrollar actividades como
poder desplazarnos dentro de las diversas habitaciones de la vivienda, la luz ayuda a iniciarel da, pero en exceso podra causar malestar, horas sin descanso adecuado, gastos de
energa innecesarios, tambin puede ser de ayuda para evitar dar la impresin de que la
casa est sola.
1.3.4 Seguridad
La seguridad de una vivienda puede controlarse usando detectores de presencia, los cuales
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
12/87
3
permiten detectar si una persona est en el interior o alrededor de la vivienda, pudiendo
activar una cmara de video, alguna alarma sonora, luminosa, enviando un correo
electrnico o comunicacin para una revisin posterior.
Los simuladores de presencia hacen creer a las personas en el exterior de la vivienda que la
misma no se encuentra vaca basado en la actividad de estos simuladores los cuales puedenprogramarse en horarios que varen a fin de no ser detectables desde el exterior por
comportamientos repetidos.
Los detectores de humo y de calor sirven para poder detectar los incendios de manera
rpida y alertar y/o activar aspersores, alarmas sonoras.
Los detectores de gas ubicados en la cocina permiten detectar fugas de gas propano y
evitar incendios.
Los detectores de inundacin ubicados en los baos o donde existan lavaderos alertan
sobre aniegos en el interior de la vivienda.Los medidores de concentracin de monxido de carbono ubicados en los
estacionamientos evitaran la asfixia de alguna persona en este recinto.
El acceso a cmaras IP, cuyas imgenes pueden ser vistas desde la red ante cualquier
alerta dada por un sensor brindar la informacin sobre los interiores o exteriores de la
vivienda
1.3.5 Control de utensilios para el confort
Existe una serie de aparatos o utensilios de encendido mecnico elctrico como son:
-
Olla arrocera con enchufe ms una llave mecnica
- Hervidores de agua con enchufe y algunas con llave mecnica.
- Cafeteras con enchufe y botn de encendido mecnico.
- Tostadoras con enchufe y palanca de encendido mecnico.
- Gofrera o Waflera con enchufe y botn de encendido mecnico
- Licuadoras con enchufe y perilla de eleccin de velocidad.
- Dispositivos de sonido, radios con enchufe y encendido en perilla.
- Ventilador con enchufe y botn o perilla de seleccin de intensidad.
- Calefactores con enchufe y botn de seleccin de intensidad.
Estos dispositivos no son dependientes de un panel de control electrnico de tipo tctil o
que solo funcionan cuando son activados manualmente adicionalmente a la alimentacin
de con un enchufe, como si puede serlo el horno a microondas, las lavadoras y los
televisores.
En el primer grupo puede controlarse parcialmente mediante un relevador y un dispositivo
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
13/87
4
de control como un microcontrolador, el segundo grupo ya posee un microcontrolador de
tecnologa usualmente cerrada, que no permite el control desde otro dispositivo
electrnico.
1.4
Limitaciones del trabajo
El trabajo se restringe a un prototipo, utilizado en un rea fsica pequea, como para serusado en una maqueta, pudiendo al tiempo de la presentacin ampliarse el rango de
distancia mediante uso de comunicacin serial usando MAX485, el prototipo no
profundiza en el tema de seguridad pues existen diversos productos en el mercado que
trabajan independientemente a sistemas domticos.
1.5
Sntesis del trabajo
En este trabajo se ha realizado una investigacin de la plataforma Arduino yLabVIEWcon
el fin de implementar un prototipo de sistema domtico para una vivienda, accesible en
costos a fin de que esta investigacin sirva de punto de partida para incursionar en elnegocio de implementacin de viviendas inteligentes.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
14/87
5
CAPTULO II
ESTUDIO DE TECNOLOGAS PARA LA IMPLEMENTACIN DE UN SISTEMADOMTICO
2.1 Antecedentes del problema
Domtica es una traduccin directa de la palabra domotique, trmino acuado por el
periodista francs Bruno de Latouren 1984 para referirse a una vivienda inteligente. Se
entiende por domtica a un sistema capaz de automatizar una vivienda (domusen latn =
casa) u otro recinto aportando servicios de gestin energtica, seguridad bienestar y
comunicacin que pueden estar integrados por medio de redes interiores y exteriores de
comunicacin, cableadas o inalmbricas. Se podra definir como la integracin de la
tecnologa en el diseo inteligente de un recinto. [1][2]
En este momento ya existen en el Per empresas que estn brindando servicios de
instalacin de viviendas inteligentes, con productos elaborados en pases con mayor
desarrollo tecnolgico, lo que agrega costos para su implementacin y aleja del comn de
personas el poder acceder a una vivienda inteligente y los beneficios que sta conlleva, sin
embargo, el desarrollo de software y hardware libre as como el descenso del precio de las
microcomputadoras permite visualizar y plantear una solucin econmica para hacer
accesible esta tecnologa a ms personas a un menor costo, abriendo paso a posibles
nuevas empresas que se dediquen a cubrir esta necesidad.
2.2 Marco Terico
La plataforma de hardwarelibre Arduino fue creada en 2005, basada en una placa con un
microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica
en proyectos multidisciplinares.
2.2.1 Caractersticas bsicas del ArduinoEn estos prrafos se describirn los principales componentes de una placa Arduino y el
entorno en el que se elabora el cdigo, es decir la parte hardware y software que actan
sobre Arduino.
La plataforma de hardware libre Arduino, es libre tanto su diseo como su distribucin
puede utilizarse para el desarrollo de cualquier proyecto sin haber adquirido licencia
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
15/87
6
alguna. Existen diversos tipos de placas oficiales creadas por la comunidad Arduino y las
no oficiales creadas por terceros con similares caractersticas. En la placa Arduino es
donde se conectan los sensores, actuadores y otros elementos necesarios para comunicar el
usuario con el sistema.
En el proyecto se han utilizado las placas ArduinoUnoR3 en un principio y para pruebasindividuales de nuevos componentes y para la implementacin final la placa ArduinoMega
2560 R3 que se describe a continuacin.
2.2.2 Arduino Mega 2560 R3
En la figura 2.1 se muestra la imagen en la cual se incluyen los elementos ms importantes
que componen la placa Arduino Mega R3 que son descritos de arriba a abajo y de
izquierda a derecha [3]:
Figura 2.1 Imagen Frontal de la Placa Arduino Mega.
Figura 2.2 Imagen Posterior de la Placa Arduino Mega
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
16/87
7
Referencia para pines analgicos (AREF)
Este terminal sirve para indicar la tensin de referencia para entradas analgicas. Se utiliza
con la funcin analogReference().
Pines de tierra (GND)
El terminal tiene como funcin ser masa del circuito para los otros pines, es decir es latensin de referencia de 0V.
Pines digitales de entrada y salida
En estos terminales o pines se conectan las patillas de datos de sensores y actuadores.
Desde ellos se puede leer la informacin del sensor o activar el actuador. En la placa se
encuentran 54 pines digitales que pueden utilizarse como entrada o salida con las funciones
pinMode(), digitalWrite(), y digitalRead() operan a 5 voltios. Cada pin proporciona o
recibe como mximo 40mA y disponen de una resistencia pull-up (desconectada por
defecto) de 20-50 k ciertos pines son reservados para determinados usos: Comunicacin Serial:
o0(RX0) y 1(TX0).
o19(RX1) y 18(TX1).
o17(RX2) y 16(TX2).
o15(RX3) y 14(TX3).
Los pines listados son utilizados para recibir (RX) y trasmitir (TX) datos serie, estn
directamente conectados a los pines serie del microcontrolador, utilizando estos pines se
podr conectar con otras placas.
Interrupciones externas:
o
2 interrupcin 0
o 3 interrupcin 1
o 21 interrupcin 2
o 20 interrupcin 3
o
19 interrupcin 4
o 18 interrupcin 5
Estos pines pueden ser configurados para activar interrupciones.
PWM: 2 al 13 y del 44 al 46. Proporcionan una salida de 8 bits en modo PWM.
SPI:
o 50 MISO
o 51 MOSI
o 52 SCK
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
17/87
8
o 53 SS
Estos pines soportan la biblioteca de comunicacin de dispositivos SPI.
LED: 13. Este pin est conectado con un led de la placa. Cuando se le asigne un valor
HIGHse encender, en cambio s se le deja enLOWestar apagado.
TWI:o
20 SDA
o 21 SCL
La placa Arduino soporta comunicacin TWI usando la biblioteca wire.
Pines de energa
IOREF
Este pin en la placa Arduino provee de voltaje de referencia con el cual el
microcontrolador opera. Un shieldconfigurado correctamente puede leer el voltaje de pin
IOREF y selecciona la fuente de poder apropiada o habilita el traductor de voltaje en lasalida para trabajos con 5 V o con 3.3 V.
Pulsador reset y terminal reset
Al utilizar este pulsador se puede reiniciar la ejecucin del cdigo del microcontrolador. Se
puede imitar el funcionamiento del pulsador Reset suministrando un valor LOW(0V) al
terminalResetpara reiniciar el microcontrolador.
Pin de 3.3V
El propsito de este pin es suministrar 3.3V a los dispositivos que lo necesiten con una
corriente mxima de 50mA. Es generada gracias al chip FTDI integrado en la placa.
Pin de 5V
El pin proporciona una tensin de 5v del regulador de la placa. El regulador es necesario
puesto que la placa Arduino puede ser alimentada con distintos voltajes.
Pin de Vin
El pin Vin puede ser utilizado para recibir el voltaje de entrada a la placa cuando se usa
una fuente de alimentacin externa tomando el valor que est siendo suministrado, no
teniendo en cuenta la conexin USB.
Pines analgicos
La placa Arduino Mega 2560 contiene 16 pines de entrada analgicos. Los elementos que
se conecten aqu suelen tener mayor precisin que los digitales pero su uso requiere de una
lgica levemente mayor.
Conector USB
En la placa Arduino Mega utiliza el tipo B hembra con lo cual se necesitar un cable tipo B
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
18/87
9
macho tipo A macho, aunque se pueden utilizar otros este es el ms extendido que deber
conectarse a un conector tipo A hembra (por ejemplo a un ordenador o al cargador de un
mvil). La placa se puede alimentar con la tensin de 5V que le proporciona el conector.
ICSP (In Circuit Serial Programming)
Es un conector utilizado en los dispositivos PIC para programarlos sin necesidad de tenerque retirar el chip del circuito del que forma parte.
Microcontrolador ATmega2560
El microcontrolador es el elemento ms importante de la placa, es donde se instala y
ejecuta el cdigo que se haya diseado, ha sido creado por la compaa Atmel, tiene un
voltaje operativo de 4.5V a 5.5V, contiene 86 pines digitales de entrada y salida, este
microcontrolador dispone de 256 KB de memoria flash (de los cuales 8 KB son utilizados
por el bootloader). 8 KB de SRAM, en la memoria flash se instala el programa a ejecutar.
El bootloader[4] es el encargado de preparar el microcontrolador para que pueda ejecutarel programa, tambin tiene una memoria EEPROM de 4KB que puede ser leda o escrita
con la biblioteca EEPROM.
En la parte de procesamiento dispone de un reloj de 16Mhz.
Pin de fuente de alimentacin externa
La placa Arduino tambin puede ser alimentada mediante corriente continua suministrada
por el conector jack de 3.5mm que podr recibir entre 7 y 12V, en el proyecto se usar una
fuente de 12 V de 3.2 Amp.
2.2.3 Dispositivos acoplables a Arduino
Para conseguir las caractersticas de un sistema domtico es necesario que adems la placa
del microcontrolador que controle el sistema se tenga a disposicin sensores que puedan
recoger datos sobre la situacin de la vivienda. Dependiendo de estos datos el sistema
domtico debe ser capaz de comunicarse con los actuadores para mejorar la situacin de la
misma. Tambin deben existir elementos con los que el usuario pueda comunicarse con el
sistema y pueda hacer los cambios oportunos manualmente.
Los dispositivos se conectan mediante cables a la placa Arduino, algunos de ellos disponen
de bibliotecas que se debern adjuntar al programa para poder usar las utilidades que
contengan. Para ello se aade la carpeta de la biblioteca en la carpeta libraries del
entorno de desarrollo de Arduino,
Al principio del cdigo del sketch se incluye la biblioteca con la lnea:
#include
Los mtodos de sensores y actuadores digitales, al ser utilizados, se debe tener en cuenta
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
19/87
10
que solo se tienen dos posibles valores, HIGH representa el nivel alto y LOW el nivel bajo,
en la figura 2.3 se puede observar la ubicacin de las carpetas de bibliotecas.
Figura 2.3 Carpetas de Bibliotecas de Arduino`
En el caso de los analgicos su uso es levemente ms complejo pero tambin ms
configurable ya que tiene que leerse/escribirse un voltaje de 0 a 5 voltios que se representa
en 10 bits (lectura) o en 8 bits (escritura), es decir la tensin puede tener 1024 (lectura) o
256 (escritura) valores distintos.
2.2.4 Sensores
Un sensor es un dispositivo capaz de detectar magnitudes fsicas o qumicas, llamadas
variables de instrumentacin, y transformarlas en variables elctricas. Las variables de
instrumentacin pueden ser por ejemplo: temperatura, intensidad lumnica, distancia,
aceleracin, inclinacin, desplazamiento, presin, fuerza, torsin, humedad, movimiento,
pH, etc. Una magnitud elctrica puede ser una resistencia elctrica (como en un detector de
temperatura resistivo), una capacidad elctrica (como en un sensor de humedad), una
corriente elctrica (como en un fototransistor), una tensin elctrica (como en un
termopar), etc.
Los sensores siempre que estn activados estarn tomando continuamente la situacin
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
20/87
11
actual de una habitacin y es el servidor o la placa Arduino quien leer esta informacin y
decidir cmo actuar. Pueden ser digitales o analgicos.
Los sensores digitales tienen que ser inicializados como pin de salida con el mtodo
pinMode(numeroDePin, OUTPUT). Para poder obtener una lectura de los datos se usa el
mtodo digitalRead (numeroDePin). Los sensores analgicos no requieren esta fase deinicio y para leer lo se har con analogRead(numeroDePin). Es recomendable asignar a una
variable la lectura recibida por los mtodos para evitar tener que llamar a la misma funcin
en caso de necesitarse de nuevo.
Los sensores utilizados para la seguridad de la vivienda deberan indicar el evento
mediante un actuador (por ejemplo un timbre o LED) o algn elemento de comunicacin
(como un correo electrnico o un mensaje de texto al mvil). Tambin podra almacenarse
el suceso en un fichero del servidor o en alguna base de datos relacional en alguna tabla.
A continuacin se describen algunos sensores a tener en cuenta en un sistema domtico.a)Sensor de gas
El detector de gas hace que la vivienda gane en seguridad si cuando detecta un nivel alto
de gas (lectura HIGH) el sistema avisa a la persona. Sera importante que el sistema
pudiera desconectar la mayor parte de red elctrica posible de la vivienda. En la figura 2.4
se observa el mdulo as como el diagrama correspondiente al mismo.[5]
Figura 2.4 Sensor de Gas y diagrama.
b)
Mdulo PIR
Otro elemento que interviene en la seguridad cuando no hay nadie en casa es un detector
de movimiento, en caso de detectar suficiente movimiento se leer un nivel alto, tambin
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
21/87
12
se puede utilizar para el confort del ser humano, en caso de detectar movimiento en la
habitacin encender por ejemplo las luces o la calefaccin dependiendo tambin de la
lectura responsable de los dos casos. El nombre PIR se debe a Infrarrojo Piroelctrico.
Figura 2.5 Mdulo PIR Sensor de Movimiento
c)Sensor de luminosidad
Este dispositivo es capaz de detectar el nivel de intensidad de luz que hay en la habitacin
de forma analgica. El sistema leer el voltaje y en caso de detectar un nivel bajo de luz
podra encender las luces de la habitacin, esto sera mejor si est unido a un sensor de
movimiento. En el sistema desarrollado se elaborara con un LDR (Ligth Dependent
Resistor) como el mostrado en la figura 2.6.
Figura 2.6 Sensor Foto electrnico
d)Mdulo de humedad y temperatura
Algunos dispositivos son capaces de obtener varias mediciones en el mismo mdulo, los
mdulos de la figura 2.7 corresponden a un DHT11 y a un DHT22 capaces de representar
digitalmente la humedad ambiental medida en porcentaje adems de la temperatura en
grados centgrados, estos sensores tienen una precisin decimal y disponen de su propia
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
22/87
13
biblioteca que contiene los mtodos para recoger sus mediciones.
Figura 2.7 Sensores DHT11 y DHT22
e)
Mdulo de humedad del suelo
A fin de poder controlar la humedad del suelo se utiliza el mdulo HL-69, mostrado en la
figura 2.8 que resulta ser un mdulo que utiliza la conductividad entre dos terminales para
determinar ciertos parmetros relacionados al agua, lquidos y humedad, consiste en dos
placas separadas entre s por una distancia determinada. Ambas placas estn recubiertas
de una capa de material conductor, si existe una conductividad en el suelo se creara un
puente entre una punta y otra, lo que es detectado por el circuito de control con un
amplificador operacional que es el encargado de transformar la conductividad registrada a
un valor analgico que podr ser ledo por el Arduino. Este circuito de control tambin es
el que se usa en el mdulo de deteccin de lluvia YL-83 mostrado en la figura 2.9 que no
se utilizar en este proyecto.
Figura 2.8 Mdulo Sensor de Humedad de Suelo
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
23/87
14
Figura 2.9 Mdulo Sensor de Lluvia YL-83
f)
Mdulo sensor de corriente
El mdulo sensor de corriente ACS712 mostrado en la figura 2.10, es producido por
Allegro Microsystems tericamente basado en el efecto Hall, es decir usa el campo
magntico de la corriente a medir, entregando un voltaje lineal proporcional a la corriente
aplicada, este sensor proporciona soluciones econmicas y exactas para la deteccin de lacorriente alterna o corriente continua en los sistemas industriales, comerciales o de
comunicaciones fcil de integrar.
Las caractersticas principales del mdulo sensor de corriente son:
Ancho de banda mximo : 80 Khz
Resistencia : 1.2 M
Aislacin : 2.1 KVrms
Tensin de Alimentacin : 5 V
Corriente de alimentacin : 10 mA
Error : 1,2%
Rango de medicin [A]: (5, 5) y (20, 20)
Rango de la seal de salida : 0V-5 V
Transiente de corriente soportado : 100 A durante 100 milisegundos
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
24/87
15
Figura 2.10 Mdulo de medicin de corriente ACS712
g)
Mdulo sensor de distanciaEl sensor de distancia ultrasnico HC-SR04 mostrado en la figura 2.11 permite medir
distancias desde los 3 centmetros hasta los 3 metros sin ningn contacto fsico, lo cual es
muy til en una variedad de aplicaciones desde robtica y sistemas de alarma hasta
aplicaciones industriales as como en proyectos electrnicos diversos.
Figura 2.11 Mdulo sensor de distancia HC-SR04
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
25/87
16
h)
Sensor de temperatura
En caso de utilizar calefaccin o aire acondicionado el sensor de temperatura puede ayudar
a reducir el coste indicado en el recibo de la luz y mejorar la sensacin de bienestar de las
personas. Cuando se detecte cierto umbral de temperatura podra apagarse/encender o
modificar la potencia de la calefaccin.En la figura 2.12 se muestra el termistor analgicoNTC 103, es decir, un sensor resistivo de temperatura. Su funcionamiento se basa en la
variacin de la resistividad que presenta un semiconductor con la temperatura.
Figura 2.12 Termistor Anlogo NTC 103
2.2.5 Actuadores
Un actuador es un dispositivo capaz de transformar energa elctrica en la activacin de un
proceso con la finalidad de generar un efecto sobre un proceso automatizado. Su funcin
en un sistema domtico es la de cambiar la situacin de la vivienda tras un evento
ocasionado al hacer por ejemplo una lectura de un sensor que debe ser tratada.
a)Mdulo relevador
Un relevador funciona como un interruptor controlado por un circuito elctrico en el que,
por medio de una bobina y un electroimn, se acciona un juego de uno o varios contactos
que permiten abrir o cerrar otros circuitos elctricos independientes. Este tipo de mdulos
permite activar actuadores como por ejemplo el de una persiana, la puerta del garaje, el de
una bombilla o el de algn electrodomstico.
Figura 2.13 Mdulos Relevadores
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
26/87
17
2.2.6 Interfaces
Las interfaces son dispositivos cuyo principal objetivo es ofrecer comunicacin entre el
sistema y el ser humano. Consisten en elementos visuales y/o auditivos que avisan de
eventos o tctiles para poder causarlos. En los siguientes prrafos se nombran y describen
algunos de estas interfaces.a)Mdulo LED
La funcin de este dispositivo es avisar mediante un diodo emisor de luz la ocurrencia de
un evento que puede requerir su atencin. Pueden utilizarse de forma digital
(encendido/apagado) o de forma analgica si se quiere variar la intensidad de la luz, en la
figura 2.14 se muestra un mdulo led, el cual consiste de un LED y una resistencia segn
se puede apreciar.
Figura 2.14 Mdulo LED
b)
Mdulo timbre
En la figura 2.15 se aprecia un mdulo timbre el cual es capaz de producir sonidos, es un
mdulo til para avisar sobre un problema grave en la vivienda dado que la sensibilidad
auditiva es mayor que la visual.
Figura 2.15 Mdulo Timbre
c)Mdulo teclado
El mdulo teclado es til para poder comunicarse con el sistema y crear eventos, se puede
utilizar teclados o botones, por ejemplo la funcin de un botn presionado al salir de casa
podra ser apagar luces, la calefaccin y activar el sistema de seguridad, tambin puede ser
usado para configurar el valor deseado de una variable como la temperatura, humedad o
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
27/87
18
iluminacin, en la figura 2.16 se muestra un teclado que es compatible con la placa
Arduino.
Figura 2.16 Mdulo teclado
d)
Mdulo visualizador
Con el mdulo visualizador se puede conocer la situacin de la vivienda y de la ocurrencia
de eventos que enve el sistema en forma de texto sobre una pantalla.
Figura 2.17 Mdulo Pantalla LCD
2.2.7 Comunicadores
Los comunicadores son los elementos que permiten la comunicacin entre distintas placas
Arduino y el servidor o incluso con electrodomsticos del hogar. El medio por el que
circula la informacin puede ser areo (modulacin de ondas electromagnticas) o por
cable teniendo sus ventajas e inconvenientes. Normalmente estos dispositivos tendrn a
disposicin bibliotecas con funciones ya implementadas que facilitar su manejo. Si el
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
28/87
19
medio es el aire el sistema total es ms barato puesto que se evita tener que cablear las
habitaciones, adems de esto se consigue que sean estticamente mejor. En cambio las
transmisiones son menos seguras y puede haber problemas por el ruido ocasionado de
otros elementos que utilizan el aire como forma de comunicacin. Adems los obstculos
que haya entre emisor y receptor van a reducir la distancia de transmisin. En los sistemasque utilizan cables para enviar datos se deben tener en cuenta su coste de instalacin
adems de estudiar si nos gustara estticamente ese cableado en la habitacin, pero esto
puede suplirse sabiendo que las transmisiones son ms robustas y seguras.
a)
Mdulo Ethernet
Este mdulo es una placa ,mostrado en la figura 2.18 que se acopla encima de la placa
Arduino y permite establecer conexiones a internet mediante el estndar Ethernet que
utiliza el protocolo TCP/IP. Puede ser conectada a un routerutilizando un cable RJ45 y le
asignar una direccin IP. Con esta direccin se puede abrir conexiones entre el servidor yla placa o de placa a placa para enviar flujos de datos. Hay distintos chips y cada uno
utiliza sus propias bibliotecas. Es importante tener en cuenta que en el cdigo de la placa la
configuracin del mdulo Ethernet ha de ser correcta. Se le debe asignar la direccin IP
que le proporcione el router en caso de que utilice DHCP. Tambin hay que poner una
direccin MAC nica para que el router conozca los distintos dispositivos conectados.
Adems se puede abrir un puerto mediante el que escuchar peticiones. Esta configuracin
se ha de realizar en la funcinsetup(), es decir en la fase de inicio de la placa.
Figura 2.18 Mdulo Ethernet W5100
La funcin principal del mdulo Ethernet es leer peticiones en HTTP configurado al
puerto 80. Para tomar la peticin se usa la funcin serviceRequest() que devuelve una
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
29/87
20
cadena con toda la parte del protocolo ya tratada, es decir, se obtiene slo la ruta del
objeto.
b)Mdulo Wi-Fi
Si se desea utilizar el protocolo TCP/IP pero se quiere evitar tener que cablear la
habitacin se puede utilizar este mdulo tambin acoplable a la placa Arduino. Aunqueutiliza otra biblioteca los mtodos son equivalentes al del mdulo Ethernet. La frecuencia
de la seal ronda los 2.4GHz. En la figura 2.19 se muestra un mdulo WiFi
Figura 2.19 Mdulo WiFi
En la figura 2.20 se muestra una vista frontal y posterior de esta placa tambin conocida
como Shield WiFi.
Figura 2.20 Mdulo WiFi vista frontal y posterior
c)Mdulo XBee
Este elemento se comunica de forma inalmbrica utilizandoZigBeeque es un conjunto de
protocolos de alto nivel de comunicacin inalmbrica para su utilizacin con radiodifusin
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
30/87
21
digital de bajo consumo. Su objetivo son las aplicaciones que requieren comunicaciones
seguras con baja tasa de envo de datos y que necesiten un bajo consumo. Utiliza unas
frecuencias comprendidas entre 865MHz y 2.4GHz
Figura 2.21 Shield XBee Pro y Mdulo XBee Pro
d)
Mdulo Bluetooth
En el mdulo se utiliza el protocolo de comunicaciones Bluetooth que fue diseado
especialmente para dispositivos de bajo consumo que requieren corto alcance de emisin y
basados en transceptores de bajo costo. Opera mediante un enlace por radiofrecuencia en la
banda ISM de los 2,4 GHz. Su uso es adecuado cuando puede haber dos o ms dispositivos
en un rea reducida sin grandes necesidades de ancho de banda.
Figura 2.22 Mdulo Bluetooth HC-06
El protocoloBluetooth tiene la ventaja de simplificar el descubrimiento y configuracin de
los dispositivos, ya que stos pueden indicar a otros los servicios que ofrecen, lo que
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
31/87
22
redunda en la accesibilidad de los mismos sin un control explcito de direcciones de red,
permisos y otros aspectos tpicos de redes tradicionales. El WiFiutiliza el mismo espectro
de frecuencia queBluetoothcon una potencia de salida mayor que lleva a conexiones ms
slidas.
e)
Mdulo infrarrojoLa utilizacin de los rayos infrarrojos son otra forma de comunicacin sin medio fsico,
este tipo de comunicacin consigue tener menos interferencias debido a la mayor
frecuencia del espectro electromagntico en la que trabaja. Normalmente no es un mtodo
de comunicacin entre placas Arduino sino que es utilizado para contactar con los
electrodomsticos del hogar.
Figura 2.23 Mdulo Infrarojo
f)
Puerto serie
Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales,
frecuentemente utilizado por computadores y perifricos, donde la informacin es
transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que
enva varios bits simultneamente, es otro mtodo de comunicacin cableada que se puede
usar para la comunicacin entre un PC y una placa, o entre placas. El puerto serie consiste
en un canal de recepcin y otro de transmisin haciendo que el punto de recepcin de un
dispositivo est conectado con el de transmisin del otro dispositivo. Todas las placas
Arduino disponen de al menos un puerto serie compuesto por los pines digitales 0(rx) y
1(tx). Al conectar un cable de USB de la placa al ordenador se estar aprovechando este
puerto serie en el que se debe configurar la velocidad de datos en bits por segundo
(baudios) para la transmisin de datos. Para iniciar el puerto serie y establecer los baudios
se utiliza la funcin begin(speed) de la biblioteca Serial. Se recomienda establecer el
puerto serie a 9600 baudios. Esta fase se hace en la funcin de configuracin de la placa
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
32/87
23
setup(). La placa Arduino tiene un buffer 3de recepcin de datos de 128 bytes. Con la
funcin available() se puede conocer cuntos caracteres (bytes) hay disponibles en el
buffer. En caso de que haya datos en el buffer la funcin read() devolver el primer
carcter (byte) guardado en el puerto serie y lo retirar del buffer. En caso de que no haya
datos devolver un -1. Es posible crear nuevos puertos serie con la bibliotecaSoftwareSerial.hen la que se tiene que especificar los pines de recepcin y transmisin de
datos. La interface serial RS485 [7] estndar trasmite seales balanceadas diferenciales,
esto tiene una fuerte disponibilidad anti-interferencia en el modo comn, permitiendo a un
conductor trasmisor de par trenzado en un nmero de dispositivos conectados. La distancia
de comunicacin es de hasta 1200 metros, la velocidad es de hasta 20 Mbps, y que puede
ser utilizada en ambientes de alto ruido, tales como la automatizacin industrial.
Figura 2.24 Mdulo RS 485 Comunicacin Serial
2.2.8 Plataforma de desarrollo, lenguaje Arduino
La plataforma Arduino tiene un lenguaje propio que est basado wiring e implementado
en C/C++ y por ello soporta las funciones del estndar C y algunas de C++. Sin embargo,
es posible utilizar otros lenguajes de programacin y aplicaciones populares en Arduino
como Java, Processing, Python, Mathematica, Matlab, Perl, Visual Basic, etc. Esto es
posible debido a que Arduino se comunica mediante la transmisin de datos en formato
serie que es algo que la mayora de los lenguajes anteriormente citados soportan. Para los
que no soportan el formato serie de forma nativa, es posible utilizar software intermediario
que traduzca los mensajes enviados por ambas partes para permitir una comunicacin
fluida. Es bastante interesante tener la posibilidad de interactuar con Arduino mediante esta
gran variedad de sistemas y lenguajes, puesto que dependiendo de cuales sean las
necesidades del problema que se resolver se puede aprovechar la gran compatibilidad de
comunicacin que ofrece.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
33/87
24
El entorno de desarrollo de Arduino es sencillo e intuitivo adems puede descargarse
gratuitamente desde su pgina oficial para distintos sistemas operativos. Ha sido
implementado con Processing, un lenguaje similar a Java, su ltima versin es la 1.6.4
usada en este proyecto, est formado por una serie de mens, una barra de herramientas
con botones para las funciones comunes, un editor de texto donde se escribe el cdigo, unrea de mensajes y una consola de texto, en la figura 2.25 se puede apreciar una ventana en
la que se puede apreciar las distintas partes que lo forman, como el men, la seccin de
edicin de cdigo, el rea de mensajes, los botones comunes y los mensajes de texto.
Figura 2.25 Entorno de desarrollo Arduino
En los siguientes prrafos se describe la utilidad de cada rea del programa.
a)
Men
La opcin Herramientas del Men es desde donde se puede configurar el programa para
que pueda comunicarse con la placa Arduino.
Al pasar el ratn por la opcin Placa aparecer una lista con los tipos de placa Arduino
que el programa comprende. En el desarrollo del proyecto se seleccion la placa Arduino
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
34/87
25
Mega 2560.
En la figura 2.26 se puede apreciar el despliegue del men Herramientas y el submen
Placa, donde se listan las diferentes placas Arduino compatibles con la versin utilizada del
software.
Figura 2.26 Opciones del Men Herramientas
En la opcin Puerto Serial se selecciona el que corresponda a la placa que se conectar
mediante USB. Si se utiliza Windows el puerto tendr un nombre del estilo COMx pero en
Linux es /dev/ttyUSBx donde x es un nmero. En versiones previas solo apareca el puerto
y se poda seguir el siguiente procedimiento en caso de que aparezcan varios puertos seriey no se sepa el de la placa se procede a desconectarla, se anota los puertos que aparecen, se
reconecta la placa y se vuelve a mirar la lista de puertos.
El nuevo puerto que haya aparecido es el de la placa, en la versin 1.6.4 aparece el nombre
del puerto y que tipo de placa est conectada tal como lo muestra la figura.2.27 en la que se
aprecia que el puerto seleccionado es el COM20 (Arduino Mega o Arduino Mega 2560).
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
35/87
26
Figura 2.27 Opciones de Sub Men Puerto
b)
Botones comunes
Estos botones son accesos rpidos a ciertas acciones que tambin estn disponibles
mediante el men. Los botones son los siguientes:
Figura 2.28 Botones Comunes
Verificar: comprueba y compila el cdigo.
Cargar: adems de compilar el cdigo lo graba la placa.
Nuevo: crea un nuevo sketch.
Abrir: abre un sketch previamente guardado. Guardar: almacena en disco los cambios realizados en el sketch.
Monitor Serial: abre una nueva ventana desde la que se puede comunicarse
bidireccionalmente va serie con la placa, es decir, se puede leer la informacin que se
enva o proporcionarla.
c)
Editor de texto
El editor de texto es el rea de fondo blanco, en este rea se escribe la implementacin,
denominada por el programa sketch, para poder cargarla en la placa Arduino. El programa
tiene 3 partes. La primera consiste en la inclusin de bibliotecas y la declaracin deconstantes o variables globales que se podrn utilizar en cualquier funcin del programa.
La segunda es el mtodo setup() que es el encargado de inicializar los dispositivos
conectados a la placa y es ejecutado solo al iniciar el sistema. La tercera parte consiste en
el mtodo loop() que ejecutar su cdigo continuamente, es decir, en modo bucle. Aqu es
donde se escribir la lgica de la placa Arduino. Como el lenguaje de Arduino es muy
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
36/87
27
similar a C es posible crear otros mtodos para separar bloques funcionales o
procedimientos y dejar ordenado el programa, en la figura 2.29 se muestra un rea de
edicin con parte del cdigo fuente utilizado en el presente trabajo.
Figura 2.29 rea de Edicin
d)rea de mensajes
El rea de mensajes es de color verde, muestra la situacin del programa al haber utilizado
uno de los botones comunes.
Figura 2.30 rea de Mensajes
e)Consola de texto
La consola de texto es de fondo negro, aqu aparecern con mayor detalle los eventos delrea de mensajes.
Figura 2.31 Consola de Texto
2.2.9 LabVIEW
LabVIEW (acrnimo de Laboratory Virtual Instrumentation Engineering Workbench) es
una plataforma de programacin grfica que ayuda a ingenieros a escalar desde el diseo
hasta pruebas y desde sistemas pequeos hasta grandes sistemas, ofrece integracin con
software legado existente, IP y hardware al aprovechar las ltimas tecnologas de
cmputo, LabVIEW ofrece herramientas para resolver los problemas de hoy en da y la
capacidad para futura innovacin, rpidamente y de manera eficiente.
El softwareLabVIEWes ideal para cualquier sistema de medidas y control, es el corazn
de la plataforma de diseoNational Instruments. Al integrar todas las herramientas que los
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
37/87
28
ingenieros y cientficos necesitan para construir una amplia variedad de aplicaciones en
mucho menos tiempo, National InstrumentsLabVIEW es el entorno de desarrollo para
resolver problemas, con productividad acelerada y constante innovacin. Puede drsele los
siguientes usos [8]:
a)
Adquirir datos y procesar seales Medir cualquier sensor en cualquier bus.
Realizar anlisis y procesamiento de seales avanzados.
Visualizar datos en interfaces de usuario personalizadas.
Registrar datos y generar reportes.
b)
Control de instrumentos
Automatizar la coleccin de datos.
Controlar mltiples instrumentos.
Analizar y visualizar seales.
c)
Automatizar sistemas de pruebas y validacin
Automatizar las pruebas de validacin y produccin de productos.
Controlar mltiples instrumentos.
Analizar y visualizar resultados de pruebas con interfaces de usuario personalizadas.
d)Sistemas embebidos de monitoreo y control
Reutilizar cdigo ANSI C y HDL.
Integrar hardware comercial. Generar prototipos con tecnologa FPGA.
Obtener acceso a herramientas personalizadas para medicina, robtica y ms.
e)Enseanza acadmica
Utilizar un enfoque prctico e interactivo de aprendizaje.
Combinar el diseo de algoritmos con medidas de datos reales.
Aumentar el rendimiento de aplicaciones con procesamiento multincleo.
f)
Generacin de prototipos
Generar de prototipos de algoritmos para SDR.
Arquitectura de desarrollo para LTE y 802.11.
Entorno de desarrollo simple para FPGAs.
En la figura 2.32 se muestra un ejemplo de panel frontal deLabVIEWdonde se puede ver
las representaciones de los componentes de manera grfica y en la figura 2.33 un ejemplo
de diagrama de bloques en el que se puede ver la parte lgica correspondiente al sistema.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
38/87
29
Figura 2.32 Panel frontal ejemplo
Figura 2.33 Diagrama de bloques ejemplo.
2.2.10 Data Dashboard para LabVIEW
ElData Dashboardpermite crear vistas personalizadas y porttiles de las aplicaciones del
software LabVIEWde National Instruments. Con esta aplicacin se pueden crear paneles
de control de datos para mostrar los valores de las variables compartidas publicados en la
red y desplegar los servicios de Web deLabVIEWsobre indicadores, tales como grficos,
cuadros de texto, LEDs, etc.Data Dashboard2.0 est disponible para el iPad de Apple en
la App Store de Apple.
Ejemplo de creacin de unDashboard
El primer paso es abrir la aplicacin Data Dashboard 2.0 en el dispositivo. Cuando la
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
39/87
30
aplicacin se abra, se ve la pantalla que se muestra en la figura 2.34. En esta pantalla
principal se puede gestionar los distintos paneles de control. Para crear un nuevo panel de
control se pulsa el signo "+" en la parte inferior y se seleccionaNew Dashboard.[9]
Figura 2.34 Data Dashboard para LabVIEW.
El nuevo panel de control se abrir y aparecer como se indica abajo. Para colocar un
indicador en el panel de control pulsar la opcin Controls and Indicators y seleccionar
Indicators como se muestra en la figura 2.35, se abrir la paleta de los indicadores
mostrada en la figura 2.36.
Figura 2.35 Men indicadores Data DashBoard
Para colocar un indicador en el panel de control arrastrar desde la paleta a la pgina.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
40/87
31
Figura 2.36 Paleta de Indicadores
El siguiente paso consiste en vincular los indicadores a los datos. Los procesos para
enlazar los mtodos deNetwork Published Shared Variablesy Web se describen en las
siguientes secciones. En el proyecto se usaron Shared Variables.
Conexin a variables compartidas
Despus de haber colocado los indicadores y luego de desplegar las variables compartidas
publicadas en red, se puede enlazar el panel de control a las variables compartidas.
a.
Pulsar el indicador Chart y seleccionar el icono Data Linkmostrado en la siguiente
imagen. Se abrir el cuadro de dilogo de Connect.
Figura 2.37 Seleccionando la variable a conectar
b.
Seleccionar Shared Variablesen el cuadro de dilogo de Connect, introducir el DNS
del servidor de variables compartidas o la direccin IP como se muestra en la figura
2.38, luego pulsar la opcin Connectpara realizar la conexin al motor de variables
compartidas.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
41/87
32
Figura 2.38 Seleccionando el Servidor
c.
Pulsar sobre el nombre de la biblioteca que contiene la variable compartida desplegada.
Seleccionar la variable compartida, como se muestra en la figura. 2.39. El tipo de datos
de cada variable compartida se muestra debajo del nombre de la variable.
Figura 2.39 Seleccionando la Variable Compartida
d.
Repetir los pasos anteriores para cada una de las variables que existan en la biblioteca
de variables compartidas. Data Dashboard 2.0 slo permite seleccionar las variables
compartidas que sean compatibles con el tipo de datos del indicador seleccionado. En
este ejemplo, la variable compartida desplegada es un nmero en coma flotante de doble
precisin, que se puede visualizar mediante un grfico o un indicador numrico.
e. Personalizar el aspecto del grfico seleccionando el men de propiedades que se
muestra en la figura. 2.40. En la figura 2.41 se muestra una pantalla ejemplo poblada de
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
42/87
33
variables compartidas con diversos controles e indicadores.
Figura 2.40 Men de Propiedades de Indicador
Figura 2.41 Ejemplo de Panel de Control (Dashboard) finalizado sin ejecutar.
f.
Ejecutar el panel de control seleccionandoPlayen la esquina superior derecha. El panel
de control que se est ejecutando debera ser similar a la figura 2.42 donde el icono de
reproduccin cambia por el icono de parada.
Figura 2.42 Dashboard en ejecucin
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
43/87
34
2.2.11 Base de Datos Oracle Express Edition
Es la versin gratuita del gestor de base de datos Oracle, ideal para instalaciones pequeas,
temas formativos, etc. Una Base de Datos Relacional, RDBMS (Relational DataBase
Model System) es una base de datos que cumple con el modelo relacional, modelo
postulado en 1970 por Edgar Frank Codd, de los laboratorios IBM, modelo que no tardo enconsolidarse como un nuevo paradigma en los modelos de base de datos, antes existan
modelos como el IMS (Information Management System) modelo jerrquico tambin de
IBM, Oracle es considerado como uno de los sistemas de base de datos ms completos,
destacando por las siguientes caractersticas:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Soporte multiplataforma.
Las limitantes de la versin gratuita, son el uso de 4 GB de almacenamiento en versin
10g, 11GB en la versin 11g, 1GB de uso de RAM, uso de un solo procesador, y algunas
caractersticas deshabilitadas, que no impiden para este proyecto, cumplir con lo que el
sistema requerir almacenar almacenando 200 bytes por cada 5 minutos, representara
alrededor de 95 aos de datos a almacenar en la versin 10g.
2.3 Definicin de trminos
MAX485: Es un transceptor de baja potencia para comunicaciones RS-485.
Resistencia pull-up: Llamada tambin resistencia de polarizacin, que evitan falsos
estados producidos por ruido elctrico si se deja una entrada con un valor indeterminada.
PWM: Modulacin por Ancho de Pulso, por sus siglas en inglsPulse-Width Modulation.
SPI: El bus SPI es un estndar de comunicaciones usado principalmente para la
transferencia de informacin entre circuitos integrados en equipos electrnicos.
MISO: (Master Input Slave Output) La lnea esclavo para el envo de datos al maestro.
MOSI: (Master Output Slave Input) La lnea principal para el envo de datos a los
perifricos.
SCK: Serial Clock, los pulsos de reloj que sincronizan la transmisin de datos generada
por el maestro.
SS: Slave Select, el pin en cada dispositivo que el maestro puede utilizar para activar y
desactivar dispositivos especficos.
LED:Del acrnimo en ingls light-emitting diode, diodo emisor de luz.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
44/87
35
TWI:De las siglas en ingls de Two Wire Interfacesconsistente de dos lneas de seales
SDA y SCL ms una lnea de tierra.
SDA: Serial Data, una de las lneas de la interfaz TWI.
SCL: Serial Clock, una de las lneas de la interfaz TWI.
Chip FTDI:Chipde la marcaFuture Technology Device InternationalLtd.USB:Bus Universal en Serie.
ICSP: In Circuit Serial Programming, programacin serial en el circuito, permite
programar el microcontrolador sin necesidad de retirarlo del circuito aumentando su vida
til.
Bootloader:Cargador de arranque, es el programa que se ejecuta cuando se inicia o se
presiona el botn reset, su principal funcin para que el software Arduino en la
computador enve un nuevo programa a la placa, el cual es escrito en la memoria en el
Arduino.EEPROM: Son las siglas de Electrically Erasable Programmable Read-Only Memory,
ROM programable y borrable elctricamente a diferencia de las EPROM que son grabadas
con un aparato que emite rayos ultravioleta. Son memorias no voltiles.
PIC: Es una familia de microcontroladores tipo RISC, fabricados por Microchip
Technologyinicialmente referido como controlador de interfaz perifrico,
Sketch: Se denomina sketch a una parte de cdigo fuente listo para abrir con el entorno de
desarrollo integrado de Arduino.
Efecto Hall: Se conoce como efectoHalla la aparicin, en el interior de un conductor por
el que circula una corriente, en presencia de un campo magntico perpendicular al
movimiento de las cargas, de un campo elctrico por separacin de cargas, que tambin es
perpendicular al movimiento de las cargas y al campo magntico aplicado y que se
denomina campoHall.
Ultrasnico: El ultrasonido es una onda acstica o sonora cuya frecuencia est por encima
del umbral de audicin del odo humano, es decir superior a 20 000 Hz, ultrasnico es lo
relacionado con el ultrasonido.
Bibliotecas: Del ingls library, es el conjunto de implementaciones funcionales, que
ofrecen una interfaz bien definida para su uso, el entorno Arduino puede ser extendido a
travs del uso de bibliotecas (libraries) tal como otras plataformas de programacin.
Ethernet: Su nombre viene del concepto fsico ter, Ethernet define las caractersticas de
cableado y sealizacin de nivel fsico y los formatos de tramas de datos del nivel de
enlace de datos del modelo de interconexin de sistemas abierto (Open System
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
45/87
36
Interconnection,OSI).
RJ45: Es una interfaz fsica comnmente utilizada para conectar redes de computadoras
con cableado estructurado (categoras 4, 5, 5e, 6 y 6a). Posee ocho pines o conexiones
elctricas, que normalmente se usan como extremos de cables de par trenzado (UTP).
DHCP: Siglas en ingls deDynamic Host Configuration Protocol, en espaol protocolo deconfiguracin dinmica de host.
MAC: Es un identificador nico asignado a las interfaces de red para las comunicaciones
en el segmento de red fsica.
HTTP:HyperText Transfer Protocol,en espaol protocolo de transferencia de hipertexto.
ZigBee:Es el nombre de la especificacin de un conjunto de protocolos de alto nivel de
comunicacin inalmbrica para su utilizacin con radiodifusin digital de bajo consumo,
basada en el estndar IEEE 802.15.4 de redes inalmbricas de rea personal.
Banda ISM: ISM (Industrial, Scientific and Medical) son bandas reservadasinternacionalmente para uso no comercial de radiofrecuencia electromagntica en reas
industrial, cientfica y mdica.
HDL: Lenguaje de descripcin de hardware (HDL,Hardware Description Language).
FPGA:Field Programmable Gate Array, es un circuito integrado que puede configurarse
para llevar a cabo cualquier funcin lgica.
SDR: Software Define Ratio, una misma pieza de hardware puede realizar diferentes
funciones en distintos instantes de tiempo con la introduccin de cambios en su
configuracin mediante software. [10]
LTE: Long Term Evolution, Evolucin a Largo Plazo, es un estndar de la norma 3GPP
definida por unos como una evolucin de la norma 3GPP UMTS (3G), y por otros como
un nuevo concepto de arquitectura evolutiva (4G).
DNS: Domain Name System,sistema de nombres de dominio.
Tabla Externa:Tabla cuyos datos no estn almacenados en los datafiles de la base de
datos, estos datos estn en archivos del sistema operativo, independientes a la base de
datos.
Access Point Inalmbrico: es un dispositivo de red que interconecta equipos de
comunicacin almbrica para formar una red inalmbrica que interconecta dispositivos
mviles o con tarjetas de red inalmbricas.
Tabla Externa:Funcionalidad que proporciona Oracle, para facilitar la lectura de ficheros
formateados, como si fueran tablas. Este tipo de tablas son de slo lectura y no permite
utilizar manipulacin de datos (DML), ni la creacin de ndices sobre este tipo de tablas.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
46/87
37
CAPTULO III
DISEO DEL SISTEMA DOMTICO, IMPLEMENTACIN DE PROTOTIPO
3.1 Alternativas de solucin
En este apartado se describe la revisin de soluciones posibles en diversos niveles, a fin de
llegar a una eleccin de componentes y tecnologas para la elaboracin del prototipo.
3.1.1 A nivel de hardware
Al investigar los productos que existen en el mercado, el protocolo X10, por ejemplo seencontr que el controlador X10 y receptor IR-RF7234 que cuesta 60 con capacidad de
controlar 8 variables, y a 30 cada uno de los mdulos de enchufes, control de inundacin,
detector de presencia cada uno como mnimo, basado en esto el trabajo se reducira a
importar los productos e instalarlos a un costo no menor de 1000, equivalente a S/. 3600.
La plataforma que se eligi fue Arduino en la que existen varias placas como alternativas a
usar. Por ejemplo una placa Arduino Uno es insuficiente, mismo caso que una placa
ArduinoNano, Leonardo o Yn, Zero,Pro y Gemma, pero las placas ArduinoMegao la
versinMega ADK, operan con 5V y presentan una buena cantidad de entradas digitales yanalgicas, la placa ArduinoDuequeda descartada por la incompatibilidad de los 3.3V con
los sensores que en su mayora trabajan con 5V.
3.1.2 A nivel de programacin de Arduino
En este nivel existe la posibilidad de programarlo con lenguaje ensamblador y en el
lenguaje propio del Arduino, llamado wiring, parecido al lenguaje C.
3.1.3 A nivel de la aplicacin de escritorio
En este nivel existen varias posibilidades, para lo cual se evalu varias de ellas.
a)
Lenguaje propio de Arduino basado en wiringCon el uso del lenguaje de Arduino se realiz una aplicacin a travs de un web server
implementado usando el ShieldEthernet, lo que permita mediante de una pgina web
controlar algn dispositivo, la dificultad estaba en la comunicacin con la base de datos.
b)
Java
Con el lenguaje Java se elabor un programa que poda manipular tanto Arduino como la
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
47/87
38
base de datos, la dificultad est en el control desde dispositivos mviles con este lenguaje.
c)
LabVIEW Interface for Arduino LIFA
Con el uso de LIFA serealiz una aplicacin que poda controlar algunos LEDs desde el
programaLabVIEW, el cual era limitado al conectar sensores que no estuvieran inscritos en
dicha biblioteca como el sensor de humedad y temperatura DHT 22.d)LabVIEW Linx
Al revisar la documentacin se observ que es una especie de versin nueva de LIFA.
e)
LabVIEW VISA
Las interfaces VISA son las elegidas, con la comunicacin establecida a travs del puerto
serial, a 9600 baudios.
3.1.4 A nivel de la aplicacin de dispositivo mvil
Con la finalidad de elaborar la aplicacin para un dispositivo mvil se evalu varias
posibilidades de solucin:a) MIT App Inventor 2 Companion
Con elMIT App Inventor 2 Companionse elabor una aplicacin para control de un LED
desde Android vaBluetooh. En la figura 3.1 se muestra una pantalla de desarrollo. En la
figura 3.2 se aprecia el diagrama de bloques donde se ven los eventos correspondientes. En
la figura 3.3 se puede ver el software instalado en el telfono inteligente.
Figura 3.1 Pantalla de Desarrollo MIT APP Inventor 2
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
48/87
39
Figura 3.2 Diagrama de Bloques MIT APP Inventor 2
Figura 3.3 Software Creado e Instalado en Smartphone
b)
Data Dashboard para AndroidLa versin es limitada en que solo se visualiza una variable a la vez y en modo de lectura,
es decir no se puede modificar ninguna desde el dispositivo mvil.
c)
Data Dashboard para Ipad
La versin para IPAD permite mltiples variables a la vez, tanto en lectura como en
escritura, se puede obtener gratuitamente desde el portalApp Store.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
49/87
40
3.2 Solucin del problema
La solucin del problema consta de 5 capas:
Capa 1: Hardware.
Los componentes seleccionados son los siguientes:
1 Placa Arduino Mega 2560 1 Sensor DHT22 de Humedad y Temperatura
1 Sensor de gas MQ2
1 Sensor LDR de luminosidad
1 Sensor de Humedad de Suelo
Sensores PIR Infrarrojo Piroelctrico
Mdulos Rels Opto acoplador.
1 Mdulo de Medicin de Corriente por efecto Hall.
2 Mdulo de medicin de distancia por ultrasonido.
Resistencias de valores diversos: 220, 1 000, 10 000 Ohmios.
Fuente de alimentacin de 12 V, 3.2 A
Fuente de alimentacin de 5 V, 3 A
Leds RGB
16 Leds
Cables, placas de pruebas.
1 Access Point Inalmbrico 1 IPAD
Capa 2 y 3: Programa de control de tarjeta Arduino, lenguaje basado en wiring.
Programa en LabVIEW.
La capa 2 es un programa de extensin .inoque se encarga de definir como interacta la
placa Arduino con los sensores y actuadores, as como con la PC, se definen que pines
estn asociados como salidas o entradas, anlogas o digitales, las bibliotecas a usar as
como las variables.
Bibliotecas#include "DHT.h"
#include
Definicin de pines
const int analogInPin0 = A0;
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
50/87
41
const int analogInPin2 = A2;
int ldr =3;
int pin_led_rgb_R =2;
int pin_led_rgb_G =3;
int pin_led_rgb_B =4;int pirPin1 = 22;
int pirPin2 = 23;
int pirPin3 = 24;
int pin_electro_01 =25;
#define dhtpin 26
int pin_electro_02 =27;
int ledluz1 = 28;
int pin_electro_03 =29;int ledluz2 = 30;
int pin_electro_04 =31;
int ledluz3 = 32;
int pin_electro_05 =33;
int led_pir3 = 34;
int pin_electro_06 =35;
int led_pir2 = 36;
int pin_electro_07 =37;
int led_pir1 = 38;
int pin_electro_08 =39;
int pin_electro_09 =41;
int pin_electro_10 =43;
#define echoPin1 47
#define trigPin1 48
#define echoPin2 49
#define trigPin2 50
int pinhumedad = 52;
Variables y tipos:
#define dhttype DHT22 //tipo de sensor
DHT dht(dhtpin,dhttype);
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
51/87
42
Servo servo1; //persiana1
Servo servo2; //persiana2
char in;
float temp;
float hum;int sensorValue = 0;
int outputValue = 0;
int sensorValue1 = 0;
int outputValue1 = 0;
int estado_luz_01 = 0; // variable for reading the pushbutton status
int estado_luz_02 = 0;
int estado_luz_03 = 0;
int estado_persiana_01 = 0;int estado_persiana_02 = 0;
//los 10 electrodomesticos y equipos
int estado_elect_01 = 0;
int estado_elect_02 = 0;
int estado_elect_03 = 0;
int estado_elect_04 = 0;
int estado_elect_05 = 0;
int estado_elect_06 = 0;
int estado_elect_07 = 0;
int estado_elect_08 = 0;
int estado_elect_09 = 0;
int estado_elect_10 = 0;
long duration, distance;
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
char inputBuffer[11];
int ldr_value=0;
String salida_sensores=";" ;
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
52/87
43
Rutinas de lecturas de sensores:
Las rutinas constan de dos partes, el cdigo Arduino en la capa 2 y el bloque
correspondiente en elLabVIEWen la capa 3, se usa la funcin Sensa_distancia que est en
el anexo A. Se puede apreciar que la variable salida_sensores es una variable que recibe la
acumulacin de todos los valores de los sensores separados por un punto y coma ;
Aqu una muestra de la data capturada desde la herramienta Probe
23.80;59.30;197;220;174;0;378;19;0;0;0;1;1;0;0;0;1;0;1;0;1;1;0;1;0;1;
A continuacin el cdigo en Arduino:
in = (byte)Serial.read() & ~(0x20);
if (in=='T') //temperatura
{
temp = dht.readTemperature();
salida_sensores="";
salida_sensores=salida_sensores+temp+";";
hum = dht.readHumidity();
salida_sensores=salida_sensores+hum+";";
ldr_value = analogRead(ldr);
ldr_value = 1023-ldr_value;
salida_sensores=salida_sensores+ldr_value+";";
Sensa_distancia(trigPin1 ,echoPin1);salida_sensores=salida_sensores+distance+";";
Sensa_distancia(trigPin2 ,echoPin2);
salida_sensores=salida_sensores+distance+";";
sensorValue = analogRead(analogInPin0);
outputValue = map(sensorValue, 0, 1023, 0, 100);
salida_sensores=salida_sensores+outputValue+";";
sensorValue = analogRead(analogInPin2);
salida_sensores=salida_sensores+sensorValue+";";sensorValue1 = analogRead(A1);
outputValue1 = map(sensorValue1, 0, 1023, 100, 0);
salida_sensores=salida_sensores+outputValue1+";";
// pir1
if(digitalRead(pirPin1) == LOW)
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
53/87
44
{
salida_sensores=salida_sensores+LOW+";";
digitalWrite(led_pir1, LOW);
}
else{
salida_sensores=salida_sensores+HIGH+";";
digitalWrite(led_pir1, HIGH);
}
// pir 2
if(digitalRead(pirPin2) == LOW)
{
salida_sensores=salida_sensores+LOW+";";digitalWrite(led_pir2, LOW);
}
else
{
salida_sensores=salida_sensores+HIGH+";";
digitalWrite(led_pir2, HIGH);
}
//pir 3
if(digitalRead(pirPin3) == LOW)
{
salida_sensores=salida_sensores+LOW+";";
digitalWrite(led_pir3,LOW);
}
else
{
salida_sensores=salida_sensores+HIGH+";";
digitalWrite(led_pir3, HIGH);
}
//agregar salida de luces , persianas y electro
salida_sensores=salida_sensores+estado_luz_01+";";
salida_sensores=salida_sensores+estado_luz_02+";";
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
54/87
45
salida_sensores=salida_sensores+estado_luz_03+";";
salida_sensores=salida_sensores+estado_persiana_01+";";
salida_sensores=salida_sensores+estado_persiana_02+";";
salida_sensores=salida_sensores+estado_elect_01+";";
salida_sensores=salida_sensores+estado_elect_02+";";salida_sensores=salida_sensores+estado_elect_03+";";
salida_sensores=salida_sensores+estado_elect_04+";";
salida_sensores=salida_sensores+estado_elect_05+";";
salida_sensores=salida_sensores+estado_elect_06+";";
salida_sensores=salida_sensores+estado_elect_07+";";
salida_sensores=salida_sensores+estado_elect_08+";";
salida_sensores=salida_sensores+estado_elect_09+";";
salida_sensores=salida_sensores+estado_elect_10+";";
Serial.println(salida_sensores);
salida_sensores="";
}
En la figura 3.4 se muestra el bloque correspondiente en el programaLabVIEW
Figura 3.4 Diagrama de Bloques de Sensores (Opcin 0 : Temperatura)En la tabla 3.1 se observan las otras 25 opciones que tiene la estructura case que en la
figura 3.4 se ve con la opcin 0, Default seleccionada, se puede observar que se extrae el
primer elemento como un dato numrico, que es convertido a boolean en caso sea
necesario y es expresado mediante uno o dos indicadores y asignado a una variable
compartida, con el fin de poder ser visualizada desde el aplicativo de la capa mvil.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
55/87
46
Tabla 3.1 Opciones 1 a 25 de herramienta CASE
Sensor de Humedad Sensor LDR Luminosidad
Sensor de Distancia Ultrasonido para
Tanque
Sensor de Distancia Ultrasonido para
Cisterna
Sensor de GAS Sensor de Corriente por efecto Hall
Sensor de Humedad de Suelo Sensor PIR escalera
Sensor PIR pasillo Sensor PIR prtico
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
56/87
47
Estado de luz Ambiente 1 Estado de luz Ambiente 2
Estado de Ambiente 3 Estado Persiana 1
Estado Persiana 2 Estado Electrodomstico 1
Estado Electrodomstico 2 Estado Electrodomstico 3
Estado Electrodomstico 4 Estado Electrodomstico 5
Estado Electrodomstico 6 Estado Electrodomstico 7
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
57/87
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
58/87
49
como los botones que cambian dichos estados
Figura 3.6 Objetos Visuales Parte 2 Luces y Electrodomsticos
Actuadores
El cdigo en Arduino que recibe las letras K,L,M por comunicacin serial es el siguiente:
else if (in=='K') //pin 9
{
if (estado_luz_01 == LOW)
{
estado_luz_01=HIGH;
}
else
{
estado_luz_01=LOW;
}
}
else if (in=='L') //pin 10
{if (estado_luz_02 == LOW)
{
estado_luz_02=HIGH;
}
else
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
59/87
50
{
estado_luz_02=LOW;
}
}
else if (in=='M') //pin 11{
if (estado_luz_03 == LOW)
{
estado_luz_03=HIGH;
}
else
{
estado_luz_03=LOW;}
}
Luces de ambientes
En la figura 3.7 se muestran los bloques de las 3 luces, cada bloque recibe dos entradas, ya
sea porque se presion un botn (variable buttonboolean) o porque la variable compartida
cambio a valor True, escribe la letra correspondiente como entrada de datos serial.
Figura 3.7 Diagrama de Bloques de Luces
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
60/87
51
Persianas
El cdigo Arduino de control de las persianas que responde a las letras N y O
else if (in=='N') //pin motor persina 1{
if (estado_persiana_01 == LOW)
{
estado_persiana_01=HIGH;
servo1.write(0);
}
else
{estado_persiana_01=LOW;
servo1.write(90);
}
}
//pin motor persiana 2
else if (in=='O')
{
if (estado_persiana_02 == LOW)
{
estado_persiana_02=HIGH;
servo2.write(0);
}
else
{
estado_persiana_02=LOW;
servo2.write(90);
}
}
En la figura 3.8 se muestra el diagrama de bloques deLabVIEWcorrespondiente a las
persianas, donde se enva las letras N y O en comunicacin serial hacia la placa
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
61/87
52
Arduino.
Figura 3.8 Diagrama de Bloques de Persianas
Electrodomsticos
El procedimiento correspondiente a los electrodomsticos es la repeticin del siguiente
cdigo Arduino pero con diferentes letras.
else if (in=='Z') //electro 01
{if (estado_elect_01 == LOW)
{
estado_elect_01=HIGH;
}
else
{
estado_elect_01=LOW;
}
}
La segunda parte del cdigo Arduino correspondiente a la escritura digital, en el pin que
esta asignado.
if (estado_elect_01 == LOW)
{
digitalWrite(pin_electro_01, LOW);
}
else
{
digitalWrite(pin_electro_01, HIGH);
}
Para los 10 electrodomsticos corresponde el diagrama de bloques mostrado en la figura
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
62/87
53
3.9
Figura 3.9 Diagrama de bloques de Electrodomsticos
La figura 3.10 es la resultante de ampliar uno de los bloques de la figura 3.9, para poder
observarlo con mayor claridad.
Figura 3.10 Diagrama de bloques de un Electrodomstico
Luces RGBEl cdigo Arduino que gobierna estas luces RGB, espera la letra J seguida de los valores
enteros correspondientes de Rojo, Azul y Verde (Red, Blue, Green) ,aqu una muestra
extraida de la ejecucin en la pantallaPROBE:
J255.18.254.
else if (in=='J') //RGB
{
Serial.readBytes(inputBuffer,11);
String inputBufferstr(inputBuffer);int pointPosition1 = inputBufferstr.indexOf('.');
int pointPosition2 = inputBufferstr.indexOf('.',pointPosition1+1);
int pointPosition3 = inputBufferstr.indexOf('.',pointPosition2+1);
String inputR=inputBufferstr.substring(0,pointPosition1);
String inputG=inputBufferstr.substring(pointPosition1+1,pointPosition2);
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
63/87
54
String inputB=inputBufferstr.substring(pointPosition2+1,pointPosition3);
color(inputR.toInt(),inputG.toInt(),inputB.toInt());
}
La figura 3.11 muestra el diagrama de bloques inicial.
Figura 3.11 Diagrama de bloques de luces RGB inicialCuando existe un control donde se escoge un color y luego se descompone en los valores
RGB que se envan a las variables globales y luego se concatenan con la letra J y los
puntos para ser enviados al programa de Arduino.
En la figura 3.12 se muestra el control de color durante el uso
Figura 3.12 Control de colores y paleta de colores
En la figura 3.12 se observa los componentes RGB 245, 42, 255 para el color violeta
seleccionado. Luego se agreg un control automtico, en funcin a una secuencia de
combinaciones RGB que seran ingresadas desde un archivo plano generado por la base de
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
64/87
55
datos cuyo diagrama de bloques es mostrado en la figura 3.13 y figura 3.14
Figura 3.13 Diagrama de bloques de control automtico RGB parte 1
Luego de lo cual va el bloque mostrado en la figura 3.14
Figura 3.14 Diagrama de bloques RGB automtico parte 2
Un ejemplo de las primeras lneas del archivo color.txt es el siguiente:
255;10;10255;20;20
255;30;30
255;40;40
255;50;50
Como parte del sistema se cre un proceso automtico que se guarda en un archivo plano
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
65/87
56
ciertas variables el bloque correspondiente que almacena en el archivo salida.txt que tendra
un contenido semejante al siguiente:
23/06/2015 12:34:23 a.m.|23|62|0|13|161|329|174|377
El diagrama correspondiente a este proceso , es el mostrado en la figura 3.15
Figura 3.15 Diagrama de bloques generacin de archivo salida.txt
Capa 4: Panel de control en Data Dashboard.
Al seguir los pasos descritos en la seccin 2.2.10 Data Dashboard para LabVIEWen la
seccin Ejemplo de creacin de unDashboard una y otra vez para cada una de las
variables compartidas de cada uno de los controles descritos en la capa 3 se obtuvo el
Dashboardmostrado en la figura 3.16 en la cual se observa de izquierda a derecha en la
primera fila, los monitor en tiempo real de:
- Temperatura
- Gas
- Humedad del Aire
- Humedad del Suelo
- Iluminacin
- Capacidad del Tanque
- Capacidad de la Cisterna
En la seccin izquierda inferior de la figura 3.16 se muestra los controles de encendido y
apagado de luces y electrodomsticos y la activacin de sensores de presencia, y en la parte
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
66/87
57
derecha el control de luces RGB manual y en modo automtico
Figura 3.16 Dashboard Final
Capa 5: Registro y Adquisicin de datos en Oracle Express Database.
El sistema desdeLabVIEWgenera y lee archivos texto con formato separado por carcter
(csv) que pueden leerse desde una base de datos Oracle Expresscon tablas externas , y con
los paquetes UTL_FILE para la lectura y generacin desde la base de datos
respectivamente, estos procedimientos de lectura y generacin estn guardados en la
misma base de datos como procedimientos almacenados, los cuales son invocados porJobs
o tareas programadas para poder guardar finalmente los datos en tablas de uso general, y
en funcin al anlisis de sus datos, establecer cambios en el comportamiento de la
vivienda, volvindola automticamente controlable.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
67/87
58
CAPTULO IV
ANLISIS Y PRESENTACIN DE RESULTADOS
4.1 Anlisis descriptivo
El presente informe presenta un prototipo funcional fcilmente controlable desde una
aplicacin en una computadora personal y en una tablet IPAD de manera interactiva,
grficamente, utilizando tecnologa de hardwarelibre.
4.2 Anlisis terico de los datos y resultados obtenidos en relacin con las bases
tericas de la investigacinLas bases tericas proporcionan un conjunto de elementos que de cierta manera trabajan
por separado, base de datos Oracle, Arduino, tablet, LabVIEW, sensores y actuadores, el
resultado es un prototipo que amalgama gran parte de estos elementos en un sistema
domtico, hardware y software con un flujo constante de informacin en uno y otro
sentido, que presenta al usuario una interfaz amigable y fcil de usar, que difiere de la
pantalla de texto inicial que podra obtenerse solo trabajando con el microcontrolador y el
monitor serial, al poder guardarse los datos en una base de datos el propio sistema puede
tomar decisiones, y trasmitirlas a travs de un archivo para que el sistema funcionediferente, es decir existe una retroalimentacin. Adems ciertos patrones podran ser
guardados y reproducidos para simular presencia y cubrir en cierta manera el punto de
seguridad buscado al realizar sistemas domticos.
En los resultados tambin se tienen las experiencias de haber investigado cada una de las
alternativas de solucin que no fueron elegidas, sin las que no se hubiera podido llegar a un
resultado, pues no exista una nica manera posible de realizar el sistema domtico.
4.3 Anlisis de la asociacin de variables y resumen de las apreciaciones
relevantesLas variables a controlar o a monitorear son la temperatura, humedad, luminosidad
concentracin de gas, humedad de suelo, distancias de cisterna y tanque, color de
escenario, estado de persianas y electrodomsticos, fueron asociadas en una trama y luego
en una tabla de la base de datos XE de Oracle Express, como datos independientes y no
necesariamente correlacionados entre s.
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
68/87
59
4.4 Presupuesto y tiempo de ejecucin
A continuacin se presenta el valor de los componentes utilizados en la elaboracin del
prototipo en nuevos soles:
Componente Costo S/.
1 Placa Arduino Mega 2560 70
1 Sensor DHT22 de Humedad y Temperatura 25
1 Sensor de Gas MQ2 12
1 Sensor LDR de luminosidad 2
1 Sensor de Humedad de Suelo 8
3 Sensores PIR Infrarrojo Piroelctrico 24
3 Mdulos Rels Opto acoplador. 100
1 Mdulo de Medicin de Corriente por efecto Hall. 15
2 Mdulo de medicin de distancia por ultrasonido. 16
Resistencias de valores diversos: 220, 1 000, 10 000 Ohmios. 10
Fuente de 12 V, 3.2 A 35
Fuente de alimentacin de 5 V, 3 A 35
4 Leds RGB 4
16 Leds 8
Cables, placas de pruebas. 50
1 Access Point Inalmbrico 100
1 IPAD (opcional) 600
Costo obligatorio S/. 514
Costo total opcional S/. 1114
7/25/2019 TesisJoseAlejandroLunaMatosFIEE UNI
69/87
60
CONCLUSIONES Y RECOMENDACIONES
Despus de haber realizado el prototipo del sistema as como este informe se concluye lo
siguiente:
1 Es posible controlar los dispositivos elctricos as como las variables tales como
temperatura, humedad, luminosidad, presencia de gas entre otras, remotamente desde la
palma de la ma