Вы находитесь на странице: 1из 11

Instituto Tecnológico y de Estudios Superiores de Monterrey

Campus Monterrey

Laboratorio de Circuitos Digitales


Ing. Ricardo Salgado, M.C.

Proyecto Final

intelihouse

“La mejor forma de administrar su hogar desde web”

Andrés Monroy
Juan Miguel Rodríguez
Juan Carlos Jimémez

Instructor: Ing. Roberto Martínez

Monterrey, N.L.; 24 de noviembre de 1999


InteliHouse, administrador del hogar via web
I. Definición
InteliHouse es un controlador electrónico de algunas funciones comunes del
hogar, tales como el encendido de luces y control del clima, que puede ser
accesado por medio de una página de web desde cualquier computadora
conectada a Internet.

II. Descripción
El proyecto se divide en dos elementos generales:

A. Software: Un servidor de web en donde se cargan páginas HTML y un CGI


que permite el enviar datos al puerto paralelo.

B. Hardware: La interfase con el puerto paralelo de la computadora que funciona


como servidor y los elementos electrónicos que controlan los dispostivos
eléctricos caseros tales como un clima (emulado con un motor) y als luces de
tres cuartos.

A. Software
El software de InteliHouse está compuesto de tres elementos :

1. Servidor de web. En la computadora que se utilizó para enviar datos por el


paralelo se instalo el servidor de web Apache 1.3. Este servidor es un
software que mantiene a la computadora en un estado de continuo escaneo
de su conexión de red en busca de algun request que pueda hacerse desde
algún browser de web (ej. Netscape). El servidor de web al detectar una
solicitud de HTTP envia al solicitante la página HTML de InteliHouse.

2. Páginas HTML. InteliHouse ofrece al usuario una interfaz amigable por


medio de una página de web que está compuesta de 5 frames. Uno de estos
frames, es una forma en donde el usuario puede seleccionar la velocidad del
aire acondicionado de la casa, asi como el encendido o apagado de las luces
de tres diferentes cuartos.

El código de la pagina que contiene la forma, consite además de HTML de


algunas funciones en JavaScript que, dependiendo de las opciones
seleccionadas por el usuario calcula el número decimal que será enviado al
puerto paralelo. Se cuentan con 8 bits de salida del puerto paralelo. Los 2
bits menos significativos, los bits 0 y 1, se asignan para controlar la velocidad
del aire acondicionado (motor). Los bits 4, 5 y 6 se utilizan para
encender/apagar las luces del comedor, la sala y la recámara
respectivamente.
Para el control del clima se utilizaron radio-buttons, los cuales permiten que
solamente uno de ellos sea seleccionado. Esto previene que el usuario
pudiera seleccionar varias velocidades a la vez, lo cual seria una situación
ilógica. Para el control del encendido/apagado de las luces, se usaron check-
boxes los cuales permiten que puedan ser o no encendidas todas o ninguna
de las luces de la casa almismo tiempo.

Se utilizó un algoritmo muy simple implementado en JavaScript para


conviertir las opciones seleccionadas en la pagina HTML en el número
decimal que será enviado al puerto paralelo. El algoritmo consiste en verificar
que velocidad del aire se seleccionó,si el usuario eligió…
- Apagado se suma 3 (112) a la variable salida.
- Débil se suma 2 (102) a la variable salida.
- Medio se suma 1 (012) a la variable salida.
- Fuerte se suma 0 (102) a la variable salida.

Para el encendido de las luces se verifica cuál cuarto ha sido seleccionado, si


el usuario eligió…
- Recámara se suma 16 (100002) a la variable salida.
- Sala se suma 32 (1000002) a la variable salida.
- Comedor se suma 64 (10000002) a la variable salida.

De esta manera los bits 4, 5 y 6 del puerto serivirán para encender la


recámara, la sala y el comedor respectivamente.

Página Principal
Forma de control

La función de JavaScript que realiza el algoritmo deses la siguiente:

function enviar(){
var salida ;
if (document.forma[0].checked) salida = 3;
if (document.forma[1].checked) salida = 2;
if (document.forma[2].checked) salida = 1;
if (document.forma[3].checked) salida = 0;

if (document.forma.recamara.checked) salida = salida + 16;


if (document.forma.sala.checked) salida = salida + 32;
if (document.forma.cochera.checked) salida = salida + 64;
}

