14
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES 1 SISTEMAS DIGITALES INFORME DEL PROYECTO Profesor: Integrantes: Tema: Desarrollo de un modelo funcional aplicado a la domótica con arduino. Introducción Aunque el ser humano todavía no est arraigado a las propiedades que ofrece la domótica es un hecho que en un futuro estaŕ instalada en cualquier vivienda. Pero ¿qu es la domótica? Se podría definir como el conjunto de tecnologías aplicadas al control y la automatización inteligente de la vivienda, que permite una gestión eficiente del uso de la energía además de aportar seguridad, confort, y comunicación entre el usuario y el sistema. Para poder conseguir las propiedades comentadas anteriormente es necesario que los sistemas recojan la información de su entorno con sensores y dispongan de la lógica para actuar en consecuencia utilizando actuadores. Actualmente los sistemas demóticos tienen un precio muy alto de instalación con lo cual solo es posible verlo en casasde lujo. Estos suelen utilizar buses de transmisión de información que posibilitan una domótica robusta como son el EIB, X10, CEBus, LonWorks/LongTalk y ZigBee. Una alternativa más barata y casera consiste en la utilización de placas Arduino.

Proyecto_Digitales

Embed Size (px)

Citation preview

Page 1: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

1

SISTEMAS DIGITALES

INFORME DEL PROYECTO

Profesor:

Integrantes:

Tema: Desarrollo de un modelo funcional aplicado a la domótica con arduino.

Introducción

Aunque el ser humano todavía no esta arraigado a las propiedades que ofrece la domótica es un

hecho que en un futuro estara instalada en cualquier vivienda. Pero ¿que es la domótica? Se podría

definir como el conjunto de tecnologías aplicadas al control y la automatización inteligente de la

vivienda, que permite una gestión eficiente del uso de la energía además de aportar seguridad,

confort, y comunicación entre el usuario y el sistema. Para poder conseguir las propiedades

comentadas anteriormente es necesario que los sistemas recojan la información de su entorno con

sensores y dispongan de la lógica para actuar en consecuencia utilizando actuadores.

Actualmente los sistemas demóticos tienen un precio muy alto de instalación con lo cual solo es

posible verlo en casasde lujo. Estos suelen utilizar buses de transmisión de información que

posibilitan una domótica robusta como son el EIB, X10, CEBus, LonWorks/LongTalk y ZigBee.

Una alternativa más barata y casera consiste en la utilización de placas Arduino.

Page 2: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

2

Objetivos

Como objetivo de este proyecto nos hemos propuesto crear un sistema domótica simple utilizando las placas de bajo coste Arduino y otros dispositivos, como sensores, actuadores y comunicadores. Habrá que dotar al sistema de la lógica necesaria para que puedan comunicarse las placas que estarán controlando la habitación en la cual hayan sido instaladas.

El proyecto tiene como fin poner en practica todos los conocimientos adquiridos en el desarrollo de la materia, tanto en el desarrollo analítico y practico.

Marco Teórico

Características básicas de Arduino .

En este apartado vamos a describir los principales elementos que componen una placa Arduino y el entorno de desarrollo en el que se programa el código, es decir la parte hardware y software que actúan sobre Arduino.

Hardware

Al ser Arduino una plataforma de hardware libre tanto su diseño como su distribución puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. Por eso existen varios tipos de placa oficiales, las creadas por la comunidad Arduino o las no oficiales creadas por terceros pero con características similares. En la placa Arduino es donde conectaremos los sensores, actuadores y otros elementos necesarios para comunicarnos con el sistema.

En el proyecto se han utilizado las placas que se tenían a disposición que son Arduino Mega ADK y describiremos a continuación.

Page 3: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

3

Arduino Mega ADK

Fig1.Parte frontal del arduino Mega ADK.

Fig2.Reverso de la placa.

