Proyecto Domotica

22
Proyecto Final: CONTROL DE LUCES POR MEDIO DE PUERTO SERIAL Facilitador: 20 de Enero de 2011 Escuela Superior de Ingeniería Asignatura: Control Ing. Carlos Cortes Hernandez Ing. Carlos García Ramos

Transcript of Proyecto Domotica

Page 1: Proyecto Domotica

Proyecto Final: CONTROL DE LUCES POR MEDIO DE PUERTO SERIAL

Facilitador:

2 0 d e E n e r o d e 2 0 1 1

Escuela Superior de Ingeniería

Asignatura: Control

Ing. Carlos Cortes Hernandez

Ing. Carlos García Ramos

Page 2: Proyecto Domotica

OBJETIVO

El objetivo de nuestro proyecto es realizar el control de luces basado en un diseño domotico en tiempo real con aplicaciones igualmente reales por medio de una interfaz de comunicación vía puerto serial DB9 desde una computadora a un microcontrolador y consecuentemente a un arreglo de LED´s. Para esto es necesario entender el funcionamiento y programación de un microcontrolador PIC16F84A, así como también entender la interfaz de comunicación de salida del puerto serial DB9.

Page 3: Proyecto Domotica

INTRODUCCIÓN

Puerto serial

un puerto serie es una interfaz física de comunicación en serie a través de la cual se transfiere información mandando o recibiendo un bit. A lo largo de la mayor parte de la historia de las computadoras, la transferencia de datos a través de los puertos de serie ha sido generalizada. Se ha usado y sigue usándose para conectar las computadoras a dispositivos como terminales o módems. Los mouses, teclados, y otros periféricos también se conectaban de esta forma.

Mientras que otras interfaces como Ethernet, FireWire, y USB mandaban datos como un flujo en serie, el término "puerto serie" normalmente identifica el hardware más o menos conforme al estándar RS-232, diseñado para interactuar con un módem o con un dispositivo de comunicación similar.

Actualmente en la mayoría de los periféricos serie, la interfaz USB ha reemplazado al puerto serie puesto que es más rápida. La mayor parte de las computadoras están conectados a dispositivos externos a través de USB y, a menudo, ni siquiera llegan a tener un puerto serie.

El puerto serie se elimina para reducir los costes y se considera que es un puerto heredado y obsoleto. Sin embargo, los puertos serie todavía se encuentran en sistemas de automatización industrial y algunos productos industriales y de consumo.

Los dispositivos de redes, como los enrutadores y conmutadores, a menudo tienen puertos serie para modificar su configuración. Los puertos serie se usan frecuentemente en estas áreas porque son sencillos, baratos y permiten la interoperabilidad entre dispositivos. La desventaja es que la configuración de las conexiones serie requiere, en la mayoría de los casos, un conocimiento avanzado por parte del usuario y el uso de comandos complejos si la implementación no es adecuada.

Page 4: Proyecto Domotica

Flowcode

Flowcode 4 es un entorno de desarrollo con una interfaz gráfica intuitiva que permite desarrollar programas para microcontroladores, diagramas de bloque de nivel PIC.Medio Ambiente le permite crear fácilmente programas con sólo arrastrar y soltar el icono apropiado en el diagrama de bloques.

Las ventajas con las que cuenta este programa son que tiene una interfaz fácil de usar, tiene una infinidad de variedad en componentes para programación en alto nivel y genera a partir del diagrama de bloques el código en lenguaje C y el archivo .hex necesario para la programación del PIC.

Microsoft Visual C# 2010 Express

Visual C++ (también conocido como MSVC, Microsoft Visual C++) es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Esta especialmente diseñado para el desarrollo y depuración de código escrito para las API's de Microsoft Windows, DirectX y la tecnología Microsoft .NET Framework.

Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o simplemente MFC), el cual es un conjunto de clases C++ para el desarrollo de aplicaciones en Windows.

El IDE cuenta con herramientas poderosas como el IntelliSense, RemoteDebuging, Editar y Continuar, y Texto Resaltado.

Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft.

El lenguaje de programación utilizado por esta herramienta, de igual nombre está basado en C++, y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje.

Algunas de las nuevas implementaciones es que el llamado código administrado (managed code), hace uso de una de las mejores herramientas dentro de .NET, el recolector de basura(garbage collector).

Page 5: Proyecto Domotica

Proteus

Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra.

ISIS

El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar concomponentes muy variados, desde simples resistencias, hasta algúno que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS.

