Anda di halaman 1dari 101

Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Ciencias Bsicas e Ingeniera.


Ingeniera en Electrnica.

Reporte de la UEA Estancia Industrial


de Ingeniera Electrnica.
Alumno:

Prez Miguel ngel 208302929

Asesor:

Reyes Ayala Nicols.

Responsable en la Empresa y Director del Proyecto para el IMP

Dr. Reyes Villegas Faustino Martn Ficha: IMP_12697.

Trimestre: 13I

Pgina 1
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

ndice.

1. Marco Tecnolgico.

1.1 Estaciones meteorolgicas.


1.1.1 Clima y tiempo.
1.1.2 Escalas de las estaciones Meteorolgicas.
1.2 Sistemas de sensores inalmbricos.
1.3 XBEE.
1.3.1 Acceso al medio.
1.3.2 Verificacin de error y reconocimiento.
1.3.3 Encapsulacin.
1.3.4 Protocolos XBEE
1.3.5 Configuracin XBEE punto a punto.
1.3.6 Estilo y caractersticas XBEE
1.4 Arduino.
1.4.1 Por qu utilizar Arduino?
1.4.2 Versiones y caractersticas de Arduino.
1.4.3 Arduino PRO-MINI en la red de sensores.
1.4.4 Software Arduino.
1.5 Matlab.
1.5.1 Matlab y la comunicacin con el Hardware.
1.5.2 Interfaz Grfica de Usuario (GUI).

2. Plataforma meteorolgica, sistema de adquisicin de datos


2.1 Lectura de datos.
2.2 Comunicacin inalmbrica.
2.3 Interfaz grfica.

3. Lectura de datos y comunicacin inalmbrica.


3.1 Lectura del dato.
3.2 Acoplamiento y multiplexaje de los sensores.
3.3 Implementacin de la comunicacin inalmbrica.

Pgina 2
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

4. Circuito transmisor.
4.1 Fuente de alimentacin y regulador de voltaje.
4.2 Control.
4.3 Multiplexaje y entradas de sensores.
4.4 Radio.
4.5 Algoritmo del circuito transmisor.
4.6 Programacin del circuito transmisor.

5. Circuito receptor.
5.1 Tarjeta Xbee Explorer USB.
5.2 Configuracin Xbee para la comunicacin.
5.3 Comunicacin con el circuito transmisor.

6. Interfaz Grfica.
6.1 Interfaz de la adquisicin de datos.
6.2 Bloque de conexin.
6.3 Bloque de control de medicin de datos.
6.4 Bloque de seleccin de variables.
6.5 Bloque Pantalla.
6.6 Bloque de visualizacin de las variables atmosfricas.
6.7 Bloque de fecha y hora.
6.8 Ecuacin del sensor de temperatura.
6.9 Ecuacin del sensor de humedad.
6.10 Programacin de la interfaz.

Pgina 3
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Introduccin.

La obtencin de datos atmosfricos es muy importante en el monitoreo de gases de


efecto invernadero en la atmosfera, y se lleva a cabo con plataformas instrumentadas,
denominada estaciones meteorolgicas. Actualmente en el mercado se encuentran gran
variedad de estaciones meteorolgicas que permiten leer las diferentes variables de
inters cumpliendo varios objetivos, sin embrago, resulta complicado su uso y aplicacin
al momento de describir los componentes electrnicos internos y buscar integrarlos a un
diseo propio para la adquisicin de datos atmosfricos y otros aspectos, requeridos
como son Telecomunicacin, miniaturizacin, almacenamiento y control de datos
atmosfricos. El presente documento describe el diseo y construccin de una estacin
meteorolgica que sea capaz de cumplir con lo anterior. Partiendo de la lectura de datos,
transmisin inalmbrica, adquisicin y almacenamiento de datos. Cada etapa presenta
un acoplamiento de componentes electrnicos tales como transductores, controladores,
transmisores de radiofrecuencia, programacin de la secuencia de control e interfaz
grfica. Da tal forma que en conjunto se logre un diseo apropiado de la estacin
meteorolgica miniaturizada.

Al presentar el desarrollo del diseo se obtendr la plataforma capaz de adquirir los datos
atmosfricos requeridos, involucrando en el acoplamiento tecnologas apropiadas al
diseo. La plataforma de hardware Arduino facilita la lectura de transductores, la
comunicacin a una PC y con el sistema de comunicacin inalmbrica. XBEE es una
tecnologa especfica y estndar de redes inalmbricas personales, utilizada en este
trabajo. El desarrollo del software presenta la Interfaz Grfica de Usuario Matlab (GUI).
Aunque Java es el lenguaje ms habitual para crear GUI, es muy lenta para hacer
clculos eficientemente y es aqu donde Matlab es ms poderoso. Tambin las
aplicaciones de estas tecnologas son limitadas, trabajando en rangos de operacin
apropiados para el acoplamiento.

Con la herramienta naciente del proyecto, se obtendrn datos que pueden causar un
impacto en la toma de decisiones en el monitoreo de gases atmosfricos de efecto
invernadero en la atmosfera. Algunas otras variables son necesarias e importantes para
clculos y anlisis de los mismos. Por parte de la comunicacin, las redes de monitoreo
inalmbrico se han convertido en la actualidad de mayor importancia y se convierten en
una herramienta interesante en el campo de la ingeniera de telecomunicaciones, los
sensores tienen que estar dentro de esa red detectando los cambios apropiados. La
explicacin de la deteccin de los cambios es la parte importante que se tiene que
interpretar.

Pgina 4
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Objetivo General:

Realizar el diseo, implementacin y/o construccin de un sistema miniaturizado de


comunicacin inalmbrica, transmisin y anlisis de la informacin de seales, de
datos atmosfricos utilizados en la medicin de emisiones.

Objetivos Particulares:

Aplicar los fundamentos electrnicos aplicados en el diseo y construccin forma


inalmbrica de un sistema de comunicacin, transmisin y anlisis de la informacin
de seales.
Aplicar los conocimientos de los principios de diseo de sistemas digitales y sistemas
de control e instrumentacin.
Aplicacin de conocimientos en comunicaciones, medicin remota e interfaz grafica y
monitoreo.

Pgina 5
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 6
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

1. Marco Tecnolgico.

En esta primera parte definimos las tecnologas que han sido seleccionadas para la
implementacin y diseo de la plataforma meteorolgica, siendo la informacin que nos
ha ayudado en la comprensin y seleccin de las tecnologas existentes en el mercado.
En esta primera parte se consideran conceptos bsicos utilizados en el proyecto de la
Estancia Industrial y fundamentalmente las actividades realizadas en esta primera parte
se relacionan a la investigacin documental del estado del arte de las tecnologas
identificadas con posibilidad de considerarse en el presente trabajo:

Definicin de las estaciones meteorolgicas: Se ha investigado la definicin y


las principales variables que se deben medir en una estacin meteorolgica
comercial.
Definicin de una red de sensores inalmbrica: Se ha relacionado a la
plataforma meteorolgica implementada con una red de sensores inalmbrica.
Definiendo la arquitectura de la misma: microcontrolador, sensores y radio.
Definicin de la comunicacin inalmbrica: Se ha seleccionado la tecnologa
XBEE, al seleccionarla se han estudiado los protocolos de comunicacin y
configuracin del radio XBEE. Dentro de la investigacin se han definido los
conceptos de error al transmitir el dato, empaquetamiento y acceso al medio.
Sealando tambin caractersticas del radio como: Potencia de salida, alcance y
voltaje de operacin.
Definicin del microcontrolador: en esta parte se ha seleccionada la tecnologa
ARDUINO. Seleccionando la placa Arduino Mini PRO se ha reportado tambin el
tipo de software que utiliza la tarjeta ARDUINO

1.1 Estaciones meteorolgicas.

La meteorologa es la rama de la fsica que estudia los fenmenos que existen y aparecen
en la atmosfera. En el pasado el hombre aprendi a predecir los cambios del tiempo
mediante la observacin, dndose cuenta de los cambios que lo benefician o daan. En la
actualidad, con el crecimiento urbano y tecnolgico el hombre han extendido sus sentidos,
que son los instrumentos meteorolgicos; con el fin de predecir los cambios que lo daan.
Monitoreando los gases txicos que se encuentran en la atmosfera permitiendo medir,
registrar y procesar la informacin que se obtiene de la prediccin del tiempo y la
atmosfera, sin necesidad de hacer observaciones directas mediante estaciones
meteorolgicas, que conllevan el uso de sistemas inalmbricos. En el campo de la
atmosfera se puede sacar provecho de los dos mtodos: observar y medir.

Pgina 7
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Actualmente las estaciones meteorolgicas se aplican en distintas reas de la


investigacin, sobre todo, en ciencias de la atmsfera, en donde los datos obtenidos a
travs de ellas, se utilizan en anlisis atmosfricos funcionando como predictores;
tambin, se utilizan como pronosticadores y alertas de fenmenos naturales, o, para
operaciones locales de pronsticos hidrolgicos y agrometeorolgicos. En todos los casos
la estacin meteorolgica debe cumplir un grado de exactitud necesaria para describir el
valor de la variable para un fin en especfico, esto se le llama representatividad.

1.1.1 Clima y tiempo.

Se pude definir clima1 al estado de las condiciones de la atmsfera, en muchos casos se


le relaciona con la temperatura y las observaciones sobre la precipitaciones. A veces se le
hace relacin con el tiempo, sin embargo, no tiene el mismo significado. El clima lo
determinan:

a) La altura sobre el nivel del mar.


b) Su distancia a grandes masas de agua.
c) Su orologa.

El tiempo se refiere a los cambios rpidos que se presentan en la atmsfera, en cosas de


horas o das de un lugar en especfico. Los factores del tiempo son los siguientes:

a) Presin atmosfrica.
b) Velocidad y direccin del viento.
c) Temperatura.
d) Humedad del aire.

La vinculacin tiempo-estacin meteorolgica se relaciona muy adecuadamente debido


que muchas estaciones existentes en el mercado registran los factores del tiempo. Los
requerimientos de mediciones del diseo de la plataforma meteorolgica instrumentada
que debe registrar son los siguientes2:

1. Tiempo presente.
2. Tiempo pasado.
3. Direccin y velocidad del viento.
4. Temperatura.
5. Humedad relativa.
6. Presin atmosfrica.
7. Radiacin solar.

Pgina 8
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Estas variables estn presentes en el diseo, dnde cada a una se le puede asignar una
tcnica para el registro y obtencin de sus valores a travs de sensores.

1.1.2 Escalas de las estaciones meteorolgicas.

En particular las distintas estaciones meteorolgicas tienen una escala espacial y


temporal definida para realizar sus promedios, para definir la red de observaciones
necesaria con la relacin del fenmeno que se quiere estudiar. Entonces, la escala del
pronstico tiene una estrecha relacin con la escala temporal del fenmeno. Ejemplo:
para detectar cualquier fenmeno de pequea escala y de variaciones rpidas en el
tiempo y realizar su pronstico del tiempo a muy corto plazo se requieren observaciones
ms frecuentes, provenientes de la red de observaciones sobre un rea limitada. Con lo
anterior, las escalas meteorolgicas se clasifican como:

CLASIFICACIN DISTANCIA APLICACIN


Micro escala Menor a 100 metros Agrometeorologa:
Evaporacin
Escala Local Entre 100 metros y 3 Contaminacin
Kilmetros atmosfrica, tornados
Meso escala De 3 a 100 kilmetros Tormentas, brisa de mar.
Escala Sinptica De 100 a 3000 Frentes, ciclones,
Kilmetros. clusters nubosos
Escala Planetaria Mayor a 3000 Kilmetros Ondas largas en altura.

Tabla 1.1 Clasificacin de las escalas meteorolgicas (Renom, Madeleine. Principios bsicos de las
mediciones atmosfricas, 2011).

Con base en la tabla 1.1, la Escala Local es la que ms se acerca a los requerimientos
solicitados, dedicado al monitoreo de contaminacin atmosfrica, siendo tambin la base
para el diseo de nuestra estacin meteorolgica. Se considera una distancia mxima de
3 Km, teniendo una estacin base y la estacin meteorolgica comunicadas entre s a
travs de una red inalmbrica. Para la red se sugiere una comunicacin de punto a punto,
posteriormente se puede considerar de punto a multipunto, para abarcar un rea
geogrfica ms extensa.

Finalmente sealamos las caractersticas importantes de la plataforma meteorolgica:

Miniaturizacin. Parte principal del diseo, tambin es la causa por la que no se


decidi implementarla con una estacin meteorolgica existente en el mercado.
Comunicacin inalmbrica punto a punto, con alcance mximo de 2 Km al aire libre.
Registrar: Temperatura, humedad relativa, presin atmosfrica. Radiacin solar,
velocidad y direccin del viento.

Pgina 9
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

1.2 Sistemas de sensores inalmbricos.

Durante los aos 90s ha surgido de revolucin de las redes, tal que las personas y las
organizaciones intercambian informacin y se coordinan. Los avances son tan notorios
que se han desarrollado mecanismos distribuidos, diminutos, baratos y de bajos consumo.
Un ejemplo claro es la telefona celular. Estos dispositivos son cada vez ms capaces,
prometiendo mucho como aspectos de configuracin y baja probabilidad de fallar. Todo
queda enlazado entre s dentro de redes inalmbricas formando desde un entorno simple
hasta el ms complejo.

La parte de la tecnologa de sensores inalmbricos, tampoco se poda quedar atrs y se


ha desarrollado aventajando los campos de aplicacin como defensa, agricultura, medio
ambiente o trfico3.

La tecnologa de redes de sensores se basa en el uso de sensores o actuadores con


capacidad de recibir informacin del entorno o de realizar alguna accin en l. Estos
sensores estn conectados a dispositivos electrnicos con capacidad de procesamiento
de comunicacin inalmbrica. Cada nodo de la red consta de un microcontrolador,
sensores y transmisor/receptor, y puede formar una red de muchos nodos. Cada nodo
debe procesar una cantidad limitada de datos, coordinando cada sensor para realizar una
tarea especfica.

Una ventaja del sistema de sensores inalmbricos es que, en muchos casos, se requieren
demasiados sensores para evitar obstculos fsicos que obstruyan la lnea de
comunicacin. El medio que va a ser monitorizado no tiene una infraestructura, ni para el
suministro energtico, ni para la comunicacin. Por ello es necesario que los nodos
funcionen con pequeas fuentes de energa y que se comuniquen mediante canales
inalmbricos. En la siguiente figura se muestra la arquitectura de cada nodo de la red de
sensores.

Figura1.1 Arquitectura fsica de un nodo de red de sensores (Aplicacin de las


redes de sensores inalmbricos a la industria nuclear. Tecnatom).

Pgina 10
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Los elementos a considerar en cada nodo de una red de sensores son:

a) Sensores: Sus puntos crticos de estas aplicaciones suelen ser el tamao y


consumo, en los casos cuando el nodo se despliega para obtener la informacin.
Operan de manera autmata sin acceder a fuentes de energa externa.
b) Capacidad de proceso de los nodos: En la arquitectura todos los nodos tiene un
microcontrolador. Las capacidades de este dispositivo deben considerarse en
conjuncin de consumo, autonoma y velocidad de procesamiento.
c) Capacidad de las comunicaciones: En muchas aplicaciones se utiliza el
protocolo 802.15.4 o el Bluetooth (ambos de banda libre a 2.4 GHz). Este protocolo
tiene un alcance de decenas de metros. En otros caso se utiliza el protocolo 802.11
permitiendo mayores alcances (centenares de metros), pero a cambio de una
menor autonoma.
d) Software bsico: Los microcontroladores ejecutan software normalmente sobre
sistema operativos muy reducidos. Pero son capaces de procesar la informacin
obtenida de un nodo.
e) Software de aplicaciones: Las aplicaciones en redes de sensores se limitan a
tener medidas de entorno y transmitirlas un nodo referido. Actualmente estos
nodos tiene una mayor capacidad que le permiten tener ms inteligencia como son:
incluir seguridad en sus transmisiones de datos o realizar decisiones de forma
distribuida en base a las condiciones de la red, como niveles de energa en los
nodos.

La aplicacin en el Control del Impacto Ambiental es el campo con mayor experiencia en


las redes de sensores y su primero aplicacin natural. Sin embargo no existen muchas
referencias comerciales que integren la medida de la actividad radiolgica en redes de
sensores, salvo de los laboratorios americanos, como Sandia 4 o Los Alamos5, ms bien
orientadas a emergencias que a la monitorizacin de plantas.

