School Work">
Sistema Seguridad
Sistema Seguridad
Sistema Seguridad
T E M A DE TESIS
QUE PARA OBTENER EL TITULO DE
POR LA OPCIN DE TITULACIN
DEBERA(N) DESARROLLAR
M.ENC.DA
JEFE DEL DEP
INGENIERA EN CO
A'-"'r-.....J~H
CACIONES y ELECTRNICA
Dedicatorias
Objetivos
Objetivo general.
Objetivos particulares.
IV
Contenido
Contenido
Objetivo general. .................................................................................................................................................IV
Objetivos particulares. .....................................................................................................................................IV
Introduccin. ........................................................................................................................................................VI
1 Domtica, protocolos y pginas web ........................................................................................................ 1
1.1 Antecedentes ................................................................................................................................................................1
1.2 Aplicaciones ..................................................................................................................................................................2
1.3 Elementos de un sistema domtico ....................................................................................................................4
1.4 Normatividad y estandarizacin ..........................................................................................................................6
1.5 Protocolos de comunicacin ............................................................................................................................... 10
1.5.1 Protocolos utilizados en la pila TCP/IP de Microchip ..................................................................... 10
1.5.2 Modelo de Referencia TCP/IP .................................................................................................................... 11
1.5.3 Ethernet............................................................................................................................................................... 12
1.5.4 Protocolo de resolucin de direcciones (ARP) ................................................................................... 13
1.5.5 Protocolo de Internet (IP) ........................................................................................................................... 13
1.5.6 Protocolo de Mensajes de Control de Internet (ICMP) ................................................................... 13
1.5.7 Protocolo de Control de Transmisin (TCP) ....................................................................................... 14
1.5.8 Protocolo de Datagramas de Usuario (UDP) ....................................................................................... 14
1.5.9 Protocolo de configuracin dinmica de host (DHCP) .................................................................... 14
1.5.10 Protocolo de Administracin de Red Simple (SNMP) ................................................................... 14
1.5.11 Protocolo de Transferencia de Hipertexto (HTTP)........................................................................ 15
1.5.12 Protocolo de Transferencia de Archivos (FTP) ............................................................................... 15
1.5.13 Protocolo ZigBee ........................................................................................................................................... 15
1.5.14 Recommended Standard 232 (RS-232) .............................................................................................. 17
1.5.15 Transmisor-Receptor Asncrono Universal (UART) ..................................................................... 18
1.6 Pginas web............................................................................................................................................................... 19
2 Descripcin del sistema propuesto .........................................................................................................22
2.1 PIC32 Ethernet Starter Kit ................................................................................................................................... 24
2.2 XBee ............................................................................................................................................................................... 25
2.2.1 Configuracin de mdulos XBee ............................................................................................................... 26
III
Contenido
2.3 Interfaz de usuario .................................................................................................................................................. 31
2.3.1 Pantalla LCD JHD 162 A ................................................................................................................................ 31
2.3.2 Microcontrolador PIC16F876A ................................................................................................................. 32
2.4 Sensores ....................................................................................................................................................................... 33
2.4.1 Sensor de temperatura ................................................................................................................................. 34
2.4.2 Sensor de gas..................................................................................................................................................... 35
2.5 Actuadores .................................................................................................................................................................. 37
2.5.1 Motor de CD ....................................................................................................................................................... 37
2.5.2 Lmpara Fluorescente Compacta............................................................................................................. 38
2.5.3 Alarma.................................................................................................................................................................. 38
3 Diseo de software ........................................................................................................................................40
3.1 Programacin del Microcontrolador de 32 bits.......................................................................................... 40
3.2 Archivos principales de la Pila ........................................................................................................................... 47
3.3 Cabeceras .................................................................................................................................................................... 48
3.4 Programacin de la pgina web......................................................................................................................... 50
3.4.1 Diseo de la pgina web del microcontrolador ................................................................................. 52
3.4.2 Comprimiendo pginas web con MPFS ................................................................................................. 57
3.5 Programacin de la interfaz de usuario local .............................................................................................. 60
3.6 Programacin de mdulos XBee ....................................................................................................................... 66
4 Diseo y desarrollo de las interfaces de monitoreo y control.......................................................72
4.1 Diseo de PCB para mdulo XBee..................................................................................................................... 72
4.2 Sensor de Temperatura......................................................................................................................................... 74
4.3 Sensor de gas ............................................................................................................................................................. 77
4.4 Interfaz de iluminacin ......................................................................................................................................... 82
4.5 Alarma .......................................................................................................................................................................... 84
4.6 Interfaz de Motor controlado por PWM ......................................................................................................... 90
4.7 Interfaz de usuario local ....................................................................................................................................... 93
5 Resultados ..................................................................................................................................................... 100
5.1 Manual de Usuario ................................................................................................................................................ 100
5.2 Mejoras ...................................................................................................................................................................... 111
IV
Contenido
Conclusiones..................................................................................................................................................... 112
Anexo A. Programacin de la pgina web.............................................................................................. 113
Anexo B. Interrupcin de la UART para procesar las tramas en la interfaz local. .................. 114
Glosario .............................................................................................................................................................. 115
Bibliografa ....................................................................................................................................................... 117
Introduccin
Introduccin.
En la actualidad, la automatizacin de viviendas est en auge y es un paso hacia el futuro.
Existen diferentes maneras de implementar la domtica, motivo por el cual, se ha
decidido optar por una nueva tecnologa, la de los PICs con sistemas inmersos,
obteniendo el desarrollo de una aplicacin que reduzca en costo y tamao lo que hoy se
puede encontrar en los mercados.
Con la ayuda de Microchip y sus diferentes productos, se desarroll un software que nos
permitir el monitoreo y control de las luces de una vivienda, un sensor de temperatura,
de gas, control de la velocidad de un motor y una alarma.
Recalcando que el mismo proyecto, con sus respectivas modificaciones, podr ser
utilizado para diferentes aplicaciones elctricas.
Esta aplicacin consta de una tarjeta de control, PIC32MX512 con mdulo Ethernet
programado con el Ambiente de Desarrollo MPLAB utilizando la pila TCP/IP que nos brinda
Microchip de manera gratuita.
Tambin se desarrollarn las interfaces de control y de monitoreo que se comunicarn a la
tarjeta de manera inalmbrica por medio del protocolo ZigBee y los componentes XBee.
El acceso al sistema ser de manera remota a travs de una pgina web y de manera local,
por medio de una botonera que tambin permite modificar y revisar el estado de las
variables antes mencionadas, reportndolo en la pgina web y en la pantalla de la
botonera.
Todo el anlisis y funcionamiento del proyecto, ser demostrado a escala en una pequea
vivienda con su respectiva instalacin elctrica.
VI
1
Domtica, protocolos y pginas web
La evolucin marca el ritmo de la vida y las casas tampoco pueden escapar a ella. De la
cueva con fuego, para calentar e iluminar, a las antorchas, las velas, el candil y por ltimo:
la electricidad.
La electricidad nos ha permitido elevar el nivel de confort en nuestras casas y ha dado
paso a la entrada de los electrodomsticos: lavadora, frigorfico, lavavajillas, horno, placas
vitrocermicas, mquinas capaces de realizar tareas cotidianas de forma casi autnoma
(an queda por solucionar la carga y descarga de las mismas), elevando nuestro nivel de
confort a cotas en otro tiempo inimaginables.
Estas mquinas no existiran sin el desarrollo de una nueva evolucin: la electrnica,
permitiendo realizar programaciones (rutinas), que regulan cada proceso (lavado en frio,
grabacin de un video, etc.).
La siguiente evolucin que ha llegado es la: Domtica, que se encarga de la integracin y
regulacin de ambos sistemas (elctricos y electrnicos), de tal manera que la casa es
capaz de sentir (detectar la presencia de personas, la temperatura, el nivel de luz, etc.) y
reaccionar por s sola, a estos estmulos (regulando el clima, la iluminacin, conectando la
alarma, etc.), al mismo tiempo que es capaz de comunicarse e interactuar con nosotros
(telecontrol) por multitud de medios (pantalla tctil, PC, mvil, etc.), llegando a elevadas
cotas de confort, seguridad y sobretodo: ahorro energtico.
La Historia de la domtica comprende una serie de etapas, desde los primeros protocolos
orientados al "control remoto", hasta los grandes protocolos capaces de realizar
"funciones lgicas complejas", para satisfacer las ms exigentes programaciones de
regulacin y preparados para la verdadera Revolucin Domtica: La autorregulacin.
1.1 Antecedentes
La vivienda es el lugar donde satisfacemos nuestras necesidades as que debe ser
confortable y segura. Lo cual ha generado que las viviendas sufran una transformacin
por la implementacin de los diversos avances tecnolgicos que se han llevado a lo largo
del tiempo, maximizando el concepto de vivienda.
Esta transformacin ha generado un nuevo concepto llamado domtica que proviene de
la unin de las palabras domus (que significa casa en latn) y tica (de automtica, palabra
1
El incremento en el confort
Climatizacin del control de luces, ventanas, cortinas, persianas, etc.
Uso de energa renovable como la energa solar, la geotrmica y la elica.
1.2 Aplicaciones
Los servicios que ofrece la domtica se pueden agrupar segn cinco aspectos o mbitos
principales:
1.
DSL
Fibra ptica
b) Comunicacin inalmbrica: en este caso el soporte material a travs del cual tiene
lugar la comunicacin es el propio espacio, y concretamente en la atmsfera
terrestre, el aire. La informacin se transmite mediante ondas de radio.
Wifi
GPRS
Bluetooth
Radiofrecuencia
Infrarrojos
ZigBee
IMEI.
En Mxico el encargado de evaluar los grados de inteligencia de un edificio es
el IMEI, (Instituto Mexicano del Edificio Inteligente), y en resumen debe cumplir con los
siguientes requisitos:
KNX.
KNX Association es el creador y propietario de la tecnologa KNX el nico ESTNDAR
abierto para todas las aplicaciones de control de la vivienda y el edificio, como por
ejemplo el control de la iluminacin y las persianas, as como variados sistemas de
seguridad, calefaccin, ventilacin, aire acondicionado, monitorizacin, alarma, control de
agua, gestin de energa, contador, as como electrodomsticos del hogar, audio/video y
mucho ms. Esta tecnologa puede ser usada tanto en viviendas y edificios de nueva
construccin, como en los ya existentes.
Para los miembros de la KNX Association el sistema est a su disposicin gratis, adems
puede ser implementado sobre cualquier plataforma de microprocesador. Todos los
productos
que
deseen
llevar
el
garantizar
la
KNX es el nico estndar mundial para el control de la vivienda y del edificio con:
mundo
de
diversas
aplicaciones
cuentan
con
casi
7.000
grupos
de
productos certificados KNX en sus catlogos. KNX Association tiene acuerdos de asociados
con ms de 21.000 compaas instaladoras en 70 pases, ms de 50 universidades, as
como ms de 100 centros de formacin.
CEDOM.
La Asociacin Espaola de Domtica, CEDOM, naci en 1992 como una iniciativa de un
grupo de empresas fabricantes de material elctrico que apostaron por el sector de la
domtica, tratando de impulsar el mercado y facilitando la labor de venta de los
productos de las empresas miembro.
Inicialmente fue creado como el Comit Espaol de la Domtica. En el ao 2001, se
decidi abrir la entidad al resto de colectivos presentes en el mercado de la Domtica, no
slo a fabricantes, y se vio la necesidad de cambiar la denominacin de Comit a la de
Asociacin, aunque se mantuvo el nombre de CEDOM debido a que ya era un nombre
reconocido en el sector elctrico.
Desde entonces, CEDOM ha ido adaptndose a los cambios y dificultades que ha sufrido el
sector de la Domtica. As, en la actualidad, CEDOM es la nica Asociacin a nivel nacional
que rene a todos los agentes del sector de la Domtica en Espaa: fabricantes de
productos domticos, fabricantes de sistemas, instaladores, integradores, arquitecturas e
ingenieras, centros de formacin, universidades, centros tecnolgicos.
El principal objetivo de CEDOM es la promocin y difusin de la Domtica en general, sin
diferenciacin de sistemas, protocolos de comunicacin, tipos de productos o empresas.
El resto de objetivos de CEDOM son:
En resumen, CEDOM es una Asociacin al servicio de sus asociados y con un objetivo claro,
aumentar la implantacin de la domtica en Espaa.
AENOR.
Fue designada por el Ministerio de Industria y Energa en 1986 como entidad para
desarrollar las actividades de normalizacin y certificacin (N+C) y fue reconocida como
organismo de normalizacin y para actuar como entidad de certificacin por el Real
Decreto 2200/1995, en desarrollo de la Ley 21/1992 de Industria. Est acreditada por
la Entidad Nacional de Acreditacin (ENAC) como organismo de certificacin de sistemas
de la calidad ISO 9000, sistemas de gestin ambiental ISO 14000, verificacin
medioambiental y sistemas de la calidad ISO/TS 16949 para el sector automotriz y
sistemas de calidad segn el Esquema ATECMA (industria aeroespacial). Tambin cuenta
con la acreditacin de ENAC para la actividad de certificacin de proyectos de I+D+I y de
certificacin de productos de numerosos comits tcnicos de certificacin. En Mxico
cuenta con la Acreditacin de la Entidad Mexicana de Acreditacin (EMA), en ISO 9001,
ISO 14000 y OHSAS 18001.
AENOR es Miembro de la red de IQNET, que est formado por organismos de certificacin
lderes en la certificacin de empresas en sus respectivos pases. En los mbitos
internacional y comunitario AENOR est presente en los principales foros internacionales,
europeos y americanos, lo que garantiza la participacin de nuestro pas en el desarrollo
de la normalizacin y el reconocimiento internacional de la certificacin de AENOR.
Actualmente, AENOR cuenta con ms de 890 miembros pertenecientes a la prctica
totalidad del entramado industrial espaol. Este hecho permite afirmar la independencia y
objetividad con que AENOR lleva a cabo el desarrollo de sus actividades. Como asociacin,
y de acuerdo con la legislacin espaola vigente, AENOR puede constituir sociedades,
dentro y fuera de Espaa, de participacin mayoritaria. En 1997 se cre AENOR MXICO,
9
Figura 1.2 La pila est formada por varias capas, cada una brinda servicios a la superior.
10
10 Mbps Ethernet e IEEE 802.3: Especificaciones LAN que operan a 10 Mbps sobre
cable coaxial
12
14
ZigBee, tambin conocido como "Home RF Lite", es una tecnologa inalmbrica con
velocidades comprendidas entre 20 kB/s y 250 kB/s.
Puede usar las bandas libres ISM (6) de 2,4 GHz (Mundial), 868 MHz ( Europa) y
915 MHz (EEUU).
Una red ZigBee puede estar formada por hasta 255 nodos los cuales tienen la
mayor parte del tiempo el transceiver ZigBee dormido con objeto de consumir
menos que otras tecnologas inalmbricas.
Un sensor equipado con un transceiver ZigBee pueda ser alimentado con dos pilas
AA durante al menos 6 meses y hasta 2 aos.
Agilidad de frecuencia -- Redes cambian los canales en forma dinmica en caso que
ocurran interferencias.
Ventajas
Desventajas.
Zigbee trabaja de manera que no puede ser compatible con bluetooth en todos sus
aspectos porque no llegan a tener las mismas tasas de transferencia, ni la misma
capacidad de soporte para nodos.
Tipos de Dispositivos.
Se definen tres tipos distintos de dispositivo ZigBee segn su papel en la red:
Asncrono
Universal).
ste
controla
(en
los puertos y
no
usan
cables
elctricos.
Ejemplo
de
esto
son
la fibra
18
Texto. El texto editable se muestra en pantalla con alguna de las fuentes que el
usuario tiene instaladas.
19
20
2
Descripcin del sistema propuesto
Como se ha mencionado al inicio de la documentacin, la domtica es el resultado de la
integracin de los sistemas de gestin de seguridad, comunicaciones, gestin del confort y
control energtico. Estudiando las diferentes aplicaciones prcticas y caractersticas del
PIC32 en especial la del mdulo Ethernet, y tomando en cuenta la importancia que tiene
hoy en da el Internet en la vida diaria del ser humano, se ha pensado en disear e
implementar un sistema que integre estas tecnologas en una aplicacin til, que permita
el monitoreo y control de las luminarias de una vivienda en forma remota.
Para conseguir desarrollar este proyecto, es necesario recurrir a la modularidad y dividir el
sistema total en diferentes sistemas parciales, tales como: interfaz de usuario local,
interfaces de control, interfaz de usuario remoto, sistema inmerso, mdulos TX/RX e
interfaz de usuario. Con estos mdulos conseguimos simplificar el trabajo, los cuales sern
explicados detalladamente a lo largo de todo este trabajo.
Como se puede observar en el diagrama de bloques que muestra en este captulo, el
sistema consta de seis partes fundamentales para su correcto funcionamiento, que son:
Interfaces de control.
Sistema inmerso.
Mdulos TX/RX.
Interfaz de usuario.
Para la computadora personal los requerimientos son mnimos, es suficiente con que esta
pueda conectarse y trabajar a travs de la red de internet con facilidad. El usuario tendr
la comodidad de transmitir las instrucciones mediante la computador y estas viajarn a
travs de la red cumpliendo los protocolos del modelo TCP/IP y siguiendo los estndares
que involucran toda una conectividad. Adems, por la misma va se podr recibir los
paquetes de datos con el estado del microcontrolador, de esta manera podremos
controlar y monitorear nuestra aplicacin, ya sea de manera remota o local. A
continuacin en la figura 2.1 se muestra el diagrama de bloques describiendo cada una de
las etapas del sistema.
22
Interfaces de control
Nos permiten controlar el
estado de:
Iluminacin-controlado por
una salida digital
Alarma-controlado por una
salida digital
Velocidad de un motorcontrolado por una salida
digital con capacidad de
Modulacin de Ancho de
Pulso
la
lectura
de
la
un
microcontrolador
permite
controlar
iluminacin,
Interfaz de Usuario
ETHERNET
RS232
Full Duplex
ZigBee
Full Duplex
Cableado
Full Duplex
Cableado
Inalmbrico
Sistema inmerso
TX / RX (Modulo 1)
Salidas
digitales, PWM
Cableado
TX / RX (Modulo 2)
Transmisor/Receptor
Remoto
Transmisor/Receptor
inalmbrico
(conexin
comunica
nuestro
XBee
sistema remotamente y as
poder
y comunica al sistema
inmerso y a la interfaz de
de Microchip.
con
controlar
monitorear.
Esto por medio de una
En l se program el protocolo
que se visualiza
en el
nos
que
utiliza
de monitoreo y control.
del sistema.
CAD
permite
velocidad de un motor y
alarma, tambin nos da la
el estado on/off del sistema.
Entradas
Digitales,
Cableado
iluminacin,
lectura de la temperatura y
el
Interfaces de monitoreo
Permiten ver las variables
Temperatura-monitoreada
por un Convertidor
Analgico a Digital.
Estado On/Off-Monitoreado
23
por una entrada digital
El Ethernet Starter Kit tiene un factor de forma y el conector de expansin que son
compatibles con otros PIC32 Starter Kits.
2.2 XBee
Para la implementacin del proyecto se opt por mdulos XBee compuestos por un
microcontrolador el cual ya contiene el protocolo de comunicacin ZigBee (IEEE
802.15.4) y la antena para transmitir.
XBee es el nombre comercial de Digi International para una familia de mdulos
compatibles para trasmitir por RF. Los radios XBee primero fueron introducidos por la
25
existe la posibilidad de agregar a cada dispositivo XBee circuitera que nos ayude a
monitorear y controlar el medio, as como de circuitos para interpretar la informacin
que sea enviada o recibida.
As que nuestra pequea red consta de un Coordinator y un End Device, el Coordinator se
encarga de manipular la informacin junto con el procesador principal que es el que
tomara decisiones para ejecutar un proceso en un determinado momento, el End device
enva el estado de cada sensor y tambin funciona como actuador ya que ejecutara las
acciones que se le indiquen.
Para la manipulacin de estos dispositivos el fabricante proporciona manuales y software
de manera gratuita, el hardware es lo nico que se compra que en este caso son los
mdulos XBee y el programador.
Para que los mdulos XBee se puedan comunicar inalmbricamente hay que
programarlos, en esta programacin se definen caractersticas como el canal de
transmisin, si se trata de un Coordinator o un End Device, la direccin de cada mdulo
para que se puedan identificar dentro de una red, configuracin de pines en los que se
establece cul ser su funcin, por ejemplo si van a funcionar como entradas o salidas
analgicas o digitales etc.
Para la programacin es necesario utilizar comandos especiales denominados comandos
AT, por practicidad no mencionamos todos solo se enlistan en la siguiente tabla los ms
importantes y su funcin.
Tabla 2.1 Comandos AT para programar mdulo XBee (mdems).
Comando AT
A1
Rango
0-0x0F
A2
0-0x0F
AC
AP
0-0x02
BD
0-0x07
Descripcin
Describe el modo de asociacin de un mdulo utilizado
como dispositivo terminal (CE=0) por defecto
Describe el modo de asociacin de un mdulo utilizado
como coordinador (CE=1)
Aplica los cambios realizados explcitamente en la
configuracin
Habilita el modo de operacin API. Defecto =0
0
Modo API deshabilitado
1
Modo API habilitado
2
Modo API habilitado con carcter de
Velocidad de transmisin
0
1200
1
2400
27
CC
0-0xFF
CH
0x0B-0x1A
CE
CN
D0-D4
0-1
0-5
D5
0-5
D6
0-5
D7
0-5
D8
Solo 0 y 3
DB
DL
0x17-0x5C
(x-1 dBm)
0-0xFFFFFFFF
DH
0-0xFFFFFFFF
GT
2-0x0CE4
(x 1 ms)
IA
0-0xFFFFFFFF
2
4800
3
9600
4
19200
5
38400
6
57600
7
115200
Establece el carcter de secuencia a ser usado entre
tiempos de espera para entrar al modo al modo de
comandos. Defecto 0x2B (carcter ASCII +)
Establece el canal por el cual se realiza la conexin RF
entre mdulos. Defecto 0x0C
Indica el comportamiento del modulo. Defecto =0
Sale del modo comando
Ajusta la configuracin de los pines I/O
0
deshabilitado
1
2
CAD
3
Entrada digital
4
Salida digital LOW
5
Salida digital HIGH
Las mismas funciones que D0 D4 exceptuando lo
siguiente:
1 Indicador de asociacin
Las mismas funciones que D0 D4 exceptuando lo
siguiente:
1
Control de flujo RTS
2
No tiene conversor ADC
Las mismas funciones que D0 D4 exceptuando lo
siguiente:
1
Control de flujo CTS
2
No tiene conversor ADC
Ajusta la configuracin del pin DI-8 (pin 9)
0
Deshabilitado
3 Entrada digital
Lee la potencia de la seal del mdulo del cual provino
el ltimo paquete RF recibido
Ajusta los 32 bits ms significativos para
direccionamiento. Defecto =0
Ajusta los 32 bits ms significativos para
direccionamiento. Defecto =0
Tiempo de espera antes y despus de ingresar el
carcter de secuencia para entrar al modo de
comandos. Defecto 0 0x3E8
Utilizado para crear cable virtual. Indica la direccin del
28
FFFFFFFF
ID
IR
IS
IT
0-0xFFFF
0-0xFFFF
(x 1 ms)
1-0xFF
1-0xFF
IO
8 bits
M0 M1
MY
NB
0-0x03FF
0-0xFFFF
0-4
P0 P1
0-2
RE
SM
0-6
SL
0-0xFFFFFFF
SH
0-0xFFFFFFF
SP
1 0x68B0
(x 10 ms)
1 FFFF
(x 1 ms)
ST
T0 T7
IU
0-0xFF
(x 100 ms)
0-1
VR
0-0xFFFF
WR
RF por la UART
1
Habilitado. Se reciben paquetes de RF
por la UART
Indica cual versin de firmware se encuentra
actualmente en el mdulo.
Guarda en la memoria no voltil del mdulo, todos los
valores de los parmetros
Tambin se usa un software especfico para la programacin de los XBee llamado X-CTU;
este software nos permite manipular nuestros dispositivos de manera sencilla e intuitiva.
En la siguiente imagen se muestra la ventana principal de X-CTU en donde aplicamos
configuraciones como velocidad de transmisin, si queremos un bit de control en nuestra
trama, longitud de cada segmento de la trama, bit de paridad, bit de parada si queremos
que funcione o no en modo API etc.
Este programa se divide en 4 pestaas:
PC Settings
Range Test
Terminal
Modem configuration
Figura 2.4 Programa X-CTU para simular y programar los dispositivos XBee.
En la pestaa Range Test, es posible enviar una cadena de datos de cualquier tipo para
probar el rango de alcance de la seal. Este genera automticamente datos y los enva por
el mdulo, de tal forma que permite verificar cuales datos llegan buenos y cules no y a
partir de esa estadstica determinar el rango o alcance de la seal.
30
Las pestaas ms usadas sern la de Terminal, que es la que usamos para programar los
XBee y la pestaa Modem Configuration que es aqu donde se observan los parmetros
programados adems de que tambin se puede programar de manera ms intuitiva los
dispositivos.
a)
b)
Figura 2.5 a y b. a) Terminal, donde se lleva a cabo la programacin; b) Modem configuration, aqu
revisamos los parmetros y tambin se pueden programar los XBee.
Caractersticas
Alimentacin 5 Volts
Muestreo de 400Hz
Contraste ajustable
de
central
de
2.4 Sensores
Son dispositivos diseados para recibir informacin de una magnitud del exterior y
transformarla en otra magnitud, normalmente elctrica, que seamos capaces de
cuantificar y manipular.
Normalmente estos dispositivos se encuentran realizados mediante la utilizacin de
componentes pasivos (resistencias variables, PTC, NTC, LDR, etc... todos aquellos
componentes que varan su magnitud en funcin de alguna variable), y la utilizacin de
componentes activos.
33
34
Este se puede utilizar con fuentes de alimentacin individuales, cabe mencionar que a solo
60 mA de operacin tiene muy bajo auto calentamiento, menor a 0,1 C en aire en calma.
El LM35 est diseado y probado para funcionar en un rango de temperatura de -55 C a
150 C, esta serie de integrado viene en distintos tipos de encapsulado pudiendo tener
muy diversas aplicaciones y variadas formas de montaje.
Caractersticas:
35
TGS2610-D00 utiliza material de filtro en su vivienda, que elimina la influencia de los gases
de interferencia, tales como el alcohol, que provoca una respuesta muy selectiva a gas
LP. Esta caracterstica hace que el sensor ideal para zonas residenciales detectores de
fugas de gas que requieren durabilidad y resistencia a la interferencia de gas.
Caractersticas:
Aplicaciones:
2.5 Actuadores
Los actuadores son elementos que utiliza el sistema para modificar el estado de ciertos
equipos e instalaciones de manera fsica como vlvulas, interruptores, llaves de paso,
chapas elctricas, iluminacin, etc.
En su mayora son componentes que demandan potencia y por lo tanto es necesario
aparte del actuador un sistema de potencia que controle al dispositivo.
2.5.1 Motor de CD
El motor de corriente continua es una mquina que convierte la energa elctrica en
mecnica, principalmente mediante el movimiento rotatorio.
En este caso usaremos uno de estos motores, al cual aadiremos circuitera para poder
variar la velocidad de giro por medio de nuestro sistema. El motor simula el giro de
diversos aparatos como una licuadora o un ventilador.
Motor AMRF-300
Su aplicacin se enfoca a reproductores de CD, DVD por su diseo no hace ruido y est
totalmente sellado.
Motor de CC
Motores Peso: aproximadamente 22g
Dimetro: 24,4 mm
Salida: aproximadamente: 0,3 W ~ 0,8 W, dependiendo voltaje
Uso tpico: Reproductor de CD / DVD, CD / DVD ROM
37
2.5.3 Alarma
Dentro de un sistema domtico es fundamental la seguridad as que implementamos una
alarma que va a ligada a los sensores descritos, para que cuando haya una irregularidad
detectada por los sensores dentro de nuestra casa el sistema acte y pueda prevenir un
accidente pero que tambin nos pueda avisar y podamos tomar las acciones necesarias.
Esta alarma se compone de un zumbador y un mdulo LED para que el aviso sea tanto
auditivo como visual.
Zumbador
Zumbador, buzzer en ingls, es un transductor electro acstico que produce un sonido o
zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo de
sealizacin o aviso, y son utilizados en mltiples sistemas como en automviles o
en electrodomsticos.
38
Zumbador BD3398
Se decidi usar un zumbador piezoelctrico ya que no consumen mucha corriente y su
sonido es lo suficientemente alto para ser alertados, sus caractersticas son las siguientes:
Mdulo LED
El mdulo LED consiste de 4 LEDs de alta luminancia en color azul conectados entre s en
una placa metlica de alta eficiencia energtica
Mdulo de 4 LEDs
Flujo luminoso. 2 a 3 lm
Dimensiones: 35X35 mm
39
3 Diseo de software
3
Diseo de software
Este captulo contiene el desarrollo que se realiz para la programacin de la tarjeta
microcontroladora (PIC32 Ethernet), as como los diagramas de flujo de cada uno de los
programas, indicando el diseo e implementacin necesaria para que la pgina web pueda
ser almacenada en el microcontrolador y comunicarse con las interfaces de monitoreo y
control. Tambin se muestra la configuracin e instrucciones necesarias para el
funcionamiento de los mdulos XBee.
3.1 Programacin del Microcontrolador de 32 bits
Para la programacin del Microcontrolador, se ha tomado como referencia la versin de
programacin TCP/IP que facilita el fabricante de forma libre. Para que el programa
cumpla una de las normas de la programacin (todo sistema debe ser estructurado), se ha
dividido el cdigo en funciones que sern utilizadas para el adecuado funcionamiento de
nuestra aplicacin.
A continuacin se har una descripcin de los pasos que se realizaron para la
programacin del PIC32 y se mostrar su respectivo diagrama de flujo, se empieza por
declarar e inicializar las variables locales, luego se procede a inicializar la tarjeta
controladora haciendo una llamada a la funcin InitializeBoard. Continuando con la
configuracin, se inicializa el tiempo (timer 0), la variable global AppConfig, se inicializa
la funcin para la pgina web; llamando a las funciones TickInit, Inicializar_AppConfig
y MPFSInit respectivamente. En este punto realizamos una rutina para permitir que el
usuario pueda borrar el contenido de la EEPROM, con un simple procedimiento que
detallamos a continuacin:
1. Mantener presionado el botn RB3.
2. Presionar y soltar el botn MCLR.
3. Continuar presionando el botn RB3, por aproximadamente 4 segundos.
4. Dejar de presionar el botn RB3.
5. Presionar y soltar nuevamente el botn MCLR, para restaurar la aplicacin.
Como se observa en la figura 3.1, se muestra el procedimiento de la funcin principal
Main.
40
3 Diseo de software
Incio
A
Declara e inicializa variables. Inicializar
Tarjeta.
Inicializa capas principales de la
pila (MAC, TCP, UDP, ARP)
Iniciacin del Timer, iniciacin MPF2,
Iniciar la Pila.
Aplicacin mdulos HTTP,
SMNP, FTP, TFTP, etc.
A
Boton0 ==0
Si
StartTime=TickGet()
LED=0
Si
Boton0==0
Si
TickGet()-StartTime > 4s
Inicializa multicastDNS
No
Si
Led_Put(0x0F)
Permitir la escritura en
memoria externa.
Led_Put(0x00)
B
No
Boton0=00
Si
Reset(); Break;
41
3 Diseo de software
B
No
1
Si
TickGet()-t>=1s
No
Si
t=TickGet()
Prende el Led0
Procesa mDNS
Cambia la direccin IP
TickGet()-a>=2s
No
Si
42
3 Diseo de software
En este mismo diagrama de flujo se puede observar que si se repite los pasos 1 y 2, pero
se mantiene presionado el botn RB3 menos de 4 segundos, se procede a llamar a la
funcin DoUARTConfig.
Una vez explicada esta rutina, el programa contina con la inicializacin del stack, del
mdulo EUSART y del protocolo HTTP, llamando a las funciones StackInit,
UART2TCPBridgeInit y HTTPInit consecutivamente; tambin se inicializa el
multicastDNS, se definen sus parmetros y se habilita la interrupcin de la UART1 por
medio de las funciones mDNSInitialize, mDNSServiceRegister y ConfigIntUART1.
En esta parte del programa tenemos un lazo infinito, dentro de este lazo se llaman a las
diferentes funciones que ejecutan tareas especficas que hacen que nuestra aplicacin
funcione correctamente. Estas funciones las explicamos a continuacin:
Tabla 2.1 Funciones TCP/IP Microchip.
Descripcin.
StackTask
UART2TCPBridgeTask
HTTPServer
DiscoveryTask
NBNSTask
43
3 Diseo de software
Responde a la peticin de nombre NBNS para
permitir la asignacin de un nombre (dado por el
usuario), a la tarjeta. Es decir, permite a los nodos
de la misma subred IP usar un nombre de cliente en
lugar de una direccin IP para acceder a nuestra
tarjeta.
DHCPServerTask
GenericTCPServer
TelnetTask
RebootTask
SNTPClient
Adicionalmente, en dicho lazo se tiene una rutina la cual sirve para actualizar la direccin
IP en el momento que el usuario habilite el modo DHCP, una vez realizado este paso, cada
44
3 Diseo de software
dos segundos enva una trama al componente Xbee para saber el estado de las variables a
controlar y monitorear para despus entrar a una rutina de retardo de 7 ms para esperar
la respuesta de dicho componente
En la figura 3.2, se muestra la secuencia de la funcin una vez que ha ocurrido la
interrupcin en la UART1.
Se empieza por declarar e inicializar las variables para comenzar a recibir el primer byte y
hacer la comparacin si el dato es igual a 7EH, si esta comparacin es verdadera se lee la
trama que es mandada por el componente XBEE, una vez que se termina la transmisin de
datos se obtiene la temperatura y se comparan los bytes recibidos para conocer el estado
de las variables y as poder reportarlos a la pgina web almacenada en el
microcontrolador y regresar al Main. Si la comparacin es falsa inicializa la trama y regresa
al Main.
45
3 Diseo de software
Inicio
Entra a la interrupcin.
Declaro e inicializo variables
Trama[0]==0x7E
No
Si
trama[i]=lee byte
i=2
Si
tam=trama[2]+4
Si
No
i>2
No
Si
suma=suma + trama[i]
No
Si
Valor=trama[24]
No
No
Si
trama[i]=0;
trama[21]==0x00 && trama[22]==0x04
No
Si
No
Fin
46
3 Diseo de software
3.2 Archivos principales de la Pila
En la figura 3.3 vemos la estructura general del TCP/IP Stack en el MPLAB. Se distingue la
estructura dividida en archivos de cabecera (.h) y el cdigo en los archivos (.c).
Los archivos que es necesario conocer y que permiten personalizar la aplicacin son los
siguientes:
1. Mapear e inicializar el puerto en el micro. (HardwareProfile.h, MainDemo.c)
a. HardwareProfile.h. En este archivo simplemente se asocia un puerto con un
nombre, por ejemplo si se coloca un LED en RD0 (pin 72 del
microcontrolador):
#define LED0_TRIS
(TRISDbits.TRISD0)
#define LED0_IO
(LATDbits.LATD0)
3 Diseo de software
.
.
}
2. Crear una funcin Callback. (CustomHTTPApp.c).
a. La funcin callback contiene el nombre y el valor de la variable dinmica
(led) que va a ser mostrada en la web. Un error muy comn es enviar
directamente al buffer Ethernet el estado del led mediante la variable int
LED_IO. Hay que tener en cuenta que solo se pueden strings por Ethernet,
por lo que en numerosas ocasiones usamos itoa o ftoa (entero a ASCII y
float a ASCII) para convertir los tipos de datos.
En este caso, en lugar de usar los conversores de tipo, se crean dos
variables auxiliares ESTADO_LED_UP y ESTADO_LED_DOWN para mostrar
el estado del led mediante ON, OFF.
ROM BYTE ESTADO_LED_UP[] = "ON";
ROM BYTE ESTADO_LED_DOWN[] = "OFF";
b. La funcin void HTTPPrint_led enva a la pgina web el valor de la variable dinmica
LED. Para verificar el estado del puerto RD0 (donde est mapeado el LED), se utiliza la
sentencia condicional IF. Anteriormente se defini LED_IO como estado del puerto
RD0. El IF revisa el estado de LED_IO. Si el puerto est en 1, entonces la sentencia es
verdadera y enva, por HTTP, ESTADO_LED_UP; en cambio s est en cero, la
48
3 Diseo de software
seccin se han puesto los archivos principales .h que se utilizan en el cdigo para un mejor
manejo del mismo.
Tabla 3.2 Archivos .h TCP/IP.
Archivo .h
ARP.h
Delay.h
DHCP.h
Descripcin.
Funciones que permiten encontrar la direccin hardware o
MAC correspondientes a una determinada direccin IP.
Declaraciones que establecen retardos especficos, que son de
utilidad para el buen desempeo del programa.
Funciones que permite a las estaciones de trabajo de una red
IP obtener sus parmetros de configuracin de manera
automtica.
FTP.h
GenericTCPServer.h
HTTP2.h
ICMP.h
IP.h
MAC.h
MPFS.h
Random.h
49
3 Diseo de software
SNTP.h
StackTsk.h
TCP.h
TCPIP.h
TCPPerformance.h
Telnet.h
TFTPc.h
Tick.h
UART2TCPBridge.h
UDP.h
50
3 Diseo de software
Inicio.htm
Presentacin de la
pgina.
Quienes
somos.htm
Objetivos y puntos a
desarrollar .
Contacto.htm
Enviar correo.
Sesion.htm
Estado de variables.
mchp.css
Diseo de pgina
web.
header.inc
Cabecera de cdigo.
footer.inc
Pie de cdigo.
mchp.js
Codigo para la
comunicacin con el
microcontrolador.
status.xml
Declaracin de
variables dinmicas.
leds.cgi
Pgina Web
51
3 Diseo de software
3.4.1 Diseo de la pgina web del microcontrolador
El diseo de la pgina web del microcontrolador que ser grabada en la memoria interna
del programa consta de las siguientes partes:
Hipervnculos. Al utilizar solo una pgina web, haremos un hipervnculo entre ellas
para pasar de una a otra sin ningn problema. Figura 3.5.
a) Pgina de inicio.
b) Pgina de contacto.
3 Diseo de software
cumplimiento y el buen funcionamiento del mismo como se observa en la Figura
3.6.
53
3 Diseo de software
Microchip organiza los archivos del sitio web de tal forma de ahorrar espacio (anexo A
figura A.3). Se trata de no repetir la informacin, por ejemplo, al inicio de cada pgina se
encuentra el men el cual es el mismo para cada una de las pginas del proyecto, por lo
tanto para reducir el tamao del archivo se crea un archivo header.inc que se manda a
llamar en cada pgina (anexo A figura A.1).
Lo mismo ocurre con el pie de todas las pginas aparece la misma leyenda, entonces, se
utiliza el archivo footer.inc que ser llamado desde cada pgina, en lugar de escribir el
texto nuevamente (anexo A figura A.2). Todo esto permite reducir el tamao total del
sitio.
Si ejecutamos los cambios que se han realizado en la pgina web, se obtendr el siguiente
resultado de manera grfica, figura 3.8.
54
3 Diseo de software
Encabezado de la
pgina web (men,
generado en el archivo
header.inc)
Pie de contenido de la
pgina web (generado
en el archivo
footer.inc)
Figura 3.8 Encabezado y pie de la pgina web de manera grfica.
Una vez que se hacen los ajustes necesarios para que la pgina web sea de menor tamao
y quede espacio suficiente en la memoria del programa se prosigue a realizar el cdigo
necesario para poder tener la comunicacin entre la tarjeta PIC32 Ethernet y la pgina
web. Para monitorear el estado de un puerto desde la web, es necesario hacer lo
siguiente:
Insertar una variable dinmica en la pgina web. (status.xml, index.html). Los archivos que
debern modificarse en la pgina web son los siguientes.
a. status.xml. Contiene todas la variables dinmicas que se actualizan (leds,
temperatura, botones, etc.). Se agrega la lnea correspondiente a la nueva
variable dinmica:
<led>~led~</led>
Entre <> se indica el nombre del divisor que se va a utilizar en el index para definir
la posicin de la variable.
b. Index.html. Finalmente es el archivo que ve el usuario. Donde aparezca <~led~> el
webserver lo va a remplazar con ON, OFF segn el valor de LED_IO.
<span id=led>?</span>;
55
3 Diseo de software
En la funcin javascript function pdateStatus(xmlData) que viene incluida en este
mismo archivo se debe indicar el color de los botones que se le presentaran al
usuario por medio de un ciclo for como se ve en las siguientes lneas.
for (i = 0; i < 8; i++) {
document.getElementById('led' + i).style.color =
(getXMLValue(xmlData, 'led' + i) == '1') ? '#090' : '#ddd';
}
Es importante destacar que este ejemplo utiliza AJAX para actualizar la informacin sin
tener que apretar F5 en el explorador. Por lo tanto debemos agregar la siguiente
sentencia al final del index:
Document.getElementByld(led).innerHTML=getXMLValue(xmlData,led);
Para la variable que muestra el estado de gas, la pgina web recibe un uno o un cero por
lo tanto la lgica de programacin es la misma, el nico cambio que se realiza es en el
archivo Index.html en la seccin de diseo y en la funcin JavaScript function
pdateStatus(xmlData).
Diseo. En donde aparece el signo ? ser remplazado por la frase FUGA DE GAS o
SIN FUGA, esto se debe a que el id se llama gas y en nuestra funcin JavaScript
tambin se ha nombrado as.
<legend style="color:#5FB404"><b>Estado de Gas.</b></legend>
<p><span id="gas" style="font-family:Calibri; font-size:14pt; color:white">
<a style="text-align:center">?</a></span></p>
56
3 Diseo de software
que esa accin la realiza el microcontrolador y no la pgina web, por lo tanto el cdigo
quedar de la siguiente manera:
document.getElementById('temp').innerHTML = getXMLValue(xmlData, 'temp');
Esta modificacin se deber realizar para cada una de las variables que se desee
monitorear, en este caso, para este proyecto se declararan 9 variables:
Iluminacin.
Estado de Gas.
Temperatura.
Alarma.
Motor.
ON/OFF.
25%
50%
75%
100%
57
3 Diseo de software
Lo que hace internamente este conversor es juntar todos los archivos en uno solo, de
hecho, podemos abrir el archivo resultante con el bloc de notas y veremos, ordenado
secuencialmente, el contenido de cada archivo que compone el website.
La aplicacin MPFS.exe convierte el conjunto de archivos que componen la pgina web a
dos formatos posibles:
Figura 3.9 En este diagrama se muestran las distintas opciones para almacenar la pgina.
El tercer paso, controla las caractersticas de carga. La opcin para cargar la pgina web
seleccionada estar disponible.
58
3 Diseo de software
Figura 3.10 Pantalla principal del MPFS.exe con las opciones necesarias para compactar la
pgina web y cargarla en la memoria.
Si se est siendo usada la memoria interna del programa, la imagen ser compilada con el
proyecto y debido a eso las cargas no estarn disponibles. Hay que asegurarse que la
salida del archivo fuente indicado, est incluida en el proyecto.
Una vez listo todo, se selecciona el botn Generate para crear la imagen y cargarla en la
tarjeta destino.
Caractersticas Avanzadas de Configuracin.
Las caractersticas avanzadas de procesamiento encontradas en el segundo paso, nos
proveen de mayor control sobre el procesamiento de archivos figura 3.11.
59
3 Diseo de software
El formato de salida permite seleccionar entre los formatos MPFS2 y MPFS clsico. El
servidor HTTP2 es solamente compatible con MPFS2. Los tipos de archivo HTML indican
los tipos de archivos a ser analizados para variables dinmicas. Por defecto, todos los
archivos con extensin htm, html, cgi o xml son analizados. Si una aplicacin contiene
variables dinmicas en otros tipos de archivo, estos tipos deben ser aadidos a la lista.
En el apartado Do Not Compress indica que tipos de archivos nunca deberan ser
comprimidos. Los archivos con variables dinmicas sern excluidos automticamente. Los
archivos incluidos va ~inc:filename~ no deberan ser comprimidos, no se debera usar
ningn archivo BIB para el mdulo SNMP. Los tipos de archivo adicionales pueden ser
aadidos a las lista si alguna aplicacin accede a MPFS.
3.5 Programacin de la interfaz de usuario local
Esta interfaz es parte fundamental del sistema ya que permite controlar y monitorear
localmente las interfaces tambin se encarga de comunicar los XBee y el PIC32 por ello
necesita ser programado con un algoritmo que le diga que hacer y tambien cmo hacer lo
que el usuario le pida. En esta interfaz se programa lo que desplegara el LCD, la funcin
que debe realizar cada uno de los botones al ser oprimidos y al variar el potencimetro,
activar o desactivar alguna interfaz, recibir y enviar tramas.
Para ello se programa el microcontrolador PIC16F876A con un software especializado, el
compilador PCWHD Compiler o ms conocido como CCS, bsicamente la funcin de este
programa es traducir un programa escrito en lenguaje de programacin de alto nivel a
otro lenguaje de programacin equivalente para que una maquina o en este caso el PIC
pueda interpretar.
Para programar se usa el leguaje C, con el que se realiza el algoritmo que se necesita para
el PIC, este programa se escribe en lenguaje C, se compilara para traducir nuestro
programa a un lenguaje que podr interpretar nuestro PIC pero tambin nos ayudara a
encontrar algunos errores o advertencias en nuestro cdigo para corregirlos, por ultimo al
tener lista esta traduccin la pasaremos al PIC con un programador y despus probaremos
fsicamente que funcione nuestro cdigo. Programaremos y compilaremos tantas veces
sea necesario hasta obtener los resultados deseados.
60
3 Diseo de software
Figura 3.12 Compilador CCS, compilador para crear programas para microcontroladores.
61
3 Diseo de software
Tabla 3.3 Rango de valores asignados a cada condicional if para la comparacin con el valor del CAD,
as como la funcin de cada botn al ser oprimido.
62
3 Diseo de software
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",126,0,16,23,18,0,19,162
,0,64,73,6,251,255,254,2,73,79,48,208);
La trama que vemos es un ejemplo, con esta trama encendemos el foco, vemos que es
una simple funcin de impresin de texto que maneja el lenguaje C, las tramas siempre se
manejan en forma hexadecimal, en la funcin la trama se pone en decimal pero la
expresin %c cambia el formato a hexadecimal para que el XBee pueda interpretarlo. As
que cada que oprimimos un botn se enviara una trama distinta dependiendo de lo que se
requiera.
La pantalla LCD se inicializada con programacin, el compilador CCS tiene una librera
especfica para controlar el display llamada flex_lcd.c, nicamente es necesario usar las
funciones para desplegar texto como se ve en el cdigo de abajo
lcd_init();
// Inicializo el LCD
printf(lcd_putc," -Ilum:%c -Gas:%c",f,p); //Escribo en la primera fila
lcd_gotoxy(0,2);
//Columna 0, Fila 2
printf(lcd_putc,"-Alar:%c -Temp:%ldG",a,t);//Escribo en la segunda fila
La funcin lcd_init() inicializa el display, la funcin printf() tiene como argumento lcd_putc
que imprime texto en la pantalla junto con variables de estado del sistema y lcd_gotoxy()
ubica el texto en la fila y columna que se especifique.
Tabla 3.4 Tramas enviadas al XBee Coordinator al oprimir un botn. Tramas enviadas con la funcin printf().
Funcin
Estado de pines
Foco On
Alarma On
Foco/Alarma On
Foco/Alarma Off
PWM
Trama hexadecimal
7E 00 0F 17 12 00 13 A2 00 40 49 06 FB FF FE 00 49 53 FE
7E 00 10 17 12 00 13 A2 00 40 49 06 FB FF FE 02 49 4F 10 F0
7E 00 10 17 12 00 13 A2 00 40 49 06 FB FF FE 02 49 4F 20 E0
7E 00 10 17 12 00 13 A2 00 40 49 06 FB FF FE 02 49 4F 30 D0
7E 00 10 17 12 00 13 A2 00 40 49 06 FB FF FE 02 49 4F 00 00
7E 00 11 17 12 00 13 A2 00 40 49 06 FB FF FE 02 4D 30 00 FF 1C
Valores que puede tomar el byte #19 y #20: 00 00 -a- 03 FF
El byte #21 cambiara de acuerdo a la regla del Checksum
A continuacin se muestran dos diagramas de flujo del programa en el PIC, uno del Main y
otro de la Interrupcin de la UART.
63
3 Diseo de software
Inicio
Declaracin de variables,
configuracin de UART, puertos
de entrada y salida
Habilitar interrupcin de la
UART
Leer ADC
(botonera)
No
If(ADC!=0)
Off
SI
If(204<ADC<256)
Estado de foco
Apaga foco
On
Enciende foco
SI
Off
SI
SI
If(102<ADC<154)
Estado de
alarma
Enciende alarma
On
Apaga alarma
SI
If(3<ADC<52)
If(51<ADC<103)
If(153<ADC<205)
Solicitud de
estado de las
interfaces
Desplegar
Informacin en LCD
Ciclo While
No
If(ADC!=0)
SI
Lectura de ADC1
(potenciometro)
Aumento o disminucin de
la velocidad del motor
acorde al valor de ADC1
Lectura de ADC
(Botonera)
64
3 Diseo de software
Inicio
Ocurre interrupcin,
llegada de la trama
a la UART
Inicializacion WDT
Trama mal
Verfico trama
Trama bien
Inicializacin de WDT
Procesamiento de la trama para obtener
informacin de las interfaces
Fin
65
3 Diseo de software
3.6 Programacin de mdulos XBee
La programacin de los XBee se basa en asignar un valor en especfico para cada comando
AT dependiendo de la funcin que va a desempear cada mdulo, a continuacin se
explica ms a detalle qu funcin tiene cada comando AT y el respectivo valor que le fue
asignado.
Programacin para que exista comunicacin entre los XBee:
El valor del comando, canal de transmisin (CH): 0C; este valor se selecciona
arbitrariamente, en nuestro caso como el valor es C, nuestros dispositivos estarn
trabajando a una frecuencia central 2.41 GHz, cabe mencionar que al seleccionar este
valor todos los dems dispositivos debern contener el mismo canal de no ser as
simplemente no habr comunicacin de los XBee.
Tabla 3.5 Frecuencias de los 16 canales que pueden manejar los XBee.
Frecuencia (GHz)
Canal
Hexadecimal Lim.
Inferior
11
0B
2.4025
12
0C
2.4075
13
0D
2.4125
14
0E
2.4175
15
0F
2.4225
16
10
2.4275
17
11
2.4325
18
12
2.4375
19
13
2.4425
20
14
2.4475
21
15
2.4525
22
16
2.4575
23
17
2.4625
24
18
2.4675
25
19
2.4725
26
1A
2.4775
Central
2.4050
2.4100
2.4150
2.4200
2.4250
2.4300
2.4350
2.4400
2.4450
2.4500
2.4550
2.4600
2.4650
2.4700
2.4750
2.4800
Lim.
Superior
2.4075
2.4125
2.4175
2.4225
2.4275
2.4325
2.4375
2.4425
2.4475
2.4525
2.4575
2.4625
2.4675
2.4725
2.4775
2.4825
Comando AT
ATCH0B
ATCH0C
ATCH0D
ATCH0E
ATCH0F
ATCH10
ATCH11
ATCH12
ATCH13
ATCH14
ATCH15
ATCH16
ATCH17
ATCH18
ATCH19
ATCH1A
Despus seleccionamos un numero de PAN ID, este valor permite identificar toda la red,
es decir permite que la informacin enviada por un dispositivo sea recibida por todos los
dispositivos que tengan este mismo nmero de ID.
66
3 Diseo de software
En este caso se seleccionavel valor que trae configurado por default 3332, el valor de este
parmetro puede ser arbitrario siempre y cuando este en el rango (vase tabla de
parmetros AT)
Posteriormente se asignan los valores para los parmetros de direccionamiento de los
XBee DH, DL y MY; DH tiene el valor de 0 ya que este se usa en lo que llamamos
direccionamiento de 64 bits esto es para conectar los mdulos mediante su nmero de
serie pre asignado de fbrica, en nuestro caso solo usaremos el direccionamiento de 16
bits, al usar un transmisor y un receptor se dice que establecemos una conexin punto a
punto as que para los comandos DL y MY si es importante asignar un valor, por lo tanto el
valor de MY del receptor que est funcionando como Coordinator se asignara a DL del
transmisor que funciona como End Device y viceversa el valor de MY del End Device se
asigna a DL del Coordinator para establecer la comunicacin entre ellos.
Los comandos SH y SL son nicos y vienen pregrabados de fbrica de igual manera
identifican al mdulo al activar el direccionamiento de 64 bits que en este caso no
usaremos.
Direccin de XBee: 0x5FCC
DH: 0x0
DL: 0x3BF1
67
3 Diseo de software
Tabla 3.6 Velocidad de transmisin para XBee.
Parmetro
0
1
2
3
4
5
6
7
Configuracin (bps)
1200
2400
4800
9600
19200
38400
57600
115200
Al trabajar con tramas que contendrn informacin tanto de configuracin como del
estado de las interfaces de monitoreo y control es necesario trabajar en modo API, este
modo es el que nos permite manejar tramas de informacin.
El modo API se configura con el comando AP al cual simplemente al asignarle el valor de
1, le decimos al dispositivo que encienda este modo, ms adelante explicaremos cmo
funciona el modo API.
Todos los comandos mencionados se aplican de igual manera al Coordinator y al End
Device
Al transmitir tramas es necesario activar la salida de la UART del Coordinator para que as
este pueda enviar la informacin al procesador principal esto se activa con el comando IU
al asignarle el valor de 1.
Dependiendo de la interfaz que se conecte al XBee End Device, se configuran los pines
para poder interpretar la informacin, las interfaces que se conectaran son las siguientes:
Cada interfaz requiere o proporciona una seal para su control o lectura, por lo que cada
una de estas se conecta a una patilla programada para una funcin especfica.
Dentro de la misma ventana de X-CTU Moden Configuration se programan los pines de la
siguiente manera, el sensor de temperatura entrega una seal analgica as que para
interpretar esta seal se programa un CAD con el comando D0 asignando el valor 2, el
sensor de gas entrega una seal digital as que se programa otro pin con el comando D2
68
3 Diseo de software
como entrada digital asignando el valor 3, para encender el foco necesitamos
proporcionar una seal digital a la interfaz con lo que se tiene que programar otro pin con
el comando D4 asignando el valor 4, para la alarma se requiere proporcionar una seal
digital a la interfaz por lo que se programa un pin como salida digital con el comando D5
asignando el valor de 4 por ltimo el control de velocidad para el motor requiere que se le
proporcione una seal analgica por lo que se conecta a un pin PWM0 programando con
el comando P0 asignando el valor 2.
Toda la informacin se maneja a travs de tramas que contienen la informacin leda por
los pines del XBee, la trama tambin contiene un byte Checksum (byte de verificacin de
error), de longitud de trama, direccin del XBee que enva o recibir la informacin e
instrucciones a ejecutar; el protocolo ZigBee define un tipo estructura para las tramas
soportada por los XBee.
Delimitador de
Longitud de
inicio (Byte 1)
0x7E
MSB/LSB
Checksum
(Byte n+1)
Identificador API
cmdID
1 Byte
Identificador
especifico de datos
cmdDATA
El Checksum es un byte que siempre estar al final de la trama y es para saber si la trama
llego sin errores, este byte siempre se calcula sumando todos los bytes de la trama
excepto el byte delimitador de inicio, los bytes de longitud de trama y el Checksum. Del
resultado de la suma
69
3 Diseo de software
Tabla 3.7 Explicacin de los bytes que componen la trama de solicitud de lectura de pines.
Bytes
7E
00 0F
Significado de byte
Inicio de la trama byte delimitador
Longitud de la trama sin contar el byte delimitador de la trama, los dos
bytes de longitud y el byte Checksum
17
Comando remoto de solicitud, Identificador API
12
Identificador de la trama (cualquier numero distinto de cero)
00 13 A2 00 40 Direccin IEEE del dispositivo al que se le va a solicitar la informacin
49 06 FB FF FE
00
Opciones (no usadas)
49 53
Comando AT IS de solicitud de lectura de pines
FE
Checksum (byte para comprobar si la trama llego correctamente)
Bytes
7E
00 10
Significado de byte
Inicio de la trama byte delimitador
Longitud de la trama sin contar el byte delimitador de la trama, los dos
bytes de longitud y el byte Checksum
17
Comando remoto de solicitud, Identificador API
12
Identificador de la trama (cualquier numero distinto de cero)
00 13 A2 00 40 Direccin IEEE del dispositivo al que se le va a solicitar la informacin
49 06 FB FF FE
02
Aplicar cambios en el dispositivo XBee
49 4F
Comando AT IO de solicitud de cambio de estado de los pines
10
Indicador de que pines sern cambiados de estado
F0
Checksum (byte para comprobar si la trama llego correctamente)
El byte #19 va a variar dependiendo de qu interfaz se encienda o apague y tambin el
byte Checksum cambiara.
c) Para variar la velocidad del motor se usa la siguiente trama.
7E 00 11 17 12 00 13 A2 00 40 49 06 FB FF FE 02 4D 30 00 FF 1C
Como se ve la trama es muy similar a las anteriores solo cambia el byte de longitud los
bytes #17 y #18 que son el comando AT M0 para modificar el ciclo til de la seal PWM,
70
3 Diseo de software
este ciclo variara de acuerdo al valor asignado a los bytes #19 y #20 (ver tabla de
comandos AT, Tabla 3.7) y el byte #21 que es el Checksum.
d) Por ltimo la trama que recibiremos como resultado de la peticin de la lectura de
los pines tiene la siguiente estructura:
7E 00 16 97 12 00 13 A2 00 40 49 06 FB 12 34 49 53 00 01 02 14 00 14 00 51 B9
La estructura es similar a las dems tramas, el byte #18 indica que la lectura de los pines
se ha hecho correctamente el byte #19 indica que solo se ha pedido una muestra de la
lectura de los pines, el byte #20 y #21 indican los pines que inicialmente fueron
habilitados y cul es su funcin, el byte #22 y #23 indican el estado de los pines, los bytes
#24 y #25 indican el valor del CAD.
Los valores de los bytes de estado de los pines, los bytes del CAD y Checksum variaran
dependiendo de los cambios que se presenten en el sistema pero la estructura siempre
ser similar as que cuando se programe el sistema se debe tener cuidado que el
programa del PIC tenga la capacidad de reconocer los cambios para ejecutar las acciones
que se soliciten o bien para mostrar la informacin correcta del estado de las interfaces.
71
4
Diseo y desarrollo de las interfaces de monitoreo y
control
Las interfaces del sistema nos comunican con el medio fsico y nos darn la capacidad de
conocer variables como la temperatura y presencia de gas LP as como de manipular
dispositivos como son la iluminacin, velocidad de un motor y una alarma.
El diseo y elaboracin de las interfaces debe ser precisa, buscando que sean eficientes
energticamente, que no presenten fallos con el tiempo, se adapten al sistema y bajo
costo.
4.1 Diseo de PCB para mdulo XBee
Las interfaces se conectan inalmbricamente al sistema por medio de un Mdulo XBee,
este mdulo requiere de un circuito de alimentacin as como de headers para conectar
las interfaces al XBee, los pines que se utilizaran del mdulo depender de la seal
entregada o en su caso que necesite recibir cada interfaz.
El circuito es muy simple consta de un regulador de voltaje de 3.3 Volts, un LED que indica
que el circuito est alimentado y el mdulo XBee.
nicamente se muestra el circuito y su PCB, como se ha explicado el mdulo XBee se debe
programar para que se comunique con la interfaz de usuario local inalmbricamente y las
interfaces de monitoreo y control deben ser adaptadas para que las seales que sean
recibidas o enviadas puedan ser interpretadas por el XBee.
GND
Vout
C2
1uF
Vin
LF33CV
R3
100 ohm
DC = 9 V
C1
10 n
1
2
3
4
5
6
7
8
9
10
Vcc XBEE
AD0
TX
AD1
RX
AD2
DO8
AD3
RST
RTS
PWM0
AD5
PWM1
VREF
RSV
ON
DTR
CTS
GND
AD4
20
19
18
17
16
15
14
13
12
11
Figura 4.1 Circuito del mdulo inalmbrico XBee, a este se conectaran las interfaces de monitoreo y control.
72
a)
b)
Figura 4.2 a) PCB de Modulo XBee con componentes electrnicos.
b) PCB de mdulo XBee impreso en la placa fenlica.
1 XBee
1 LED rojo
1 resistencia de 100
Figura 4.3 Placa fsica del Dispositivo XBee que funciona como transmisor y receptor al cual se conectan
todas las interfaces de control y monitoreo. Dimensiones 5cm. X 5cm.
73
HI
Vin
Vout
OP
RL
LO
Rf
Ri
Figura 4.4 Configuracin del circuito Amplificador no inversor utilizando un integrado LM358.
74
(1)
Se requiere que a la salida del Amplificador haya 3 V cuando el sensor este entregando
600 mV, se propone Ri y despejamos Rf:
= ( 1)
(2)
= 0.6
= 1000
3
1) 1000 = 4000
0.6
(3)
Vin
Vout
GND
C1
10 nF
C2
1uF
LM35
GND
VCC
Vout
3
8
DC = 9 V
XBee (AD0)
4
LM358
Ri
1k
Rf
10 k
Podemos ver que para se uso una resistencia variable para poder afinar el valor que
resulta del calculo ya que un valor comercial de este no existe.
75
a)
b)
Figura 4.6 a) PCB de la interfaz de monitoreo, sensor de temperatura con componentes electrnicos.
b) PCB del sensor de temperatura impreso en la placa fenlica.
1 Trimpot de 10K
1 Resistencia de 1 K
Figura 4.7 Placa fsica de la interfaz de monitoreo, sensor de temperatura. Dimensiones 3.8cm. X 2.5cm.
76
RH
RS
VH
TGS2610
VC
(-)
RL
VRL
(-)
( )2
(4)
(5)
Primero se resuelve
=
5 2.5
3650 = 3650
2.5
(6)
Se sustituye en la Ec. 4:
(5 2.5)2
=
= 1.71
3650
(7)
78
Aire
Etanol
Hidrogeno
Metano
IsoButano
Propano
Revisando la grfica de respuesta del sensor a distintas cantidades de gas, el eje horizontal
indica la concentracin de gas por partes de milln y el eje vertical indica la relacin de
/ , as que la concentracin de riesgo se da cuando hay 1800 ppm, ubicamos esa
cantidad trazamos una lnea vertical hasta cruzar con la curva de respuesta del sensor y
trazamos otra lnea horizontal partiendo de ese punto de cruce hacia el eje vertical y
obtenemos un valor para la relacin de / = 1 tal y como el fabricante nos menciona.
Para activar la alarma, el sensor tiene que llegar al voltaje umbral, este voltaje es
comparado con un voltaje de referencia, cuando el voltaje umbral supera el voltaje de
referencia nos indicara que el sensor detecto una concentracin de gas peligrosa por lo
que se deber activar la alarma.
79
HI
Vout
3 +
Vref
Vref
2 -
Vin
Vout
4
Vin
OP
LO
a)
b)
Vout
GND
R2
10 ohm
C2
C1
(+)
10 nF
1uF
DC = 9 V
RH
RS
R1
(-)
TGS2610
10 kohm
XBee (AD2)
LM358
2
RL2
RL1
3.3 kohm
500 ohm
80
a)
b)
Figura 4.12 a) PCB de la interfaz de monitoreo, sensor de gas con componentes electrnicos.
b) PCB del sensor de gas impreso en la placa fenlica.
1 Trimpot de 10K
1 Trimpot de 500
LM358
1 Resistencia de 10
Amplificador
operacional
Resistencia
de
3.3K
Figura 4.13 Placa fsica de la interfaz de monitoreo, sensor de gas. Dimensiones 4.5cm. X 5cm.
81
Terminal
principal
nodo
Ctodo
N/C
N/C
Detector
de cruce
por cero
Terminal
Principal
Figura 4.15 Circuito de referencia para utilizar el opto acoplador MOC3041 proporcionado en la
hoja de datos del fabricante.
82
R2
XBee (AD4)
330 ohm
R4
100 ohm
T2500
R3
C1
10 nF
4
Detector
cruce por
cero
127 Vac
330 ohm
RL (Foco)
MOC3041
Cabe mencionar que este circuito soporta cargas que demanden un voltaje de 127V y
hasta 6 Amperes, podramos conectar un motor, focos de diferentes potencias etc.
Para el diseo del PCB y la placa fenlica se toma de referencia la figura 4.16:
a)
b)
Figura 4.17 a) PCB de la interfaz de control para cargas de 127 V con componentes electrnicos.
b) PCB del sensor de temperatura impreso en la placa fenlica.
MOC3041
Triac T2500
2 Resistencias de 330
2 Resistencia de 100
83
Figura 4.18 Placa fsica de la interfaz para controlar cargas de 127V on/off, controla foco incandescente.
Dimensiones 3.7cm. X 4.4cm.
4.5 Alarma
La alarma consiste en un Buzzer y un arreglo de 4 LEDs que darn una seal intermitente
cuando el sensor de gas y/o de temperatura indique mediciones fuera de lo normal.
La alarma (Buzzer y LEDs) funcionan a 12 Volts, esta se activara con una seal de 3 Volts
as que para adaptar este circuito usaremos un opto acoplador 4N25 que aislara los
circuitos que funcionan a distintos voltajes para su proteccin, cuando se envi la seal de
3 volts al opto acoplador encender un LED infrarrojo interno y a su vez esta luz incidir
sobre el silicio y excitara la base de un fototransistor por el cual comenzara a fluir
corriente que alimentara a un circuito integrado que har parpadear la alarma.
Para que la alarma parpadee se usa el circuito integrado LM555 al cual agregndole
circuitera externa entregara una oscilacin de determinada frecuencia que puede ser
calculada y depender de los elementos que se conecten a este. La configuracin de este
circuito se le denomina modo estable porque su oscilacin es constante mientras el
circuito este alimentado.
Las frmulas para calcular la frecuencia y ciclo til no las proporciona el fabricante en su
hoja de datos as como la conexin del mismo:
84
TR
Vcc 8
R1
DC = 12 V
C2
CV
1 GND
LM555_1
DIS
THR
OUT
7
6
R2
C1
Figura 4.19 Conexin del circuito integrado LM555 para funcionar en modo astable
1.44
(1 + 22 )1
1 =
2 =
1
( + 2 )1
1.44 1
1
2 1
1.44
(8)
2
1 + 22
(9)
(10)
Se elige que el circuito parpadee una vez por segundo, por lo que la frecuencia ser de
1Hz, 2 se propone de 22K y 1 tambin se propone de 10F as que la incgnita faltante
es 1 la cual se despeja:
1 =
1.44
22
1
(11)
1.44
2 22
10 1
1 = 100
85
1 =
1
( + 2 )1
1.44 1
2 =
1
2 1
1.44
(12)
(13)
La frmula determina el ciclo til es decir el tiempo que se mantiene encendida la alarma
en el periodo y la formula determina el tiempo que estar apagado, al sustituir el valor de
los componentes se tienen los siguientes tiempos:
1 =
1
(100 + 22) 10 = 847.22
1.44
2 =
1
22 10 = 152.78
1.44
Se tiene que la alarma por cada segundo que este activada se encender por un tiempo de
847.22 y estar apagada por 152.78 si sumamos estos tiempos nos da un tiempo
total de 1 segundo.
Como la seal del oscilador no tiene la suficiente potencia para alimentar el Buzzer y los
LEDs, esta seal se enva a un opto acoplador para que excite el diodo infrarrojo y a su
vez la luz infrarroja emitida por el diodo excite la base del fototransistor el cual permita un
flujo de corriente que alimentara la compuerta de un transistor Mosfet, al excitar la
compuerta se crea un canal dentro del Mosfet que permite fluir la corriente a travs de
este proporcionado la suficiente potencia para alimentar el Buzzer y los LEDs.
El voltaje que alimenta la compuerta del transistor Mosfet proviene de un multiplicador
de voltaje, este circuito consiste de un oscilador y una etapa de diodos y capacitores que
entregan el doble del voltaje de alimentacin del circuito esto para poder excitar la
compuerta adecuadamente y as evitar que se caliente y trabaje correctamente el
transistor Mosfet.
El oscilador del multiplicador de voltaje es muy similar al explicado anteriormente
tambin se construy con un LM555 la diferencia es que este oscilador trabaja a una
frecuencia mucho mayor para poder cargar la red multiplicadora de voltaje. En la figura ()
vemos la red multiplicadora junto con el oscilador y funciona de la siguiente manera:
cuando la salida del oscilador se encuentra en nivel alto (12 Volts) el primer diodo (D1)
est en polarizacin inversa (circuito abierto) y el segundo diodo (D2) est en polarizacin
directa (circuito cerrado) por lo que los dos capacitores se cargaran (C3, C4) al valor de
alimentacin del circuito (Vcc). Cuando el oscilador se encuentre en estado bajo (0 Volts)
86
Mosfet.
8
2
TR
Q
LM555
CV
C2
DIS
THR
D1
R1
DC = 12 V
C3
OUT=22 V
D2
6
R2
C4
C1
87
XBee (AD5)
R7
100 ohm
4N25
C2
10nF
C1
1nF
C6
1nF
CV
TR
CV
TR
DIS
DIS
THR
LM555_2
THR
LM555_1
8
1
R1
100 kohm
R2
22 kohm
R5
1 kohm
R4
100 kohm
C3
10uF
R3
10 kohm
4N25
C4
100uF
D2
1N4001
D1
1N4001
C5
10nF
1
4
DC = 12 V
8
R
1
2
R6
10 kohm
Q1
IRF740
LED
R
100
Buzzer
88
a)
b)
Figura 4.22 a) PCB de la interfaz de control para la alarma con componentes electrnicos.
b) PCB de la interfaz de control para la alarma impreso en la placa fenlica.
1 Mosfet IRF740
1 Resistencia de 100
1 Buzzer
1 Resistencias de 1K
2 Resistencias de 10K
2 Diodos 1N4001
1 Resistencias de 22K
2 Resistencias de 100K
Figura 4.23 Placa fsica de la interfaz de control para la alarma consta de un mdulo LED y un
Buzzer. Dimensiones 6cm X 5.2 cm.
89
La seal entregada por este circuito es lgica TTL (0V a 5V, con salida a transistor) y como
se puede ver en la configuracin interna del circuito integrado la seal de salida ser la
negacin de la seal entrada, as que cuando la seal de entrada tenga un ciclo til del
100% la seal de salida del circuito tendr un ciclo til del 0% y as sucesivamente para
cualquier porcentaje del ciclo til.
Posteriormente esta seal ya aislada es enviada a un driver IR2110, este es un circuito
integrado muy comn para puentes H, inversores, etc. que son controlados por PWM y
que su principal funcin es alimentar IGBTs y Mosfets de manera que a elevada
frecuencia funcionen correctamente como es nuestro caso.
90
Vin
Vout
1
C5
10uF
2
D2
1N4001
6
R4
100 kohm
10 nF
1uF
C3
10nF
.
2
DIS
THR
C2
C1
R1
100 ohm
CV
Vcc
C4
1nF
8
R2
220 ohm
6
5
HO
VSS
LIN
SD
HIN
VDD
Q1
IRF740
LO
COM
VCC
VS
VB
11
10
9
8
7
D3
1N4001
6N137
R2
100 kohm
.
6
5
4
3
2
1
C6
100uF
Q
LM555_1
GND
XBee (PWM0)
TR
7805
DC = 12 V
D1
1N4001
R3
10 kohm
IR2110
C7
10 nF
Motor
Figura 4.25 Circuito que vara la velocidad del motor con PWM.
91
a)
b)
Figura 4.26 a) PCB de la interfaz de control para variar la velocidad de un motor de DC con PWM con
componentes electrnicos. b) PCB de la interfaz de control para variar la velocidad de un motor de DC con
PWM impreso en la placa fenlica.
1 Driver IR2110
1 Mosfet IRF740
1 Resistencia de 100
1 Motor DC de12V
1 Resistencias de 220
2 Diodos 1N4001
1 Resistencia de 10K
1 Diodo schotky
Resistencias
de
100K
Figura 4.27 Placa fsica de la interfaz de control para variar la velocidad de un motor de DC con
PWM. Dimensiones 7.2cm. X 5.5cm.
92
10
9
1
C
10 nF
C
10 nF
OSC2/CLKOUT
OSC1/CLK
MCLR/VPP/THV
7
6
5
4
3
2
RA5/AN4/SS
RA4/T0CLK
RA3/AN3/Vref+
RA2/AN2/VrefRA1/AN1
RA0/AN0
XT
8 MHz
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
21
22
23
24
25
26
27
28
VSS
VDD
PIC16F876A
19
20
15
16
17
18
RC3/SCK/SCL
RC4/SDI/SDA
RC2/CCP1
RC5/SDO
RC1/T1OSO
RC6/TX/CK
RC7/RX/DT RC0/T1OSI/T1CLK
14
13
12
11
10 kohm
Vss
Vcc
Vee
RS
RW
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DC = 5 V
JHD162 A
93
Vin
R1
R1
Vout
Vout
R2
a)
R2
b)
1 + 2
(14)
Botn
1
2
3
4
5
Vout
0.5
1.5
2.5
3.5
4.5
R1c ()
244.44
942.85
2200
5130
19800
R1r ()
470//560
1000
2200
10000//10000
10000+10000
R2 ()
2200
2200
2200
2200
2200
Valor de CAD
5-50
51-100
101-150
151-200
201-250
Se aprecia en la tabla que hay valores de resistencia R1c que significan -resistencia 1
calculado- y R1r que significa -resistencia 1 real- como se sabe no hay resistencias de
todos los valores se tienen que hacer arreglos de resistencias comerciales ya sea en
paralelo o serie para obtener una que se aproxime a la calculada, Sustituyendo los valores
de resistencia R1r () en el circuito de la figura 4.29 - b obtendremos el deseado al
oprimir cada botn.
Tambin se conecta al microcontrolador el XBee para poder comunicarnos con las
interfaces, las tramas de informacin enviadas y recibidas por el XBee se trasmiten por
medio de una UART usando el protocolo RS232 que viene integrado en el XBee de igual
manera el microcontrolador dispone de una UART que usa el mismo protocolo que
permitir comunicarse con el XBee, sin embargo la UART del XBee funciona con un nivel
bajo de 0 V y un nivel alto de 3.3 V y la UART del microcontrolador funciona con un nivel
bajo de 0 V y un nivel alto de 5V por lo tanto debemos adecuar los niveles lgicos para que
las seales envidas y recibidas entre las dos UARTs puedan ser interpretadas en su
respectivo nivel, como se sabe la comunicacin se lleva de manera Full Duplex por lo que
cada UART tiene dos patillas designadas como TX (lnea de transmisin) y RX (lnea de
recepcin) su conexin se realiza cruzada es decir patilla TX del PIC se conecta al RX del
XBee y la patilla RX del PIC se conecta al TX del XBee.
Para adaptar el nivel de 3.3 V a 5 V se opt como solucin usar un Mosfet que permitir
conectar cualquier seal de bajo voltaje a uno de alto voltaje. Si 3.3V es demasiado bajo
para registrar un 1 lgico en la UART del microcontrolador que es un dispositivo de 5V,
usamos la siguiente configuracin para interconectar los dos dispositivos.
V=3.3V
V=5V
R1
10 kohm
R2
10 kohm
TX de XBee=3.3V
RX de PIC=5V
Q1
2N7000
Figura 4.30 Interfaz para adaptar los niveles lgicos entre UARTs (TX-RX).
95
R1
10 kohm
RX de XBee=2.8V
TX de PIC=5V
D1
1N4001
Figura 4.31 Interfaz para adaptar los niveles lgicos entre UARTs (RX-TX).
96
DC = 9 V
1 uF
R1
1 kohm
R2
10 kohm
10 nF
Vout
C2
GND
C1
Vin
LF33CV
1uF
C4
Vout
20
19
18
17
16
15
14
13
12
11
1
2
3
4
5
6
7
8
9
10
D2
1N4001
R4
10 kohm
Q1
2N7000
R3
10 kohm
GND
10 nF
C3
Vin
7805
14
13
12
11
RC3/SCK/SCL
RC4/SDI/SDA
RC2/CCP1
RC5/SDO
RC1/T1OSO
RC6/TX/CK
RC7/RX/DT RC0/T1OSI/T1CLK
.
R14
2.2 kohm
PIC16F876A
VSS
VDD
19
20
XT
8 MHz
21
22
23
24
25
26
27
28
JHD162 A
Vss
Vcc
Vee
RS
RW
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
15
16
17
18
7
6
5
4
3
2
RA5/AN4/SS
RA4/T0CLK
RA3/AN3/Vref+
RA2/AN2/VrefRA1/AN1
RA0/AN0
10
9
1
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
OSC2/CLKOUT
OSC1/CLK
MCLR/VPP/THV
C5
10 nF
R13
10 kohm
C6
10 nF
R6
10 kohm
R7 10 kohm
R8 10 kohm
R9 2.2 kohm
R10 1 kohm
R15
10 kohm
10 kohm
R5
Figura 4.32 Circuito de la interfaz de usuario local constituido por XBee, PIC16F876A, pantalla LCD y
botonera.
97
a)
b)
1 Microcontrolador PIC16F876A
1 Mosfet 2N7000
1 Cristal de 8 Mhz
1 XBee
1 Diodo schotky
5 Push Botton
1 LED azul
2 Capacitores electrolticos de
1 Resistencia de 1
10F
1 Resistencia de 2.2K
1 Potencimetro de 10K
8 Resistencias de 10K
1 Resistencia de 470
1 Resistencia de 560
Figura 4.34 Placa fsica de la interfaz de usuario local para controlar y monitorear el estado de las interfaces
as como el control de la comunicacin con las interfaces y el PIC 32. Dimensiones 7.7cm. X 15cm.
99
5 Resultados
5
Resultados
El sistema se compone de diferentes secciones que son interfaces de control y monitoreo,
mdulos inalmbricos, interfaz de usuario local y la tarjeta que aloja la pgina web; cada
seccin desempea una funcin por lo que se dedica este apartado para ver su conexin,
funcionamiento y resultados.
5.1 Manual de Usuario
Primeramente se conecta el cable de alimentacin a la tarjeta y a la computadora, se
observara que tres LED`s se encienden, dos en color verde y uno en color rojo (LED1), este
ltimo prende y apaga cada segundo para comprobar que la comunicacin se ha
establecido de manera correcta. Despus se conecta el cable RJ-45 al puerto Ethernet de
la PC y del microcontrolador. Figura 5.1
Una vez que se ha conectado todo, se da doble clic a la aplicacin Microchip Ethernet
Device Discoverer.exe, la cual mostrara una ventana en donde indicar la direccin IP que
tendr la pgina web, para acceder a la pgina se deber dar doble clic en la opcin que
tiene como Host Name MCHPBOARD. Figura 5.2
100
5 Resultados
Figura 5.2 Aplicacin Microchip Ethernet Device Discoverer.exe con direccin IP generada.
Nota. Algunas veces cuando se abre esta aplicacin no muestra la direccin IP asignada
para la pgina Figura 5.3, entonces deber darse un clic en el botn Discover Devices para
generar la direccin IP.
Figura 5.3 Aplicacin Microchip Ethernet Device Discoverer.exe con direccin IP no generada.
101
5 Resultados
Despus de esto se abrir la pgina mostrando la primera pgina inicio.html. Figura 5.4
102
5 Resultados
Para corroborar que la iluminacin est encendida se observa que en la tarjeta esta
prendido el LED2 de color naranja. Figura 5.6
Si se desea apagar el foco nicamente se necesita dar clic en el botn de la pgina y este
se pondr color gris, tambin se comprueba que el foco ha sido apagado porque en la
tarjeta el LED2 aparecer inactivo. Figura 5.7.
En caso de que ocurra una fuga de gas, en la seccin de gas en la pgina, el botn se
pondr color verde y la alarma se accionar, es decir tambin se pondr en color verde el
botn en el apartado de la alarma figura 5.8 - a. En la tarjeta se prender el LED3 para
indicar que la alarma est encendida figura 5.8 - b.
103
5 Resultados
a)
b)
104
5 Resultados
a)
b)
105
5 Resultados
En el espacio del ventilador cuando se presiona el botn ON/OFF el ventilador se enciende
con una velocidad del 100%, figura 5.11, si se desea que gire a una velocidad menor
nicamente necesita presionar alguno de los botones que se encuentran debajo de este
botn. Figura 5.12 Para apagar el ventilador nicamente se vuelve a presionar el botn.
La interfaz de usuario local nos permite controlar las diferentes interfaces sin la necesidad
de entrar a la pgina web, su uso se dar cuando el usuario se encuentre en el hogar as
evitara el uso de la computadora para manipular o saber el estado del sistema.
En la figura 5.13 de abajo vemos la interfaz con una botonera del lado izquierdo, cada
botn tiene una funcin que permiten manipular el estado de las interfaces y en el centro
hay una pantalla LCD en donde se despliega el estado del sistema.
La interfaz funciona de la siguiente manera, al oprimir el botn 1 una vez el foco enciende
y en display se despliega un 1 que indica que esta encendido al volver a oprimir el
106
5 Resultados
mismo botn el foco se apaga y en el display se muestra un 0 que indica que el foco se
encuentra apagado.
Figura 5.13 Interfaz de usuario local. En el display se muestra la informacin del sistema y del lado
izquierdo se observa la botonera.
El botn 2 nos enva al modo de control de velocidad del motor como se ve en la figura
5.14 al estar en este modo podemos variar la velocidad; el potencimetro variara de 0%
al 100% el ciclo til de la seal PWM y as aumentar o disminuir la velocidad, en el display
se despliega el valor del ciclo til, cuando se quiere salir de este modo y regresar a la
pantalla principal se deber oprimir el botn 4, el motor se mantendr girando hasta que
apaguemos el motor esto se hace poniendo el ciclo til en 0%.
5 Resultados
del sensor temperatura de igual manera se despliega en el display su valor esta dado en
grados centgrados.
Cabe mencionar que la alarma est ligada a los sensores, cuando el sensor de gas se activa
por la deteccin de gas o el sensor de temperatura registra temperaturas muy altas
inmediatamente se activara la alarma alertando al usuario de que existe un riesgo. Toda la
informacin desplegada en el LCD se actualiza cada segundo.
La conexin de todas las interfaces de control y monitoreo llevan su propia alimentacin y
todas ellas van conectadas al mdulo inalmbrico XBee el cual ser el encargado de recibir
y ejecutar las acciones que el usuario requiera as como de enviar la informacin de los
sensores tanto a la pgina web como a la interfaz de usuario, ver figura 5.15.
Sensor de gas
Alimentacin: 5V
Mdulo XBee
Tx/Rx inalmbrico
Alimentacin: 3.3V
Alarma
Alimentacin: 12V
Sensor de temperatura
Alimentacin: 5V
Figura 5.15 Interfaces de monitoreo y control con su respectiva alimentacin todas las interfaces
van conectadas al mdulo XBee inalmbrico.
108
5 Resultados
Como se ve en la figura 5.15 al estar alimentadas las interfaces y conectadas al mdulo
XBee es lo nico que se requiere para su funcionamiento, el control de estas se dar de
manera inalmbrica por medio de la pgina web o de la interfaz de usuario local.
El PIC 32 se conecta a la interfaz de usuario local as la informacin que deseemos enviar y
recibir a travs del XBee pasa por estos dos dispositivos; el PIC 32 aloja la pgina web a la
cual se tiene acceso a travs de una conexin Ethernet integrada en el PIC32.
Figura 5.16 Interfaz de usuario local conectado al PIC32, se usa un cable Ethernet para conectar el
PIC32 a la PC o un a un Router.
109
5 Resultados
En la figura 5.18 se observa todo el sistema conectado y funcionando, el PIC32 est
conectado directamente a la computadora va Ethernet, pero tambin se puede conectar
a un router a al modem de nuestro proveedor de internet de esta manera se puede tener
acceso al sistema de manera remota y sin la necesidad de conectarlo a la PC.
Figura 5.18 Sistema completo conectado y funcionando. Interfaces de control y monitoreo con sus
respectivas alimentaciones, interfaz de usuario local conectado al PIC32 y a su vez est conectado a
la PC va Ethernet.
110
5 Resultados
5.2 Mejoras
El proyecto puede ser extendido adaptando ms interfaces como una cmara de video,
sensores de presencia, actuadores de agua y gas, persianas y calefaccin automtica, etc.
todo esto depender de las necesidades que se presenten en la vivienda partiendo del
prototipo desarrollado.
Para implementar las mejoras solo se requiere de una interfaz diseada o comprada
modificndola para que sea compatible con el sistema y realizar modificaciones mnimas
en la programacin que incluyan a la interfaz que se desea aadir.
111
Conclusiones
Conclusiones
La tendencia por mejorar la calidad de vida nos lleva investigar y disear un sistema
domtico que proporcione seguridad y confort en el hogar dando como resultado un
sistema totalmente funcional con capacidad de conexin a internet, con interfaces de
control capaces de ejecutar instrucciones dadas por un usuario e interfaces de monitoreo
que censan el medio obteniendo informacin que se usa para la seguridad.
El sistema se compone de hardware y software; por parte del hardware se encuentran
diversos circuitos electrnicos como son mdulos de comunicacin inalmbrica llamados
XBee de Digi International Inc., un microcontrolador PIC18 de Microchip para gestar la
comunicacin de los mdulos inalmbricos as como de la interfaz de usuario que nos
permite controlar y monitorear el sistema, un microcontrolador PIC32 de igual manera
Microchip para proporcionar comunicacin Ethernet y diseo de circuitos para sensores
de gas y temperatura as como circuitos actuadores de control de iluminacin, velocidad y
alarma; por la parte de software los mdulos XBee se configuraron de acuerdo a las
necesidades del sistema usando el programa X-CTU que usa comandos AT cabe mencionar
que los mdulos vienen programados con el protocolo ZigBee, para la programacin del
PIC 32 se us el compilador MPLab en el que se elabor el programa para la comunicacin
Ethernet usando lenguaje C.
El sistema cumple con los objetivos planteados, nos permite controlar iluminacin,
velocidad de un motor y una alarma as como censar la temperatura y detectar la
presencia de gas LP ya sea a travs de la interfaz de usuario local o por la pgina web, el
control es rpido despus de dar la orden, los sensores responden inmediatamente al
cambio de las variables que censan lo cual resulta de gran utilidad para la seguridad, la
comunicacin inalmbrica le da una gran adaptabilidad al sistema ya que evita de un
cableado que complicara su conexin y la pgina web resulta muy til por el control
remoto que nos permite dando as versatilidad al y eficacia en el sistema.
El sistema puede tener mayores alcances al adaptar ms interfaces compatibles y
realizando las modificaciones necesarias al software, todo esto es posible ya que se usan
los protocolos de comunicaciones ms usadas y circuitos integrados comunes y de bajo
costo, todo depender de las necesidades que requiera el recinto y del desarrollo que se
realice.
112
Anexo
Figura A.1 Archivo header.inc, el cual contiene el men que llevar la pgina web.
Figura A.2 Archivo footer.inc, el cual contiene el pie de contenido que llevar la pgina web.
Figura A.3 Encabezado y pie de la pgina web para ahorrar espacio en memoria.
113
Anexo
114
Glosario
Glosario
AJAX (Asynchronous JavaScript And XML). Es una tcnica de desarrollo web destinada a
crear aplicaciones interactivas que se ejecutan en el navegador del cliente mientras se
mantiene la conexin asncrona con el servidor. Permite actualizar la informacin de la
web sin necesidad de refrescar la pantalla, y es soportado por la mayora de los
navegadores.
ADC - Convertidor Analogico a Digital, este se encarga de llevar a cabo la conversin de
una seal analgica a un equivalente binario.
Funciones Callback. Se encuentran en el archivo CustomHTTPApp.c, dentro del proyecto
del TCP/IP Stack. Son las funciones que nos permiten, por ejemplo, encender un Led,
monitorear la temperatura o controlar un motor a travs de Ethernet. Veremos que
necesariamente, debemos programarlas en el Stack y vincularlas a travs de variables
dinmicas a la interfaz web.
HTTPPrint.h. Es importante tener en cuenta que, al agregar o quitar variables de nuestra
web (por medio del status.xml), se modifica el archivo HTTPPrint.h, por lo que hay que
volver a compilar el Stack antes de cargar la aplicacin en el micro. Es recomendable
seguir la secuencia mencionada para modificar, compilar y, finalmente, cargar el Stack en
el PIC.
PCB. Un circuito impreso (Printed Circuit Board), es una tarjeta o placa utilizada para
realizar el montaje de los distintos elementos electrnicos que conforman el circuito y las
interconexiones elctricas entre ellos.
PWM. Modulacin por ancho de pulsos (PWM, Pulse Width Modulation) de una seal o
fuente de energa es una tcnica en la que se modifica el ciclo de trabajo de una seal
peridica (senoidal o cuadrada), ya sea para transmitir informacin a travs de un canal de
comunicaciones o para controlar la cantidad de energa que se enva a una carga.
RS-232. Es un protocolo o estndar mundial que rige los parmetros de uno de los modos
de comunicacin serial. Por medio de este protocolo se estandarizan las velocidades de
transferencia de datos, la forma de control que utiliza dicha transferencia, los niveles de
voltajes utilizados, el tipo de cable permitido, las distancias entre equipos, los conectores,
etc.
Adems de las lneas de transmisin (Tx) y recepcin (Rx), las comunicaciones seriales
115
Glosario
poseen otras lneas de control de flujo (Hands-hake), donde su uso es opcional
dependiendo del dispositivo a conectar.
TTL. Es la sigla en ingls de transistor-transistor logic, es decir, "lgica transistor a
transistor". Es una familia lgica o lo que es lo mismo, una tecnologa de construccin de
circuitos electrnicos digitales. En los componentes fabricados con tecnologa TTL los
elementos de entrada y salida del dispositivo son transistores bipolares.
UART.
Circuito
que
se
encarga
de
la
comunicacin
serial
116
Bibliografa
Bibliografa
Introduccin al anlisis de circuitos
Pearson
Robert L. Boylestad, Louis Nashelsky
2004
1230 pags.
Teora de circuitos y dispositivos electrnicos
Pearson
Robert L. Boylestad, Louis Nashelsky
2003
1032 pags.
Electrnica de potencia
Pearson
Muhammad H. Rashid
2005
Compilador CCS y simulador PROTEUS para microcontroladores PIC
Alfaomega
Eduardo Garca Breijo
2008
263 pags.
Redes de Computadoras
UOC
Jos Mara Barcel Ordinas, Jordi igo Griera, Ramn Mart Escal, Enric Peig Oliv, Xavier
Perramon Tornil
2004
69 pags.
Redes de Computadoras
Pearson
Andrew S. Tanenbaum
Cuarta Edicin, 2003
37 pags.
117