La board Arduino Mega ADK está basada en la board Mega2560 pero integra adicionalmente un Host USB para conectarla a celulares, o sistemas basados en Android, esta board tiene 54 I/O digital, de los cuales podemos usar 14 PWMs, 16 canales de entradas análogas, 4 UARTs (hardware serial ports), a 16 MHz. Integra una conexión a USB para programación, entrada de alimentación tipo Jack y conector ICSP. Su uso es muy sencillo, solo se requiere conectarla al computador por medio del cable USB y ya está. Aplicaciones: Su principal uso es la creación o diseño de aplicaciones que requieran interfasar a Arduino con Android, esto implica que desde tu Celular podrías controlar servomotores, luces, leds, adquirir datos, enviar datos, entre otros. Así que si alguna vez pensaste en usar el alto poder de procesamiento de tu celular, pero estabas limitado por los periféricos de salida, Arduino Mega ADK es una excelente opción.

Page 4: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

4

Algunas características importantes características: Procesador: ATmega2560 Velocidad de reloj: 16Mhz Puertos I/O: 54 Memoria: Flash 256K Modo de programación: USB por software arduino. Voltaje de entrada: 7-12VDc Voltaje de operación: 5Vdc

Software

La plataforma Arduino tiene un lenguaje propio que esta basado en C/C++ y por ello soporta las funciones del estandar C y algunas de C++. Sin embargo, es posible utilizar otros lenguajes de programacion 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 transmisión de datos en formato serie que es algo que la mayoría 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 comunicación 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 vamos a resolver podremos aprovecharnos de la gran compatibilidad de comunicación que ofrece.

El entorno de desarrollo de Arduino es sencillo e intuitivo además puede descargarse gratuitamente desde su pagina oficial para distintos sistemas operativos. Ha sido implementado con Processing, un lenguaje similar a Java. Su ultima version es la 1.5.5 aunque en el proyecto se ha utilizado la 1.5.0.

Esta formado por una serie de menús, una barra de herramientas con botones para las funciones comunes, un editor de texto donde escribiremos el código, un área de mensajes y una consola de texto. En la ilustración 4 se puede apreciar la composición del software de Arduino.

Page 5: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

5

Fig3.IDE de Arduino .

Page 6: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

6

Desarrollo del Proyecto

Una vez que conocimos los elementos básicos de arduino vamos a empezar con el desarrollo del

proyecto el cual se realizara una explicación por módulos separados , para poder realizar un detalle

completo de los sensores y el funcionamiento de los mismos.

Modulo de temperatura (Lm35)

Para el modulo de temperatura utilizamos un sensor Lm35 y una LCD para visualizar la

temperatura ambiente .

Para la LCD utilizamos la librería de arduino liquidCristal. La librería LiquidCrystal, permite

controlar pantallas LCD que son compatibles con el controlador Hitachi HD44780. Que son la

mayoría de LCDS que se encuentran en el mercado local , se pueden reconocer normalmente por

que poseen una interfaz de 16 pines.

La conexión entre arduino y el sensor lm35 es muy fácil debido a que arduino facilita la lectura de

señales analógicas , mediante los pines destinados a este fin.

El sensor LM35 el cual nos mide una temperatura de -55ºC a 150ºC y una precisión de 0.5ºC a

25ºC; este sensor es suficientemente completo, se puede utilizar para realizar pequeños inventos o

proyectos y que pueden ser realizados en casa.

Para la conexión con arduino se realizo la siguiente conexión de la figura 3.

Page 7: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

7

Fig3.Esquema de conexión LCD + lm35 Arduino.

Descripción del circuito LCD.

El pin RS del LCD conectado a la E/S digital en el pin 12

El pin enable del LCD conectado a la E/S digital en el pin 11.

Los pines D4 - D7 conectado a las E/S digitales desde el pin 5 hasta el 2.

Los pines de voltaje y tierra conectados a +5V y tierra.

El pin Vo, que controla el constraste, conectado a un potenciómetro.

Descripción del circuito lm35.

El pin 1 del sensor sensor es Vo.

El pin 2 que es la salida analogíca se conecta a la entrada A0 de arduino.

El pin 3 se conecta a GND.

Para la obtención de temperatura del sensor lm35 implementamos el siguiente código.

Page 8: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

8

Fig4. Código para realizar el censado de temperatura.

En el cual se puede observar que realizamos con ayuda de un for, la toma de 8 muestras a las cuales

se le obtuvo el promedio para así mejorar la precisión .

La ecuación característica del sensor se detalla en el datashett .