Aunque en la arquitectura se sealan los componentes ms bsicos e indispensables


para un nodo de red de sensores, es necesario tener en cuanta un destinatario de los
datos obtenidos. Otro aspecto importante es que en un nodo de red de sensores existen
cierto nmero de sensores a leer. Es dnde el microcontrolador hace su trabajo, creando
un algoritmo para conocer qu sensor leer y cuando hacer esta lectura. Por ello hemos
modificado la arquitectura del nico nodo de sensores. La modificacin se muestra en la
siguiente imagen.

Pgina 11
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 1.2 Arquitectura de la plataforma meteorolgica.

1.3 XBEE.

El modem de radiofrecuencia XBEE de Digi International es un transceptor inalmbrico.


El XBEE funciona mediante un protocolo completamente implementado hacia la
comunicacin de datos, con las caractersticas necesarias para generar una red robusta
de sensores inalmbricos. Caractersticas tales como direccionamiento, reconocimiento y
reintento, ayudando a garantizar la entrega segura de los datos en el nodo deseado.
XBEE tambin tiene caractersticas adicionales aparte de la comunicacin de datos, para
utilizarlos en el monitoreo y control de dispositivos remotos6.

Muchos mdulos inalmbricos para microcontroladores simplemente envan y reciben


datos en la frecuencia proporcionada. Es hasta el usuario final que quiere obtener los
datos o su hardware de aplicacin cuando se enfrentan a los siguientes problemas, como
las reglas de acceso de medios, verificacin de datos, comprobacin de error en la
entrega y en varios nodos de redes qu nodos aceptan y utilizan los datos. Los
dispositivos como XBEE que utilizan un protocolo de red puede facilitar el trabajo del
programador en el manejo de estas tareas.

Al enfrentarse con los problemas de la red, se consideran las soluciones para garantizar
un flujo adecuado de la comunicacin. Ciertas reglas y protocolos de la comunicacin se
utilizan para asegurar que el mensaje fluya correctamente desde el emisor al receptor a
travs del medio, similar al espacio de aire cuando una persona habla.

1.3.1 Acceso al medio.

En conversaciones entre dos o ms personas, es importante que dos personas no hablen


al mismo tiempo. El mensaje de uno o ambos no pueden pasar al receptor o chocan
creando confusin al oyente. En trminos de redes inalmbricas el acceso al medio se

Pgina 12
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

bloquea causando un choque en el flujo de los datos.


Los mdulos XBEE al igual que las personas tienden
a esperar una apertura antes de empezar a
comunicarse. Cuando dos ven la apertura para
comunicarse y ambos comienzan a hacerlo, al mismo
tiempo se seala el problema, retrocediendo y
llegando a una negociacin.

Figura 1.3 Confusin en la comunicacin A veces en las redes inalmbricas, el mensaje


puede ser para todos o solamente para uno, es por
ello que se le asignan una direccin a cada dispositivo. Esta direccin permite que los
datos enviados puedan ser utilizados por un dispositivo (punto a punto) o por un grupo
entero de dispositivos (punto a multipunto). En muchos casos los nodos reciben la
informacin enviada, pero si los datos no contienen su direccin ignoran el mensaje y slo
el dispositivo con la direccin correcta utiliza el mensaje.
La direccin del mensaje es muy importante. Por ejemplo: En un grupo de clase, un
alumno escucha una pregunta, para que el alumno conteste correctamente tiene que
saber quin mencion su nombre y le hizo la pregunta. En las redes, parte de los datos
enviados incluye la direccin de origen de quin envi el mensaje con el fin de responder
continuando con el flujo de la programacin.

1.3.2 Verificacin de error y reconocimiento.

Siempre es importante que las palabras que hablamos sean entendidas por las dems
personas. Al pasar datos en una red, es importante verificar que el mensaje fue recibido y
los datos no contengan ningn error. Una forma sencilla de comprobacin de errores es
sumar todos los valores de bytes a enviar y aadir ese valor a los datos enviados. En la
recepcin, se realiza la misma operacin matemtica sobre los datos recibidos. El valor se
compara con el valor de la suma recibida. Si no coincide el valor, los datos contienen
errores y no es reconocido. Si el mensaje no se recibe o contiene errores, el nodo
receptor no ignora la recepcin y realiza reintentos de transmisin de un nuevo envo.

1.3.3 Encapsulacin.
Al igual que cuando escribimos una carta, no nos limitamos a escribir la carta y dejarla en
el buzn hasta que llegue al destinatario. La carta debe ser colocada en un sobre y
dirigida, asegurndose que ser recibida y leda por la persona correcta, incluyendo la
direccin de retorno para que el destinatario se asegure de quin la escribi. En una red
los datos se transfieren de una manera similar. El mensaje se empaqueta con otros datos
que el protocolo requiere, como se ve en la Figura 1.4.

Pgina 13
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 1.4 Encapsulacin de los datos en un Xbee

Estos datos que se aaden son: direccin de origen, direccin de destino, valores de
comprobacin de errores. Todo este empaquetamiento ayuda a asegurar la entrega
correcta al nodo deseado.

1.3.4 Protocolos XBEE.

XBEE utiliza el protocolo IEE 802.15.2, este protocolo se conoce como de baja velocidad.
Proporciona 250 Kbps de rendimiento de datos entre los nodos de la red. Aunque no se
pretende para grandes volmenes de datos, tales como archivos de imagen, su uso est
enfocado en sistemas de supervisin y control, comnmente como una red de sensores
inalmbricos.
En comparacin con Bluetooth (con protocolo IEE 802.15.1), XBEE est diseado como
un protocolo mucho ms sencillo con menores tasas de transferencia de datos (250 Kbps
en comparacin con 1 Mbps). Bluetooth fue diseado como un reemplazo de los cables
perifricos y se utiliza en las comunicaciones entre dispositivos porttiles, tales como
telfonos, lo que requiere acceso de seguridad7.

1.3.5 Configuracin XBEE punto a punto.

Para configurar un XBEE, es necesario tener como hardware un convertidor que emule un
puerto serial en la PC. Con ayuda de la hyperterminal se pueden enviar los comandos AT
necesarios para que el XBEE pueda ser configurado 8. Existe una lista amplia de los
comandos AT, pero los comandos AT bsicos para configurar dos XBEE para la conexin
punto a punto son las siguientes:

Pgina 14
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

FUNCIN COMANDO PARMETRO


PAN ID ATID Cualquier direccin entre 0 y 65534.
Direccin ATMY Cualquier direccin nica entre 1 y 255.
Direccin destino ATDH 0, indica un direccin de 16 bits.
(parte alta)
Direccin destino ATDL 2, indica la direccin del XBEE con el que
(parte baja) se necesita comunicar.
Modo comando +++ Prepara al XBEE en modo comando, una
vez que se presiona +++ se recibe un
OK, asegurando que el XBEE est listo.
Guardar cambios ATWR Guarda los cambios en los comandos que
se han modificado en el XBEE.
Tabla 1.2 Comandos bsicos AT para configurar una conexin punto a punto

PAN ID: Es el nmero de la Red de rea Personal. Es un identificador nico para


la red. Slo los XBEE asignados a un PAD ID pueden comunicarse entre s. En
nuestro caso utilizaremos el nmero 3001
Direccin: Esta es la direccin origen nica para cada XBEE.
Direccin destino parte alta: Representa la primera mitad de la direccin que
queremos habilitar. En los mdulos XBEE se pueden tener direcciones de hasta 64
bits y esta es la direccin de la parte ms alta. Como no se necesitaran enviar
datos extensos la pondremos en cero.
Direccin destinos parte baja: Esta direccin se utiliza para localizar el XBEE con
el que se tenga que comunicar. Se tiene que asegurar que coincida con el
parmetro de direccin (ATMY) del XBEE con el que se quiere hablar.

En la siguiente tabla se muestra el orden de los comandos introducidos a dos XBEE para
configurarlos en una conexin punto a punto.

COMANDO XBEE1 XBEE2


+++ Modo comando Modo comando
ATID 3001 3001
ATMY 2 1
ATDH 0 0
ATDL 1 2
ATWR Guarda cambios Guarda cambios

Tabla 1.3 Secuencia de los comando AT para configurar una conexin punto a punto

Pgina 15
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Podemos ver los comandos en la


hyperterminal en la siguiente imagen. Cada
que se enva un comando se recibe un OK
como respuesta, asegurndonos que es un
comando correcto. Los comandos de la parte
izquierda es el XBEE1 y el de la derecha el
XBEE2. Ambos tiene una comunicacin
bidireccional, con esta configuracin ambos
pueden ser transmisores y receptores.

Recordando que el parmetro ATMY debe Figura 1.5 Secuencia de configuracin de dos XBEE en
coincidir con el parmetro ATDL de los la Hyperterminal
XBEE que se deseen comunicar.

1.3.6 Estilo y caractersticas de XBE.

El mdulo XBEE tiene varias versiones, pero todos tienen los pines de salida similar a la
figura mostrada, Figura 1.6.Las diferencias entre las versiones de XBEE incluyen la salida
de potencia, estilo de antena, frecuencia de operacin y capacidades de la red.

Figura 1.6 Pines de entrada y salida del XBEE

Aunque se tienen muchos pines tpicamente se conectan los de la Figura 1.7.

Figura 1.7 Conexin tpica del XBEE

Pgina 16
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

El estilo de XBEE con protocolo 802.15.4 se le denomina de Serie 1 y permiten una


conexin punto a punto o punto a multipunto. El XBEE y XBEE-PRO casi son idnticos en
el funcionamiento la diferencia es que el XBEE-PRO es ms grande en cuanto a tamao y
tiene una mayor potencia de salida. Las diferencias se encuentran en la siguiente tabla.

ESPECIFICACIN XBEE XBEE-PRO


Voltaje de 2.8 VDC-3.4 VDC 2.8 VDC-3.4 VDC
alimentacin
Potencia 1mW 63mW
Distancia de 90 m 1.6Km
alcance al aire libre
Distancia de 30 m 90 m
alcance urbano
Frecuencia de 2.4 GHz, 16 Canales 2.4 GHz, 12
operacin y canales canales
Sensibilidad -92 dBm -100 dBm

Tabla 1.4 Diferencias entre XBEE y XBEE-PRO.

Con las caractersticas mostradas, se ha elegido los mdulos XBEE-PRO Serie 1, para el
diseo en la comunicacin.
1.4 Arduino.

Arduino es una plataforma de prototipo electrnica de cdigo abierto, basada en hardware


y software flexibles y fciles de usar. El entorno de recepcin de entradas de Arduino, se
basa en una gran variedad de sensores y puede afectar a su alrededor mediante el
control de motores, luces y otros artefactos9.

La filosofa del hardware Arduino se basa en Open Source, dnde la versin esquemtica
del hardware es libre y puedes construir tu propio Arduino. Las ventajas que sobresalen
son: Nadie te puede acusar de plagio, puedes compartir nuevas ideas, adaptar el
hardware a tus necesidades e incluso hacer dinero.

El software Arduino, y el mismo que permite comunicarse con la PC y programar el


microcontrolador de la placa se le llama Lenguaje de Programacin de Arduino y est
basado en el Wiring, el entorno de desarrollo de Arduino se basa en el Processing.
Conjuntamente el software de Arduino se basa en el Processing Wiring.

Pgina 17
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

1.4.1 Por qu utilizar Arduino?

En principio en una red de sensores inalmbrica es necesario un microcontrolador.


Aunque en el mercado existen gran cantidad de microcontroladores, se pens en la
miniaturizacin; existe una placa de Arduino miniaturizada que permita la manipulacin
del hardware para los propsitos requeridos. Adems de que Arduino tiene un lenguaje de
programacin muy flexible para la comunicacin serial con otros microcontroladores y la
PC. Algunas otras ventajas de Arduino son las siguientes.

Multiplataforma: El software Arduino se ejecuta en varios sistemas operativos


como son Windows, Macintosh OSX y GNU/Linux
Cdigo abierto y software extensible: El software Arduino est publicado como
herramientas de cdigo abierto, disponible para extensin de programadores
experimentados. El lenguaje puede ser expandido mediante libreras C++, y la
gente que quiera entender los detalles tcnicos pueden hacer el salto desde
Arduino y la programacin en lenguaje AVR-C en el cual est basado. De forma
similar, puedes aadir cdigo AVR-C directamente en los programas.
Cdigo abierto y hardware extensible: Arduino est basado en
microcontroladores ATMega8, ATMega168 y ATMega328 de Atmel. Los
esquemticos as como los componentes de la tarjeta estn publicados bajo la
filosofa Open Source, por lo que diseadores de circuitos pueden hacer su propia
versin del mdulo, extendindolo y mejorndolo. Incluso usuarios con poca
experiencia pueden construir su propia versin de la placa del mdulo, as se
puede entender cmo funciona.

1.4.2 Versiones y caractersticas de Arduino

Hay una gran variedad de tarjetas Arduino. La mayora utilizan el microcontrolador


ATmega328 y Arduino Mega el ATMega2560. Entre las que destacan:

Decimila: Actualmente esta placa se ha hecho muy popular. Se conecta al


ordenador con cable estndar USB y contiene el hardware de comunicacin serial
para comunicarse con la PC, necesario para ser programado.
Nano: Es una placa compacta diseada para uso como tabla de pruebas, este se
conecta a la computadora usando un cable Mini USB.
Bluetooth: Esta placa contiene un mdulo bluetooth que permite la comunicacin y
programacin sin cables. Es compatible con otros dispositivos Arduino.
Mini: Esta placa es la ms pequea de Arduino. Trabaja bien en tablas de pruebas
en aplicaciones donde el espacio es muy reducido. Se conecta a la computadora
utilizando el cable mini USB.

Pgina 18
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

1.4.3 Arduino PRO-MINI en la red de sensores.

Se ha relacionado la plataforma meteorolgica con el nodo de una red de sensores


inalmbrica. Siendo Arduino Pro-Mini el microcontrolador de esta.

Esta versin de Arduino consiste en una tarjeta compacta, diseada para aplicaciones
donde se requiere flexibilidad y un tamao reducido, las dimensiones que se tiene de esta
placa son de 18 mm x 33 mm. La miniaturizacin de esta tarjeta es reducida porque
contiene el mnimo de componentes necesarios para que el microcontrolador pueda
operar correctamente. No contiene la conexin USB incorporado a los circuitos y para
cargar un programa es necesario conectar una tarjeta USB-TTL que es un convertidor de
comunicacin serial.

Existen dos versiones de Arduino Pro Mini y se clasifican en relacin al voltaje de


alimentacin: una que funciona a 5 volts, trabaja a una frecuencia de 16 MHz y otra que
funciona a 3.3 volts con una frecuencia de 8 MHz. Se ha elegido la versin Arduino Pro
Mini de 3.3 volts debido al bajo consumo de energa y porque el radio Xbee tambin opera
en este intervalo de voltaje.

En la siguiente tabla se sealan algunas caractersticas del hardware incorporado a la


tarjeta y otras como son las caractersticas del microcontrolador que se utiliza.

CARACTERSTICAS DESCRIPCIN
Microcontrolador ATmega328
Voltaje de operacin 3.3 volts
Pines de Entrada/Salida 14 (de los cuales 6 proveen salidas
PWM)
Pines de entrada analgicos 8
Corriente por pin de Entrada/Salida. 40 mA
Memoria Flash 32 Kbyte
EEPROM 1 KBytes
SRAM 2KBytes
Oscilador 8 MHz
Tabla 1.5 Caractersticas de Arduino Pro Mini.

Entrada/Salida: Cada uno de los 14 pines puede ser utilizado como entrada o
salida, operando a 3.3 volts. Cada pin puede recibir como mximo una corriente de
40 mA y tienen una resistencia interna d pull-up de 20-50 KOhms. Adems algunos
tiene pines especiales.
Comunicacin Serial: 0 (Rx) y 1 (Tx). Utilizados para recibir y transmitir datos
TTL en serie.

Pgina 19
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Interruptores externos 2 y 3: Estos pines pueden ser configurados para disparar


una interrupcin de valor bajo, un margen creciente o decreciente, o un cambio de
valor.
PWM 3, 5, 6, 9, 10, 11: Proporciona salida PWM de 8 bits y con una frecuencia
constante de 490 Hz.
Led 13: Hay un led incorporado al pin digital 13.
Pines de entradas analgicas: Arduino Pro mini tiene 8 entradas analgicas.
Estas entradas tambin pueden ser configurables como pines de entrada y salida
digitales. Cada entrada analgica se conecta a un convertidor analgico-digital con
una resolucin de 10 bits de cero volts a un voltaje de referencia. Por defecto el
voltaje de referencia es de 3.3 volts, aunque es posible cambiar este valor usando
el pin ARF.
Reset: Pone esta lnea a un valor de cero volts para resetear al microcontrolador.