ISIS es la herramienta ideal para una rápida realización de complejos diseños de esquemas electrónicos destinados tanto a la construcción de equipos electrónicos como a la realización de tareas de simulación y prueba. Además, ISIS es una herramienta excepcional para la realización de atractivos esquemas electrónicos destinados a su publicación en libros, manuales o documentos técnicos, e inclusive, antes de hacer el plano electrónico, se pueden elegir rótulados y tamaños para impresión, desde tamaños portátiles (A5, A4, A3), hasta tamaños estilo plotter (grande): A2, A1 e inclusive, A0.

EL MODULO VSM

Una de las prestaciones de Proteus, integrada con ISIS, es VSM, el Virtual System Modeling (Sistema Virtual de Modelado), una extensión integrada con ISIS, con la cual se puede simular, en tiempo real, con posibilidad de más rapidez; todas las características de varias familias de microcontroladores, introduciendo nosotros mismos el programa que controlará el microcontrolador y cada una de sus salidas, y a la vez, simulando las tareas que queramos que lleve a cabo con el programa. Se pueden simular circuitos con microcontroladores conectados a distintos dispositivos, como motores, lcd´s, teclados en matriz, etc. Incluye, entre otras, las familias de PIC's PIC10, PIC12, PIC16, PIC18, PIC24 y dsPIC33. ISIS es el corazón del entorno integrado PROTEUS. Es mucho más que un simple programa de dibujo de esquemas electrónicos. Combina un entorno de diseño de una

Page 6: Proyecto Domotica

potencia excepcional con una enorme capacidad de controlar la apariencia final de los dibujos.

ARES

ARES, o Advanced Routing and Editing Software (Software de Edición y Ruteo Avanzado); es la herramienta de enrutado ,ubicación y edición de componentes, se utiliza para la fabricación de placas de circuito impreso, permitiendo editar generalmente, las capas superficial (Top Copper), y de soldadura (Bottom Copper).

Page 7: Proyecto Domotica

DESARROLLO DEL PROYECTO

Para desarrollar el proyecto debemos ir por partes, ya que nuestro sistema cuenta con distintas etapas para llegar a la implementación final del control por puerto serial.

Page 8: Proyecto Domotica

Programa bajo entorno Microsoft Visual C# .NET

Esta plataforma de programación se usará para realizar un pequeño programa que nos permitirá controlar las salidas de nuestro puerto serie.

El programa consta de un conjunto de botones que hacen la función de encender los cuatro primeros bits del puerto B; estos serían RB0, RB1, RB2 y RB3.

Como primer paso creamos el código que nos permitirá saber que es lo que le estamos enviando por el puerto serial. El código quedaría como lo muestra la siguiente imagen:

Page 9: Proyecto Domotica

Cada uno de los botones mostrados en la figura de mas abajo tiene una letra y el código ASCII nos da el valor de la letra según la siguiente tabla, así podremos saber que es lo que se esta enviando a través del puerto y entonces realizar el programa del PIC adecuado a esas condiciones.

œ

En la figura anterior se aprecian con flechas rojas lo que vamos a enviar en hexadecimal. A la izquierda de cada columna se encuentra identificado el carácter en decimal, en el medio se presenta en hexadecimal y a la derecha el caracter correspondiente a cada uno de los valores en hexadecimal.

Page 10: Proyecto Domotica

Se escogieron esas letras y el espacio así como pudiesen haber escogido cualesquiera que el usuario desee.

Continuando con el proceso del programa, necesitamos ahora una interfaz gráfica para poder mandar el valor al puerto serial. En ese caso realizamos en el mismo Microsoft Visual C# una tabla de formas con botones y en estos viene indicado el carácter al que pertenece cada uno de estos. Así nos permite ver a que le estamos dando click con el mouse.

Además en la parte baja de la figura se observa que se adjunto un driver para puerto serial, esto es, para poder establecer la comunicación por medio de estos botones.

Nuestro programa funcionará de la siguiente forma:

Al oprimir el botón “t” el usuario estará enviando el valor del caracter en hexadecimal y asi sucesivamente con todos los demás botones.