3. CGI en C.
Un CGI se puede definir como programa que recibe datos de una forma que se
encuentra en una página HTML y que los procesa para producir un resultado
deseado. En el caso de InteliHouse un CGI programado en C, recibe los datos
de la forma, los limpia y deja la variable que se desea enviar al puerto en un
variable short int de C. Después, dentro del mismo CGI, dicha variable se envía
como parámetro a una función que se encarga de poner tal número en los pines
del 2 al 9 del puerto paralelo.

Al estar programando el CGI originalmente se pensó utilizar la función outp de C,


la cual envía un dato al Puerto Paralelo, tal como se deseaba. Sin embargo, nos
encontramos con que la funcion outp no compilaba en aplicaciones de 32 bits,
solamente en 16 bits. El problema fue que el servidor de Web solamente ejecuta
aplicaciones de 32 bits, por lo cual se descartó el uso de dicha función. En su
lugar se utilizó una función ya implementada y compilada como DLL para 32 bits.
Dicho DLL programado en Delphi ejecuta algunas simples líneas de Assembler
que envían los datos al puerto paralelo. La función de Assembler incluída en el
DLL recibe como parámertros la dirección del puerto y el dato que se desea que
salga por el puerto paralelo. En el codigo del CGI se hace una llamada a dicho
DLL para ejecutar su funcion de Out32, y se le manda como parametro el dato a
salir y la dirección del puerto, que en el caso de la computadora-servidor es la
dirección 378H.

hModule=LoadLibrary("inpout32.dll"); // llama al DLL


puerto = 0x378; //asigna la direcion del puerto
dato = atoi(entries[0].val); // toma el valor de la forma
(*pfuncSalida)(puerto, dato); // Ejecuta la funcion de Output

El CGI aún tiene el inconveniente de que después de ejectuarse no se cierra


completamente y la siguiente vez que se ejecuta, se abrirá una nueva instancia
del CGI sin eliminar la anterior. Esto no afecta en la funcionalidad, pero si en la
eficiencia, se planea corregir este bug.

Por último cabe mencionar que el desarrollo del CGI se hizo en el Visual Studio
7.0 por ser un compilador que puede hacer aplicaciones de 32 bits en modo
consola, tal como se necesitan para poderse ejecutar desde el Apache Web
Server.

Hardware

La sección de hardware del proyecto InteliHouse, es relativamente sencilla.


Mediante las conexiones de hardware se efectuaron las operaciones de
controlar velocidad de un motor (o aire acondicionado) y el encendido y apagado
de focos incandecentes. Esta sección consta de tres etapas: la protección de la
salida o buffer del puerto paralelo, amplificación y salidas específicas.

Buffers y encendido de luces


La etapa de protección consiste en 6 seguidores de voltaje implementados con
OpAmps (741) para los seis bits provenientes del puerto paralelo de la
computadora. Los pines del puerto paralelo utilizados fueron del pin 2 al pin 7,
donde los primeros dos se utilizaban para controlar las cuatro velocidades del
motor y los restantes tres encendían/apagaban los focos de (recamara, sala y
cochera). Enseguida se muestra un diagrama de estos seguidores:
Notese que el voltaje de salida del puerto paralelo es de 3 voltios, ya que se
utilizó una computadora portatíl en la implementación física.

La segunda etapa, amplificación consistió en


un amplificador no-inversor. La figura a la
derecha muestra esta configuración. Con este
amplificador se logró tener una salida de 5v
necesaria para polarizaro los MOCs y los de
entrada al convertidor digital-analogo.

La última pero no menos importante etapa es


la conexión a los dispositivos. En la conexión
de los focos incandecentes primero se
necesito una interfaz con MOCs para lograr un aislamiento mayor con la fuente
de corriente alterna de 120 VAC. Obviamente los MOCs no se conectaron a los
focos directamente. Para esto fue necesario colocar TRIACs a la salida de los
MOCs. La salida de los MOCs
proporcionó la corriente de
disparo necesaria para lograr la
conducción de los TRIACs. En la
simulación no se incluyeron los
MOC ya que no se encontraro,
pero esta si muestra la conexión
entre la fuente de 120 VAC y los
TRIACs.
El control del clima

Dentro del hardware de control de la casa, existe la sección para el clima. El


clima tiene como opciones: apagado, débil, medio y fuerte. Para este control,
suponemos variable la velocidad de trabajo del motor. En el diseño, esta
velocidad puede tener un rango variable máximo de 256 velocidades, en
incrementos iguales de alta resolución. Este cambio en la potencia que usa el
clima, se controla digitalmente y se logra según la siguiente lógica:

El motor necesita una fuente de voltaje y una tierra para consumir la