Las caractersticas se muestran en la siguiente figura:

Figura 1.8 Caractersticas de la tarjeta Arduino Mino Pro.

Para cargar un programa en Arduino Pro Mini se tiene que conectar una tarjeta
convertidor USB a TTL, permitiendo la comunicacin con el microcontrolador con la PC.
Se ha utilizado el USB FTDI TTL-232R-3.3v de Saprkfun. La forma correcta de conectar la
tarjeta y Arduino Pro Mini es mediante seis pines. La tarjeta se conecta a la PC mediante
USB, utilizando un cable mini USB. Las conexiones se realizan como se muestran en la
imagen.

Pgina 20
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 1.9 Conexin de Arduino Pro Mini para la programacin.

Cuando se conecta el convertidor USB a TTL de 3.3 volts, automticamente la tarjeta


Arduino Pro Mini se alimenta con el nivel de voltaje de 3.3 volts, proporcionado por el
puerto USB de la computadora.

1.4.4 Software Arduino.

Arduino no slo es hardware, sino tambin software. La plataforma en que trabaja Arduino
se conoce como Processing Wiring y todas las versiones de las placas trabajan en esta
plataforma. Esta plataforma permite editar, compilar y cargar el programa.

Un sketch es un programa que se ejecuta en Arduino, se le hace mucho a la similitud a


la pantalla donde se realizan el conjunto de instrucciones que se ejecutan en Arduino. En
la siguiente imagen se muestra la pantalla donde se editan los programas que se cargan a
la tarjeta Arduino.

Figura 1.10 Sketch Arduino.

Pgina 21
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

La estructura del sketch se basa en dos funciones principales el voidsetup()que es la


inicializacin del programa que se ejecuta en Arduino y el voidloop() es un ciclo infinito
que ejecuta Arduino mientras este alimentado.

Voidsetup()

Se establece cuando inicia el programa. Se emplea para inicializar variables, establecer el


estado de los pines o inicializar libreras. Esta funcin se ejecutar una nica vez despus
que se conecte la placa Arduino a la fuente de alimentacin o cuando se presione el botn
de reinicio de la placa.

Voidloop()

Despus de inicializar las variables la funcin loop hace lo


que su nombre indica y es una funcin que se ejecuta
consecutivamente, permitindole al programar variar y
responder.

En la siguiente Figura 1.11 se muestra las estructuras de las


funciones principales de un sketch en Arduino.

En el Sketch se escriben el conjunto de instrucciones en


lenguaje C++. Algunas instrucciones son propias de Arduino,
sin embargo la sintaxis tambin se asemeja a las
instrucciones de C++. Algunas de estas instrucciones y que
son los que ms utilizaremos son las siguientes: Figura 1.11 Estructura de un
sketch en Arduino
Modo de entrada/salida: Esta instruccin configura el pin especificado para comportarse
como entrada o salida. Dentro del argumento de la sintaxis se pone el nmero de pin (1-
13) despus un coma y la palabra con maysculas INPUT si es entrada, OUTPUT si es
salida.

Sintaxis:

pinMode(numeroPin, INPUT); //pin en modo de salida.

pinMode(numeroPin, OUTPUT); //pin en modo de entrada.

Escritura digital: Escribe un valor HIGH o un valor LOW a un pin digital. Dentro del
argumento de la sintaxis, se coloca el nmero de pin (1-13) posteriormente las palabras
HIGH o LOW.

Pgina 22
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Si el pin ha sido configurado como OUTPUT con pinMode(numeroPin, OUTPUT), su


voltaje ser establecido al correspondiente valor: 5 volts (3.3 volts para la tarjeta Arduino
PRO-MINI) para HIGH, 0 volts para LOW.

Si el pin es configurado como INPUT, y escribir un valor HIGH, se habilitarn las


resistencias internas de pull-up de 20K en el pin. Escribir un valor LOW deshabilitar la
resistencia en el pin.

Sintaxis:

digitalWrite(numeroPin, HIGH); //Pone 3.3 volts en el pin correspondiente.

digitalWrite(numeroPin, LOW); //Pone 0 volts en el pin correspondientes.

Comunicacin Serial.

Se puede utilizar la comunicacin entre la placa Arduino hacia un ordenador u otros


dispositivos. Todas las placas Arduino tienen al menos un puerto serie y se comunica a
travs de los pines digitales Rx, 0 y Tx, 1. As que si se utilizamos estas funciones, no se
pueden utilizar los pines 0 y 1 como entradas o salidas digitales. Las instrucciones ms
importantes para la comunicacin serial son las siguientes.

Inicializacin de la comunicacin serial: Esta instruccin establece la velocidad de


datos en bits por segundo (baudios) para la transmisin de datos en serie. Las
velocidades necesarias para comunicarse con la PC son: 300, 1200, 2400, 4800, 9600,
14400, 19200, 28800, 38400, 57600 o 115200. Los valores anteriores son el argumento
de la instruccin, es muy comn que siempre se utiliza la velocidad de 9600.

Sintaxis:

Serial.begin(valorVelocidad);//Comunicacin serial con velocidad baudios/segundos.

Comunicacin serial disponible: Se refiere a datos ya recibidos y disponibles en el


buffer de recepcin del puerto serial (tiene una capacidad de 128 bits). Cuando el puerto
serial est disponible en el buffer hay un valor mayor o igual a cero, cuando no est
disponible en el buffer hay un valor de -1. Dentro de la sintaxis, no se coloca ningn
parmetro dentro del argumento.

Sintaxis:

Serial.available(); //Instruccin para confirmar si hay datos en el puerto serial.

Pgina 23
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Escritura en el puerto serial: Imprime los datos al puerto serie como texto ASCII
seguido de un retorno de carro (tecla Intro). Dentro del argumento se pueden colocar el
valor que se desee transmitir en el puerto serial. Esta instruccin facilita la salida de datos
de Arduino hacia otros dispositivos.

Sintaxis:

Serial.println(valorTransmitido); //Escritura en el puerto serial.

Lectura del puerto serial: Esta instruccin permite leer datos provenientes del puerto
serial. En la sintaxis no se coloca nada como parmetro. Esta instruccin facilita la llegada
de datos de un dispositivo externo hacia Arduino.

Sintaxis:

Serial.read(); //Lectura del puerto serial.

Tipos de datos.

Los tipos de datos que se manejan son idnticos a los que utiliza C/C++, por lo que es
necesario declararlos antes de utilizar un tipo de dato.

Dato entero: Este tipo de datos se usan principalmente para almacenar nmeros y
guardan valores de 2bytes. Esto produce un intervalo entre -32768 hasta 32767. La placa
Arduino puede trabajar con nmeros negativos, para que las operaciones aritmticas
trabajen de manera trasparente y en la forma esperada.

Sintaxis

int ledPin=13;

Dato caracter: Es un tipo de dato que ocupa 1 byte de memoria y almacena un valor de
carcter. Los caracteres literales se escriben con comillas simples: A (para varios
caracteres se utilizan comilla dobles ABC).

Todos los caracteres son almacenados como datos de tipo entero. La codificacin est
presente en la tabla ASCII. El tipo de datos de tipo caracter tiene signo codificando
nmeros desde -128 hasta 127.

Sintaxis:

charmiCaracter = B;

charmiCaracter= 66; //ambos son equivalentes.

Pgina 24
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Dato Byte: Un dato tipo byte almacena un nmero sin signo de 8 bits, desde 0 hasta 255.

Sintaxis:

byte b = B10010 //La B es el formato de un nmero binario.

Dato booleano: Un dato tipo booleano slo puede tomar dos valores: Verdadero o falso.
Cada booleano ocupa un nico byte en la memoria.

Sintaxis:

boolean estado=false

boolean estado=0 //Ambos son equivalentes.

Estas son algunas de las instrucciones de Arduino, para ampliar el conocimiento de las
mismas visite la pgina de referencias de Arduino3

1.5 Matlab.

Matlab es un software matemtico para la manipulacin de matrices, representacin de


datos y funciones, implementacin de algoritmos, creacin de interfaces GUI y
comunicacin con hardware. Sus caractersticas optan la idea apropiada a que sea
utilizado como la interfaz grfica de obtencin de datos. Tiene un lenguaje de
programacin propio que es el M, no es muy complejo de utilizar. El objetivo de utilizar
Matlab es permitir la transferencia de datos a travs del puerto serial para leerlos y
escribirlos directamente en su entorno, con el fin de interactuar como una interfaz grfica
igualando a las interfaces comerciales de instrumentacin.

1.5.1 Matlab y la comunicacin con el hardware.


Las caractersticas de Matlab engrandecen cuando se tiene una tarjeta de adquisicin de
datos. Convirtindose en un posible instrumento de medicin de cualquier rama. Aunque
muchas aplicaciones, la tarjeta resulta muy costosa, por lo que puede reemplazarse por
hardware menos complejo y barato como un microcontrolador.
La comunicacin tpica entre Matlab y un microcontrolador es mediante el puerto RS-232,
actualmente se usan los puertos virtuales COM, conectados fsicamente por cable USB.
El mando general corre por cuenta de una funcin en Matlab desarrollada con las
instrucciones del toolbox de instrumentacin. Es mediante este puerto dnde Matlab inicia
la adquisicin de datos proveniente del microcontrolador10.

Pgina 25
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

1.5.2 Interfaz Grfica de Usuario (GUI).

En un sistema de adquisicin de datos es comn que se generen grficas para tener


control de los datos. Es aqu donde Matlab vuelve a favorecer la visualizacin de grficas,
adems de generar un control amigable para el usuario. Todo mediante la herramienta de
Interfaz Grfica de Usuario de Matlab.

GUI es una representacin grfica en una o ms ventanas que contienen controles


denominados componentes, que le permiten al usuario realizar tareas interactivas. El
usuario al utilizar la GUI de Matlab no tiene que crear un script o escribir instrucciones en
la lnea de comandos para realizar las tareas. En la codificacin de programas para
realizar las tareas, el usuario no necesita conocer a detalle de cmo se realizan estas
tareas11.

Los componentes que se incluyen en una GUI son: Barras de herramientas, botones,
botones de opcin, cuadros de lista, deslizadores, ejes de grficas, cuadros de texto y
cajas de texto. Las GUI creadas por la herramienta Matlab realizan cualquier tipo de
clculo, leer y escribir cualquier archivo de datos, comunicarse con otras GUIs y mostrar
los datos en forma de tablas o grficos.

Figura 1.12 Plantilla de trabajo de la GUI en Matlab.

Pgina 26
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 27
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

2.- Plataforma meteorolgica, sistema de adquisicin de datos.

Despus de seleccionar la tecnologa a utilizar, continuamos con el diseo y desarrollo de


la plataforma meteorolgica. Las actividades que se han realizado en esta parte son las
siguientes:

Relacin del hardware seleccionado con una red de sensores inalmbrico:


Esta relacin se hace con el fin de identificar las etapas de la plataforma
meteorolgica. Identificando tambin la arquitectura de una red de sensores
inalmbrica, siendo esta la base del diseo.
Definir los bloques de la plataforma meteorolgica: Se sealaron tres bloques
bsicos para el diseo de la plataforma meteorolgica. Los bloques son los
siguientes: Lectura de datos, comunicacin inalmbrica y obtencin de datos.
Podemos decir que la estacin meteorolgica ser un sistema de adquisicin de
datos, tomando en cuenta que nuestros datos de inters provienen de variables
atmosfricas ambientales.

Metodologa:

Haciendo la relacin de la estacin meteorolgica con un nodo de sensores inalmbrico


se presenta en la siguiente imagen.

Figura 2.1 Arquitectura de la estacin meteorolgica.

Con base a la imagen anterior se describen las etapas de Lectura de datos, comunicacin
inalmbrica, y obtencin de datos.

Pgina 28
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

2.1 Lectura de datos.

La lectura de datos se lleva a cabo en el nodo de sensores inalmbrico. En l se


implementa un sistema electrnico encargndose de la lectura de los sensores de las
variables atmosfricas. Como son: Temperatura, presin atmosfrica, humedad relativa.
Los sensores a utilizar deben cumplir con el tipo de respuesta en voltaje analgico, con el
fin de que en el nodo de sensores inalmbrico exista un microcontrolador con un
convertido analgico digital. Uno de los objetivos de la lectura de datos es caracterizar y
registrar la energa de los diferentes sensores ambientales. Como se muestra en la figura
anterior, queda dentro del nodo de sensores inalmbrico y su hardware son: Los
sensores, el multiplexor y el microcontrolador.

Figura 2.2 Hardware de la lectura de datos.

2.2 Comunicacin inalmbrica.

En esta etapa hay un radio que se comunica con el microcontrolador y la estacin base,
siente este el intrprete que gua el flujo de datos en un canal inalmbrico. El tipo de
comunicacin que se requiere es la ms bsica que es de punto a punto, bidireccional
para tener una adecuada comunicacin en el flujo de datos. Las consideraciones que se
tiene que tener en cuenta para el diseo son: Potencia de salida y transmisin de 100
metros en vista libre.

La comunicacin inalmbrica se encuentra tanto en el nodo de la red de sensores as


como en la estacin base, debido que es la posicin adecuada y parte de la arquitectura

Pgina 29
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

de comunicaciones inalmbricas as est definido. El hardware slo corresponde a dos


radios transceptores con sus respectivas antenas.

Figura 2.3 Hardware de la comunicacin inalmbrica.

2.3 Interfaz grfica.

La interfaz grfica forma parte de la estacin base, es el fin ltimo y llegada de los datos
provenientes de los sensores. En esta parte ya se
tiene un control total del dato, por lo que se puede
manipular fcilmente, siendo modificadas mediante
software. Se ha desarrollado una interface en Matlab
que permite obtener una visualizacin grfica de los
datos, siendo un PC donde se manipulan y visualizan
los datos.

Figura 2.4 PC para la visualizacin


Grfica

Pgina 30
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 31
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

3.-Lectura de datos y comunicacin inalmbrica.

Se han definido los tres bloques fundamentales del trabajo de estancia. Ahora se define la
primera parte de las actividades de implementacin. Esta parte es la lectura de datos y a
transmisin, relacionndolo todo como un nodo de sensores de comunicacin inalmbrica
al que se le ha llamado el circuito transmisor. Las actividades que se han realizado en
esta parte son las siguientes:

Lectura del dato: Se han definido los conversores analgico-digital a partir del
microcontrolador ATmega328 de Arduino, as como su implementacin para lectura
de voltajes analgicos.
Acoplamiento y multiplexaje de los sensores: En este punto se ha ideado la
manera de leer un cierto nmero de sensores, utilizando un solo convertidor
analgico-digital. Para esto se us el trmino multiplexaje, utilizando el circuito
CD74HC4051. Es un multiplexor analgico, el motivo por el que se ha utilizado es
para conectar las salidas de voltaje analgico de los sensores haca en convertidor
analgico-digital del microcontrolador ATmega328. Este multiplexor de 3 bits, por lo
que se pueden direccionar hasta 8 sensores.
Comunicacin inalmbrica: Se implementa un radio dentro de la plataforma
meteorolgica.

Metodologa:

3.1. Lectura del dato.

La tcnica para la obtencin de datos es mediante un convertidor de voltaje a un valor


digital, es necesario que el sensor de cada variable sea de salida analgica. El sensor
ser el elemento fundamental para el sistema de teledeteccin, ya que es capaz de
detectar, caracterizar y cuantificar
energa.

El valor de la salida en voltaje de


cada sensor entra el convertidor
Analgico-Digital, asignndole un
valor numrico. En la siguiente
imagen se muestra los bloques
de la entrada del sensor.

Figura 3.1 Ejemplo de la conversin del voltaje analgico del


sensor.

Pgina 32
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Como se ve en la imagen anterior, al hacer la conversin analgica- digital, no se logra


obtener la seal real del sensor, sino una aproximacin que depender de la frecuencia
de muestreo. Un inconveniente que se tiene al llevar a cabo esta etapa, es que cada
sensor necesitar de un convertidor Analgico-Digital. El problema se resuelve mediante
multiplexaje, enlazando el canal del voltaje analgico del sensor a la entrada del
convertidor justo en el instante en que se desee obtener el valor.

Al tener en cuenta el multiplexaje, el nmero de convertidores se reduce a uno, facilitando


