• No se han encontrado resultados

Módulos de la aplicación

84 | P á g i n a

- Al iniciar el Módulo de Monitoreo se inicia un Temporizador configurable que cada 2 segundos (Valor predeterminado), solicita una actualización de los estados de los puertos,

ha ie do u a lla ada a la fu ió ‘e i i Estado ; esos datos son aprovechados por la aplicación para realizar las siguientes acciones:

o Dibujar sobre un conjunto de medidores animados el estado de la temperatura, o

una gráfica poligonal mostrando el cambio del valor respecto al tiempo.

o Mostrar el estado de puertas y sensor de presencia.

o Verificar el estado de las alarmas (Éstas son activadas en situaciones críticas

detectadas por los sensores) para que en caso de generarse alguna de estas situaciones, mostrarla como un punto de atención rojo sobre el diagrama virtual del Sitio de Cómputo, específicamente colocado en el lugar donde dicha alarma se ha generado.

- El Módulo de Control se activa cuando el usuario ejecuta alguna acción de control desde la interfaz; dichas acciones pueden ser: abrir/cerrar puertas, encender/apagar luces o activar/desactivar la ventilación manualmente; para lo anterior se utiliza la función E ia , escribiendo los estados de los puertos del módulo salida, y así llevar a cabo la acción determinada.

- El Módulo de Vigilancia al igual que el anterior, se habilita a petición del usuario, y su función es la de mostrar la imagen que está siendo visualizada por la Cámara IP, en ese preciso momento.

- El módulo de seguridad es también muy importante, y está orientado a limitar el acceso a la aplicación, solamente a los usuarios que el administrador permita; como se podrá imaginar este módulo es más bien un complemento a la aplicación, ya que en ningún proyecto de este tipo se debe dejar de lado la seguridad.

85 | P á g i n a

5.3 Desarrollo de aplicación Web ASP.NET

Es importante recordar, que dentro de nuestros objetivos incluimos la capacidad de poder acceder a la aplicación, desde distintos tipos de dispositivos fijos y móviles (Smartphone, Palm, Pocket PC, entre otros), para lo cual es necesario desarrollar una interfaz amigable, extensible y con soporte para éstos; se propone entonces lo siguiente:

Diseñar e implementar una aplicación Web en ASP.NET con complementos en Silverlight; dicha aplicación será accesible a todo usuario desde Internet e Intranet (Red Local), con el único requerimiento de contar con el .NET Framework más reciente, y un explorador de Internet compatible con la tecnología Silverlight.

La aplicación estará alojada en un Servidor Web ubicado en la red local del dispositivo a controlar. Al hacer uso de la tecnología ASP.NET, el control se ejecuta de El lado del se ido ; e o da do u

poco la arquitectura del sistema el Servidor Web, está ubicando en la red local del Sistema de Monitoreo y Control, de manera que las consultas y acciones son llevadas al sistema de control únicamente a través de la red local, protegiendo así el acceso directo al dispositivo (IP Power), por parte de cualquier usuario desde Internet.

Dividiremos el desarrollo de la aplicación Web en varias etapas:

Comunicación con el(los) dispositivos a controlar

Como se indicó anteriormente, la base de la comunicación entre el Sistema de Monitoreo y Control y la aplicación, es a partir de la implementación de la Biblioteca de Clases desarrollada, dentro de la aplicación el usuario indicará el momento en que la aplicación se conectará al dispositivo, y es a partir de ahí cuando comenzará la interacción entre el Sistema de Control, la Aplicación Web y el Usuario.

InteracciónAplicación-Usuario

Una vez que la comunicación se ha establecido, toca el turno de los Controles Gráficos de la aplicación presentar de manera eficiente la información; para ello haremos uso de la tecnología Silverlight, creando un conjunto de objetos animados que permitan brindar al usuario final, una experiencia interactiva y agradable con nuestro sistema de monitoreo y control.

Configuración de la aplicación