corriente, este voltaje es de directa y es constante. Deseamos que la carga
(el motor) consuma diferentes niveles de potencia, pero obviamente no
podemos variar su carga ni podemos variar la fuente de voltaje. Tampoco es
posible utilizar un divisor variable de voltaje, por que la eficiencia bajaría
demasiado. Para lograr un consumo variable de potencia, pero sin ninguna
pérdida (toda la potencia que entrega la fuente, deber ser consumida
solamente por la carga –el motor del clima-) entonces se decide hacer un
switcheo de voltaje muy rápido, con frecuencia y ciclo de trabajo variables
en la alimentación de corriente de la carga pero, el circuito de control no
debe ser quien proporcione la corriente.

Para hacer más claro este concepto, retomemos la idea básica de que la carga
necesita una terminal a la fuente de voltaje, y la otra a tierra. Si no tiene una
terminal a tierra, no puede haber conducción de corriente por falta de diferencia
de potencial entre las terminales, es decir, si la terminal de tierra adquiere un
potencial igual al de la terminal que se conecta a la fuente, no habrá conducción.

Al sistema de control. A tierra.


(1) El sistema de control, proporcionará la tierra necesaria para el motor.

El sistema de control de velocidad de este motor, se basa en este


concepto, y precisamente nuestro diseño de control proporciona la tierra
necesaria para el motor, controlando en frecuencia y en ciclos de trabajo, la
potencia que el motor puede tomar de la fuente de voltaje. Esto se analiza en la
gráfica de la siguiente página.
Región A: Alta frecuencia. El motor recibe voltaje en la terminal que necesita
tierra, por lo que no hay diferencia de potencial y por consiguiente, conducción.
Cuando se le da tierra al motor, es muy pequeña y en muy rápidos intervalos,
insuficientes para que el motor arranque con una alta velocidad.

Región B: La frecuencia disminuye, y el ciclo de trabajo de la señal de control es


de un porcentaje más negativo cada vez. Por lo que hay más tierra y en
intervalos más concisos, que de esta forma consiguen que el motor incremente
su velocidad y su potencia.

Región C: El voltaje positivo que impedía la conducción, ahora está presente en


muy pequeños intervalos de tiempo. Así mismo, hay mucha tierra presente en
cada período de la señal, por lo que la conducción tendrá lugar más tiempo. En
esta región, la frecuencia ha disminuido gradualmente para que la tierra que
toma el motor, no se vea interrumpida. La velocidad máxima se logra cuando la
señal de control es únicamente tierra.

(2) Gráfica de la señal de control conectada a la entrada ( - ) del motor. Vcc= 15 V.

Esta forma de controlar la velocidad, es eficiente porque la inercia del motor


provoca que haya una continuidad en el movimiento.
Para crear la señal de control, a partir de una palabra binaria proveniente del
puerto de la comptadora, se sigue el siguiente diagrama de flujo:

à Convertir a corrienteà
Palabra Binariaà à Convertir a voltajeà
à
à Convertir a señal de control
Convertir a frecuencia y ciclo de trabajoà

Ahora, este diagrama de flujo, lo transformamos en bloques.

Computadora

Palabra Binaria

DAC(i)

Corriente

OP AMP

Voltaje

TIMER

Frecuencia

OP AMP Señal de control

(3) Diagrama de Bloques del proceso de control del clima.

Finalmente, en la página siguiente veremos el circuito implementado con una


simulación de su funcionamiento.
Este es el circuito implementado físicamente, y su funcionamiento fue exitoso.

(4) Circuito Implementado en la práctica.

Este circuito nos dá una salida como la que sigue:

(5) Señal de control.

Los principales problemas, fueron que el motor requería mucha corriente para
echar a andar, y además fue necesario quemar muchos OP AMPs y un DAC
hasta dar con la configuración correcta de los componentes.
Resultados

Por parte del software, solo se se tuvieron algunas dificultades al momento de


cerrar el cgi, ya que este se mantenia activo por alguna razón desconocida. Sin
embargo, si funcionaba correctamente, con la excepción de que se habría una
nueva instancia del programa cada vez que se ejecutaba una acción. Por el
lado del hardware, se obtuvo el funcionamiento esperado de todos los circuitos.
Sin embargo, no fue posible implementar el encendido de todos los focos, ya
que estos no habia suficientes en el laboratorio. Solo se probó con el encendido
y apagado de el foco de comedor. El funcionamiento de el manejo de velocidad
del motor del clima entregó resultados satisfactorios.

Вам также может понравиться