el nmero de sensores analgicos al valor del multiplexor que se desee utilizar (2, 4, 8,
16, 32). La siguiente imagen nos muestra los bloques de la conexin para los distintos
sensores. El microcontrolador a utilizar (Atmega328) tiene un multiplexor analgico, en un
futuro se piensan aadir ms sensores, por lo que se ha elegido un multiplexor externo
para aumentar el nmero de seales a leer.

Figura 3.2 Multiplexaje de las seales analgicas, provenientes de los diferentes sensores.

El sensor funciona como un intrprete que hace una conversin de una variable
atmosfrica a una seal elctrica (voltaje). El dispositivo que hace esta conversin se le
conoce como transductor, aunque en la literatura y en algunas hojas de fabricantes se les
denomina sensor. Y es el dispositivo principal para implementar la estacin
meteorolgica, posteriormente se realizar la conversin Analgica- Digital para comenzar
con la parte de la lectura de datos. El bloque de lectura de datos la conforman el
multiplexor, que es dispositivo que
seleccionar el sensor a leer y el
conversor AD que es el dispositivo que
obtendr los datos numricos. Esta
tcnica permite principalmente registrar la
energa detectada por el sensor y los
bloques son los de la figura 3.3

Figura 3.3 Diagrama de bloques para la lectura del


dato.

Pgina 33
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

3.2 Acoplamiento y multiplexaje de sensores

Una conversin analgica se realiza en base a un cierto nmero de bits y a un valor de


voltaje de referencia. El voltaje de referencia es considerado de 3.3 volts, debido a que
ARDUINO Mini PRO trabaja a este voltaje de alimentacin.

De esta tarjeta utilizaremos principalmente el convertidor analgico. El convertidor del


ATmega 328 es de 10 bits, tomando valores entre 0 y 1023 a partir de 0 volts a un voltaje
de referencia (3.3 volts). La resolucin del convertidor se tiene con la siguiente relacin:

La relacin numrica es:

Cuando en la entrada se tiene un voltaje entre 0 volts-3.3 volts y se ha programado el


convertidor del Controlador, se har la lectura del voltaje de algn sensor, traducindolo
a un valor numrico. Este ser el valor numrico del sensor. Internamente este nmero ya
es un dato entendible para el Controlador, se puede controlar, realizarle una operacin,
asignarle un espacio de memoria o transmitir inalmbricamente. El dato numrico del
sensor se da por la siguiente formula.

El flujo de la secuencia para obtener el dato numrico del sensor es la siguiente imagen:

Pgina 34
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 3.4. Esquema del conversor analgico- digital de la tarjeta Arduino.

En la seleccin del multiplexor se seleccionado el CD74HC4051 dispositivo es un


multiplexor de tipo analgico, puede ser controlado digitalmente con seales TTL. El
selector del dispositivo es de tres bits, permitiendo seleccionar ocho entradas de voltaje
analgico. Estas ocho entradas son las seales que provienen de los diferentes sensores
a leer.

Figura 3.5. Multiplexor analgico de ocho canales.

Dentro de las caractersticas elctricas de este multiplexor se encuentran las


recomendaciones del voltaje de operacin proporcionados por el fabricante:

Pgina 35
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 3.6 Recomendaciones del voltaje de operacin del multiplexor CD74HC4051

Cmo se muestra para el voltaje de VCC va de -0.5 volts a 10.5 volts, alimentaremos con
un voltaje de 3.3 que se encuentra dentro del rango. VEE se conectar a 0 volts que
tambin se encuentra dentro del rango. Para la lgica TTL, los datos lmites para que el
multiplexor entienda como una seal HIGH es de 3.15 volts hasta VCC y una seal LOW
a partir de 1.35 volts. Para controla la lgica del multiplexor se conectar a la tarjeta
Arduino Mini con seales de 0 volts para una seal LOW y 3.3 volts para una seal HIGH.
Estas seales entrarn en el puerto de seleccin e canales que son los pines 9, 10 y 11.

Adems de seleccionar los distintos canales, tambin se tiene una seal de habilitacin
en el pin seis, para direccionar el canal AN hacia la salida analgica. La seal para de
habilitacin tambin es de TTL y se activa en bajo, cero volts. Cuando en este pin
tenemos un valor alto, 3.3 volts; en el pin tres de la salida analgica no habr una seal
significativa, independientemente de las seales que tengamos en la seleccin de canales
y la salida en este caso ser de cero volts. La seleccin del canal se visualiza en la
tabla3.1
ESTADOS DE LA ENTRADA Voltaje en la salida del canal
Habilitacin S2 S1 S0 analgico
Bajo Bajo Bajo Bajo Voltaje de la entrada A0
Bajo Bajo Bajo Alto Voltaje de la entrada A1
Bajo Bajo Alto Bajo Voltaje de la entrada A2
Bajo Bajo Alto Alto Voltaje de la entrada A3
Bajo Alto Bajo Bajo Voltaje de la entrada A4
Bajo Alto Bajo Alto Voltaje de la entrada A5
Bajo Alto Alto Bajo Voltaje de la entrada A6
Bajo Alto Alto Alto Voltaje de la entrada A7
Alto No Importa No Importa No Importa 0 volts

Tabla 3.1 Respuesta ante la seleccin de canales del multiplexor CD74HC4051.

Esta tabla se tomar de base para disear el algoritmo que permita realizar la lectura de
los diferentes sensores conectados al multiplexor. El Controlador estar conectado al
multiplexor, siendo este el que seleccionar el canal donde se desea obtener el dato y
leer el dato con el conversor Analgico-Digital.

Pgina 36
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

La conexin del Controlador Arduino al multiplexor se har mediante cuatro canales de


salida. Tres de estos canales son salidas del Controlador Arduino que seleccionan con
nmeros binarios el canal que se desee abrir. La otra conexin es la habilitacin del
multiplexor para que pueda abrir el canal y poder multiplexar la seal. Cuando se haya
seleccionado el canal deseado y la habilitacin est activada, se direccionar la seal de
voltaje del sensor seleccionado hacia la salida analgica del multiplexor (pin tres). Esta
salida analgica estar conectada en una entrada analgica del Controlador Arduino,
logrando hacerse la lectura del voltaje analgico del sensor. El flujo de la secuencia se
seala en la siguiente imagen.

Figura 3.7 Acoplamiento de la tarjeta Arduino y el multiplexor.

3.3 Implementacin de la comunicacin inalmbrica.

En la Figura 3.7 se asimila un nodo inalmbrico de sensores. Falta implementar el radio


para que se le pueda llamar totalmente inalmbrico. Es dnde los radios XBEE realizan
su tarea. Las conexiones principales que se utilizan son: los pines de alimentacin del
XBEE y los pines de comunicacin con el microcontrolador. Se seala que el voltaje de
alimentacin del radio XBEE es de 3.3 volts y es totalmente compatible con la tarjeta
Arduino.

La conexin final del nodo de sensores inalmbricos con el radio integrado es el que se
muestra en la Figura 3.8.

Pgina 37
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 3.8 Plataforma meteorolgica, nodo de sensores inalmbrica.

El radio Xbee se configura con comandos AT (antes ya se ha mencionado). Para que el


radio pueda realizar una comunicacin punto a punto es necesario configura el radio Xbee
antes de conectarlo.

Pgina 38
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 39
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

4. Circuito transmisor.

El nodo de sensores inalmbrico que se muestra en la Figura 3.8 es apenas el hardware


necesario para implementar la plataforma meteorolgica, sin embargo se necesita la
secuencia de control. La secuencia de control inicia la lectura de cada sensor envindola
a una estacin base. En esta parte de la estancia se disea el circuito transmisor
encargado de la secuencia de control, as como la construccin del circuito transmisor.
Las actividades fueron las siguientes:

Circuito transmisor: Se ha construido un circuito transmisor de 5x5 cm. (Sin


contar los sensores). Siguiendo el requerimiento de miniaturizacin. Este circuito es
capaz de leer varios sensores de respuesta analgica y transmitir los datos
inalmbricamente.

Programacin del circuito transmisor: Se ha realizado el diagrama de flujo y la


programacin del microcontrolador del circuito transmisor. La programacin se ha
hecho dentro de la plataforma ARDUINO.

Transmisin inalmbrica: Utilizando el concepto y las herramientas de los


convertidores Analgicos-Digitales, se ha preparado el dato para que se
transmitido inalmbricamente. As se hace uso de radios diseados para la
comunicacin inalmbrica digital para enviar todos los datos solicitados a una
estacin base.

Metodologa:

Como se menciona anteriormente la Figura 3.8 es la base para el diseo del circuito
transmisor. Parte del diseo del circuito transmisor se centra en cuatro componentes:

1. Fuente de alimentacin y regulador de voltaje.


2. Control.
3. Multiplexaje y entradas de sensores.
4. Radio.

Pgina 40
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

4.1 Fuente de alimentacin y regulador de voltaje.

Como parte del diseo de la fuente de alimentacin se presenta de una manera muy
simple y es la ms importante de la tarjeta, porque todos los componentes se
alimentan con el mismo valor de voltaje. El valor de voltaje de la fuente de
alimentacin es de 3.3 volts.

La eleccin ms comn para generar el voltaje de alimentacin es mediante un


regulador. El regulador de 3.3 volts que se utiliza es el LF33ABP y tiene como entrada
una pila de 9 volts. El diagrama elctrico que le corresponde a la fuente de
alimentacin del diseo propuesto se muestra en la siguiente imagen:

Figura 4.1 alimentacin de 3.3 volts.

Este diseo permite reducir el hardware de la alimentacin del circuito transmisor,


aunque es ineficiente por la potencia que se disipa. Se trabaja con componentes que
tiene una bajo consumo de energa, la pila se agotar ms rpido. La otra solucin es
utilizar un convertidor de DC a DC, se tendra un poco de problema al tratar de
polarizar el circuito de control del convertidor.

El fabricante propone que C1 sea un capacitor no electroltico de 0.1F y C2 un


capacitor electroltico de 2.2F. Como voltaje de entrada, se ha revisado que para el
regulador LF33ABP se tiene que alimentar en el intervalo de voltaje de: 3.5-16 volts,
es por eso que alimentaremos con una pila de 9 volts.

Para el consumo de corriente se toma en cuenta la corriente consumida de la placa


Arduino, el mdulo de radio Xbee y el multiplexor CD74HC4051.La suma de corriente
debe ser menor a la corriente mxima que puede proporcionar el regulador.

Pgina 41
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

La corriente de consumo debe ser menor a la corriente mxima del regulador.

En la siguiente tabla se muestran las corrientes de consumo de los elementos a


conectar.

COMPONENTE CORRIENTE DE CONSUMO


Arduino 40 mA
Radio Xbee 50 mA
Multiplexor CD74HC4051 20 mA
Suma total 110 mA
Tabla 4.1 Corrientes de consumo de los componentes del circuito transmisor.

Se cumple:

110mA<1 A

4.2 Control.

El componente del circuito transmisor que realiza esta tarea es la placa Arduino, dentro de
la placa se tiene el microcontrolador, el oscilador indispensable de 8MHz para que trabaje
el microcontrolador y un botn de reinicio.
En la placa Arduino se programa la
secuencia de control para realizar la
lectura de datos. El diagrama elctrico se
muestra en la siguiente figura:

En la tarjeta Arduino se tienen 10


conexiones importantes que se comunican
con el multiplexor y el radio Xbee. Las
conexiones se muestran en la siguiente
tabla: Figura 4.2 Diagrama completo de la tarjeta Arduino
Mini PRO

Pgina 42
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

NMERO NOMBRE DESCRIPCIN


DE PIN
0 Tx Este pin se conecta con el radio Xbee, permitiendo la
comunicacin serial del Arduino hacia el radio Xbee.
1 Rx Este pin se conecta con el radio Xbee, permitiendo la
comunicacin serial del radio hacia Arduino.
6 Selector(S2) Pin conectado el selector del multiplexor, enva un
valor HIGH o LOW al bit ms significativo del
multiplexor.
7 Selector(S1) Pin conectado el selector del multiplexor, enva un
valor HIGH o LOW al segundo bit ms significativo del
multiplexor.
8 Selector(S0) Pin conectado el selector del multiplexor, enva un
valor HIGH o LOW al bit menos significativo del
multiplexor.
9 Habilitacin Pin conectado al multiplexor enviando un valor HIGH
(deshabilita el multiplexor) o LOW (habilita el
multiplexor).
10 Conectar En este pin est conectado un led, se enciende si se
ha recibido la seal de conexin con la estacin base.
14 (A0) Entrada Este pin se conecta con la salida del multiplexor. Es
analgica vlida y se lee por el microcontrolador, si se ha
seleccionado un canal del multiplexor y est habilitado
el multiplexor
Vcc Alimentacin Pin conectado a 3.3 volts
Gnd Referencia Pin conectado a 0 volts.
Tabla 4.2 Conexin de la tarjeta Arduino.

4.3 Multiplexaje y entradas de sensores.

El hardware que realiza esta accin es el multiplexor CD74HC4051, con capacidad de


direccionar ocho valores analgicos hacia una de sus salidas. El multiplexor es controlado
por la tarjeta Arduino, dnde Arduino selecciona cada una de las entradas mediante un
selector de tres bits y una seal de activacin. Las caractersticas elctricas y las
conexiones con la tarjeta Arduino del multiplexor se presentan en la siguiente imagen:

Pgina 43
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 4.3 Diagrama elctrico de las conexiones del multiplexor.

De esta forma interacta la tarjeta Arduino con el multiplexor. Tambin se tiene un


conector de 8 canales, dnde fsicamente se conectarn los sensores, siendo estas las
entradas que se direccionarn mediante el multiplexor. El multiplexor se alimenta con 3.3
volts al igual que la tarjeta Arduino. En la siguiente tabla se muestran las descripciones de
las conexiones del multiplexor.

NMERO NOMBRE DESCRIPCIN


DE PIN
13 A0 Seal 1 de entrada con valor de 0 a3.3 volts
14 A1 Seal 2 de entrada con valor de 0 a3.3 volts
15 A2 Seal 3 de entrada con valor de 0 a3.3 volts
12 A3 Seal 4 de entrada con valor de 0 a3.3 volts
1 A4 Seal 5 de entrada con valor de 0 a3.3 volts
5 A5 Seal 6 de entrada con valor de 0 a3.3 volts
2 A6 Seal 7 de entrada con valor de 0 a3.3 volts
4 A7 Seal 8 de entrada con valor de 0 a3.3 volts
9 S0 Bit menos significativo de seleccin, es puesto en
HIGH o LOW por la tarjeta Arduino
10 S1 Segundo bit menos significativo de seleccin, es
puesto en HIGH o LOW por la tarjeta Arduino
11 S2 Bit ms significativo de seleccin, es puesto en HIGH
o LOW por la tarjeta Arduino
6 Habilitacin Pin de habilitacin. La habilitacin es dada por la
tarjeta Arduino, HIGH deshabilita el multiplexor y LOW
habilita el multiplexor
3 Salida Pin que se conecta al convertidor Analgico-Digital de

Pgina 44
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Analgica la tarjeta Arduino. En este pin direcciona el valor del


voltaje que ha sido seleccionado por la tarjeta Arduino
Vcc Alimentacin Pin conectado a 3.3 volts
Gnd Referencia Pin conectado a 0 volts.
Tabla 4.3 Pines de conexin del multiplexor CD74HC4051.

4.4 Radio.

El radio del circuito transmisor es un Xbee que interactuara con la tarjeta Arduino y el
radio Xbee de la estacin base. El objetivo es realizar una conexin punto a punto con la
estacin base. Sobre el radio fluyen los datos que provienen y se dirigen hacia la tarjeta
Arduino. Los datos que se dirigen a la tarje Arduino, son caracteres entendibles por la
programacin para iniciar la lectura de algn sensor y los datos provenientes de la tarjeta
Arduino son datos numricos relacionados con los voltajes de los sensores ledos.

La conexin del Xbee se realiza de la forma ms bsica que existe para su operacin y la
comunicacin con la tarjeta Arduino. En la siguiente imagen se muestran estas
conexiones:

Figura 4.4 Diagrama elctrico del radios Xbee.

La tarjeta radio Xbee se alimenta con un voltaje de valor de 3.3 volts, y se configura para
una velocidad de transmisin de datos seriales igual a la de la tarjeta Arduino. As los dos
pines de comunicacin serial se conectan con los pines de comunicacin serial de la
tarjeta Arduino. En la siguiente tabla se muestran la descripcin de los pines del Xbee.