Antes de realizar cualquier tipo de acción sobre la aplicación, debemos configurar ciertos parámetros; primero que nada debemos agregar una nueva interfaz de control, dicha interfaz quedará permanentemente almacenada en una pequeña base de datos, y será visible para todos los usuarios que accedan al sitio; en cuanto al código, se creará una nueva instancia de la clase por cada interfaz agregada, cada una de ellas con su respectiva IP.

86 | P á g i n a Seguridad

No podemos dejar de lado el aspecto de la seguridad en una aplicación de monitoreo/control; la forma de implementarla se refiere a limitar el acceso a dicha aplicación, sólo a las personas previamente autorizadas.

87 | P á g i n a

5.3.1 Desarrollo de los objetos Silverlight

Estos objetos son los que proporcionarán la interactividad entre la aplicación y el usuario; serán un conjunto de indicadores de las condiciones ambientales del centro de cómputo a monitorear, así como una abstracción virtual del mismo; la forma de operar de los mismos se indica a continuación:

Indicadores de Sensores

Estos indicadores se actualizarán de acuerdo a un temporizador configurable; en cada actualización el servidor solicitará la información al dispositivo (IP Power), que dirigirá la solicitud al microcontrolador y éste responderá con la magnitud respectiva al sensor indicado.

El hacer uso de Silverlight para éste y los demás objetos, hará parecer que la información se actualiza de manera casi inmediata, ya que la transición de un estado a otro se realiza de forma animada, y las formas ya están cargadas previamente en la caché del explorador.

Plataforma virtual del centro de cómputo

La forma de indicar el estado de puertas, luces, ventilación y alarmas dentro de la aplicación, será por medio de una abstracción virtual del centro de cómputo real; en ella podremos observar los componentes de dicho centro, así como indicadores de los estados críticos mostrados por los sensores, por lo que será muy fácil detectar, el lugar exacto donde se producen los desencadenadores de las alarmas.

Procedimiento de diseño

