TesisJoseAlejandroLunaMatosFIEE UNI

download TesisJoseAlejandroLunaMatosFIEE UNI

of 87

Transcript of TesisJoseAlejandroLunaMatosFIEE UNI

  • 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