Pgina 45
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

NMERO NOMBRE DESCRIPCIN


DE PIN
2 Din Pin que se conecta al Rx de la tarjeta Arduino, en este
pin se reciben datos seriales provenientes de la tarjeta
Arduino
3 Dout Pin que se conecta al Tx de la tarjeta Arduino, en este
pin se envan datos seriales hacia la tarjeta Arduino
Vcc Alimentacin Pin conectado a 3.3 volts
Gnd Referencia Pin conectado a 0 volts.
Tabla 4.4 Pines de conexin del radio Xbee.

Integrando estos cuatro componentes se tiene en conjunto al circuito transmisor, el


encargado de realizar la lectura de los diferentes sensores y transmitirlos a la estacin
base. Parte del diseo es integrar todos los componentes en una tarjeta de cobre de 5x5
centmetros. La siguiente imagen es una idea de la plataforma meteorolgica esperada.
Figura
4.5

Plataforma meteorolgica esperada.

El diseo se ha realizado en el software KiCad, que es un entorno de software usado para


el diseo de circuitos elctricos y electrnicos en el que se pueden crear y editar un gran
nmero de componentes y usarlos en esquema. El esquemtico de la plataforma
meteorolgica completa se muestra en la siguiente imagen:

Pgina 46
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 47
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Con el esquema, se utiliza el mismo software para realizar el PCB del circuito transmisor.
El PCB del circuito transmisor se disea en una placa de cobre con doble cara, sus
dimensiones son de 5x5 centmetros. En la siguiente imagen se muestran las dos caras
del PCB diseado.

Figura 4.7 PCB del circuito transmisor

4.5 Algoritmo del circuito transmisor.

El algoritmo del circuito transmisor son los pasos que se tienen que realizar para ejecutar
las tareas de lectura de datos y transmisin inalmbrica. Estas tareas son designadas al
microcontrolador, este dispositivo interacta con el multiplexor analgico y el radio Xbee.
Con ello Arduino es dispositivo que lleva el control principal del circuito transmisor y sobre
l se tiene que efectuar el algoritmo del circuito transmisor.

En la siguiente imagen se muestran los pasos que se realizan para que el circuito
transmisor realice la lectura de los diferentes sensores, siendo este algoritmo la base de
la programacin de la tarjeta Arduino.

Pgina 48
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 49
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Estado 1: Se inicializan las entradas y salidas del microcontrolador, relacionando


los pines con el nombre de una variable reconocida dentro de la programacin. Las
variables son el selector, la habilitacin y conectado, en la siguiente tabla se tiene
la descripcin.

VARIABLE PIN EN LA DESCRICIN


TARJETA ARDUINO
Selector Es una variable de tres bits que se enfoca
6 para controlar la seleccin del multiplexor
analgico. Toma valores binarios de 000
7 hasta 111, segn sea el nmero de sensor
a seleccionar. As el pin 6 representa al bit
ms significativo y el pin 8 representa al
8 menos significativo.
Habilitacin Este pin hace referencia a la habilitacin
del multiplexor. Toma dos valores HIGH
9
(Seal que deshabilita al multiplexor) y
LOW (Seal que hablita al multiplexor)
Conectado 10 En este pin se conecta un Led que se
enciende si el circuito transmisor ha
recibido una seal de conectado de la
estacin base.
Tabla 4.5 Referencia de los pines utilizados en Arduino

Adems de las seales de salida, se tiene una variable interna que toma valores con base
a los datos que se escriben en el puerto serial de la tarjeta Arduino, esta variable se llama:
Caracter recibido.
Estado 2: En este bloque se definen las salidas de las variables referenciadas a
los pines de Arduino. Tambin se inicializa la velocidad de comunicacin de la
tarjeta. En la siguiente tabla se tienen la inicializacin de las variables.

VARIABLE CONFIGURACIN
Selector. Son tres pines que se configuran como pines de salida.
Conectado. Este pin se configura como pin de salida
Habilitacin Pin que se configura como seal de salida
Velocidad de la Fsicamente no es un pin, sino una configuracin de
comunicacin software indicndole a la tarjeta Arduino para trabajar a
9600 baudios/s

Tabla 4.6 Configuracin de los pines utilizados en Arduino.

Pgina 50
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Estado 3: En este bloque se determinan las condiciones iniciales de los pines de la


tarjeta Arduino. Esto se hace con el fin de no tener un comportamiento no deseado
al momento de encender el circuito transmisor. En la siguiente tabla se tiene los
valores iniciales de las variables de salida.

PIN VARIABLE CONDICIN INICIAL


Selector Colocamos esta variable de 3 bits al valor 000.
Habilitacin El valor de este pin se pone con valor HIGH. Con
este valor el multiplexor est deshabilitado
Conectado Este pin se conecta a un led, inicialmente se apaga
este led con un valor LOW
Tabla 4.7 Inicializacin de los pines de salida de Arduino.

Estado 4: Despus de inicializar las variables la funcin loop hace lo que su


nombre indica y es una funcin que se ejecuta consecutivamente, permitindole al
programar variar y responder.

Estado 5: Es la primera instruccin de la funcin loop. Se lee el puerto serial de la


tarjeta Arduino y si existe un valor en l.

Estado 6: Si existe un valor en el puerto serial este se guarda como un dato


recibido. nicamente se recibirn datos con valores de caracteres alfabticos y
numricos mismos que se han seleccionado: d, c, 1, 2, 3, 4, 5, 6, 7, 8. Teniendo 10
casos posibles, en cada caso se ejecuta una accin.

Caso 1 (6.1): El primer caso es cuando el dato recibido del puerto serial es igual al
caracter c. La tarjeta Arduino enciende el led que est referenciado a la salida
Conectado.
Caso 2(6.2): El segundo caso sucede cuando el dato recibido del puerto serial es
igual al caracter d. La tarjeta Arduino apaga el led, desconectando al circuito
transmisor.
Caso 3(6.3): El tercer caso se ejecuta cuando el dato recibido del puerto serial es
igual al carcter 1. En el selector se direccionan tres bits al multiplexor con el
cdigo 000. Despus se habilita el multiplexor con un valor LOW, direccionando la
seal solicitada. Posteriormente se lee el voltaje en la salida del multiplexor con el
convertidor analgico-digital de la tarjeta Arduino, guardando este valor en la
variable sensor1. Finalmente se deshabilita al multiplexor.

Pgina 51
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Con los siguientes casos sucede lo mismo, sin embargo el cdigo del selector
cambie segn el dato recibido. En la siguiente tabla se tienen el valor de las
variables para los siguientes casos.

CASO DATO RECIBIDO SELECTOR SENSOR LEIDO


Caso4 (6.4) 2 001 Sensor2
Caso5 (6.5) 3 010 Sensor3
Caso6 (6.6) 4 011 Sensor4
Caso7 (6.7) 5 100 Sensor5
Caso8 (6.8) 6 101 Sensor6
Caso9 (6.9) 7 110 Sensor7
Caso10 (6.10) 8 111 Sensor8
Tabla 4.8 Valor de los pines de salida con relacin a los casos.

Estado 7: En este bloque el circuito transmisor enva por el puerto serial los
valores de las variables ledas. Las variables son sensor1, sensor2, sensor3,
sensor4, sensor5, sensor6, sensor6, sensor7 y sensor8 que representan el
valor digital del sensor ledo, tiene valores entre 0 y 1023.
Estado 8 Es el fin del ciclo y regresa a la funcin loop, los ciclos son
permanentes a menos que se presione el botn de reset o se corte la
energa de la placa.

4.6 Programacin del circuito transmisor.

Con base al algoritmo del circuito transmisor, se realiza la programacin. La programacin


se aplica a la tarjeta de hardware Arduino que es quien controla el multiplexor analgico e
interacta con el radio Xbee. La programacin se hace en la plataforma Arduino
(ProcessingWiring), similar a C++. El cdigo se presenta en el siguiente sketch Arduino.

Pgina 52
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 53
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 54
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 55
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

En la siguiente figura se tiene el circuito transmisor construido.

Figura 4.9 Circuito transmisor.

Pgina 56
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 57
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

5. Circuito receptor.

El circuito receptor es aquel que se comunica con el nodo de sensores inalmbrico y por
l fluyen los datos de control del nodo y la recepcin de los datos recibidos por el mismo.
Por un momento se pens que el diseo del circuito receptor fuera un microcontrolador
con un mdulo Xbee integrado, este microcontrolador tendra que ser capaz de
comunicarse con una computadora para la entrega de datos, a su vez se tena que hacer
una programacin para el flujo correcto de datos. Sin embargo las caractersticas del radio
Xbee sustituyeron los requisitos anteriores sin necesidad del microcontrolador. El mismo
radio realiza la comprobacin de errores de envo de datos ya que es una caracterstica
importante de su diseo. Xbee ofrece una comunicacin bidireccional permitindonos
enviar datos al nodo de sensores (circuito transmisor) y recibir datos del mismo, el envo y
la recepcin de los datos es simultneo. Xbee cuenta con una tarjeta XBee Explorer USB
el cual se comunica con una computadora dnde toda la transmisin de datos se hace de
manera serial. Las actividades realizadas en esta parte fueron:

Transmisin inalmbrica: Se configuraron los radios Xbee para establecer una


comunicacin punto a punto entre la estacin base y el circuito transmisor

Comunicacin con el circuito transmisor: se estableci la conexin del circuito


transmisor obteniendo datos de los 8 canales que tiene el circuito transmisor.

Metodologa.

5.1. Tarjeta Xbee Explorer USB

Para comunicar el Xbee en la recepcin de datos se utiliz la tarjeta XBee Explorer USB
que permite una comunicacin con la computadora mediante USB. La tarjeta cuenta con
chip emulador de un puerto serial FT232RL, es el intrprete entre el Xbee y la
computadora. La conexin fsica entre la tarjeta y la computadora es mediante un cable
mini USB. En la siguiente imagen se muestra la tarjeta.

Pgina 58
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 5.1 Tarjeta Xbee Explorer USB, en la parte derecha su tipo de conexin.

Cuando se conecta por primera vez la tarjeta es necesario instalar los dirvers que
permiten emular el puerto serial, los dirvers se pueden descargar desde la pgina de
Internet de Sparkfun. Una vez instalados los drivers, a la tarjeta se asigna un puerto
COM#, para asegurarnos en que puerto trabaja la tarjeta podemos guiarnos del
administrador de dispositivos de Windows. La siguiente imagen muestra la conexin entre
la tarjeta Xbee Explore USB y el puerto de conexin.

Figura 5.2 Tarjeta Xbee Explorer USB conectada a la computadora y el puerto de conexin.

Pgina 59
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

5.2 Configuracin Xbee para la comunicacin punto a punto.

La tarjeta Xbee Explorer USB es el hardware que comunica el radio Xbee con la
computadora. Mediante esta conexin el radio Xbee puede ser configurado para una
comunicacin punto a punto. El software que se utiliza para realizar la configuracin
puede ser cualquier Hyperterminal que permita escribir datos y recibir datos en el puerto
serial. Para hacer la configuracin del radio utilizaremos el software X-CTU.

Inicialmente conectamos la tarjeta Xbee Explorer USB a la computadora, abriendo el


programa X-CTU, haciendo clic en la pestaa de PC Settings.

Figura 5.3 Vista del programa X-CTU.

Como se ve en la figura anterior, el programa X-CTU permite detectar el puerto serial


dnde la tarjeta Xbee Explorer USB est conectada. En nuestro caso la tarjeta est en el
puerto COM16.

Se configurarn los Xbee para la


comunicacin inalmbrica, colocamos
las marcas 1 y 2 para distinguir a los
Xbee. La marca 1 es para el Xbee
transmisor y la marca 2 es para el
Xbee detector. En la siguiente imagen
se muestra los dos Xbee.

Figura 5.4 Marcas de los Xbee

Pgina 60
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Los Xbee se conectan sobre la tarjeta Xbee Explorer USB. La primera conexin es sobre
el Xbee con la marca nmero 1. En la siguiente imagen se tienen los comandos
ingresados en la Terminal de X-CTU para la configuracin.

Figura 5.5 Comandos de la configuracin del Xbee 1.

Conectamos el Xbee con la marca 2, los comandos ingresados mediante la Terminal de


X-CTU son los que se muestran en la siguiente imagen:

Figura 5.6 Comandos ingresados en el Xbee 2.

Una vez ingresados los comandos, los Xbee se conectan al sistema de adquisicin de
datos. El Xbee de la marca 1 al circuito transmisor y el de la marca 2 en la tarjeta Xbee
Explorer USB como receptor de datos comunicndolos a la computadora. Los comandos
ingresados se encuentran en Tabla 1.3 Secuencia de los comando AT para configurar
una conexin punto a punto, del presente informe.

Pgina 61
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

5.3 Comunicacin con el circuito transmisor.

Una vez configurados los radios Xbee conectamos uno en el circuito transmisor.
Cargamos el sketch de Arduino con el cdigo del circuito transmisor, el mismo que
permite realizar la lectura de los diferentes sensores. En el nodo receptor conectamos el
segundo Xbee sobre la tarjeta Xbee Explorer USB.

Una vez hecha estas conexiones los Xbee estn listos para realizar la comunicacin
punto a punto. No importa que Xbee se coloque en el circuito transmisor, ambos fueron
configurados para que entiendan sus propios mensajes de comunicacin. La
comunicacin entre ellos es bidireccional.

Abrimos el software X-CTU para enviar los comandos. Recordemos que podemos enviar
los caracteres D, C, 1, 2, 3, 4, 5, 6, 7 y 8; que son los caracteres que entiende la
programacin del circuito transmisor. Tenemos conectados el circuito receptor y el circuito
transmisor como se muestra en la siguiente imagen. En la parte izquierda se tiene el Xbee
receptor conectado a la computadora. En la parte derecha el Xbee del circuito receptor.

Figura 5.7 Comunicacin punto a punto.

Sobre la placa del circuito transmisor conectamos una carga que simular las variaciones
de voltaje de un sensor. La variacin va entere 0 a 3.3 volts. Terminando de colocar las
cargas en el circuito transmisor, podemos enviar los caracteres para recibir los datos de
los diferentes voltajes registrados. La conexin se har en el canal nmero 8. En el canal
2 se tiene un conectador el sensor de humedad. Los dems canales los conectamos a 0
volts. Para hacer la primera adquisicin de datos, conectamos el circuito receptor en la
computadora, seleccionando en la Terminal la conexin del puerto serial COM16. Sobre la
terminal enviamos los caracteres del 1 al 8 obteniendo los datos que se muestran en la
siguiente imagen.

Pgina 62
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 5.8 Primera adquisicin de datos entre el circuito transmisor y el circuito receptor.

Los nicos canales en los que tenemos conectados una carga son en los canales 2 y 8.
Vemos que cuando enviamos el caracter 2 recibimos un valor digital 454 y cuando
enviamos el carcter 8 recibimos un 530. Estos valores son el resultado de la conversin
digital del voltaje analgico en esos canales. Para conocer el valor analgico se utiliza la
siguiente formula:

Donde

Con la formula el voltaje analgico en el canal 2 es:

El valor del voltaje en el canal 8 es lo siguiente:

Antes de realizar las mediciones se registraron los voltajes respectivos con un multmetro.
Las siguientes imgenes muestran los voltajes medidos en el canal 8 y en el canal 2.

Pgina 63
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 5.8 voltaje medido en el canal 2.

Vemos que tenemos un ligero error. Ya que el valor calculado es de 1.46 volts. Es quiz
porque en este canal tenamos conectado un sensor de humedad y es posible que haya
variado un poco en el voltaje. El error es el siguiente:

| |

En la siguiente imagen se muestra el voltaje registrado en el canal 8 con un multmetro.


En el canal 8 se tiene conectado un potencimetro de precisin, al observar el valor
medido y compararlo con el valor calculado, se observa que el valor se acerca mucho al
medido.

Figura 5.9 voltaje analgico registrado en el canal 8.

Pgina 64
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

El error calculado es el siguiente.

| |

Pgina 65
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 66
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6. Interfaz Grfica.

Despus de obtener los primeros datos del circuito transmisor al circuito receptor, es
necesario almacenarlos y visualizarlos de una forma ordenada. En esta parte se describe
la Interfaz grfica que permite la visualizacin de los datos que llegan al circuito
transmisor. El software en el que se realiza esta tarea es Matlab a travs de la
herramienta Gua de Interfaz de Usuario.