Recordando un poco el marco teórico, en Silverlight tenemos una clara separación entre código y presentación (C# y XAML en este caso); por un lado definimos la interfaz y asignamos eventos a ciertas figuras o controles, y por el otro editamos el código referente a cada uno de dichos eventos. La forma en que se crean estos objetos, lleva el siguiente procedimiento:

Creación de formas y colores.

Asignación de identificadores (ID) a dichas formas.

Establecer parámetros predeterminados (longitud, coordenadas, tipo de transición). Definición del tipo de Animación.

Definición del Storyboard (Línea del tiempo) para la transición de la animación. Definir el código que por detrás manipulará la animación.

88 | P á g i n a

5.3.2 Ejemplo: Indicador de Barras de Temperatura

Definiendo formas

La forma básica de dibujar una gráfica de comportamiento de temperatura, es a partir de un gráfico de barras, cuyo tamaño cambiará de acuerdo al valor identificado; procedemos entonces a definirlas por medio de rectángulos, asignando además los parámetros de color, tamaño inicial, etc.

<Rectangle x:Name="Temperatura" Visibility="Collapsed" Width="100"> <Rectangle.Fill>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/>

<GradientStop Color="White" Offset="1"/> </LinearGradientBrush>

</Rectangle.Fill> </Rectangle>

Animando el control

Para animar el control creado, debemos asignar al is o u “to oa d , al cual que le colocaremos los parámetro referentes a la manera en que dicho control será modificado; posteriormente a partir del nombre del mismo, es posible referenciarlo dentro del código.

<Rectangle x:Name="Temperatura" Visibility="Collapsed" Width="100"> <Rectangle.Fill>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/>

<GradientStop Color="White" Offset="1"/> </LinearGradientBrush>

</Rectangle.Fill>

<Rectangle.Resources>

<Storyboard x:Name="AnimTemp">

<DoubleAnimation Storyboard.TargetName="GTemp" Storyboard.TargetProperty="Height" From="10" To="300" Duration="0:0:5">

89 | P á g i n a

</DoubleAnimation>

</Storyboard> </Rectangle.Resources>

</Rectangle>

Finalmente dentro de la programación, podemos iniciar dicha animación simplemente haciendo referencia al nombre de la misma y al evento; además de poder modificar sus parámetros desde el mismo código:

AnimTemp.Begin ();

Y esa es la forma básica de animar los controles, debido a la complejidad de algunos de los controles no se describirán a detalle en este momento.

90 | P á g i n a

5.4 Programación del microcontrolador MSP430 F2012

Como se menciona en un capítulo anterior, en el caso de la temperatura, tenemos valores analógicos los cuales no podemos captar directamente en nuestro módulo, ya que sus entradas son únicamente digitales, por esta razón es que utilizaremos este microcontrolador, ya que cuenta con un convertidor analógico-digital, este microcontrolador está programado de tal forma que cuando se rebasa el nivel permitido, éste enviará una señal digital a nuestro módulo y este a su vez nos informará del suceso.

Para lograr este objetivo fue necesario la elaboración del siguiente programa:

5.4.1 Programa sensor de temperatura

#include "msp430x20x2.h" void Ini_LCD(); void Enable_LCD(); void Envio_4bits(char); void Comando_LCD(char); void Datos_LCD(char); void vfDelay(unsigned int);

const unsigned char Letrero1[17] = {"MSP430F2012 "}; const unsigned char Letrero2[17] = {" Termometro "}; const unsigned char Letrero3[17] = {" Temperatura. "}; const unsigned char Letrero4[17] = {" +123.4ßC "}; long temp;

long IntDegC; long error; int k = 1;

char UnidadMillar, Centena, Decena, Unidad; void vfBCD(long);

int main( void ) {

// Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;

//DCO Trabajando a 1MHz aprox. BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;

//Configuración del ADC10

ADC10CTL0 = SREF_1 + ADC10SHT_1 + MSC + REFON + ADC10ON; ADC10CTL1 = INCH_1 + ADC10SSEL_0 + CONSEQ_2;

ADC10AE0 |= BIT1;

91 | P á g i n a

//Configuración de las líneas de salida P2SEL &= ~0xC0;

P2DIR |= BIT7+BIT6; //P2.6, P2.7 configuradas como salidas

//P1OUT &= ~0xF9; //Borrado de las líneas que ocupa el LCD int i;

int s; s = 5;

while(--s) vfDelay(0xFFFF);

ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start Ini_LCD();

Comando_LCD(0x0C); P2OUT = 0x00;

for(i = 0; i <= 15; i++) Datos_LCD(Letrero1[i]); //Impresión del Letrero1 Comando_LCD(0xC0);

for(i = 0; i <= 15; i++) Datos_LCD(Letrero2[i]); //Impresión del Letrero2 s = 20;

while(--s) vfDelay(0xFFFF); //Pausa para poder visualizar los caracteres

Comando_LCD(0x01); //Comando para limpiar la pantalla del LC for(;;) { temp = ADC10MEM; IntDegC = ((temp * 1500)/1023); vfBCD(IntDegC);

error = k*(250 - IntDegC); // cálculo del error

if(error <= -10) // rango de error P2OUT = 0x40; if(error >= 10) P2OUT = 0x80; Comando_LCD(0xC5); Datos_LCD(UnidadMillar); Datos_LCD(Centena); Datos_LCD(Decena); Datos_LCD(0x2E); Unidad = Unidad + 0x30; Datos_LCD(Unidad); s = 10;

while(--s) vfDelay(0xFFFF); //Pausa para poder visualizar los caracteres }

}

92 | P á g i n a

void Ini_LCD() {

P1SEL &= ~0xF9;

P1DIR |= BIT7+BIT6+BIT5+BIT4+BIT3+BIT0; //P1.0, P1.3 a P1.7 configuradas como salidas

P1OUT &= ~0xF9; //Borrado de las líneas que ocupa el LCD

P1OUT |= 0x20; //Funtion SET Enable_LCD();

vfDelay(19); //Pausa de 120us Enable_LCD();

P1OUT &= 0x0F; P1OUT |= 0xC0; Enable_LCD();

vfDelay(19); //Pausa de 120us

Comando_LCD(0x0F); //Set ON/OFF of entire display (D),dresser ON/OFF(C), //and blinking of cursor position B

Comando_LCD(0x01); //Clear display and return cursor to home position (Address 0). }

//Rutina de Envio de Comandos al LCD void Comando_LCD(char CMD)

{

P1OUT &= ~BIT0; //RS = 0 Envio_4bits(CMD);

if (CMD <= 0x02) vfDelay(815); //Pausa de 4.9ms else vfDelay(19); //Pausa de 120us }

//Rutina de Envio de Datos al LCD void Datos_LCD(char DAT) {

P1OUT |= BIT0; //RS = 1 Envio_4bits(DAT);

vfDelay(19); //Pausa de 120us }

//Rutina de Envio de 4-bits al LCD void Envio_4bits(char BIT) { int Q; Q = BIT & 0xF0; P1OUT &= 0x0F; P1OUT |= Q; Enable_LCD(); Q = BIT << 4; P1OUT &= 0x0F;

93 | P á g i n a

P1OUT |= Q; Enable_LCD();

}

//Envio del un pulso para la terminal E del LCD void Enable_LCD()

{

P1OUT |= BIT3; // E = 1 vfDelay(1);

P1OUT &= ~BIT3; // E = 0 }

//Rutina de Tiempo

void vfDelay(unsigned int T) {while(--T);}

//--- //Rutina de conversión de Binario a BCD

void vfBCD(long D) { UnidadMillar = 0x30; Centena = 0x30; Decena = 0x30; if ( D >= 1000 ) { do { D-=1000; UnidadMillar++; } while ( D >= 1000 ); } if ( D >= 100 ) { do { D-=100; Centena++; } while ( D >= 100 ); } if ( D >= 10 ) { do { D-=10; Decena++;

94 | P á g i n a } while ( D >= 10 ); } Unidad = D; }

95 | P á g i n a

Capítulo 6

96 | P á g i n a

Para la realización de este proyecto se requiere del material y equipo que a continuación se presenta, en este apartado presentamos las características y costos de cada uno de los elementos a utilizar, sin embargo, existe la posibilidad de buscar algunas otras alternativas, si la persona interesada en el proyecto así lo solicitara.

-Equipo de cómputo

Es necesario un equipo de cómputo para realizar toda la programación, pero al final éste también será requerido, ya que será el encargado de procesar la información que se obtiene de los distintos eventos, que sucedan dentro del Cuarto de Cómputo.

Componentes

Procesador I tel® Co e™ Duo E7400 (3MB L2 Cache,2.80GHz,1066 FSB)

Memoria 2GB Dual Channel DDR2 SDRAM at 800MHz- 2DIMMs

Disco Duro GB “e ial ATA Ha d D i e ‘PM /DataBu st Ca he™

Monitor 20 inch S2009WFP Widescreen Digital Flat Panel Monitor

Dispositivo Óptico 16X DVD+/-RW Drive

Teclado Tarjeta de Video Tarjeta de Sonido Mouse Costo : $6,000-$7,000 -Software

Visual Studio 2008 ofrece avances clave para desarrolladores en función de los siguientes tres pilares:

Desarrollo rápido de aplicaciones Colaboración eficiente entre equipos Innovación en experiencias de usuario Costo : $2500.00

97 | P á g i n a

-Cámara Web

Esta cámara presenta las siguientes características:

• Diseño de cuello flexible

• K pí eles

• pí eles fo ato VGA • I te faz U“B .

• Co st uido e 3 LEDs infrarrojos de alta potencia para la luz baja

• Co st uido e LEDs de alto brillo para el cuarto oscuro

• Le te de fo o ajusta le

• Cá a a de se so : / de pulgada color CMOS sensor

• Pí el: VGA Fo ato X

• ‘esolu ió : , , , , , , • fotog a as po segu do: FPS @ 352 x 288, 15 FPS @ 640 x 480

• Má i o de Captu a ‘esolu ió : Hasta po soft a e • Dista ia de Fo o: ~ i fi ito

• Le te de á gulo a ho: g ados Diago al

• Colo : hasta . illo es de olo e dade o -bit)

• Du a ió : Ap o i ada e te -pulgadas

COSTO $500.00

-Actuador universal para seguros

El actuador universal deberá ser instalado en la puerta del centro de cómputo para ser conectada al IP Power, y así poder controlar el acceso al lugar.

Caracteristicas

- Alimentación: 12 Vcc

- Fuerza de desplazamiento: hasta 2,5 Kg. - Distancia de desplazamiento: 1,9 cm. - Tiempo de vida: hasta 100,000 operaciones - Dimensiones: 16 x 6 x 3 cm.

98 | P á g i n a Costo: $100.00

-Sensores de temperatura

Se requiere de estos sensores para saber si el cuarto de cómputo está a la temperatura adecuada, y de no ser así, accionar el aire acondicionado, los sensores a utilizar serán los LM35, ya que nos ofrece una precisión de 1°C que va desde -55° a 150° , se presenta en diferentes encapsulados, tiene una salida lineal y equivale a 10mV/°C.

Se podría colocar un sólo sensor, pero para tener una mayor eficiencia se planea poner uno en cada esquina del cuarto de cómputo, y realizar un promedio de las temperaturas de cada uno de éstos, para así obtener un valor más real.

COSTO: $30.00

-Cables para conexiones

Se requerirá de diversos tipos de cables para realizar conexiones entre los diferentes dispositivos, como lo pueden ser cables seriales, UTP, USB, etc.

COSTO: $100.00

99 | P á g i n a -Instalación y mantenimiento

Esto consiste en realizar la instalación del todo el sistema y proporcionar mantenimiento durante un periodo de tiempo aún por definir.

Costo: $3000.00

-IP Power Aviosys 9212

Es la parte central del proyecto, debido a que es el encargado de realizar la conexión por medio de la red entre los dispositivos y la interfaz de control, a través de sus entradas y salidas digitales, serán conectados los sensores y actuadores que ya se mencionaron anteriormente.

Costo: $1500.00

-Microcontrolador F2012 de Texas Instruments

Este microcontrolador será utilizado para realizar los sensores de temperatura y presencia, con la finalidad de que a la salida únicamente tengamos estados altos o bajos, dependiendo de las condiciones en las que se encuentre el centro de cómputo.

100 | P á g i n a

-Otros componentes electrónicos

Para la realización de los sensores de temperatura y presencia, son necesarios algunos componentes electrónicos, como reguladores de voltaje , capacitores , resistores, transistores, etc. De los cuales se describirá su función en el capítulo dedicado a hardware.

Costo: $100.00

-Ventilador

Este tipo de ventiladores tienen las siguientes características: Alimentación de 12 VCD 60 mA. 700 mW de potencia 7000 a 10000 RPM. 25 dBA de ruido Dimensiones de 40 x 40 x 10 mm (2 pulgadas). Costo: $40

101 | P á g i n a -Foco miniatura de bayoneta

Alimentación: 12 VDC -Ruteador Inalámbrico D-Link

Principales Características y Facilidades:

· Rendimiento 5 x veces superior que el de un producto Wi eless15 11b · Ancho de Banda de 54Mbps, en 2.4GHz

· Compatible con productos que operen bajo el estándar 802.11b y 802.11g, y todos los productos Wi eless de D-Link

· Seguridad Avanzada, WPA

· Funcionalidades de Firewall, DMZ hots y Soporte VPN Pass-through · Control de acceso hacia Interne

· Antena desmontable con conector RSMA · Servidor DHCP

· Fácil Instalación gracias al Soporte de UPnP · Alto Rendimiento

· Fácil integración en red Costo: $1800

102 | P á g i n a

Conclusiones

Después de realizar un extenso trabajo de desarrollo de software y de hardware,

nuestro prototipo finalmente está terminado y listo para utilizarse.

Luego de las pruebas realizadas, tanto en la parte de hardware, como de software,

pudimos corroborar y demostrar que nuestro prototipo es un sistema confiable, eficiente

y fácil de utilizar para cualquier persona.

Entre estas pruebas destacan las realizadas a los sensores, ya que es de vital importancia

que éstos, funcionen en tiempo real para que nuestro monitoreo sea lo más eficiente

posible, este objetivo se cumplió y se puede apreciar fácilmente, cuando rebasamos el

nivel de temperatura recomendado, cuando hay humo o cuando hay movimiento, ya que

inmediatamente que es detectado algún cambio, éste es registrado por nuestra

Aplicación Web, visible desde cualquier parte del mundo.

De igual forma, las pruebas realizadas con los actuadores resultaron satisfactorias.

Podemos observar que desde diferentes equipos de cómputo de diferentes áreas,

nuestro equipo se puede controlar sin ningún problema, esto se comprobó al activar los

diferentes actuadores que tenemos conectados en nuestra maqueta, como lo son: el

ventilador, el actuador eléctrico para puertas y el encendido de focos.

La parte más destacable de este sistema, es el software, el cual cuenta con un ambiente

virtual muy amigable para el usuario, lo cual le permite a cualquier persona (aunque

tenga conocimientos limitados en computación), la operación de éste de manera sencilla

y eficiente. Como se ejecuta por medio de una página de Internet, no necesitamos de

instaladores ni bibliotecas, ya que todo se encuentra almacenado en nuestro servidor

Web.

Uno de los problemas a los que nos enfrentamos ocurrió al leer las señales de nuestros

sensores, ya que aunque se contaba con el voltaje necesario, pero la corriente era

insuficiente, por esta razón se utilizó un arreglo de transistor-relevador-resistor

polarizado por base.

Este dispositivo se recomienda para la industria, para oficinas y para el hogar, para la

industria como se requiere de procesos monitoreo y control más precisos, se requiere

afinar aún más este prototipo, en cambio para el uso en oficinas y el hogar este producto

resulta recomendable ampliamente.

103 | P á g i n a

Bibliografía

1. Redes de Datos y Convergencia IP;

José Manuel Huidobro Moya, Ramón Jesús Millán Tejedor; Editorial Alfaomega;

Primera Edición; México, Julio 2007.

2. Comunicaciones y Redes de Computadoras; William Stallings;

Editorial Prentice Hall; Sexta Edición;

España.

3. Ingeniería del Software; Ian Sommerville;

Editorial Pearson Addison Wesley; Séptima Edición.

4. Redes de computadoras; Andrew S. Tanenbaum; Editorial Pearson; Cuarta edición.

5. Internet, Redes de Computadoras y Sistemas de Información; Sergio Talens Oliag, José Hernández Orallo;

Editorial Paraninfo. 6. Domine TCP/IP;

José Luis Raya, Víctor Rodrígo; Editorial Alfaomega,

México D.F., 1998. .

7. Redes Globales de Información con Internet y TCP/IP, Principios básicos, Protocolos y Arquitectura;

Douglas E. Comer;

Editorial Prentice Hall Hispanoamericana, S.A.; Tercera Edición;

104 | P á g i n a 8. Programación Segura con .NET Framework

Marino Posadas Netalia Ediciones S.L. Segunda Edición

9. Aplicaciones .NET Multiplataforma Francisco Javier Ceballos Sierra Editorial Ra-Ma

Primera Edición; México.

10. Silverlight 2.0 Laurence Moroney

Editorial Anaya Multimedia Segunda Edición

México.

11.http://es.wikipedia.org/wiki/Control_remoto

105 | P á g i n a

Anexo 1 Conexiones del Prototipo

106 | P á g i n a

Anexo 2 Conexión de la Red

107 | P á g i n a

Anexo 3 Biblioteca de clases para comunicarse con el IP Power

Public Class ConexionIP

'Funciones de Comunicación'

Declare Function Inicializar Lib "socket.dll" Alias "receivep6" () As Integer Declare Function RecepcionDatos Lib "socket.dll" Alias "receive" () As Integer

Declare Function Transferir Lib "socket.dll" Alias "transfer" (ByVal variable As Integer) As Integer

Documento similar