Ahora en nuestro caso particular debemos mostrar la temperatura del sensor en la LCD, para esto

utilizamos las funciones de la librería, las cuales facilitan el desarrollo del código .

El código implementado de este modulo se muestra a continuación.

Fig5. Código para mostrar el valor de variable tempc en la LCD.

Page 9: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

9

Modulo de intensidad luminosa (LDR).

Para este modulo nos basamos en un LDR el cual es sinónimo de "Light Dependent Resistor". Es de

tipo sa de resistencia cuyo valor cambia con la intensidad o la cantidad de luz que incide sobre él. A

medida que la cantidad de luz que cae sobre él aumenta la su resistencia disminuye y

viceversa. Entender por qué sucede requerirá entrar en las profundidades de la materia con la que se

hace y esto no es realmente un artículo para eso. Sin embargo, hay muchos artículos que va a

resolver la cuestión, pero por ahora sólo es necesario recordar que el valor de resistencia cambia

con la cantidad de luz que cae sobre él.

Este modulo tiene una lógica simple, se basa en el hecho de que la intesidad luminosa en la

habitación hará que varié la intensidad de luz de una lámpara led , una solución simple que ideamos

es en función de la intensidad de luz hacer variar el PWM que controla la intesidad de luz de la

lámpara led y así tener una relación directa entre el sensor y el actuador.

Para el desarrollo del algoritmo de control utilizamos dos funciones muy utliles de arduino que son :

Map

Re-mapea un número desde un rango hacia otro. Ésto significa que, un valor (value) con respecto al

rango

Parámetros

value: el número (valor) a mapear.

fromLow: el límite inferior del rango actual del valor.

fromHigh: el límite superior del rango actual del valor.

toLow: límite inferior del rango deseado.

toHigh: límite superior del rango deseado.

Page 10: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

10

Devuelve

El valor mapeado.

Constrain

Descripción

Restringe un número a un rango definido.

Parámetros

x: el número a restringir, cualquier tipo de datos.

a: El número menor del rango, cualquier tipo de datos.

b: El número mayor del rango, cualquier tipo de datos.

Retorna

x: si x está entre a y b

a: si x es menor que a

b: si x es mayor que b

Para el desarrollo de este modulo se implemento el siguiente codigo.

Page 11: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

11

Fig5. Código para el modulo control de iluminacion.

Modulo de control desde el teléfono (Bluethoo).

Eldispositivo utilizado es un módulo bluetooth HC-06 y es compatible con Arduino. Dicho

módulo trabajo mediante conexión serie con el Arduino, y se comunica con el exterior mediante

bluetooth, ya sea a través de un teléfono móvil, ordenador, tablet, etc.

Fig6. Dispositivo Bluethooth HC-06.

Funciona a 3.3V, Como se ve solo disponemos de 4 pines que son los necesarios, por un lado

tenemos VCC que irá conectado a los 3.3V del Arduino, por otro GND que ira al pin GND de

Arduino, después tenemos TXD que irá conectado al pin RXD del Arduino y RXD que irá al pin

TXD de Arduino.

Page 12: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

12

Para el desarrollo de este modulo se implemento una lógica basada en casos, los cuales responden a

datos que llegan via Bluethooth a nuestro Arduino por uno de sus puertos seriales, y dependiendo

de el dato que arrive se cumplirá la lógica programada.

El código se detalla a continuación .

Fig7. Código para la comunicación del dispositivo bluethooth y arduino.

Page 13: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

13

Una vez detallados todos los módulos se puede mostrar la integración de cada uno de ellos en un

solo código fuente el cual fue el que se implemento en el proyecto .

El código final se adjunta al final del documento.

A continuación se muestra algunas imágenes del proyecto implementado

Page 14: Proyecto_Digitales

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ELECTRÓNICA Y TELECOMUNICACIONES

14

Referencias

Ejemplo Blink LCD. [En línea].

Disponible en: < http://arduino.cc/es/Tutorial/LiquidCrystalBlink>

Pagina oficial de Arduino: [En linea]

disponible en:<http://www.arduino.cc/ >

Información sobre sensores: [En linea]

Disponible en :<http://www.ladyada.net/learn/sensors/index.html >