Con esta herramienta se ha diseado la interfaz grfica que permite visualizar en forma
grfica los datos recopilados. Sobre ellas se pueden fijar otros parmetros como la
frecuencia de muestreo para la obtencin de datos. La interfaz consta de tres pantallas,
cada pantalla puede direccionar hasta 8 variables conectadas al circuito transmisor. En
cada pantalla se pueden observar el comportamiento de estas ocho variables, slo una a
la vez, por eso se da la capacidad de elegir cul se quiere observa. En la interfaz tambin
se tiene un tiempo total que es un tiempo propuesto por el usuario para recopilar la
informacin. Estas fueron algunas actividades desarrolladas en esta parte de la Estancia
Industrial, que a continuacin se muestran con ms detalle.

Desarrollo de la Interfaz grfica de la estacin meteorolgica: Se dise el


software que permite la visualizacin grfica de los datos de la estacin
meteorolgica.

Almacenamiento de los datos: Dentro del cdigo de la Interfaz grfica, se


direccion un archivo en hoja de clculo de Excel que permite almacenar los datos
obtenido despus de realizar una medicin.

Metodologa.

6.1 Interfaz de la adquisicin de datos.

Dentro de las herramientas de Matlab se encuentra la herramienta GUI (Gua de Interfaz


de Usuario). En ella se ha trabajado en el diseo de la interfaz de la estacin
meteorolgica, dnde se visualizarn las entradas y salidas registradas. Su contenido
representa el control entre la adquisicin de datos con el circuito transmisor, el encargado
de recopilar la informacin.

GUI trabaja con base a la programacin orientada a objetos, similar a las plataformas para
generar interfaces tal como Visual Basic o Java. Esto se hace en dos partes, una donde
se realiza la visualizacin fsica del proyecto final, en ella se encuentran objetos como

Pgina 67
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

pantallas, botones, cajas de texto. La segunda parte se representa como cdigo e


instrucciones que se ejecutan detrs de la interfaz grfica obedeciendo instrucciones
generadas por los objetos, a su vez estas instrucciones son eventos generados por los
usuarios que manipulan y programan la interfaz

La interfaz grfica para la visualizacin grfica es la siguiente:

Figura 6.1 Pantalla de la interfaz grfica de la estacin meteorolgica.

Dentro de la interfaz podemos visualizar los datos graficados que se est registrando.
Cuanta con 3 pantallas capaz de visualizar has 8 variables. Adems existen otros
apartados que permiten la visualizacin, control del flujo de los datos. Los apartados de la
pantalla de la interfaz grfica se dividen en los siguientes bloques:

Bloque de conexin.
Bloque de control de medicin de datos.
Bloque de Seleccin de variables.
Bloque Pantalla.
Bloque de visualizacin de variables atmosfricas.
Bloque de fecha y hora.

En la siguiente imagen podemos visualizar los bloques de la pantalla de la interfaz grfica.

Pgina 68
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Pgina 69
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.2 Bloque de conexin:

En el bloque conexin se permite hacer la primera comunicacin con el circuito


transmisor, y lo que se hace en esta parte es seleccionar el puerto serial dnde est
conectado el circuito transmisor, una vez seleccionado se abre un puerto que permita leer
y escribir datos en el puerto serial, y a continuacin enviamos un carcter c al circuito
transmisor, cuando el circuito transmisor reciba el carcter encender el led de la placa y
enviar la palabra Conectado. Esta palabra se visualizar en la Interfaz dentro del
bloque de conexin y ser una indicacin de que el circuito transmisor est listo para
realizar la medicin.

Esta parte tambin permite interrumpir la conexin entre la interfaz y el circuito transmisor,
desconectndolo si el usuario ya no requiere realizar otra medicin.

Dentro de este bloque se tienen 4 objetos importantes: 1 botn de conectado, 1 botn de


desconectado, una caja de lectura de texto y la visualizacin de estado. En la siguiente
imagen se muestra el bloque de conexin.

Figura 6.3. Bloque de conexin en la interfaz.

Puerto: es un cuadro de texto en el que se permite ingresar el puerto serial de


conexin. Se ingresa de la siguiente manera COMNmero. La palabra COM se
escribe con maysculas y despus se ingresa un nmero. Dentro del cdigo se
programa de tal manera que pueda validar la palabra correcta, enviando un
mensaje si la palabra es incorrecta. As mismo si la palabra se ha escrito con
minsculas, las cambia a maysculas. Cuando la palabra es correcta, se enva un

Pgina 70
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

mensaje que el nombre del puerto es correcto. Sin embargo, no significa que el
puerto sea el correcto, puede ser que el puerto elegido no est conectado el
circuito receptor. Es necesario revisar en Panel de Control el puerto en el que est
conectado para realizar una correcta conexin.
Conectado: Es un botn que permite realizar la conexin con el circuito
transmisor. Cuando se presiona con un click a este botn, dentro de la interfaz se
presenta un cdigo en Matlab en el que se crea y abre el puerto serial definiendo
caractersticas como: Puerto de conexin, velocidad de conexin (9600 baudios/s)
y nombre del puerto como objeto. Cuando se ha creado el puerto serial se escribe
un carcter c que enva al circuito receptor y espera la respuesta colocndola en
el estado de la interfaz. Dentro de las instrucciones realizadas tenemos variables
importantes para la conexin.

VARIABLE DESCRIPCIN
enciende Bandera que se pone en 1 si se ha presionado el
botn conectado
S Nombre que toma el puerto Serial dentro del cdigo
del programa.
conectando Variable de tipo carcter. Es igual al caracter c para
enviarlo al circuito transmisor
estado Cadena de carcter que se recibe una vez que se ha
enviado el carcter c al circuito transmisor.
contador Variable que inicializa en cero. Es la condicin inicial
Mediciones del nmero de mediciones que se han realizado.
Comunicacin Bandera que se pone en 1 si la comunicacin con el
circuito transmisor se ha realizado.

Tabla 6.1. Variables importantes al presionar el botn conectado.

En la siguiente imagen se presenta el algoritmo del cdigo que se ejecuta al


presionarse conectado:

Pgina 71
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 6.4. Algoritmo que se ejecuta al presionarse el botn de conectar.

Desconectado: Es un botn que realiza la desconexin entre la interfaz y el


circuito transmisor. Cuando se presiona el botn se verifica que en algn momento
se haya presionado el botn conectado, esto es hace verificando la bandera
enciende. Si lo anterior es correcto, se enva un carcter d que apaga el led del
circuito transmisor. Finalmente cierra y borra el puerto serial, con el fin de que otro
dispositivo pueda utilizar el puerto. Cuando se presiona el botn Desconectado se
ejecuta el cdigo necesario para realizar la desconexin, dentro de este cdigo hay
algunas variables importantes que se muestran en la siguiente tabla:

Pgina 72
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

VARIABLE DESCRIPCIN
Enciende Bandera que se pone en o si se ha presionado el
botn desconectado
S Nombre que toma el puerto Serial dentro del cdigo
del programa. Cuando se presiona el botn
desconectado esta variable se elimina.
Estado Cadena de caracteres que muestra la palabra
desconectado en la pantalla de la interfaz.
Comunicacin Bandera que se pone en 1 si la comunicacin con el
circuito transmisor se ha realizado.

Tabla 6.2 Variables importantes al presionar el botn desconectado.

En la siguiente imagen se muestra el diagrama de flujo que se ejecuta al presionarse el


botn de desconectar.

Figura 6.5. Diagrama de flujo del botn desconectar.

Estado: es un cuadro de texto que muestra en una cadena de caracteres estado


de la interfaz con el circuito transmisor. Si se ha presionado el botn Conectado,
muestra la palabra Conectado. Si se presiona el botn desconectado, muestra la
palabra Desconectado dentro de la interfaz.

Pgina 73
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.3 Bloque de control de medicin de datos.

En este bloque se configuran los tiempos de muestreos que se tendrn para realizar la
medicin para las 8 variables a medir y una cuadro de texto que indica el tiempo de la
medicin total. El muestreo de las 8 variables debe ser forzosamente de valor entero y
est dada en unidades de segundos. Este bloque la parte ms importante, contienen el
botn que inicia la medicin y es el segundo paso porque depende de la conexin con el
circuito transmisor.

Si el circuito transmisor no ha realizado la conexin con la interfaz, la medicin no puede


iniciar. En caso contrario, si la conexin se ha realizado la conexin correcta y se presiona
el botn de medir, se leern los valores de muestreos de las 8 variables a medir y el
tiempo total de medicin. Se generar un ciclo en el que se inicia un temporizador que y
se detendr cuando haya llegado al tiempo total de medicin. Durante el tiempo en que
este activo el temporizador, se enviarn caracteres por el puerto serial con mltiplos del
tiempo de muestreo de cada variable. Los caracteres que se enviaran son los caracteres
numricos: 1, 2, 3, 4, 5, 6, 7 y 8. El carcter nmero est relacionado con el
nmero de sensor que se desea leer.

Por ejemplo: Se define un tiempo total de 36 segundos. Y un tiempo de muestro para el


sensor1 de 4 segundos y un tiempo muestreo de 6 segundos para un sensor2. Al tener
esta informacin se estar enviando un carcter 1 cada 4 segundos solicitando la
informacin al circuito transmisor el valor digital de ese sensor. Para el sensor2 se
solicitar la informacin al circuito transmisor cada 6 segundos. En la siguiente tabla se
muestran los caracteres enviados y los valores que solicita al circuito transmisor. Para no
utilizar mayor nmero de datos del tiempo total lo dividimos en intervalos de 2 segundos.

Pgina 74
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

TIEMPO TOTAL = 36 CARCTER QUE ENVIA DATO QUE RECIBE


SEGUNDOS
Muestreo1 Muestreo 2 Muestreo 1 Muestreo 2

2 Ninguno Ninguno Ninguno Ninguno


4 1 Ninguno Sensor1 Ninguno
6 Ninguno 2 Ninguno Sensor2
8 1 Ninguno Sensor1 Ninguno
10 Ninguno Ninguno Ninguno Ninguno
12 1 2 Sensor1 Sensor2
14 Ninguno Ninguno Ninguno Ninguno
16 1 Ninguno Sensor1 Ninguno
18 Ninguno 2 Ninguno Sensor2
20 1 Ninguno Sensor1 Ninguno
22 Ninguno Ninguno Ninguno Ninguno
24 1 2 Sensor1 Sensor2
26 Ninguno Ninguno Ninguno Ninguno
28 1 Ninguno Sensor1 Ninguno
30 Ninguno 2 Ninguno Sensor2
32 1 Ninguno Sensor1 Ninguno
35 Ninguno Ninguno Ninguno Ninguno
36 1 2 Sensor1 Sensor2
Tabla 6.3 Ejemplo de valores de lectura para tiempos de muestreo de 4 segundos y 6 segundos.

El bloque de control de medicin de datos consta de una


caja de texto dnde se introduce el valor del tiempo total
de la medicin. 8 cajas de texto en el que se introducen
los 8 tiempos de muestreos de los diferentes sensores.
Un botn que inicia la medicin y otro que detiene la
medicin. En la siguiente imagen se muestra el bloque de
control de las mediciones.

Figura 6.6. Bloque de control de


medicin de datos en la interfaz

Pgina 75
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Lectura de tiempo: Es una caja de texto en el que se introduce el tiempo total


para realizar una medicin. El valor del tiempo se debe introducir en segundos.
Muestra1, muestra2, muestra3, muestra4, muestra5, muestra6, muestra7,
muestra8: Son cajas de texto en el que se introduce el tiempo de muestreo de los
diferentes sensores. El tiempo est dado en segundos.
Inicio de Medicin: Es un botn que lee los valores del tiempo de medicin y el
tiempo de muestreo de los diferentes sensores. Al presionarse este botn se inicia
un temporizador para indicar el tiempo en que la medicin sea finalizada. Durante
el tiempo en que el temporizador este activo, registrar los datos de los diferentes
sensores conectados en el circuito transmisor con base en los mltiplos del tiempo
de muestreo asignado para cada sensor.
Otra de las tareas dentro del cdigo de este botn es involucrarse con la apariencia
inicial de las tres pantallas de la interfaz. Coloca las visualizaciones de las pantallas
a un intervalo del 50 % del tiempo total de medicin y la centra a un 25 % del
tiempo total de medicin.

Por ejemplo si se tiene un tiempo de medicin de 100 segundos, al presionarse el


botn medicin se ajustaran las tres pantallas de tal manera que podamos verlas
de 0 segundos a 50 segundos. Aunque se tiene un bloque independiente para el
ajuste de pantallas, en esta parte slo se hace la condicin inicial para empezar a
visualizar datos.

La tarea principal del botn de Inicio de Medicin es recopilar datos con base a los
tiempos de muestreo y el tiempo total de la medicin, entonces al recopilar datos
es necesario graficarlos, una parte importante de la interfaz grfica es visualizar los
datos en un tiempo cercano al real. Por ese motivo le asignamos una nueva tarea
al presionar este botn: Cuando se enva el caracter de solicitud de un sensor en el
circuito transmisor, se recibe el valor digital del sensor; si la pantalla para visualizar
est activada entonces se fija el tiempo en que fue solicitada la medicin y se
grafica contra el valor solicitado. Conforme avance el temporizador y con los
valores obtenidos, se van generando dos vectores de datos:
1.-El vector del tiempo del sensor que coincide con los mltiplos del tiempo de
muestreo del sensor.
2.- El vector magnitud del sensor que son los datos solicitados en los valores del
vector tiempo.

Pgina 76
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Con estos dos vectores es suficiente para realizar una grfica que se actualiza
cada que toma una medicin o cada que sea solicitada. Dentro de este bloque
actualizaremos las grficas de las pantallas cada que se toma una medicin por lo
que la podemos visualizar en un tiempo real.

Finalmente cuando el temporizador termina de medir, los datos quedan guardados


dentro de los vectores tiempo y vector magnitud, automticamente exportamos
estos datos hacia un archivo de Excel, dnde ya se pueden analizar con mayor
detalle.

Algunas de las variables importantes dentro del botn de este bloque se muestran
en la siguiente tabla:

Pgina 77
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

VARIABLE DECRIPCIN
Enciende Bandera que se pone en 1 durante la conexin. Y nos sirve para
conocer si la conexin con el circuito transmisor se ha realizado.
Comunicacin Cuando el circuito transmisor se comunic con la interfaz, esta
bandera se pone en 1, el botn de medicin funciona si esta
bandera y la bandera enciende son iguales a 1
Fecha Inicial Al iniciar la medicin se registra la fecha inicial y se guarda en
una cadena de caracteres.
Fecha Final Al finalizar la medicin se guarda en esta variable la cadena de
caracteres de la fecha final.
Fecha Actual Variable que se actualiza con la fecha actual cada que se toman
valores en la medicin.
Tiempo mximo Variable que guarda el valor del tiempo mximo en que se
desea realizar la medicin.
Muestreo1, muestreo2, Son valores ledos de la caja de texto de los muestreos de la
muestreo3, muestreo4, variables, estn dados por segundos
muestreo5, muestreo6,
muestreo7, muestreo8.
Temperatura, sensor2, sensor3, Son arreglos de los vectores de magnitud de las variables
sensor4, sensor5, sensor6, ledas. Su dimensin depende del tiempo mximo de medicin y
sensor7, sensor8 del tiempo de muestreo. Por ejemplo si se tiene un tiempo
mximo de medicin de 60 segundos y el tiempo de muestreo
del sensor2 es de 6 segundos, la dimensin del vector del
sensor2 ser de 10 datos de medicin.
T1, t2, t3, t4, t5, t6, t7, t8 Son las variables del vector tiempo, en el que se guardan los
mltiplos de tiempo en que fue tomada la medicin.
Toc Ms que una variable, es un temporizador interno de Matlab y
es que llevar la cuenta del tiempo de medicin.
Contador modulo1, contador Son variables que se incrementan con base al tiempo de
modulo2, contador modulo3, muestreo asignado, por ejemplo si el sensor 1 tiene un tiempo
contador modula4, contador de muestreo de 3 segundos, el contador modulo tomara valores
modulo5, contador modulo6, de:
contador modulo7, contador 3, 6, 9, 12
modulo8.
pausa Bandera que pone en 1 si el botn de detener es presionado

Tabla 6.4. Variables importantes al presionar el botn medir.

La siguiente imagen muestra el algoritmo que se ejecuta al presionar el botn de


medir.

Pgina 78
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Figura 6.7. Algoritmo que se ejecuta al presionar el botn medir.

Pgina 79
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Paro de Medicin: Cuando se presiona este botn, detiene la medicin en al