En el caso del botón “espacio”, cuando nuestro programa en el PIC reciba ese valor, apagará todos los LED`s, pero eso se verá mas adelante cuando nos adentremos a la programación en Flowcode 4.

Cabe mencionar que nuestros botones los podemos hacer de distintas formas y acomodarlos en cualquier parte de la ventana que tenemos en la imagen de la izquierda. Como puede darse cuenta, el botón “espacio” tiene un color de relleno y sus letras se encuentran en negrita para resaltar sobre los demás botones.

Si el usuario desea cambiar el nombre del carácter o el número de botones en la ventana, lo único que tiene que hacer es aumentar o disminuir el código para los caracteres que no desee o si desea más solo especificar en la línea de código la relación entre una tecla y su valor.

En la configuración del puerto dentro de Microsoft Visual C# debemos especificar la velocidad a 9600 baudios y los datos enviados, así como también el puerto por el que se envía la señal, en este caso COM1.

Page 11: Proyecto Domotica

Habiendo terminado la interfaz visual de nuestro programa, proseguiremos con el código para el microcontrolador que se hara de manera muy simple con ayuda del software arriba mencionado.

Codigo *.hex en Flowcode 4

Actualmente el lenguaje de bajo nivel es menos usado ya que cada vez salen formas innovadoras de programar un microcontrolador.

En este caso nos centraremos en un software el cual consiste en arrastrar elementos a la pantalla con la finalidad de hacer un diagrama de flujo y el mismo programa cuando se le da en la opción compilar, tiene la ventaja que nos genera un archivo en hexadecimal sin necesidad de usar lenguaje ensamblador que sería un poco mas complicado.

El programa realizado es muy sencillo. Debemos habilitar una macro de componente en donde nosotros simulemos la recepción de datos al PIC por medio de un MAX232, en este caso el protocolo de comunicación es RS232 marcado con una flecha roja.

Page 12: Proyecto Domotica

Continuando con el diagrama de flujo, debemos comprender que el dato que nos llegará al microcontrolador va a ser interpretado en forma de entero y será leído y almacenado en una variable llamada “X”, facilitando asi, la forma de compararlo con algún otro valor para realizar la condición requerida.

En el caso de que el valor recibido haya sido por oprimir el botón “t”, entonces el PIC recibirá en entero el valor 116 en decimal y lo comparara con el mismo valor, si la condición de que X=116 es verdadera, entonces prendera uno de los LED´s de simulación a la derecha de la foto. En caso contrario se ira a la condición de abajo y así hasta comprobar todas y regresara al punto inicial para seguir comparando. En el caso de que el valor de “X” sea el de la tecla “espacio”, entonces apagará todos los LED´s, o explicado en términos de programación, le mandara un cero a los 4 primeros bits del puerto B.

Se realizan las condiciones de acuerdo al numero de teclas que se encuentran en la interfaz visual y el segundo paso del proyecto queda completado. Únicamente se debe programar el pic con ayuda de cualquier circuito programador de los que existan en el mercado actualmente.

Diseño del circuito en Proteus

Con ayuda del software de simulación ISIS se realiza un esquema del circuito para posteriormente realizarlo en placa de cobre con componentes soldados para asegurar su buen funcionamiento.

En el caso de la simulación por computadora, fue imposible realizarla ya que el sistema operativo Windows 7 no facilita la virtualización de un puerto serial para simular la entrada de datos al circuito por el MAX232.

A continuación se muestra el diseño que se armo para la puesta en funcionamiento del circuito de control por puerto serial.

Page 13: Proyecto Domotica

Como se puede apreciar existe un circuito integrado entre los LED´s y el microcontrolador. Este es un encapsulado que ya cuenta con arreglos darlington de transistores para que el microprocesador no sea el que le suministre la corriente a los LED´s para encenderlos y asi evitar cualquier riesgo de falla por demanda de corriente.

Cabe mencionar que esta aplicación mostrada en este proyecto es unicamente demostrativa de todo lo que se puede manejar con un puerto serial y un microcontrolador conectados y en tiempo real.

Las aplicaciones de potencia para esta interfaz son muy variadas y el proyecto a futuro es realizar una etapa de potencia para poder adecuar aparatos electrodomésticos al proceso de control. Obviamente se debe desarrollar una interfaz visual mas poderosa y mas compleja para poder controlar señales de otro tipo, como por ejemplo, señales analógicas o simplemente para leer el puerto serial y presentar los datos en una pantalla de excel o un icono marcador.

Page 14: Proyecto Domotica

Software Utilizado

Con TeamViewer puede controlar remotamente cualquier ordenador como si estuviera sentado en frente de él - incluso a través de cortafuegos.Su socio solo tiene que iniciar una pequeña aplicación que ni siquiera requiere instalación o derechos administrativos.

Asistencia remota sín instalaciónTeamViewer puede controlar de forma remota cualquier PC en cualquier lugar de Internet. No se requiere instalación, basta con ejecutar la aplicación de ambas partes y conectarse - incluso a través de cortafuegos estrechos.Acceso remoto a ordenadores no vigilados.Incluso acceso directo las 24h del día a ordenadores no vigilados y servidores es posible con facilidad. Lo mejor de todo es: ¡No hay costes adicionales para instalaciones

Funcionamiento sin problemas con cortafuegosLos mayores problemas a la hora de utilizar software de control remoto están provocados por cortafuegos, puertos bloqueados y enrutadores NAT para direcciones IP locales.Si usted utiliza TeamViewer, puede olvidarse de estas dificultades: TeamViewer encontrará una ruta para conectar con su socio también a través de cortafuegos.

Page 15: Proyecto Domotica

permanentes a sus clientes, su oficina o su oficina en casa!

Máximo estándar de seguridadTeamViewer es una solución segura para el control remoto. Las versiones comerciales disponen de canales de datos totalmente protegidos con Key Exchange y AES (256 Bit) Session Encoding y cumplen así los estándares de seguridad de https/SSL.

Transferencia de archivosTeamViewer posee una transferencia de archivos integrada para copiar archivos de un ordenador a otro. La transferencia de archivos también funciona a través de cortafuegos.

Acceso basado en navegadorEstá usted de camino y quiere controlar un ordenador remoto? Porque no útiliza TeamViewer Web Connector? La solución puramente basada en HTML y Flash puede utilizarse desde casi todos los navegadores y los sistemas de explotación.

Retorno de la Inversión rápidoLos derechos de licencia TeamViewer son de bajo costo y darán sus frutos muy rápidamente gracias al ahorro de tiempo y de gastos. Los usuarios privados pueden incluso usarlo de forma gratuita!

Rendimiento optimizadoTeamViewer optimiza la calidad y velocidad de la representación dependiendo del tipo de comunicación de red. Esto permite un trabajo óptimo desde LAN hasta la comunicación por módem.

Control remoto de cualquier ordenador a través de InternetCon TeamViewer el control remoto de ordenadores a través de Internet es un juego de niños.

Page 16: Proyecto Domotica

Funciones del Proyecto:

Como se menciono en el objetivo la finalidad en simples Definiciones es Controlar a distancia y remotamente el 100 de las Instalaciones Electricas que Nos ayudan a mantener Iluminada cualquier vivienda.

En pocas Palabras se Podria Resumir en eso nuestro Proyecto Pero estariamos dejando aun lado el verdadero valor de la domotica como tal y a un plazo no muy lejano se pretende controlar Mucho mas que simple interruptores y dar un paso mas en este Ambicioso Proyecto para llegar a Manipular desde un Celular o un “iPod” lo que se nos plasca de nuestras casas Aparatos como:

o Television

o Climas

o Calentadores

o Cafeteras

o Sistemas de riego

o Computadoras

o Etc.

La puerta queda habierta en este ciclo de Nuestro Proyecto y tendremos como limitante nuestra Imagiancion…

Page 17: Proyecto Domotica

Conclusion

Podemos decir que es una gran Satisfaccion Llegar hasta este punto y poder Tener nuestras Concluciones.

Confiablemente podemos afirmar que el Proyecto logra ser 100% rentable ya que uno de los Softwares y el de mayor Importancia es Gratuito y podemos disponer de el de acuerdo a nuestras necesidades.

Otro dato importante al que llegamos es que esta de nuestro lado la Globalizacion ya que la implementacion de este tipo de Proyectos en Hogares mexicanos cada vez se hace mas facil ya que hoy en dia casi todos contamos con una Computadora en casa y ya no hablar de un celular que es una necesidad para mantenernos comunicados.

Por lo tanto la idea Promete ser acertada y Revolucionaria Quien no sueña con Tener El Control de Casa estando Fuera de ella…

Page 18: Proyecto Domotica

Bibliografia

o http://www.teamviewer.com/es/solutions/support.aspx

o http://www.google.com.mx/imgres?imgurl=http://www.universaldeco.es/wp- content/domotica111.jpg&imgrefurl=http://www.universaldeco.es/casa-domotica/&usg=__pvDadozxeJQ8en_n3zQCGIjw-O0=&h=526&w=687&sz=115&hl=es&start=0&zoom=1&tbnid=C7m0qb2PRiRFuM:&tbnh=135&tbnw=229&ei=gnE4TdLMDJLmsQOxvK2ZAw&prev=/images%3Fq%3Ddomotica%26um%3D1%26hl%3Des%26sa%3DN%26biw%3D1280%26bih%3D899%26tbs%3Disch:1&um=1&itbs=1&iact=hc&vpx=356&vpy=424&dur=4327&hovh=196&hovw=257&tx=113&ty=57&oei=gnE4TdLMDJLmsQOxvK2ZAw&esq=1&page=1&ndsp=32&ved=1t:429,r:13,s:0

o http://www.google.com.mx/images?q=domotica&um=1&ie=UTF- 8&source=og&sa=N&hl=es&tab=wi&biw=1280&bih=899

o http://es.wikipedia.org/wiki/Puerto_serie