instante, automticamente se guardan los valores obtenidos hasta entonces. Al
presionarse cambia el estado de la bandera pausa al valor de 1, rompindose el
ciclo que ejecuta el botn medir. Recordemos que en una GUI, el estilo de
programacin es concurrente, por lo que al estarse ejecutando el cdigo de medir
se pueden hacer otras tareas sin que se pierda el proceso. Una de esas tareas es
modificar la bandera pause para que la medicin sea detenida.

6.4 Bloque de Seleccin de variables.

Dentro de la interfaz grfica existen tres pero se comportan de la misma manera. En este
bloque se encuentran 8 botones que permiten seleccionar la variable deseada en la
pantalla correspondiente. El bloque se muestra en la siguiente figura:

Figura 6.8. Bloque de Seleccin de variables en la interfaz.

Cuando se presiona alguno de los 8 botones se visualiza en la pantalla la grfica


seleccionada, desactivndose las dems. Esto se hace mediante un cdigo binario que se
presenta en la siguiente tabla. El cdigo de seleccin.

BOTON
S1 S2 S3 S4 S5 S6 S7 S8
PRESIONADO
Temperatura. 1 0 0 0 0 0 0 0
Humedad. 0 1 0 0 0 0 0 0
Sensor3 0 0 1 0 0 0 0 0
Sensor4 0 0 0 1 0 0 0 0
Sensor5 0 0 0 0 1 0 0 0
Sensor6 0 0 0 0 0 1 0 0
Sensor7 0 0 0 0 0 0 1 0
Snsor8 0 0 0 0 0 0 0 1

Tabla 6.5 Cdigo generado al presionar los botones del bloque de seleccin de variables.

Los siguientes cdigos son ledos cuando se requieren graficar una de las variables en
alguna de las tres pantallas que existen en la interfaz. Una vez que se tiene el cdigo se
manda a llamar el trazado del grafico de los valores que tengamos en ese instante.

Pgina 80
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.5 Bloque Pantalla.

Existen tres de estos bloques dentro de la interfaz, en ella cada una de ellas se permiten
visualizar las ocho variables que se tiene registradas. Esta la parte ms importante de la
interfaz, en ella se grafican en tiempo real los valores registrados, as mismo se pueden
enfocar intervalos de tiempo deseados mediante 2 barras slider que modifican el ancho de
la pantalla y el centro. Despus de que termina la medicin es necesario revisar con
detalle alguna curvas de anlisis, tambin se es posible enfocarlas.

En muchos casos por el tamao de slider no se tienen una mayor resolucin en la hora de
seleccionar el ancho de la ventana, en ocasiones se pierde la seal durante la medicin,
por lo que se integra un botn de autoconfiguracin que enfoca la pantalla 15 segundo
antes de valor de tiempo del temporizador y 15 segundos despus del tiempo del
temporizador. En la siguiente imagen se tiene el bloque de pantalla.

Figura 6.9. Bloque pantalla dentro de la interfaz.

Dentro de este bloque se tienen 5 objetos importantes que son: autoconfiguracin, rango
de pantalla, centro de pantalla, axes y el nombre de la pantalla. A continuacin se
presentan la descripcin:

Nombre de la pantalla: es una caja de texto que cambia el nombre de la pantalla


con relacin a la variable elegida.

Pgina 81
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Axes: Es un objeto en el cual se visualizan los datos, burdamente es el rea donde


aparece la grfica. Dependiendo de la grfica seleccionada es la que se aparecer
en el axes.
Rango de pantalla y centro de pantalla: En la parte visual de la interfaz son dos
sliders que modifican el ancho de la pantalla y el centro de las pantallas. Con estas
herramientas se permiten visualizar y ajustar a los intervalos de tiempo deseados e
incluso ver el historial del comportamiento de las variables en cualquier tiempo de
la medicin.

Con ello, el comportamiento de estos objetos se da por eventos, y pueden ser


utilizados: Cuando la medicin se est realizado sin interrumpirla y cuando la
medicin ha terminado.

Cuando se presiona el slider rango de pantalla o centro de pantalla, se confirma el


cdigo de seleccin del sensor que se desea visualizar y grafica ese sensor en el
intervalo sealado por el slider, ajustndose el ancho de la ventana y el centrado
de esta.

Las caractersticas principales de los slider tanto de rengo de pantalla como centro
de pantalla son: tienen un valor mnimo y un valor mximo. Damos las
explicaciones de los valores que toman los dos slider.

Intervalos de operacin del slider Rango de pantalla: Este slider determina el ancho
de la ventana que se desea visualizar, por lo que el valor mnimo de este slider es
de un valor arbitrario de 20 (con el fin de ver como mnimo un pantalla de 20
segundos, si damos valor 0 tendremos una visin de pantalla de 0 segundos y no
es muy lgico tener una pantalla con este tiempo de visin). El valor mximo es el
tiempo mximo de medicin y no puede rebasar este valor.
Intervalos de operacin del slider Centro de pantalla: Una vez que se define el
ancho de pantalla se tiene que definir la posicin dentro de la medicin de dnde
se requiere ubicar. No es lo mismo tener un ancho de pantalla de 20 segundos
centrada a un tiempo de 30 segundos que centrada a un tiempo de 40 segundos.
Como antes se define el valor mnimo del ancho de la pantalla es de 20 segundos.
Los casos ms crticos son: visualizar la pantalla en el extremo derecho y en el
extremo izquierdo. Cuando centra la pantalla en el extremo izquierdo con un ancho
de pantalla mnimo, se centrar en un valor 10 y este el valor mnimo que puede
tomar el slider de centro de pantalla. Si la pantalla se requiere centrar en el
extremo derecho con un ancho de pantalla mnimo, el centro de pantalla debe estar

Pgina 82
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

en el valor del tiempo mximo menos 10; y este es el valor mximo que puede
tomar el slider de centro de pantalla.

Algunas variables importantes al ejecutarse los eventos de los objetos rango de


pantalla y centro de pantalla son los siguientes:

VARIABLE DESCRIPCIN
Rango de pantalla. Es un valor ledo del slider de rango de pantalla.
Centro de pantalla. Es un valor ledo del slider de centro de pantalla.
Lmite inferior de Variable con valor para visualizar el lmite inferior
pantalla. de pantalla, usa como referencia valor del centro
de pantalla
Lmite superior de Variables con valor para visualizar el lmite
pantalla superior de la pantalla, usa como referencia el
centro de pantalla.
Lmites de pantalla Vector de dos valores en los que se guardan:
lmite inferior de pantalla y lmite superior de
pantalla.

Tabla 6.6 variables importantes de los objetos rango y centro de pantalla.

Pgina 83
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

En la siguiente imagen se muestra el algoritmo de los sliders centrado de pantalla y


rango de pantalla:

Figura 6.10. Algoritmo que se ejecuta al ajustar la pantalla con los sliders.

Pgina 84
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Autoconfiguracin: Cuando se define un tiempo mximo de medicin muy


grande, los sliders pierden su resolucin y encontrar la seal en el tiempo actual a
veces es difcil de ubicar. Autoconfiguracin permite localizar a la seal en el
tiempo actual con un ancho de pantalla de 30 segundos, el centro de pantalla es
igual al tiempo del temporizador justamente cuando se presiona este botn.
Mostramos el algoritmo en la imagen:

Figura 6.11. Algoritmo que se ejecuta al presionar el botn de autoconfiguracin.

Pgina 85
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.6 Bloque de visualizacin de variables atmosfricas.

En este bloque se visualizan los valores de las variables de medicin en el tiempo en


que se toma la medicin. Se hace con el fin de visualizar que datos se estn
registrando y se muestran en cuadros de texto. El bloque se muestra en la siguiente
figura:

Figura 6.12. Bloque de la visualizacin de las variables atmosfricas dentro de la interfaz.

6.7 Bloque de fecha y hora.

En este bloque se visualiza la fecha y hora actual. Matlab tiene una instruccin que
permite manejarla como cadena de caracteres. Cuando se inicia una medicin se registra
la fecha inicial de la medicin y se guarda variables, cuando termina la medicin se
guarda en otra variable. Con esta informacin se puede conocer la fecha y hora en que
inicia una medicin y finaliza. En la siguiente figura se tiene el bloque de facha y hora:

Figura 6.13. Bloque de la visualizacin de las variables atmosfricas dentro de la interfaz.

Pgina 86
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.8 Ecuacin del sensor de temperatura.

Actualmente se tiene pueden conectar en el circuito transmisor hasta 8 sensores, sin


embargo nicamente tenemos dos y el sensor de temperatura es uno de ellos. El sensor
seleccionado para esta variable es el sensor LM35. Con salida totalmente lineal
proporcional a grados centgrados, no requiere calibracin externa. Al sensibilidad de este
sensor es de 10mV/C y puede operar de 4 a 30 volts de corriente directa. Una de las
propiedades de este sensor es que es totalmente lineal. As que de la grfica del
fabricante tomamos el dato inicial y el dato final, con esto ajustamos a una recta, que es la
curva ms simple.

Figura 6.14. Respuesta del sensor LM35 Voltaje vs Temperatura.

Si tomamos el valor mnimo que es:

El valor mximo es:

Encontrando la ecuacin de la recta.

Pgina 87
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

( )

Pero como se lee valores digitales de temperatura tenemos:

Igualando las dos ecuaciones:

( )

Como se quiere tener el valor de la temperatura y el dato temperatura es el valor que


tomamos como lectura, despejamos a t.

Pgina 88
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.9 Ecuacin del sensor de humedad.

El sensor que se utiliza es el HMZ-433 A1 consiste en un sensor integrado con una salida
de voltaje de DC para una temperatura de 0 a 100 %RH. Dentro de la hoja de datos del
fabricante se proporciona la siguiente tabla que genera la grfica mostrada.

Figura 6.15. Respuesta del sensor de humedad HZM33A1 Humedad vs voltaje de salida

De la tabla dad por el fabricante realizamos un ajuste de los datos mediante el mtodo de
mnimos cuadrados ajustando a un recta. La ecuacin resultante es la siguiente.

Como se sabe en la lectura se obtienen valores numricos a partir del voltaje de DC del
sensor de humedad por lo que:

Pgina 89
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Igualando las dos ecuaciones se tiene:

Despejando al porcentaje de humedad que es el valor que se requiere obtener a partir del
valor digital, se tiene la ecuacin del sensor de humedad:

La ecuacin de humedad a programa es la siguiente.

Pgina 90
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

6.10 Cdigo de la programacin de la interfaz.


%Cdigo generado cuando se crea una interfaz en Matlab
function varargout = conectar(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @conectar_OpeningFcn, ...
'gui_OutputFcn', @conectar_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

% --- Executes just before conectar is made visible.


function conectar_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

%%Coloca la imagen llamada imp


guidata(hObject, handles);
A=imread('imp', 'bmp');
A=uint8(A);
Img=image(A, 'Parent',handles.axes5);
set(handles.axes5, 'Visible', 'off', 'YDir', 'reverse', 'XLim', get(Img, 'XData'),'YLim', get(Img,
'YData'));

% --- Outputs from this function are returned to the command line.
function varargout = conectar_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

%%Fin del cdigo del programa.

%////////INICIA CODIGO DE PROGRAMA/////////////////////////////////

%Codigo que se ejecuta cuando se presiona conectar


function Conectar_Callback(hObject, eventdata, handles)
%Declaracin de variables globales
global enciende
global s
global comunicacion
global puerto
global contadorMediciones
contadorMediciones=0 %Inicia contador de mediciones
puerto=get(handles.puerto_com, 'string') %Leemos el puerto serial del cuadro de texto.
delete(instrfind({'Port'},{puerto})) %Borramos algn puerto existente con ese nombre.
s = serial(puerto,'BaudRate',9600,'Terminator','CR/LF');%Guardamos un objeto s= puerto
serial utilizado.
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');%Aviso de precaucin si no hay
puerto.
fopen(s); %abrir puerto.
enciende=1 %bandera enciende igual a 1
if enciende==1

Pgina 91
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

conectando=99;
fwrite( s, conectando); %Escribimos un caracter 'c' al circuito transmisor
prende=fscanf(s, '%s') %Leemos el dato del circuito transmisor.
set(handles.Aviso, 'string', prende); %Mostramos la palabra recibida.
end
estado='Conectado'; %Se asegura si la palabra recibida es "Conectado"
if estado==prende
comunicacion=1; %Activacin de las banderas
enciende=1;
end

%Fin del cdigo que se ejecuta cuando se presiona conectar

%Codigo que se ejecuta cuando se presiona para medir


function pushbutton6_Callback(~, eventdata, handles)
%Declaracin de las varaibles globales
global s
global contadorMediciones
global terminar
global enciende
global fechaInicial
global fechaFinal
global fechaActual
global comunicacion
global limites_pantalla_1
global tiempo_maximo
global q
global t_8
global sensor8
global pantalla1
global pantalla22
global pantalla33
global p
global t_7
global sensor7
global n
global t_6
global sensor6
global m
global t_5
global sensor5
global l
global t_4
global sensor4
global k
global t_3
global sensor3
global j
global t_2
global sensor2
global i
global t
global temperatura
%Sensosres de la panatalla 1
global sensor1
global sensor2a
global sensor3a
global sensor4a
global sensor5a
global sensor6a
global sensor7a

Pgina 92
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

global sensor8a
%sensores de la panatalla 2
global sensor21
global sensor22
global sensor23
global sensor24
global sensor25
global sensor26
global sensor27
global sensor28
%Sensores de la panatalla 3
global sensor31
global sensor32
global sensor33
global sensor34
global sensor35
global sensor36
global sensor37
global sensor38
%Variable global para pausar el sistema
global pausa
pausa=0
if enciende==1
if comunicacion==1
%Tomando la fecha actual
fechaInicial=datestr(now);
set(handles.fecha, 'string', fechaInicial);
%%Lee el valor del tiempo maximo de la medicin.
tiempo_maximo=str2double(get(handles.lectura_tiempo, 'string'));

%%Leyendo datos para vusualizar la tercera pantalla


muestreo_sensor3=str2double(get(handles.muestreo3, 'string'))
muestreo_sensor3=fix(muestreo_sensor3);
rango_inicial_pantalla3=tiempo_maximo;
set(handles.barra_rango_pantalla3, 'Max', tiempo_maximo);
set(handles.barra_rango_pantalla3, 'value', rango_inicial_pantalla3);
centro_inicial_pantalla3=tiempo_maximo/4;
set(handles.barra_centro_pantalla3, 'Max', tiempo_maximo-10);
set(handles.barra_centro_pantalla3, 'value', centro_inicial_pantalla3);
limite_inferior_inicial_pantalla3=0;
limite_superior_inicial_pantalla3= tiempo_maximo/2
velocidad_sensor3=1/muestreo_sensor3
limites_pantalla_3=[limite_inferior_inicial_pantalla3,
limite_superior_inicial_pantalla3]
set(handles.pantalla3, 'XLim', limites_pantalla_3, 'YLim', [0, 100]);
grafica2=line(nan, nan, 'Color', 'b', 'LineWidth', 2);
%% Leyendo datos para vizualizar la segunda pantalla
muestreo_sensor2=str2double(get(handles.muestreo2, 'string'));
muestreo_sensor2=fix(muestreo_sensor2);
rango_inicial_pantalla2=tiempo_maximo;
set(handles.barra_rango_pantalla2, 'Max', tiempo_maximo);
set(handles.barra_rango_pantalla2, 'value', rango_inicial_pantalla2);
centro_inicial_pantalla2=tiempo_maximo/4;
set(handles.barra_centro_pantalla2, 'Max', tiempo_maximo-10);
set(handles.barra_centro_pantalla2, 'value', centro_inicial_pantalla2);
limite_inferior_inicial_pantalla2=0;
limite_superior_inicial_pantalla2=tiempo_maximo/2;
velocidad_sensor2=1/muestreo_sensor2;
limites_pantalla_2=[limite_inferior_inicial_pantalla2,
limite_superior_inicial_pantalla2];
set(handles.pantalla2, 'XLim', limites_pantalla_2, 'YLim',[0 100]);

Pgina 93
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

grafica2=line(nan, nan, 'Color', 'b', 'LineWidth', 2);


%% Leyendo datos para visualizar la primera pantalla.
muestreo_sensor1=str2double(get(handles.muestra, 'string'));
muestreo_sensor1=fix(muestreo_sensor1);
set(handles.slider4, 'Max', tiempo_maximo);
set(handles.slider6, 'Max', tiempo_maximo-10);
centro_inicial_pantalla1=tiempo_maximo/4;
rango_inicial_pantalla1=tiempo_maximo;
set(handles.slider4,'value', rango_inicial_pantalla1);
set(handles.slider6, 'value',centro_inicial_pantalla1);
limite_inferior_inicial_pantalla1=0;
limite_superior_inicial_pantalla1=tiempo_maximo/2;
velocidad_sensor1= 1/muestreo_sensor1;
limites_pantalla_1=[limite_inferior_inicial_pantalla1,
limite_superior_inicial_pantalla1]; %colocando
set(handles.axes7, 'XLim', limites_pantalla_1,'YLim',[0 100]);
grafica1 = line(nan,nan,'Color','r','LineWidth',2);
%% Vectores de inicio del sensor 1
temperatura=zeros(1, tiempo_maximo*velocidad_sensor1);
t=zeros(1, tiempo_maximo*velocidad_sensor1);
contador_modulo=0;
i=1;
%% Vectores de inicio del sensor 2
sensor2=zeros(1, tiempo_maximo*velocidad_sensor2);
t_2=zeros(1, tiempo_maximo*velocidad_sensor2);
contador_modulo2=0;
j=1;
%% Vectores de inicio del sensor 3
sensor3=zeros(1, tiempo_maximo*velocidad_sensor3);
t_3=zeros(1, tiempo_maximo*velocidad_sensor3);
contador_modulo3=0;
k=1;
%% Vectores de inicio del sensor 4
muestreo_sensor4=str2double(get(handles.muestreo4, 'string'));
muestreo_sensor4=fix(muestreo_sensor4);
velocidad_sensor4=1/muestreo_sensor4
sensor4=zeros(1, tiempo_maximo*velocidad_sensor4);
t_4=zeros(1, tiempo_maximo*velocidad_sensor4);
contador_modulo4=0;
l=1
%% Vectores de inicio del sensor 5
muestreo_sensor5=str2double(get(handles.muestreo5, 'string'));
muestreo_sensor5=fix(muestreo_sensor5);
velocidad_sensor5=1/muestreo_sensor5;
sensor5=zeros(1, tiempo_maximo*velocidad_sensor5);
t_5=zeros(1, tiempo_maximo*velocidad_sensor5);
contador_modulo5=0;
m=1;
%% Vectores de inicio del sensor 6
muestreo_sensor6=str2double(get(handles.muestreo6, 'string'));
muestreo_sensor6=fix(muestreo_sensor6);
velocidad_sensor6=1/muestreo_sensor6;
sensor6=zeros(1, tiempo_maximo*velocidad_sensor6);
t_6=zeros(1, tiempo_maximo*velocidad_sensor6);
contador_modulo6=0;
n=1;
%% Vectores de inicio del sensor 7
muestreo_sensor7=str2double(get(handles.muestreo7, 'string'));
muestreo_sensor7=fix(muestreo_sensor7);
velocidad_sensor7=1/muestreo_sensor7;
sensor7=zeros(1, tiempo_maximo*velocidad_sensor7);

Pgina 94
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

t_7=zeros(1, tiempo_maximo*velocidad_sensor7);
contador_modulo7=0;
p=1;
%% Vectores de inicio del sensor 8
muestreo_sensor8=str2double(get(handles.muestreo8, 'string'));
muestreo_sensor8=fix(muestreo_sensor8);
velocidad_sensor8=1/muestreo_sensor8;
sensor8=zeros(1, tiempo_maximo*velocidad_sensor8);
t_8=zeros(1, tiempo_maximo*velocidad_sensor8);
contador_modulo8=0;
q=1;
%% Inicia reloj interno de Matlab
tic
while(toc<=tiempo_maximo&pausa==0)
fechaActual=datestr(now);
set(handles.fecha, 'string', fechaActual);
terminar=0;
tiempo=toc;
set(handles.Segundos,'string', tiempo);
t(i)=toc;
t(i)=fix(t(i));
t_2(j)=toc;
t_2(j)=fix(t_2(j));
t_3(k)=toc;
t_3(k)=fix(t_3(k));
t_4(l)=toc;
t_4(l)=fix(t_4(l));
t_5(m)=toc;
t_5(m)=fix(t_5(m));
t_6(n)=toc;
t_6(n)=fix(t_6(n));
t_7(p)=toc;
t_7(p)=fix(t_7(p));
t_8(q)=toc;
t_8(q)=fix(t_8(q));
axes(handles.axes7);
grid on;
axes(handles.pantalla2);
grid on;
axes(handles.pantalla3);
grid on;
%%Condicion de mestreo del sensor1
if contador_modulo<=t(i)
com='1' ;
contador_modulo=contador_modulo+muestreo_sensor1;
fwrite(s, com); %enva el caracter 1
dato=fscanf(s,'%d'); %espera la lectura del dato
temperatura(i)=0.5371093*dato-541.666; %Ecuacin de temperatura
tem=temperatura(i);
set(handles.temperatura_texto,'string', tem);
x = linspace(0,i/velocidad_sensor1,i);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%graficar%%%%%%%%%%%%%%%%%%%%%%%%%
if pantalla1&sensor1==1
graficarSensor1Pantalla1
end

if pantalla22&sensor21==1
graficarSensor1Pantalla2
end

if pantalla33&sensor31==1

Pgina 95
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

graficarSensor1Pantalla3
end
i=i+1
end
%condicin de muestreo para el sensor 2
if contador_modulo2<=t_2(j)
com2='2';
contador_modulo2=contador_modulo2+muestreo_sensor2;
fwrite(s, com2); %enva el caracter 2
dato2=fscanf(s, '%d'); %Lee el datos del sensor 2
sensor2(j)=0.0966796*dato2; %Ecucain del sensor 2
x_2=linspace(0, j/velocidad_sensor2, j);
%verificacion de la pantalla activada
if pantalla1&sensor2a==1
graficarSensor2Pantalla1
end

if pantalla22&sensor22==1
graficarSensor2Pantalla2
end

if pantalla33&sensor32==1
graficarSensor2Pantalla3
end
j=j+1;
end

%condicin de muestreo para el sensor 3


if contador_modulo3<=t_3(k)
com3='3';
contador_modulo3=contador_modulo3+muestreo_sensor3;
fwrite(s, com3); %envia caracter 3
dato3=fscanf(s, '%d');%lee el datos del sensor3
sensor3(k)=dato3*3.3/1023
x_3=linspace(0, k/velocidad_sensor3, k);
%verificacin del la pantalla del sensor3
if pantalla1&sensor3a==1
graficarSensor3Pantalla1
end

if pantalla22&sensor23==1
graficarSensor3Pantalla2
end

if pantalla33&sensor33==1
graficarSensor3Pantalla3
end
k=k+1;
end
%condicin de muestreo para el sensor 4
if contador_modulo4<=t_4(l)
com4='4';
contador_modulo4=contador_modulo4+muestreo_sensor4;
fwrite(s, com4); %envia el caracter 4
dato4=fscanf(s, '%d'); %lee datos del sensor 4
sensor4(l)=dato4*3.3/1023
x_4=linspace(0, l/velocidad_sensor3, l);
%verificacin del la pantalla del sensor4
if pantalla1&sensor4a==1
graficarSensor4Pantalla1
end

Pgina 96
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

if pantalla22&sensor24==1
graficarSensor4Pantalla2
end

if pantalla33&sensor34==1
graficarSensor4Pantalla3
end
l=l+1;
end
%condicin de muestreo para el sensor 5
if contador_modulo5<=t_5(m)
com5='5';
contador_modulo5=contador_modulo5+muestreo_sensor5;
fwrite(s, com5); %envia el caracter 5
dato5=fscanf(s, '%d'); %lee datos del sensor 5
sensor5(m)=dato5*3.3/1023
x_5=linspace(0, m/velocidad_sensor5, m);
%verificacin del la pantalla del sensor5
if pantalla1&sensor5a==1
graficarSensor5Pantalla1
end

if pantalla22&sensor25==1
graficarSensor5Pantalla2
end

if pantalla33&sensor35==1
graficarSensor5Pantalla3
end
m=m+1;
end
%condicin de muestreo para el sensor 6
if contador_modulo6<=t_6(n)
com6='6';
contador_modulo6=contador_modulo6+muestreo_sensor6;
fwrite(s, com6); %envia el caracter 6
dato6=fscanf(s, '%d'); %lee datos del sensor 6
sensor6(n)=dato6*3.3/1023
x_6=linspace(0, n/velocidad_sensor6, n);
%verificacin del la pantalla del sensor6
if pantalla1&sensor6a==1
graficarSensor6Pantalla1
end
if pantalla22&sensor26==1
graficarSensor6Pantalla2
end

if pantalla33&sensor36==1
graficarSensor6Pantalla3
end
n=n+1;
end
%condicin de muestreo para el sensor 7
if contador_modulo7<=t_7(p)
com7='7';
contador_modulo7=contador_modulo7+muestreo_sensor7;
fwrite(s, com7); %envia el caracter 7
dato7=fscanf(s, '%d'); %lee datos del sensor 7
sensor7(p)=dato7*3.3/1023
x_7=linspace(0, p/velocidad_sensor7, p);

Pgina 97
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

%verificacin del la pantalla del sensor7


if pantalla1&sensor7a==1
graficarSensor7Pantalla1
end

if pantalla22&sensor27==1
graficarSensor7Pantalla2
end

if pantalla33&sensor37==1
graficarSensor7Pantalla3
end
p=p+1;
end
%condicin de muestreo para el sensor 8
if contador_modulo8<=t_8(q)
com8='8';
contador_modulo8=contador_modulo8+muestreo_sensor8;
fwrite(s, com8); %envia el caracter 8
dato8=fscanf(s, '%d'); %lee datos del sensor 8
sensor8(q)=dato8*3.3/1023
x_8=linspace(0, q/velocidad_sensor8, q);
%verificacin del la pantalla del sensor8
if pantalla1&sensor8a==1
graficarSensor8Pantalla1
end

if pantalla22&sensor28==1
graficarSensor8Pantalla2
end

if pantalla33&sensor38==1
graficarSensor8Pantalla3
end
q=q+1;
end
end
terminar=1; %Bandera de terminar que se poene en 1
hoja='hoja--'
contadorMediciones=contadorMediciones+1; %Conteo de mediciones
%%Preparacion del nombre de la hoja en excel
modulo=mod(contadorMediciones, 10);
modulo=modulo+48;
divisor=fix(contadorMediciones/10);
divisor=divisor+48;
hoja(5)=divisor;
hoja(6)=modulo;
fechaFinal=datestr(now); %Guardano la fecha final
guardar='Guardando Medicion';
msgbox('Guardando datos, Espere!', guardar);
%Columna de temperatura
temperatura=temperatura';
x=x';
%Columna de Humedad
sensor2=sensor2';
x_2=x_2';
%Guardando datos del sensor 3
sensor3=sensor3';
x_3=x_3';
%Guardando datos del sensor 4
sensor4=sensor4';

Pgina 98
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

x_4=x_4';
%Guardando datos del sensor 5
sensor5=sensor5';
x_5=x_5';
%Guardando datos del sensor 6
sensor6=sensor6';
x_6=x_6';
%Guardando datos del sensor 7
sensor7=sensor7';
x_7=x_7';
%Guardando datos del sensor 8
sensor8=sensor8';
x_8=x_8';
%%Exportando todos los datos a excel
xlswrite('datos.xlsx', x, hoja, 'a2');
xlswrite('datos.xlsx', temperatura, hoja, 'b2');
xlswrite('datos.xlsx', x_2, hoja, 'd2')
xlswrite('datos.xlsx', sensor2, hoja, 'e2');
xlswrite('datos.xlsx', x_3, hoja, 'g2')
xlswrite('datos.xlsx', sensor3, 'hoja1', 'h2');
xlswrite('datos.xlsx', x_4, hoja, 'j2')
xlswrite('datos.xlsx', sensor4, hoja, 'k2');
xlswrite('datos.xlsx', x_5, hoja, 'm2')
xlswrite('datos.xlsx', sensor5, hoja, 'n2');
xlswrite('datos.xlsx', x_6, hoja, 'p2')
xlswrite('datos.xlsx', sensor6, hoja, 'q2');
xlswrite('datos.xlsx', x_7, hoja, 's2')
xlswrite('datos.xlsx', sensor7, hoja, 't2');
xlswrite('datos.xlsx', x_8, hoja, 'v2')
xlswrite('datos.xlsx', sensor8, hoja, 'w2');

termina_medicion='t'
fwrite(s, termina_medicion)
finMedicion='Termina Medicion';
%Mensaje al usuario, indaca la medicion finalizada
msgbox('Acabo la Medicin', finMedicion);
end
end
%%Fin del cdigo al presionar el notn medir

Pgina 99
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Conclusin.

Finalmente se entrega un trabajo en el que se aprendieron varios aspectos de la


adquisicin y manejo de informacin, que a su vez fueron etapas que se fueron
resolviendo. Inicialmente se empez con el problema de adquisicin de datos, determinar
qu variables tenan que ser recopiladas y cmo representarlas. Con un poco de
experiencia fue resuelto, sin embargo se obtenan dato que simplemente se perdan y no
eran procesados. Fue cuando surgi otra etapa, realizar la primera conexin entre una
computadora con un microcontrolador y viceversa. El microcontrolador debera entregar
datos y la computadora interpretarlos y visualizarlos. Es cuando nace la necesidad de
contar con una interfaz de usuario.

Se tenan las primeras mediciones sobre la interfaz siempre a prueba y error, es como
siempre se trabaj. Se descartaron opciones de lo que debera tener y no tener la interfaz
grfica en Matlab, naciendo el primer prototipo: sistema adquisicin de datos atmosfricos
almbrico. Este primer prototipo estaba casi diseado para acoplar un modo dispositivo
inalmbrico. Se volvi a considerar opciones de lo que necesitbamos. Xbee fue una
solucin ante el problema de comunicacin inalmbrica, naciendo el segundo prototipo
que fue un sistema adquisicin de datos atmosfricos inalmbrico.

Este prototipo ya cumpla los objetivos propuestos dentro de la Estancia Industrial. Y es el


producto casi final aunque surgen otras dudas acerca de usar la interfaz y el dispositivo
inalmbrico. Utilizarlos sin la necesidad de utilizar Matlab, la respuesta es s y no. Se
puede empaquetar la interfaz junto con los compiladores de Matlab e instalarlo en una
computadora, este es el prximo paso en cual se trabajar.

Pgina 100
Reporte de la UEA Estancia Industrial de Ingeniera Electrnica

Referencias.

1. Martnez de la Rosa, Juan Jos. Meteorologa. Asociaciones de Scouts Mxico. Pgina 3.

2. Renom, Madeleine. Principios bsicos de las mediciones atmosfricas. Fac, de Ciencias UdelaR.
2011. Pgina 10.

3. J. Serrano, P. Pieiro, E. Cabrera. Aplicacin de las redes de sensores inalmbricos a la industria


nuclear. Tecnatom. 10. Pgina 2.

4. Sandia National Laboratories HybridEmergency Radiation Detection Network:


minimizeradiationrisksafter an attack, USA, June 2004. Pgina 17.

5. A. Mielke et al. Independent Sensor Networks, IEEE Instrumentation & Measurement, Junio 2005.

6. Digi International, 2009, (empresa dedicada al diseo de tecnologa de conexin de dispositivos


inalmbricos), URL http://www.digi.com/ (ltima visita 10/Enero/2013).

7. Hebel Martin, Bricker George, Harries Daniel. Getting Started with Xbee RF Modules a tutorial for Basic
stamp and Propeller Microcontrollers. Versin1.0. Parallax.inc. Pgina 8.

8. Ruiz Gutirrez, Jos Manuel. Arduino+Xbee Implementacin de Sistemas de transmisin de Datos y


sensores en Redes Inalmbricas con Xbee integrado en la Plataforma Open hardware Arduino.
Versin 1.0. Serie: Arduino y Comunicacin. Noviembre 2012. Pgina 12.

9. Arduino (plataforma de cdigo libre para el prototipo Arduino como computacin fsica, apta para
sensores inalambricos), URL http://www.arduino.cc (ltima visita 3/Marzo/2013).

10. Restrepo G., Andrs D., Loaiza C., Humberto, Caicedo B. Eduardo. Control y adquisicin serial de
seales ultrasnicas con Matlab. Pgina 4.

11. MATLAB . Creating Graphical User Interfaces. MathWorks R2012b. (Revised for Matlab 8.0). Pgina
3.

Pgina 101

Anda mungkin juga menyukai