monitorización wireless de constantes vitales de un bebé

Anuncio
MONITORIZACIÓN WIRELESS DE CONSTANTES
VITALES DE UN BEBÉ
TITULACIÓN: INGENIERÍA AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL
AUTOR: Miguel María García Jiménez
DIRECTOR: Enrique Cantó Navarro
FECHA: Mayo / 2011.
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
INDICE:
1
2
Introducción y Objetivos ....................................................................................... 4
1.1
Introducción................................................................................................... 4
1.2
Antecedentes.................................................................................................. 5
1.3
Objetivo del Proyecto .................................................................................... 8
Memoria descriptiva .............................................................................................. 9
2.1
Nociones sobre la Temperatura Corporal...................................................... 9
2.1.1
Definición .............................................................................................. 9
2.1.2
Zonas de Lectura ................................................................................. 10
2.1.3
Valores, Alteraciones y Terminología................................................. 10
2.2
Módulo 1: Equipo Inalámbrico con Sensor de Temperatura....................... 12
2.2.1
2.3
Diagrama de Bloques........................................................................... 12
Medición de la Temperatura Corporal. Sensores. ....................................... 14
2.3.1
Termopares .......................................................................................... 14
2.3.2
RTD’s. ................................................................................................. 18
2.3.3
Termistores .......................................................................................... 22
2.3.4
Acondicionamiento de la Señal. .......................................................... 26
2.3.5
Sensores de Temperatura con Semiconductores. ................................ 27
2.3.6
Elección Final ...................................................................................... 30
2.4
Comunicación Wireless entre Módulos....................................................... 33
2.4.1
ZigBee ................................................................................................. 33
2.4.2
IEEE 802.15.4 ..................................................................................... 35
2.4.2.1
Arquitectura de los Protocolos........................................................ 36
2.4.2.2
Nivel Físico ..................................................................................... 36
2.4.2.3
Nivel Enlace de Datos..................................................................... 37
2.4.3
Especificación Zigbee.......................................................................... 38
2.4.4
Dispositivos que Constituyen una Red Zigbee.................................... 39
2.4.5
Comunicaciones y Descubrimientos de Dispositivos.......................... 40
2.4.6
Modos de Funcionamiento .................................................................. 40
2.4.7
Modelo de Redes Zigbee ..................................................................... 43
2.4.8
Otros Medios de Transmisión de Datos y Elección Final ................... 46
2.5
Módulos Zigbee en el Mercado................................................................... 51
2.5.1
2.6
Elección Final ...................................................................................... 52
El Microcontrolador .................................................................................... 54
2
Monitorización Wireless Constantes Vitalesde un bebé
2.6.1
Función ................................................................................................ 54
2.6.2
Requisitos ............................................................................................ 54
2.6.3
Alternativas.......................................................................................... 56
2.6.4
Elección Final ...................................................................................... 56
2.7
Módulo 2: Equipo de Sobremesa ................................................................ 58
2.7.1
Funciones:............................................................................................ 58
2.7.2
Diagrama de Bloques: ......................................................................... 58
2.7.3
El módulo de comunicación inalámbrica. ........................................... 59
2.7.4
El módulo LCD. .................................................................................. 59
2.7.5
Pulsadores............................................................................................ 63
2.7.6
Zumbador ............................................................................................ 64
2.7.7
Alimentación ....................................................................................... 64
2.8
3
Automática y Electrónica Industrial
Manual de Funcionamiento ......................................................................... 67
MEMORIA DE CÁLCULO................................................................................ 68
3.1
Diagrama de Flujo Módulo 1: Equipo Inalámbrico con Sensor de Tª......... 68
3.2
Diagrama de Flujo Módulo 2: Módulo de Sobremesa ................................ 74
3.3
Batería Módulo 1: Módulo inalámbrico ...................................................... 83
3.4
Datos experimentales................................................................................... 85
4
PLANOS.............................................................................................................. 86
5
PRESUPUESTO.................................................................................................. 93
5.1
Mediciones .................................................................................................. 93
5.2
Cuadro de Precios Unitarios ........................................................................ 93
5.3
Cuadro de Precios Descompuestos.............................................................. 95
5.4
Presupuesto.................................................................................................. 99
5.5
Resumen del Presupuesto .......................................................................... 100
6
CONCLUSIONES............................................................................................. 101
7
ANEXOS ........................................................................................................... 103
7.1
Programa en CCS Módulo 1...................................................................... 103
7.2
Programa en CCS Módulo 2...................................................................... 109
7.3
Ficheros ..................................................................................................... 127
3
Monitorización Wireless Constantes Vitalesde un bebé
1
Introducción y Objetivos
1.1
Introducción
Automática y Electrónica Industrial
Han pasado alrededor de 2.500 años desde que se fundó la primera Escuela de
Medicina Occidental. Muchos han sido los médicos e investigadores que han ido desde la
anestesia a la vacuna, pasando por el endoscopio y los antibióticos. Numerosos han sido
los inventos y descubrimientos que se han producido en el último siglo y medio que han
permitido sentar las bases de la actual ciencia médica.
Para muchos, estos avances han pasado inadvertidos a lo largo de los años debido al
trepidante ritmo tecnológico que le ha dado la tecnología. Hace sólo unos ciento cincuenta
años parecía casi un sueño realizar una operación quirúrgica sin que el paciente sufriera.
Hoy en día, las intervenciones resultan menos traumáticas y los períodos postoperatorios se
han reducido notablemente gracias a la presencia de la tecnología en el ejercicio de la
medicina.
Se han aplicado cada vez más y más tecnologías para lograr las condiciones
óptimas en cualquier intervención quirúrgica. Se están utilizando los avances no sólo para
curar sino también para prevenir enfermedades así como para todo tipo de investigaciones
médicas, las cuales, gracias a la tecnología han realizado importantes descubrimientos. Los
expertos se han ocupado de la incorporación de los avances tecnológicos en la práctica de
la medicina, por lo que se prevé un cambio radical en la ciencia médica del futuro.
En la actualidad, la tecnología médica ha traspasado la frontera de hospitales y
centros de salud y día a día se incorporan nuevos equipos que mejoran la calidad de vida
de los ciudadanos.
Estos equipos basan su éxito en su sencillez de uso, la calidad y precisión de sus
medidas y su bajo coste. Como ejemplos, podemos citar los medidores de tensión arterial
de muñeca, termómetros digitales, medidores de glucosa en sangre, pulsímetros,
audífonos…
En el presente proyecto, se implementará un dispositivo de medición de
temperatura de bajo coste y wireless, que permitirá conocer la temperatura de una persona,
adulta o bebé, a distancia.
4
Monitorización Wireless Constantes Vitalesde un bebé
1.2
Automática y Electrónica Industrial
Antecedentes
La temperatura corporal es una de las constantes vitales que nos indica el estado de
salud de una persona, ya sea en su estado adulto o durante la niñez.
La fiebre (temperatura corporal elevada) es uno de los síntomas que nos indican
enfermedad. Existen en el mercado muchos tipos de termómetros para medir la
temperatura, además de diferentes métodos, cada uno ofrece ventajas y desventajas de
acuerdo a la edad, colaboración y personalidad de la persona o niño a la que se va a medir
la temperatura.
Los termómetros que podemos encontrar son los siguientes:
Temperatura táctil.
Es la medición de la temperatura utilizando el tacto tocando a la persona, este
método no ofrece ninguna garantía acerca del nivel exacto de la temperatura, simplemente
es una forma de saber si tiene fiebre para luego usar un termómetro para la medición.
Termómetro de vidrio.
Estos termómetros ya no se encuentran en el mercado, aunque su utilización estuvo
muy extendida hasta su prohibición. Pueden medir la temperara de forma precisa y de fácil
medición, pero requieren mayor tiempo para hacer las mediciones (oral y rectal 3 minutos,
axilar 8 a 10 minutos). Al ser de vidrio pueden romperse con facilidad, por lo que no son
aconsejados debido a que el vidrio roto y su contenido de mercurio (tóxico) son dañinos
para la salud, tienen la punta sólida y son de difícil lectura porque se debe buscar el ángulo
en el cual se puede visualizar la banda de mercurio.
Figura 1. Termómetro de vidrio
Termómetros digitales
Sirven para medir la fiebre de forma precisa, rápida, segura y fácil de leer y fácil
medición. Precisa porque utilizan sensores de temperatura; rápida porque basta un
minuto para obtener la medida; segura porque cuentan con una punta flexible, donde se
ubica el sensor, lo que les da menor probabilidad a romperse y no contienen mercurio; y
fáciles de leer porque cuentan con una pantalla digital que muestra la temperatura
obtenida de la medición.
5
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 2. Termómetro digital
Termómetros de oído
Son los más costosos, estos termómetros miden el calor emitido en el tímpano y
el tejido circundante en el interior del conducto auditivo por medio de un infrarrojo, se
obtiene una medición precisa siempre y cuando se haya colocado correctamente dentro
del canal auditivo, de lo contrario, el infrarrojo no podrá medir la temperatura o arrojará
un dato erróneo. El tiempo de la medición es el más rápido, y son fáciles de leer al contar
con una pantalla digital.
Figura 3. Termómetro de oído
Termómetros de tira plástica
Es un dispositivo que se coloca en la frente de los niños y dan valores de
temperatura poco confiables, son de fácil lectura pero al igual que el método de medición
de la temperatura táctil, le indican si el niño tiene fiebre, y es un anticipo al uso de otro
tipo de termómetro.
Figura 4. Termómetros de tira plástica
Termómetros de chupete
Dispositivo que se coloca en los chupones de los bebés, sus valores también son
poco confiables, al igual que la temperatura táctil y los termómetros de tira plástica sólo
indican si el niño tiene fiebre
6
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 5. Termómetro de chupete
Termómetro infrarrojo
Este tipo de termómetros no necesitan del contacto físico para medir la
temperatura. En pocos segundos, a partir de sensores infrarrojos permiten obtener un
valor de la temperatura de la piel sobre la cual están dirigidos. La distancia a la que se
debe encontrar el termómetro varía entre los 0’5 cm. a los 10 cm.
Figura 6. Termómetro infrarrojo
A pesar de existen multitud de tipos de termómetros, todos tienen un elemento
común de funcionamiento:
-
En personas enfermas o niños, es necesaria la presencia de un
adulto para realizar la medición.
-
La lectura de la medición se realiza al lado de la persona de la cual
se quiere saber su temperatura.
7
Monitorización Wireless Constantes Vitalesde un bebé
1.3
Automática y Electrónica Industrial
Objetivo del Proyecto
Todos los padres han vivido alguna vez la siguiente situación: despertarse a media
noche para encontrar a su hijo parado al lado de su cama, rojo, acalorado y sudando. La
frente de su pequeño está caliente. De inmediato, sospechan que su hijo tiene fiebre.
A partir de ese momento, la máxima preocupación de los padres es vigilar la
temperatura corporal de su hijo. Esto implica despertar al niño varias veces para tomarle la
temperatura.
Actualmente, todos los termómetros existentes en el mercado necesitan de un
adulto para medir la temperatura en niños y en bebes. Durante el día, la necesidad de estar
con el niño para medir su temperatura puede parecer no muy importante, sin embargo, por
la noche, implica que tanto el niño como el adulto, deben despertarse varias veces a lo
largo de la noche para controlar la temperatura. Este hecho, hace que tanto los padres como
los niños no consigan descansar, comenzando el nuevo día más agotados.
En el presente proyecto, se desea implementar un dispositivo que monitorice la
temperatura corporal de un bebé o un niño, y que envíe esta medición mediante un
sistema inalámbrico a otro dispositivo el cual avisará a los padres cuando el niño
presente fiebre.
Para conseguir este cometido, se desarrollarán dos dispositivos, un equipo de
sobremesa y un equipo a batería, ambos se comunicarán de manera inalámbrica.
El dispositivo de sobremesa actuará de interfaz con los usuarios. Su misión es
recibir la información que le envíe el equipo de batería, mostrarla por pantalla y avisar en
caso de fiebre.
El dispositivo de batería se encontrará en permanente contacto con el niño, realizará
la medición de temperatura y la enviará al dispositivo de sobremesa.
En ambos equipos, se buscará su bajo consumo, bajo coste, pequeñas dimensiones
y alta precisión y resolución, siendo estas características más críticas en el caso del
dispositivo a baterías.
8
Monitorización Wireless Constantes Vitalesde un bebé
2
Memoria descriptiva
2.1
Nociones sobre la Temperatura Corporal
Automática y Electrónica Industrial
2.1.1 Definición
La temperatura es una magnitud que refleja el nivel térmico de un cuerpo, es decir,
su capacidad para ceder energía calorífica. La temperatura depende del movimiento de las
moléculas que componen a la sustancia, si éstas están en mayor o menor movimiento, será
mayor o menor su temperatura respectivamente, es decir, estará más o menos caliente. El
calor es la energía que se pierde o gana en ciertos procesos. Por tanto, los términos de
temperatura y calor, aunque relacionados entre sí, se refieren a conceptos diferentes: la
temperatura es una propiedad de un cuerpo y el calor es un flujo de energía entre dos
cuerpos a diferentes temperaturas.
La temperatura corporal es la medida del grado de calor de un organismo, y
desempeña un papel importante para determinar las condiciones de supervivencia de los
seres vivos. Así, los seres humanos necesitan un rango muy limitado de temperatura
corporal para poder sobrevivir, y tienen que estar protegidos de temperaturas extremas.
La temperatura corporal es el equilibrio entre la producción de calor por el cuerpo y
su pérdida. El centro termorregulador está situado en el hipotálamo. Cuando la temperatura
sobrepasa el nivel normal se activan mecanismos como vaso dilatación, hiperventilación y
sudoración que promueven la pérdida de calor. Si por el contrario, la temperatura cae por
debajo del nivel normal se activan mecanismos como aumento del metabolismo y
contracciones espasmódicas que producen los escalofríos.
Para poder hablar de temperatura normal del cuerpo, debemos establecer una
diferencia entre la temperatura de los tejidos profundos del cuerpo y la temperatura
cutánea. Esto justifica establecer una división: temperatura interna, con una temperatura
constante y fuertemente regulada; y temperatura cutánea de los tejidos periféricos, cuya
temperatura puede oscilar dentro de unos límites amplios, dependiendo tanto de la
temperatura del ambiente como del grado de defensa ante la pérdida de calor y de las
actividades particulares. De este modo, el término temperatura corporal no debe emplearse
sin tener en cuenta en qué parte del cuerpo tiene lugar la medición.
- Temperatura periférica o superficial: es la de los constituyentes del revestimiento
periférico, como la piel, el tejido subcutáneo y las porciones superficiales de las masas
musculares cuya función principal es la de mantener una temperatura central constante. La
temperatura periférica muestra considerables variaciones, subiendo y bajando según el
medio ambiente. La temperatura media de la piel para una persona promedio en un cuarto
con temperatura ambiente de 25ºC es de 33ºC. La temperatura de la piel se puede medir
mediante termocuplas o termistores montados en contacto con la epidermis.
9
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
- Temperatura central: la temperatura central representa la temperatura media en
áreas corporales profundas centrales (ejemplos: cerebro, corazón, pulmones, órganos
abdominales). Se encuentra constituida por las regiones del cráneo, torácica, abdominal,
pélvica y las porciones más profundas de las masas musculares de las extremidades. Los
seres humanos somos homeotérmicos lo que significa que la temperatura corporal interna
se mantiene casi constante. En condiciones normales, la temperatura interna del cuerpo
fluctúa entre 36’5ºC y 37’5ºC.
2.1.2 Zonas de Lectura
Oral: sublingual utilizando el clásico termómetro de mercurio durante un tiempo
aproximado de cuatro minutos. Se debe tener en cuenta la última ingesta; se puede tomar la
temperatura mínimo 15 minutos después de la ingesta. La temperatura oral se puede medir
en todos los pacientes, excepto, en los que están inconscientes, sufren confusión mental,
convulsiones, afecciones de nariz, boca o garganta y los niños menores de 6 años.
Rectal: lubricar el termómetro y proteger la intimidad del paciente. El resultado
tiende a ser 0’5ºC a 0’7ºC mayor que la temperatura oral. La temperatura rectal es
recomendable para el paciente menor de 6 años, a menos, que se le haya practicado cirugía
rectal o presente algún tipo de anormalidad en el recto.
El canal auditivo: por su proximidad del canal auditivo del hipotálamo, la
temperatura timpánica puede utilizarse como criterio para la estimación de la temperatura
interna. De menor precisión que la toma rectal.
Axilar: es recomendable en adultos y niños mayores de 6 años, se deja el
termómetro durante 5 minutos. El resultado es 0’5ºC menor que la temperatura oral.
2.1.3 Valores, Alteraciones y Terminología
En la tabla 1, se muestra los valores normales de temperatura según la edad.
Tabla 1. Valores de la temperatura según la edad
10
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Los factores que varían la temperatura varían según diversos parámetros:
-
Edad: los niños son más susceptibles a las variaciones climáticas. En los ancianos
la hipotermia se da por la pérdida de grasa subcutánea, dieta inadecuada, cese de
actividad y disminución de los controles termorreguladores.
-
Ejercicio: por aumento en la producción de calor
-
Hormonas: en las mujeres la progesterona secretada durante la ovulación aumenta
la temperatura.
-
Estrés: la estimulación del sistema nervioso simpático aumenta el metabolismo y la
producción de calor.
-
Medio ambiente: las variaciones extremadas de la temperatura ambiental alteran los
sistemas termorreguladores de las personas.
Cuando la temperatura corporal alcanza valores anormales se presentan una serie de
reacciones:
-
Pirexia o hipertermia: temperatura por encima del límite superior normal. Se
presenta aumento de la frecuencia cardiaca, escalofríos, piel pálida y fría y lechos
ungueales cianóticos, por vasoconstricción.
-
Hipotermia: temperatura corporal por debajo del limite inferior normal. Se puede
presentar somnolencia e incluso coma, lo cual, favorece la inadecuada producción
de calor y la aparición de hipotensión, disminución de la diuresis, desorientación,
sensación de frío y piel pálida y fría.
A la hipertermia se le denomina fiebre. Según la intensidad de la temperatura se puede
distinguir entre:
- Febrícula: temperatura hasta los 38ºC
- Fiebre moderada: temperatura entre 38 y 39ºC
- Fiebre alta: temperatura superior a 39ºC.
Según la forma de la curva térmica:
-
Fiebre continua: oscilación diaria inferior a un grado
-
Fiebre remitente: oscilaciones diarias mayores de un grado
-
Fiebre intermitente: la temperatura desciende hasta lo normal, para luego ascender
nuevamente.
-
Fiebre recurrente: episodios febriles (fiebre por encima de 38’3ºC) alternados con
periodos de temperatura normal por días o semanas.
Mediante el presente proyecto, se pretende monitorizar la temperatura corporal,
detectar los episodios febriles o de hipotermia y avisar a la persona encargada de
cuidar a la persona enferma.
11
Monitorización Wireless Constantes Vitalesde un bebé
2.2
Automática y Electrónica Industrial
Módulo 1: Equipo Inalámbrico con Sensor de Temperatura
El módulo autónomo sensor será el encargado de realizar la medición de la
temperatura y transmitirla, es el módulo que se encontrará siempre en el bebe al cual se
quiere monitorizar la temperatura.
En su diseño se han tenido en cuenta las siguientes necesidades:
-
Se alimentará mediante un sistema de baterías y su consumo será mínimo. Durante
más del 90% de su tiempo se encontrará funcionando en modo de bajo consumo y
únicamente se activarán todas sus funciones para realizar la medición de
temperatura y enviar los datos a otro dispositivo.
-
Su tamaño será el menor posible, ya que se situará en el usuario y su diseño debe
ser tal que no provoque molestias al llevarlo encima.
-
En su diseño deben considerarse los mínimos componentes posibles para minimizar
el consumo y el espacio.
-
Controlará el estado de la batería y deberá enviar un aviso de batería baja al
usuario.
-
El sensor de temperatura será lo más exacto y preciso posible en su medida y debe
poder funcionar en modo de bajo consumo.
-
El sistema inalámbrico a utilizar debe ser de bajo consumo. La distancia máxima a
transmitir será de unos 30 metros y la tasa de datos de transferencia será baja.
2.2.1 Diagrama de Bloques
En la figura 7 se puede observar el diagrama funcional de bloques del Módulo
Autónomo Sensor.
sensor Tª
batería
uC
Sist. Wireless
Figura 7. Diagrama funcional de bloques
12
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Sus principales componentes serán:
-
El sensor de temperatura. Debe ser un sensor de pequeño tamaño, que permita dos
modos de funcionamiento, modo normal y modo de bajo consumo. Lo más
integrado posible para que su consumo sea mínimo.
-
El sistema de comunicación wireless. La elección del sistema de comunicación será
importante ya que será el recurso que consuma más potencia. Se buscará un sistema
de bajo consumo, capaz de entablar comunicación con otro dispositivo a 30 metros
y su tasa de transferencia no tiene porque ser muy elevada.
-
El microprocesador. Se encargará de gestionar los modos de funcionamiento del
módulo. Se encargará de tomar el dato de temperatura proveniente del sensor y
enviarlo al sistema de comunicación wireless para su envío al otro dispositivo.
También debe gestionar el estado de la batería y enviar la información de batería
baja al modulo de sobremesa.
-
La batería: proporcionara la alimentación a todo el sistema. Debe ser lo más
pequeña posible y que proporcione una autonomía suficiente. En función de las
necesidades de consumo y tensión de funcionamiento del resto de dispositivos se
decidirá sus características.
13
Monitorización Wireless Constantes Vitalesde un bebé
2.3
Automática y Electrónica Industrial
Medición de la Temperatura Corporal. Sensores.
Se puede realizar la medición de la temperatura corporal de diferentes maneras que
varían de acuerdo al costo del equipo, precisión, linealidad y rango.
A continuación expondré los principales tipos de sensores.
2.3.1 Termopares
Los termopares son los sensores de temperatura utilizados con mayor frecuencia
porque son sensores precisos, relativamente económicos, que pueden operar en un amplio
rango de temperaturas.
El termopar fue descubierto por Thomas Seebeck en 1831. Él descubrió que una
corriente eléctrica fluía en un circuito cerrado de dos metales distintos cuando una de las
uniones era calentada. La magnitud y dirección de la corriente son función de la diferencia
de temperatura de las uniones y de las propiedades térmicas de los metales usados en el
circuito. A este fenómeno se le conoce como efecto Seebeck.
Figura 8. Corriente provocada por el Efecto Seebeck
Si abrimos este circuito, obtenemos una diferencia de potencial pequeña
(milivoltios), la cual es directamente proporcional a la temperatura de la unión y a la
composición de los dos metales.
Figura 9. Metales distintos creando un temopar
14
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 10. Los termopares son económicos y pueden operan en un amplio rango de
temperaturas.
Existen diferentes tipos de termopares asignados con letras mayúsculas que indican
su composición de acuerdo al American nacional Standards Institute (ANSI). Los tipos
de termopares más comunes incluyen B, E, K, N, R, S y T.
Tabla 2. Diferentes tipos de termopares
Las curvas de calibración para los diferentes tipos de termopares son las descritas
en la siguiente tabla:
15
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 11. Curvas de calibración
Medición.
La diferencia de potencial, en un termopar, no puede ser medida directamente
debido a que la unión termopar con el instrumento de medida crea un nuevo circuito
termoeléctrico.
Por ejemplo, si conectamos un voltímetro a un termopar tipo T (cobre-constantan)
para conocer su diferencia de potencial.
Figura 12. Conexión voltímetro
El circuito equivalente que obtendríamos sería el siguiente:
Figura 13. Circuito equivalente
Se quiere conocer el valor de V1, pero al conectar el voltímetro estamos creando
dos uniones más U2 y U3. Debido a que U3 es del mismo metal (cobre-cobre), la
16
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
diferencia de potencial de V3 es cero voltios (V3=0=. Sin embargo, U2 que es una unión
de cobre-constantan crea una V2 en oposición a V1, por lo que la lectura resultante del
voltímetro V será proporcional a la diferencia de temperaturas U1 y U2. Es necesario
conocer U2 para determinar V1,
Una manera de determinar U2 es colocar físicamente esta unión dentro de un baño
de hielo, forzando entonces a que su temperatura sea 0ºC y estableciendo U2 como la
Unión de referencia (Unión fría).
Figura 14. Unión de referencia U2 por junta fría
De esta manera la tensión leída en el voltímetro será directamente proporcional a la
temperatura de U1, ya que la temperatura de U2 es igual a cero.
En el primer ejemplo se ha utilizado un termopar tipo T, pero si usamos un termopar
tipo J (hierro-constantan), en este caso tendríamos una unión más que afectaría la
medición. Por supuesto que una solución sería colocar U2 y U3 dentro del baño de hielo y
el problema está resuelto.
Pero existe otra solución, ésta consiste en tener U2 y U3 a una misma temperatura
conocida y aisladas eléctricamente. Esto se logra con un bloque isotérmico cuya
temperatura tiene que ser medida mediante otro sensor, normalmente un termistor o
PT100.
Figura 15. Bloque de temperatura con PT100
Si el termistor o PT100 determinan la temperatura de referencia de U2 y U3, se
puede determinar entonces la tensión eléctrica de referencia de esas uniones (Vref), por lo
tanto V1 será la diferencia de V menos la Vref.
17
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Para este procedimiento de compensación por unión fría, existen dos técnicas:
- compensación por hardware
- compensación por software.
En la compensación por hardware, se inserta una fuente variable de voltaje dentro del
circuito para cancelar los voltajes termoeléctricos parásitos. La fuente variable de voltaje
genera un voltaje de compensación de acuerdo con la temperatura ambiente, para así poder
adicionar el voltaje correcto para cancelar las señales termoeléctricas indeseadas. Cuando
se cancelan estas señales parásitas, la única señal que mide el dispositivo de adquisición de
datos es el voltaje desde la unión del termopar. Con la compensación por hardware, la
temperatura en los terminales del sistema de adquisición de datos es irrelevante ya que los
voltajes parásitos del termopar se han cancelado. La mayor desventaja de la compensación
por hardware es que cada tipo de termopar debe poseer un tipo separado de circuito que
pueda adicionar el voltaje correcto de compensación; este hecho hace que el circuito sea
bastante costoso. La compensación por hardware es generalmente menos exacta que la
compensación por software.
En la compensación por software el cálculo de la tensión de referencia y a su vez el
cálculo de la diferencia de tensiones es realizado por un microprocesador. Este último es
sin duda el procedimiento de medición de termopares más común.
2.3.2 RTD’s.
Las termorresistencias son sensores de temperatura basados en el cambio de
resistividad que sufren las estructuras de los metales con la temperatura, la cual es
aproximadamente lineal para ciertos metales.
Una termo resistencia, o RTD, se fabrica para tener un valor Ro nominal a una
temperatura dad (p.e. 100 ohms a 0ºC). Al medir su resistencia a una temperatura
desconocida y al compararla con Ro, se puede conocer la diferencia de resistencia. Como
la característica de la resistencia en función de la temperatura es también conocida, el
cambio de temperatura desde el punto inicial será conocida.
Los materiales usados como RTDs’s son:
-
cobre
-
balco (aleación de hierro-níquel)
-
tungsteno
-
iridio
-
Platino.
Debido a su baja resistividad, el oro y la plata no son usados como RTD’s. El
tungsteno posee alta resistividad, pero se le reserva para muy alta temperatura, al ser
muy quebradizo y difícil de maquinar.
18
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El cobre se usa a veces como RTD. Su baja resistividad hace que el elemento sea
más largo que uno de platino, pero su linealidad y bajo costo lo hacen una alternativa
económica. Su límite de operación es de 120ºC.
Los elementos de níquel o aleaciones de níquel son más no lineales y tienden a
modificar su valor de resistencia con el tiempo.
Figura 16. Curva R-T de varios metales.
El platino es el más popular de las RTD’s, debido a su característica muy cercana a
la linealidad en un rango amplio de temperaturas, estable a largo plazo. El costo de los
PRTD’s (RTD de platino) se vieron reducidos al implementarse en película delgada.
Las princípiales características encontradas en el platino son:
-
Estabilidad química: resistencia a la oxidación y corrosión
-
Facilidad de manufactura
-
Disponibilidad de alambre de alta pureza
-
Buena reproducibilidad de características eléctricas.
Esta última permite el poder reemplazar el elemento sensor sin tener que recalibrar
un instrumento. Los valores típicos son de 100, 500 y 1000 ohms.
19
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Las RTD’s se identifican por el metal del que se componen (según la tabla
periódica) y la resistencia que presentan a 0ºC. Ejemplo: Pt100, Pt1000, Ni120, Cu200,
etc.
Según la precisión, se distinguen dos tipos:
-
Clase A: ± 0’15 ºC a 0ºC
-
Clase B: ± 0’30 ºC a 0ºC
Luego presentan una degradación de la precisión hacia los extremos del rango. Por
ejemplo, según el estándar IEC751, para clase B, se tiene:
Tabla 3. Precisión para clase B
Constructivamente las RTD se pueden encontrar de dos formas:
-
Construcción tipo Meyer. Consisten en enrollar sobre una cruz de mica una bobina
helicoidal de platino, y montar el conjunto dentro de un tubo de vidrio. Al ser el
coeficiente de dilatación de la mica muy bajo, el esfuerzo sobre el alambre será
bajo, evitando la variación de resistencia por estiramiento, obteniendo así un
dispositivo estable. A su vez, al estar bobinado a la vez de enrollado, se maximiza
su resistencia para un tamaño dado.
-
RTD de película delgada de platino. La longitud de alambre y diámetro para
controlar el valor de Ro se reemplaza por una estructura meandro muy delgada
sobre un substrato (hasta de 3 micrones), de allí las bajas corrientes de medición
permitidas.
El RTD de película delgada ofrece un dispositivo pequeño, que responde
rápidamente a los cambios bruscos de temperatura y reduce la captación de ruido por
campos magnéticos variables, problemas que poseen los del tipo bobinado. El
inconveniente frente a los bobinados es que son menos estables.
20
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 17. RTD de película delgada
En el caso de la RTD de platino, su función como sensor se basa en la dependencia
con la temperatura de la resistividad del metal. La relación existente puede ser descrita
por el siguiente polinomio característico:
(1)
donde:
R(T) = Resistencia medida.
Ro = Resistencia nominal a 0ºC
Las constantes están definidas por el estándar internacional (DIN EN 60751) para
sensores de platino:
(2)
El coeficiente b es tan pequeño que para la mayoría de las aplicaciones puede
considerarse una relación lineal entre R(T) y T.
Medición.
La medida de una RTD se puede realizar de diferentes métodos. En todos ellos, es
necesaria un circuito de acondicionamiento de la señal.
Medición por método de cero: puente de tres hilos.
(3)
21
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El valor del RTD a la temperatura de calibración del puente será el valor de R3. Se
busca que R1, R2 y R3 tengan coeficientes de variación de resistencia con la temperatura
nulo a la temperatura de trabajo.
Medición de temperatura con RTD por comparación.
En este método se compara la magnitud desconocida con otra de la misma especie
conocida. El patrón y la incógnita coexisten en la medición. Puede ser de deflexión o cero.
El método por fuentes de corriente es de deflexión, al obtener una tensión de salida
proporcional a la diferencia de resistencia entre RTD y Ro, que bien podría actuar sobre un
instrumento calibrado en ºC.
El esquema básico sería el siguiente:
Figura 18. Esquema básico comparación
Al circular corriente por el sensor, se produce un error por autocalentamiento.
2.3.3 Termistores
Los termistores aprovechan la dependencia que presenta la resistencia eléctrica de
cualquier material conductor con la temperatura. En el caso de los termistores, se utilizan
materiales semiconductores de alta sensibilidad, específicamente diseñados para que su
resistencia dependa agudamente de la temperatura del elemento. Existen termistores de
coeficiente positivo PTC (su resistencia aumenta con la temperatura) o negativo NTC (su
resistencia disminuye con la temperatura), siendo este último más típico y de bajo costo.
Figura 19. Distintas formas de los termistores NTC y PTC
22
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
En los termistores se observan relaciones de la resistencia con la temperatura que
no son lineales, sino más bien de carácter exponencial. Para termistores comerciales
comunes, la relación es del tipo
R(T ) = R(T = T0 ) ⋅ e
⎡1 1 ⎤
Χ⋅⎢ − ⎥
⎣ T T0 ⎦
(4)
Donde “R(T)” es la resistencia (en ohms) observada a la temperatura “T”, la que
depende de un primer parámetro dado por la resistencia a una temperatura conocida
“R(T=To)”, típicamente 25ºC, y de un segundo parámetro de ajuste “x”.
Figura 20. Curva característica de los termistores
En el caso de los termistores, dado que se mide resistencia, se debe cuidar, en
primer lugar, que la resistencia de los cables de conexión (que también cambia con la
temperatura) no incida sobre la medición y, en segundo lugar, que la corriente que circule
por el elemento para medir su resistencia sea lo suficientemente pequeña como para
calentar sólo mínimamente el propio sensor. A ese fin se utilizan sistemas de
compensación que incorporan cables idénticos pero sin el sensor, en el brazo adyacente de
un puente de Wheastone, amén de circular una corriente nula por el sensor.
Los termistores al igual que cualquier dispositivo construido en base a
semiconductores tienen algunos parámetros que deben ser considerados para su elección.
Los términos que con mayor frecuencia se emplean son:
-
Resistencia a potencia cero: Resistencia del termistor cuando no existe efecto de
autocalentamiento.
-
Variación de la resistencia con la temperatura: Sensitividad, típicamente de 4W/ºC.
-
Estabilidad: Capacidad de un termistor para mantener sus características dentro del
rango 0’03ºC/a en un periodo de 12 años.
-
Autocalentamiento: Potencia disipada en el termistor
23
Monitorización Wireless Constantes Vitalesde un bebé
-
Automática y Electrónica Industrial
Temperatura de operación máxima: Temperatura máxima en la cual el termistor
conservará su operación con características de estabilidad aceptables.
Las principales características que poseen son:
-
Alta sensibilidad
-
Alto coeficiente térmico
-
Envejecen
-
Tienen un tiempo de respuesta variable
-
Sufren de autocalentamiento
-
No son lineales
-
Son de tamaño reducido
-
Son susceptibles a contaminación
-
Figure 21. Resistencia contra Temperatura para un Termistor Típico y RTD
Medición.
Los termistores son dispositivos sensibles, se les debe administrar una corriente de
excitación y luego leer el voltaje a través de los terminales. Si el calor adicional no se
puede disipar, el calentamiento causado por la corriente de excitación puede incrementar la
temperatura del elemento de detección. El auto calentamiento generalmente cambia la
resistencia del termistor, provocando errores en las medidas. Los efectos del auto
calentamiento se pueden disminuir al administrar una baja corriente de excitación.
La manera más fácil de conectar un RTD o termistor a un dispositivo de medida es
con una conexión de 2 cables.
24
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 22. Medida RTD/Termistor de 2 Cables
Con este método, los dos cables que alimentan al RTD o termistor con su corriente
de excitación también se usan para medir el voltaje en el sensor. Debido a la baja
resistencia nominal de los RTDs, la precisión de las medidas se puede ver afectada
significativamente por la resistencia del cable. Por ejemplo, los cables con una resistencia
de 1 W conectados a un RTD de platino de 100 W causan un error de medida del 1%.
Un método de conexión de 3 cables o 4 cables puede eliminar los efectos de
resistencia del cable. La conexión coloca las terminales en una trayectoria de alta
impedancia a través del dispositivo de medida, eliminando de manera efectiva los errores
causados por la resistencia del cable. No es necesario usar un método de conexión de 3 o 4
cables para termistores ya que éstos generalmente tienen valores de resistencia nominal
más altos que los RTDs. A continuación se muestra un diagrama de conexión de 4 cables.
Figura 23. Medida RTD de 4 Cables
Las señales de salida del RTD y del termistor por lo general están en el rango de los
milivoltios, lo cual los hace sensibles al ruido. Los filtros paso bajo son usados
comúnmente en sistemas de adquisición de datos de RTD y termistor para eliminar de
forma efectiva el ruido de alta frecuencia en las medidas. Por ejemplo, los filtros paso bajo
son útiles para eliminar el ruido de línea de potencia de 50 Hz que se presenta comúnmente
en la mayoría de los laboratorios y plantas.
25
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
2.3.4 Acondicionamiento de la Señal.
Se requiere acondicionamiento de señales para realizar medidas de temperatura
precisas y confiables. Al diseñar el sistema de medidas adecuado para un sensor de
temperatura, se debe considerar amplificación, aislamiento, filtros, excitación, precisión,
resolución y compensación de junta fría (CJC).
Amplificación
Las señales de salida des los sensores de temperatura son generalmente en rangos
de milivoltios, así que se debe amplificar la señal y prevenir el ruido en su sistema de
medidas. Se debe escoger una ganancia que optimice los límites de entrada del convertidor
analógico a digital (ADC) del hardware. Para mejorar significativamente el rendimiento
del ruido de su sistema, se puede amplificar los voltajes de bajo nivel cerca de la fuente de
señal o punto de medida.
Aislamiento
Los termopares que son montados o soldados directamente a un material
conductivo, como el acero o el agua, introducen otra fuente de ruido. Esta configuración
hace a los termopares particularmente sensibles al voltaje en modo común y a lazos a
tierra. El aislamiento ayuda a prevenir lazos a tierra y puede mejorar drásticamente el
rechazo de voltaje en modo común.
Filtrado
Los filtros paso bajo se utilizan comúnmente para eliminar de manera efectiva el
ruido de alta frecuencia en medidas de temperaturas. Por ejemplo, los filtros paso bajo son
útiles para eliminar el ruido de línea de potencia de 60 Hz que se presenta comúnmente en
varios laboratorios y plantas.
Excitación
Ya que los RTDs y termistores son dispositivos sensibles, se les debe administrar
una corriente de excitación y luego leer el voltaje a través de los terminales. Si el calor
adicional no se puede disipar, el calentamiento causado por la corriente de excitación
puede incrementar la temperatura del elemento de detección. El auto calentamiento cambia
la resistencia del RTD o termistor, provocando errores en las medidas..
Precisión y Resolución
Al seleccionar el sensor y el hardware de adquisición de datos adecuados, se deben
conocer los requerimientos de precisión y resolución para su aplicación. Sin embargo los
filtros y la amplificación pueden mejorar significativamente la precisión de las medidas de
termopares, de RTDs y de termistores. Además de las consideraciones de los sensores, el
hardware de adquisición de datos y acondicionamiento de señal debe igualar la precisión y
la resolución requerida.
Compensación de Junta Fría (CJC)
CJC es una tecnología requerida para medidas precisas de termopares. Un voltaje es
generado en la conexión entre el termopar y el terminal de su dispositivo de adquisición de
datos. CJC mejora la precisión de sus medidas al proporcionar la temperatura en esta unión
26
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
y al aplicar la corrección apropiada. Es importante conocer cómo funciona la CJC porque
el error introducido por el sensor CJC se compone de cualquier error existente en su
medida. Al calcular la precisión del sistema, este error puede ser significante y debe ser
considerado
Eliminación de Ruido
Las señales de los sensores generalmente están en el rango de los milivoltios, lo
cual los hace sensibles al ruido. Los filtros paso bajo se utilizan comúnmente en los
sistemas de adquisición de datos de termopares para eliminar de manera efectiva el ruido
de alta frecuencia.
También se puede reducir el ruido amplificando los voltajes de bajo nivel cerca de
la fuente de señal.
Otras fuentes de ruidos son debidas a que por ejemplo los termopares, se suelen
montar o soldar en materiales conductivos, haciéndolos particularmente sensibles al ruido
en modo común y a los lazos de tierra. Un buen aislamiento ayuda a prevenir que ocurran
lazos a tierra y puede mejorar drásticamente el rechazo de ruido en modo común.
2.3.5 Sensores de Temperatura con Semiconductores.
La corriente de conducción de una unión p-n polarizada directamente, responde
exponencialmente con la tensión de forma directa, e inversa con la temperatura. Si se
recuerda la ecuación característica de funcionamiento de un diodo.
(5)
donde:
q=carga del electrón
k=constante de boltman
T=temperatura
Isat=corriente de saturación
De esta ecuación, se desprende que a corriente constante, la tensión varía a razón de
-2’2m por cada grado centígrado (ºC), considerando el diodo formado por la unión baseemisor de un transistor bipolar.
27
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
(6)
Pero además de la variación con T, mantiene una fuerte dependencia de Isat con la
temperatura, lo que hace que no sea directamente utilizable debido a la compleja forma de
dependencia con la temperatura. Si se toman N transistores idénticos al primero sobre lo
que se reparte igualitariamente la misma corriente Ic.
(7)
Si se toma la tensión diferencia entre ambos conjuntos, se tendrá una tensión
proporcional a la temperatura absoluta pero sin tener dependencia alguna con Isat.
(8)
28
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
De esta manera, puede construirse un circuito conteniendo N+1 transistores NPN,
un espejo de corriente PNP y una resistencia estable con la temperatura, como se muestra
en la figura siguiente, cuya corriente será proporcional a la temperatura absoluta, como lo
será igualmente la caída de tensión sobre la resistencia R (que representa la diferencia entre
V y Vn de las ecuaciones anteriores).
Los sensores basados en este sistema pueden dar su salida según la siguiente tabla:
Tabla 4. Tipo de salidas para los sensores
Los sensores de temperatura con salida en corriente se basan en el circuito descrito
en la figura anterior, a estos sensores se les denomina sensor de temperatura band-gap. Este
tipo de sensores no necesitan calibración alguna o ajuste externo.
La incorporación de dispositivos digitales integrados junto con el sensor reduce el
número de componentes externos en las aplicaciones. Así, existen circuitos como el
MCP9804 de Microchip que proporcionan un salida digital I2C como salida de
temperatura.
29
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 24. Diagrama de bloques sensor integrado
2.3.6 Elección Final
En base a las necesidades del proyecto y a las características de los diferentes
sensores descritos se ha escogido para desarrollar el proyecto el sensor de temperatura de
Microchip MCP9804.
El MCP9804 es un sensor de temperatura basado en semiconductores del tipo bandgap. La ventaja del uso de semiconductores en el sensado de temperatura es su capacidad
de integración. En el caso del MCP9804, viene integrado con un convertidor
analógico/digital y con una comunicación I2C.
30
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El uso de un termopar, RTD o termistor implica la existencia de un circuito para
acondicionar la señal.
Acondicionamiento
de señal necesaria
Tipo de sensor
Exactitud
Termopar
Amplificación
Filtro
Unión fria
Compensación
RTD
Amplificación
La mejor
Filtro
Corriente de
excitación
Amplificación
Muy buena
Filtro
Corriente de
excitación
No necesita
Muy buena
acondicionamiento de
señal
Termistor
Integrado lineal
MCP9804
Buena
Sensibilidad
Buena
Muy buena
La mejor
Buena
Tabla 5. Comparativa sensores Tª
En el presente proyecto el uso de un circuito acondicionador de señal presenta varios
inconvenientes.
-
Se añade un circuito acondicionador a la placa del dispositivo inalámbrico.
-
Se debe controlar el circuito acondicionador para que mientras no esté en uso
consuma la mínima energía.
-
El hecho de utilizar más componentes discretos incrementa la complejidad del
circuito, lo hace más susceptible a fallos y hace más difícil su reparación.
-
Un circuito acondicionador aumenta el precio del sistema sensor.
En la siguiente tabla se muestra el precio aproximado de los diferentes sensores.
Tipo Sensor
MCP9804
Termopar tipo T
Termistor
RTD - PT100
Precio (euros)
1.59
4.27
0.7
3.65
Intercambiabilidad
excelente
buena
mala
excelente
Estabilidad
buena
media
media
buena
Circuito Acond.
0
1
1
1
TOTAL
1.59
5.27
1.7
4.65
Tabla 6. Comparativa precios diferentes sensores
Como se puede observar, el sensor más económico es el termistor, sin embargo, la
necesidad de acondicionar su señal lo relega al segundo puesto, siendo el MCP9804 el más
económico.
31
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Existen sensores de temperatura basados en semiconductores más económicos, sin
embargo su señal de temperatura es analógica, lo que hace necesaria un acondicionamiento
de la señal, siendo el precio final similar al MCP9804.
En definitiva, el uso del MCP9804 presenta muchas ventajas frente al resto de
sensores, entre las que podemos destacar:
-
facilidad de ínter cambiabilidad, en caso de fallo del sensor
-
Alta precisión y resolución
-
No necesita acondicionar la señal de salida. Salida digital de temperatura.
-
Disminuye la complejidad del sistema y aumenta su fiabilidad.
-
Presenta modo de funcionamiento en bajo consumo, necesario en sistemas a
batería.
-
El conjunto sensor se encuentra entre los más económicos
32
Monitorización Wireless Constantes Vitalesde un bebé
2.4
Automática y Electrónica Industrial
Comunicación Wireless entre Módulos
ZigBee constituye una de las partes importantes de este proyecto puesto que será el
medio de transmisión elegido para el envío de los datos, una vez medidos con el sensor de
temperatura.
Como se verá más adelante, ZigBee puede ser usado para una gran variedad de
aplicaciones, como podemos observar en la Figura 25, pero en este caso su utilización es
para fines de monitorización corporal.
Figura 25. Aplicaciones tecnología Zigbee
En este apartado se tratará de forma amplia y específica el funcionamiento de este
tipo de conexión, partiendo de una definición de ZigBee y posteriormente estudiando
tanto sus principales características como su funcionamiento en una red ZigBee.
Otro punto a tener en cuenta es el porqué de su elección teniendo otros tipos de
posibilidades. Para ello se realizará una comparación con otros medios de transmisión
muy parejos a ZigBee. A partir de dicha comparativa podremos entender y asimilar que
un medio ZigBee para este tipo de proyecto es lo más adecuado.
2.4.1 ZigBee
ZigBee es el nombre de la especificación de un conjunto de protocolos de alto nivel
de comunicación inalámbrica. Esta especificación define una solución para
comunicaciones inalámbricas de bajo coste y consumo.
El principal objetivo que pretende satisfacer una red de comunicación ZigBee es la
de comunicar aplicaciones que requieren comunicaciones seguras, con baja tasa de envío y
maximización de la vida útil de sus baterías. La red, en su conjunto, utilizará una cantidad
33
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
muy pequeña de energía de forma que cada dispositivo individual pueda tener una
autonomía de hasta 5 años antes de necesitar un recambio en su sistema de alimentación.
La ZigBee Alliance es el grupo encargado de su desarrollo. La primera versión 1.0
fue aprobada el 14 de diciembre de 2004. En diciembre de 2006 se aprobó el protocolo
ZigBee 2006, y actualmente se está trabajando en nuevas versiones.
El medio de transmisión ZigBee trabaja sobre la banda ISM para usos industriales,
científicos y médicos; en concreto, 868MHz en Europa, 915MHz en Estados Unidos y
2.4GHz en todo el mundo. Al ser éste último libre en todo el mundo, las empresas optan
por esta opción a la hora de diseñar. En el rango de frecuencias de 2.4GHz se definen hasta
16 canales, cada uno de ellos con un ancho de banda de 5MHz.
La pila de protocolos ZigBee, también conocida como ZigBee Stack, se basa en el
nivel físico (PHY) y el control de acceso al medio (MAC) definidos en el estándar IEEE
802.15.4, que desarrolla estos niveles para redes inalámbricas de área personal de baja tasa
de transferencia (LR-WPAN, Low Rate - Wireless Personal Area Network). La
especificación ZigBee completa este estándar añadiendo cuatro componentes principales:
-
Nivel de red.
Nivel de aplicación
Objetos de dispositivo ZigBee (ZDO, ZigBee Device Objects).
Objetos de aplicación definidos por el fabricante.
Además de añadir dos capas de alto nivel (nivel de red y de aplicación) a la pila de
protocolos, el principal cambio es la adición de los ZDO ya que son los responsables de
llevar a cabo una serie de cometidos, entre los que se encuentran el mantenimiento de los
roles de los dispositivos, la gestión de peticiones de unión a una red, el descubrimiento de
otros dispositivos y la seguridad.
También hacer referencia a los objetos de aplicación definidos por el fabricante puesto
que permiten la personalización y adaptación, y favorecen la integración total.
Dicha ZigBee Stack será un elemento a tener en cuenta más adelante puesto que los
dispositivos que se usen para implementar nuestro proyecto deberán ser totalmente
compatibles con ZigBee y de este modo poder programar la pila de protocolos.
En la Figura 26 vemos de forma esquematizada los distintos niveles del estándar
802.15.4 y de la especificación ZigBee.
34
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 26. Niveles estándar 802.15.4
2.4.2 IEEE 802.15.4
Antes de estudiar la especificación ZigBee, trataremos los niveles definidos por el
estándar IEEE 802.15.4 específico para conexiones inalámbricas tales como la nuestra. El
estándar no define niveles superiores ni subcapas de interoperabilidad. Existen extensiones,
como la especificación ZigBee, que complementan al estándar en la propuesta de
soluciones completas.
IEEE 802.15.41 es la base sobre la que se define la especificación de ZigBee, cuyo
propósito es ofrecer una solución completa para este tipo de redes construyendo los niveles
superiores de la pila de protocolos que el estándar no cubre.
El propósito del estándar es definir los niveles de red básicos para dar servicio a un
tipo específico de red inalámbrica de área personal (WPAN) centrada en la habilitación de
comunicación entre dispositivos con bajo coste y velocidad. Se enfatiza el bajo coste de
comunicación con nodos cercanos y sin infraestructura, o con muy poca, para favorecer
aún más el bajo consumo.
En su forma básica se concibe un área de comunicación de 10 metros con una tasa
de transferencia de 250kbps. Como se ha indicado, la característica fundamental de
802.15.4 entre las WPAN’s es la obtención de costes de fabricación excepcionalmente
bajos por medio de la sencillez tecnológica, sin perjuicio de la generalidad o la
adaptabilidad.
Entre los aspectos más importantes se encuentra la adecuación de su uso para
tiempo real por medio de slots2 de tiempo garantizados, evitación de colisiones por
CSMA/CA y soporte integrado a las comunicaciones seguras. También se incluyen
35
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
funciones de control de consumo de energía como calidad del enlace y detección de
energía.
2.4.2.1 Arquitectura de los Protocolos
La definición de los distintos niveles se basa en el modelo OSI. Aunque los niveles
inferiores (físico y enlace de datos) se definen en el estándar 802.15.4, se prevé la
interacción con el resto de niveles por medio de un subnivel de Control de Enlace Lógico
basado en IEEE 802.2 (LLC, Logical Link Control), que acceda al Control de Acceso al
Medio (MAC) a través de un subnivel de convergencia. La implementación puede basarse
en dispositivos externos o integrarlo todo en dispositivos autónomos.
Figura27. Pila de protocolos modelo OSI
2.4.2.2 Nivel Físico
El nivel físico (PHY) proporciona el servicio de transmisión de datos sobre el
medio físico propiamente dicho, así como la interfaz con la entidad de gestión del nivel
físico, por medio de la cual se puede acceder a todos los servicios de gestión del nivel y
que mantiene una base de datos con información de redes de área personal relacionadas.
De esta forma, PHY controla el transceptor de radiofrecuencia y realiza la selección
de canales junto con el control de consumo y de la señal. Como ya se ha comentado con
anterioridad, se opera en una de las tres posibles bandas de frecuencia siguientes:
-
868-868.8MHz: Europa. Permite de uno a tres canales.
902-928MHz: Norte América. Permite de diez a treinta canales.
2400-2483.5MHz: Uso en todo el mundo. Permite hasta dieciséis canales.
36
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 28. Banda de frecuencias
La versión original del estándar (2003) especifica dos niveles físicos basados en
Espectro Ensanchado por Secuencia Directa (DSSS, Direct Sequence Spread Spectrum).
Uno de los dos niveles físicos trabaja en las bandas de 868/915MHz con tasas de
transferencia de entre 20 y 40kbps; el otro nivel trabaja en la banda de 2450MHz con hasta
250kbps. Posteriormente se realizó una revisión en el 2006 incrementando las tasas de
datos máximas de las bandas de 868/915MHz, pasando a transmitir hasta 100 y 250kbps.
En el nivel físico podemos localizar cuatro niveles físicos distintos en base al método
de modulación usado. Tres de estos cuatro niveles conservan el mecanismo DSSS: las
bandas de 868-915MHz que usan modulación en fase binaria o por cuadratura en offset
(OQPSK, Offset Quadrature Phase Shift Keying). En la banda de 2450MHz se usa la
técnica OQPSK.
Adicionalmente, se define una combinación opcional de modulación binaria y en
amplitud para las bandas de menores frecuencias, basadas por lo tanto en una difusión de
espectro paralela, no secuencial (PSSS). Si se usan éstas bandas de menor frecuencia, se
puede cambiar dinámicamente el nivel físico usado entre los soportados.
2.4.2.3 Nivel Enlace de Datos
En este nivel encontramos el Control de Acceso al Medio (MAC). Éste transmite
tramas MAC usando para ello el canal físico. Además del servicio de datos, ofrece un
interfaz de control y regula el acceso al canal físico y al balizado de la red. También
controla la validación de las tramas y las asociaciones entre nodos, y garantiza slots de
tiempo. Por último, ofrece puntos de enganche para servicios seguros.
En el nivel de enlace de datos podemos localizar el Control de Enlace Lógico
(LLC) que hace la función de interfaz con los niveles superiores de la pila de protocolos.
En la figura 29 podemos observar los niveles definidos por el estándar 802.15.4 y
las capas intermedias que posibilitan la comunicación con los niveles superiores definidos
por un tipo de especificación WPAN, como ZigBee.
37
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 29. Pila de protocolos del estándar IEEE 802.15.4
2.4.3 Especificación Zigbee
Nivel de RED
Los cometidos principales del nivel de red son permitir el correcto uso del subnivel
MAC, definido por el estándar 802.15.4, y ofrecer un interfaz adecuado para su uso por
parte del nivel inmediatamente superior, el nivel de aplicación. Sus capacidades son las
típicas de un nivel de red clásico.
Por una parte, la entidad de datos crea y gestiona las unidades de datos del nivel de
red a partir del payload del nivel de aplicación y realiza el ruteo en base a la topología de
la red en la que el dispositivo se encuentra. Por otra parte, las funciones de control del
nivel de red controlan la configuración de nuevos dispositivos y el establecimiento de
nuevas redes; puede decidir si un dispositivo colindante pertenece a la red e identifica
nuevos routers y vecinos. El control puede detectar así mismo la presencia de receptores, lo
que posibilita la comunicación directa y la sincronización a nivel MAC.
Nivel de APLICACIÓN
El nivel de aplicación es el más alto definido por la especificación y, por tanto, la
interfaz efectiva entre el nodo ZigBee y sus usuarios. En él se ubican la mayor parte de los
componentes definidos por la especificación: tanto ZDO’s, como sus procedimientos de
control y los objetos de aplicación.
Componentes principales
El ZDO se encarga de la definición del rol de un dispositivo como Coordinador
ZigBee o Dispositivo Final. Además, el ZDO identifica los dispositivos que se encuentran
a un salto en la red (dispositivos vecinos) y los servicios que ofrecen. Tras ello, puede
proceder a establecer enlaces seguros con dispositivos externos y responder peticiones.
El subnivel de soporte a la aplicación (APS, Application Support Sublayer) es el
segundo componente básico del nivel. Como tal, ofrece una interfaz bien definida y
38
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
servicios de control asociados. Trabaja como nexo de unión entre el nivel de red y el resto
de componentes del nivel de aplicación. Mantiene actualizadas las tablas de asociaciones
en forma de base de datos, que puede utilizarse para encontrar dispositivos adecuados en
base a los servicios demandados y ofrecidos. Como puente entre dos niveles, encamina los
mensajes a lo largo de la pila de protocolos.
2.4.4 Dispositivos que Constituyen una Red Zigbee
En una red ZigBee podemos encontrar y detectar tres tipos de dispositivos ZigBee
diferentes, según el papel que desarrollen en nuestra red. Estos dispositivos son los
siguientes:
-
Coordinador ZigBee (ZigBee Coordinator, ZC): Consiste en el dispositivo más
completo de los tres, puesto que sus funciones son las de controlar y coordinar la
red y los caminos que deben seguir los dispositivos para conectarse entre ellos.
Debemos encontrar obligatoriamente un ZC en cada red ZigBee.
-
Router ZigBee (ZigBee Router, ZR): Su función es la de interconectar los
dispositivos separados en la topología de la red, además de ofrecer un nivel de
aplicación para la ejecución de código de usuario.
-
Dispositivo Final (ZigBee End Device, ZED): En este dispositivo queda
representado las principales características de ZigBee, como son el bajo consumo y
el bajo coste. Los ZED poseen la funcionalidad necesaria para comunicarse con su
nodo padre, que ya puede ser el Router ZigBee o el Coordinador ZigBee, pero no
puede transmitir información destinada a otros dispositivos. Es por ello, que este
tipo de dispositivo puede estar “dormido” la mayor parte del tiempo aumentando
así la vida media de sus baterías. Un ZED tiene requerimientos mínimos de
memoria y es por ello significativamente más barato.
Vistas las funciones realizadas por los distintos tipos de dispositivos que forman una
red ZigBee podemos clasificarlos, según su funcionalidad, en dos tipos de nodo definidos
por el estándar 802.15.4:
-
Dispositivo de Funcionalidad Completa (FFD, Full-Function Device): Conocido
también como nodo activo. Gracias a la memoria adicional y a la capacidad de
computar puede funcionar como Coordinador o Router ZigBee de una red de área
personal (PAN) o como un nodo normal. Implementa un modelo general de
comunicación que le permite establecer un intercambio con cualquier otro
dispositivo pudiendo encaminar mensajes, en cuyo caso se le denomina
coordinador (coordinador de la PAN si es el responsable de toda la red y no sólo de
su entorno). Puede ser usado en dispositivos de red que actúen de interface con los
usuarios.
-
Dispositivo de Funcionalidad Reducida (RFD, Reduced-Function Device):
Conocido también como nodo pasivo. Posee una capacidad y funcionalidad
limitada para garantizar un bajo coste y una gran simplicidad, por ello sólo pueden
39
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
comunicarse con FFD’s y nunca pueden ser coordinadores. Básicamente
constituyen los sensores de la red.
2.4.5 Comunicaciones y Descubrimientos de Dispositivos
Para que los dispositivos que forman una aplicación puedan comunicarse, deben
utilizar un protocolo de aplicación compartido. Estos acuerdos se agrupan en perfiles. En el
momento de establecer una comunicación entre los distintos dispositivos se realiza
mediante pares de identificadores fuente y destino (identificadores de cluster), agrupando
las parejas en tablas de asociaciones. Dichas tablas estarán correctamente almacenadas en
los Coordinadores ZigBee.
En base a la información disponible, el descubrimiento de dispositivos puede
efectuarse utilizando varios métodos. En caso de conocer la dirección de red, se pide la
dirección IEEE utilizando unicast3. Si no es así, se pide por broadcast4. Los Dispositivos
Finales ZigBee responden a estas peticiones con sus direcciones propias, mientras que los
Routers y Coordinadores ZigBee envían también las direcciones de todos los dispositivos
asociados a ellos.
Los identificadores de cluster favorecen la asociación entre entidades
complementarias por medio de tablas de asociación, mantenidas en los Coordinadores
ZigBee, ya que estas tablas siempre han de estar disponibles en una red. Los
Coordinadores son los encargados de guardar las tablas ya que, de entre todos los nodos,
son los que con mayor seguridad dispondrán de una alimentación continua. Para establecer
asociaciones entre diferentes dispositivos se necesita que se haya formado un enlace de
comunicación, tras ello se decide si es necesario adjuntar un nuevo nodo a la red en base a
la aplicación y las políticas de seguridad. Nada más establecerse la asociación, pueden
iniciarse las comunicaciones.
Existen dos modos de direccionamientos. Por una parte, el direccionamiento directo
utiliza la dirección de radio y el número de endpoint5; por otra parte, el direccionamiento
indirecto necesita toda la información relevante (dirección, endpoint, cluster y atributo), y
la envía al Coordinador de la red. El Coordinador es el encargado de traducir su petición y
proporcionarle los datos deseados. Este último direccionamiento es especialmente útil para
favorecer el uso de dispositivos muy sencillos y minimizar el almacenamiento interno.
2.4.6 Modos de Funcionamiento
El funcionamiento de ZigBee debe cumplir la premisa del bajo consumo de sus
nodos. Para ello un nodo ZigBee, tanto activo como pasivo, reduce su consumo gracias a
que puede permanecer “dormido” la mayor parte del tiempo, incluso muchos días
seguidos. Cuando decimos que el nodo permanece “dormido” nos referimos a que está a la
espera de ser activado por parte del Router o del Coordinador ZigBee.
Cuando se requiere su uso, el nodo ZigBee es capaz de despertar en un tiempo
ínfimo, para volverse a “dormir” cuando deje de ser requerido. El tiempo que tarda un
nodo cualquiera en despertarse es de aproximadamente 15ms. Las redes ZigBee han sido
diseñadas para conservar la potencia en los nodos esclavos (ZED), de esta forma se
consigue el bajo consumo de potencia. La idea del funcionamiento ZigBee consiste en que
40
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
los dispositivos esclavos en todo momento permanecen en modo “dormido” a no ser que
sean activados, de tal forma que solo se “despiertan” por una fracción de segundo para
confirmar que siguen en nuestra red de dispositivos de la que forman parte, es decir, que
siguen “vivos”.
En las redes ZigBee, se pueden usar dos modos de funcionamiento diferentes: con
balizas o sin balizas.
Con balizas
En este modelo de funcionamiento, el camino de transmisión y recepción está
permanentemente controlado por un distribuidor que se encarga de controlar el canal y
dirigir las transmisiones. El distribuidor permite a todos los dispositivos saber cuándo
pueden transmitir.
Para el control del canal se utilizan las balizas, elementos que se usan para poder
sincronizar todos los dispositivos que conforman la red. Los intervalos de las balizas son
asignados por el coordinador de la red (Coordinador ZigBee) y pueden variar desde los
15ms hasta los 4 minutos.
Este modo es más recomendable cuando el coordinador de red trabaja con una
batería. Los dispositivos que conforman la red escuchan a dicho coordinador durante el
balizamiento (envío de mensajes a todos los dispositivos -broadcast-, entre 0.015 y 252
segundos). Un dispositivo que quiere intervenir, lo primero que tendrá que hacer es
registrarse para el coordinador, y es entonces cuando mira si hay mensajes para él. En el
caso de que no haya mensajes, este dispositivo vuelve a “dormir”, y se despierta de
acuerdo a un horario que ha establecido previamente el coordinador. En cuanto el
coordinador termina el balizamiento, todos los dispositivos de la red vuelven a “dormirse”.
Como vemos, se trata de un mecanismo de control del consumo de potencia en la
red.
Sin balizas
En este tipo cada dispositivo es autónomo, pudiendo iniciar una conversación en la
cual los otros dispositivos pueden interferir. A veces puede ocurrir que el nodo destino
puede no oír la petición o que el dispositivo emisor pretenda transmitir cuando el canal esté
ocupado, ocasionando posibles colisiones. Es por ello que se debe utilizar un mecanismo
de control de acceso al medio. Las redes sin balizas acceden al canal por medio del
CSMA/CA. El CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) se
basa en la escucha del canal por parte del nodo que pretende transmitir, y de esta forma
detecta si algún otro nodo que compone la red está transmitiendo o tiene intención de ello.
Al tratarse de un medio inalámbrico, la detección de colisiones no es posible, por lo
tanto para evitar dichas colisiones la estación que quiera transmitir, si no hay tráfico en el
canal, podrá hacerlo pasado un cierto instante de tiempo; en caso de existir tráfico, deberá
esperar un cierto tiempo de espera más otro cierto intervalo de tiempo aleatorio.
Este sistema se usa típicamente en los sistemas de seguridad, en los cuales sus
dispositivos duermen prácticamente todo el tiempo. Para que se les tenga en cuenta, estos
elementos se “despiertan” de forma regular para anunciar que siguen en la red.
41
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Cuando se produce un evento, como por ejemplo que un sensor detecte algún
movimiento, el sensor “despierta” instantáneamente y transmite a la alarma
correspondiente. Es en ese momento cuando el coordinador de red recibe el mensaje
enviado por el sensor y activa la alarma pertinente. En este caso, el coordinador de red se
alimenta de la red principal durante todo el tiempo.
Los routers suelen estar activos todo el tiempo, por lo que requieren una
alimentación estable en general. Esto permite redes heterogéneas en las que algunos
dispositivos pueden estar transmitiendo todo el tiempo, mientras que otros sólo transmiten
ante la presencia de estímulos externos.
En general, los protocolos ZigBee que no hacen uso de las baliza, minimizan el
tiempo de actividad para evitar el uso de energía. En las redes con balizas, los nodos sólo
necesitan estar despiertos mientras se transmiten las balizas (además de cuando se les
asigna tiempo para transmitir); si no hay balizas, el consumo de cada dispositivo será
distinto ya que encontraremos nodos activos permanentemente y otros que sólo lo están
esporádicamente.
Acceso al medio
El medio físico es un recurso al que se accede utilizando CSMA/CA. Las redes que
no utilizan las balizas hacen uso de una variación del mismo basada en la escucha del
medio, temporizada por un algoritmo de backoff6, salvo en el caso de las confirmaciones
(ACK, Acknowledgement).
Estos mensajes de confirmación pueden ser opcionales en algunos casos. La
recepción de una confirmación certifica el éxito de nuestro envío. En cualquier caso, si un
dispositivo es incapaz de procesar una trama en un momento dado, no confirma su
recepción. Pueden realizarse reintentos basados en timeout un cierto número de veces, tras
lo cual se decide si seguir intentándolo a dar error de transmisión.
El entorno de funcionamiento previsto para este tipo de redes exige que se
maximice la vida de la fuente de energía, por lo que se favorecen los protocolos que
conducen a estos fines. Para ello, se programan comprobaciones periódicas de mensajes
pendientes, más o menos frecuentes según la aplicación concreta.
En lo que respecta a la seguridad en las comunicaciones, el subnivel MAC ofrece
funcionalidades que los niveles superiores pueden utilizar para lograr alcanzar el nivel de
seguridad deseado. Estos niveles superiores pueden especificar claves simétricas para
proteger los datos y restringir éstos a un grupo de dispositivos o a un enlace punto a punto.
Estos grupos se especifican en listas de control de acceso. Además, MAC realiza
comprobaciones de frescura (freshness check) entre recepciones sucesivas para asegurar
que las tramas viejas cuyo contenido no se considera útil o válido ya, no transcienden a los
niveles superiores.
42
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
2.4.7 Modelo de Redes Zigbee
Las redes están compuestas por grupos de dispositivos separados por distancias
suficientemente reducidas. Cada dispositivo posee un identificador único de 64 bits,
aunque si se dan ciertas condiciones de entorno en éste pueden utilizarse identificadores
cortos de 16 bits. Probablemente éstos se utilizarán dentro del dominio de cada PAN
separadas.
Un aspecto a tener muy en cuenta son los tipos de topologías de red que permite el
estándar que soporta ZigBee. Su nivel de red permite tres topologías distintas:
-
Topología en estrella.
Topología en árbol.
Topología de malla.
Toda red necesita al menos un dispositivo coordinador (FFD), encargado de su
creación, mantenimiento básico y control de sus parámetros. Seguidamente estudiaremos
de forma detallada los distintos tipos de topologías de ZigBee, dónde se sitúa en cada uno
de ellos el coordinador de la red y cuál es la topología más adecuada.
Topología estrella
En redes en estrella el coordinador se sitúa en el centro, y toda conexión que se
quiera realizar entre los distintos nodos de la red debe pasar por éste.
Una red en estrella activa tiene un nodo central activo que normalmente tiene los
medios para prevenir problemas. Se utiliza sobre todo para redes locales. La mayoría de las
redes de área local que tienen un router, un switch o un hub7 siguen esta topología.
El nodo central, en el caso de utilizar uno de estos dispositivos, sería el router, el
switch o el hub por el que pasan todos los paquetes.
Las ventajas que nos puede aportar una red en estrella sería la facilidad a la hora de
implementarla, adecuada para redes temporales, el fallo de un nodo periférico no influiría
en el comportamiento del resto de la red y no hay problemas con colisiones de datos ya que
cada estación tiene su propia conexión al coordinador central. En contrapartida, la
utilización de una red en estrella nos limita tanto el número de nodos que pueden estar
conectados a la red, como la longitud del cableado (en caso de ser una conexión cableada).
También se debe tener muy en cuenta que los costes de mantenimientos pueden aumentar a
largo plazo, y que el fallo del nodo central puede echar abajo la red entera.
A causa de todo ello, podemos confirmar que una red en estrella puede ser poco
fiable en el momento de realizar transferencias de información
Topología en árbol
Topología de red en la que los nodos están colocados en forma de árbol. Para este
tipo de topología el coordinador será la raíz del árbol. Desde una vista topológica, la
conexión en árbol es parecida a una serie de redes en estrella interconectadas, salvo en que
43
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
no tiene un nodo central. En cambio, tiene un nodo de enlace troncal, generalmente
ocupado por un hub o switch, desde el que se ramifican los demás nodos.
En redes de árbol se permite el uso de Router ZigBee para interconectar los
distintos nodos de la red. Así mismo, la comunicación en árbol es estrictamente jerárquica
con lo que puede utilizar opcionalmente tramas balizas. Una falla de un nodo no implica la
interrupción en las comunicaciones. Se comparte el mismo canal de comunicaciones.
Los problemas asociados a este tipo de topología radican en que los datos son
recibidos por todas las estaciones sin importar para quien vayan dirigidos. Por lo tanto es
necesario dotar a la red de un mecanismo que permita identificar al destinatario de los
mensajes. Además, debido a la presencia de un medio de transmisión compartido entre
muchas estaciones, pueden producirse interferencias entre las señales cuando dos o más
estaciones transmiten al mismo tiempo. La solución al primero de estos problemas aparece
con la introducción de un identificador de estación destino. Para darle solución al segundo
problema, hay que mantener una coordinación entre todas las estaciones, y para eso se
utiliza cierta información de control en las tramas que controlan quien transmite en cada
momento (utilización de tramas balizas mencionadas anteriormente).
Topología en malla
La topología más interesante es la topología de malla. Consiste en que al menos
uno de los nodos tendrá más de dos conexiones. Con ello conseguimos que si, en un
momento dado, un nodo del camino falla y se cae, pueda seguir la comunicación entre
todos los demás nodos debido a que se rehacen todos los caminos.
El establecimiento de una red de malla es una manera de encaminar datos, voz e
instrucciones entre los nodos. Las redes de malla se diferencian de otras redes en que las
piezas de la red (los nodos) están conectadas unas con otras por uno u otro camino. Esta
configuración ofrece caminos redundantes por toda la red, de modo que si falla un cable,
otro se hará cargo del tráfico.
Esta topología, a diferencia de las vistas en apartados anteriores, no requiere de un
servidor o nodo central, con lo que se reduce el mantenimiento. Un error en un nodo, sea
importante o no, no implica la caída de toda la red.
Como ya se ha comentado anteriormente, las redes de malla son autogenerables. La
red puede funcionar incluso cuando un nodo desaparece o la conexión falla, ya que el resto
de nodos evitan el paso por ese punto. Consecuentemente, se forma una red muy confiable.
Gracias a las estructuras arbitrarias que permite la topología en malla , es posible
llevar los mensajes de un nodo a otro por diferentes caminos. A consecuencia de este tipo
de estructura no se pueden usar tramas balizas.
Al igual que en la topología en árbol, las redes en malla permiten el uso de Routers
ZigBee para habilitar la comunicación en el nivel de red. Éstos no son Coordinadores
ZigBee, pero pueden serlo de sus respectivos espacios de operación personal definidos por
802.15.4.
44
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Aunque la facilidad de solución de problemas y el aumento de la fiabilidad son
ventajas muy interesantes, estas redes resultan caras de instalar, ya que utilizan mucho
cableado.
En la siguiente figura, se puede apreciar las diferentes topologías que puede tener
una red ZigBee.
Figura 30. Topologías de una red ZigBee
Árbol de clusters
Vistos los tipos de topologías que podemos manipular, encontramos que nuestro
estándar menciona un tipo de red definido como “árbol de clusters”. Para ello se usan redes
punto a punto.
Las redes punto a punto pueden formar patrones arbitrarios de conexionado, donde
su extensión se ve limitada únicamente por la distancia existente entre cada par de nodos.
Forman la base de redes ad hoc8 autoorganizativas. El estándar no define un nivel
de red, por lo que no se soportan funciones de ruteo de forma directa, aunque si ha dicho
nivel se le añade se pueden realizar comunicaciones en varios saltos.
Las estructuras árbol de clusters están formadas por el conexionado entre nodos
FFD y RFD. Puesto que se necesita de al menos un nodo FFD para poder conectar
diferentes RFD’s, se aprovecha de ello para generar estructuras donde los nodos RFD’s
simbolizan las hojas de un árbol, y donde la mayoría de los nodos son FFD’s. A partir de
los árboles de clusters podemos generar grandes redes de malla, cuyos nodos sean árboles
de clusters con un coordinador local para cada cluster, junto con un coordinador global.
45
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Figura 31. Árbol de clusters
2.4.8 Otros Medios de Transmisión de Datos y Elección Final
Como ya hemos podido comprobar, el desarrollo de la tecnología de ZigBee se
centra en la sencillez y bajo coste de sus nodos y en el bajo nivel de transmisión de
información. Es por ello que su utilización en este proyecto es la más adecuada en
comparación con otras redes inalámbricas semejantes de la familia WPAN, como por
ejemplo Bluetooth.
ZigBee vs. Bluetooth
ZigBee es muy similar a Bluetooth, pero con algunas diferencias:
-
Una red ZigBee puede constar de más de 65000 nodos distribuidos en subredes de
255 nodos, frente a los 8 máximos de una subred (piconet9) Bluetooth.
-
Menor consumo eléctrico que el de Bluetooth. Este menor consumo se debe a que
el sistema ZigBee, como ya se ha mencionado anteriormente, se queda la mayor
parte del tiempo dormido, mientras que en una comunicación Bluetooth esto no se
puede dar ya que suelen estar siempre transmitiendo y/o recibiendo.
En la siguiente tabla podemos ver en términos exactos el consumo de ZigBee y de
Bluetooth.
Tabla 6. Consumo ZigBee Vs Bluetooth
La velocidad ZigBee es menor a la de Bluetooth. ZigBee tiene una velocidad de
hasta 250kbps, mientras que en Bluetooth es de hasta 1Mbps. Esta diferencia de valores es
lógica si tenemos en cuenta que ZigBee se basa en una transmisión de datos baja, y por lo
tanto no nos afecta en gran medida en el momento de transmisión y recepción de datos.
Vistas las principales diferencias entre ZigBee y Bluetooth, podemos llegar a la
conclusión de que uno es más apropiado que el otro para ciertas aplicaciones. Haciendo
referencia a la diferencia de velocidades, Bluetooth se usa para aplicaciones con mayor
carga de información para transmitir, como por ejemplo para teléfonos móviles e
46
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
informática casera; la velocidad de ZigBee se hace insuficiente para estas tareas,
desviándolo a usos tales como la domótica, los productos dependientes de la batería,
artículos de juguetería y sensores médicos, en los cuales la transferencia de datos es menor.
Éste último caso de utilización de ZigBee, los sensores médicos, nos garantiza que
ZigBee será un medio idóneo para este proyecto que se basa en la transmisión de datos a
partir de medidas capturadas por un sensor de temperatura.
Wireless USB
Wireless USB es un protocolo de comunicación inalámbrica por radio con gran
ancho de banda, que combina la sencillez de uso de USB con la versatilidad de las redes
inalámbricas.
Utiliza como banda frecuencial la plataforma UWB (Ultra-Wide Band), operando
en los rangos de frecuencia de 3.1 a 10.6GHz. Puede lograr tasas de transmisión de hasta
480Mbps en rangos de tres metros y 110Mbps en rangos de diez metros.
Gracias a su alta tasa de transferencia, Wireless puede usarse para aplicaciones que
requieren un flujo de transferencia elevado. Wireless USB se utiliza en mandos de
videoconsola, impresoras, escáneres, transmisión y visualización de vídeos, etc.
Haciendo una comparativa de los principales aspectos de Wireless USB, Bluetooth,
Wi-Fi y ZigBee, como podemos comprobar en la siguiente tabla, el rango de frecuencia en
el que trabaja Wireless es superior al de los otros medios de transmisión, al mismo tiempo
que su tasa de transferencia es más elevada. Centrándonos en los valores de transferencia y
utilizando la lógica, a mayor tasa de transferencia mayor será el consumo, con lo cual no
nos beneficia para el tipo de proyecto que queremos llevar a cabo. ZigBee sigue siendo la
mejor opción.
Tabla 7. Comparativa ZigBee – Bluetooth – Wireless USB – Wi-Fi
Wi-Fi
Wi-Fi, al igual que el resto de medios que estamos analizando, consiste en un
sistema de envío de datos sobre redes que utiliza ondas en lugar de cables (wireless). Se
basa en el estándar IEEE 802.11, y es por ello que podemos encontrar diversos tipos de
Wi-Fi:
-
Los estándares IEEE 802.11 son fácilmente aceptados debido a que usan la banda
frecuencial de 2.4GHz.
La velocidad de transferencia del medio depende del estándar que se haga uso.
Puede proporcionarnos una velocidad de 11Mbps (IEEE 802.11b) hasta 108Mbps
(IEEE 802.11n), pasando por los 54Mbps del estándar IEEE 802.11g.
47
Monitorización Wireless Constantes Vitalesde un bebé
-
Automática y Electrónica Industrial
En la actualidad ya se utiliza el estándar IEEE 802.11a, conocido como Wi-Fi5 ya
que opera en la banda de 5GHz. Dicha banda frecuencial (5GHz) ha sido
recientemente habilitada. Al no existir otras tecnologías como ZigBee o Bluetooth
que hagan uso de ella, nos garantiza un mínimo de interferencias vecinas. Su
alcance es algo menor que el de los estándares que trabajan a 2.4GHz.
La principal ventaja que nos proporciona Wi-Fi, aparte de las altas velocidades de
transferencia, es la capacidad de suministrar cobertura en un gran rango de distancia (capaz
de alcanzar los 100 metros).
Por otra parte, la desventaja fundamental de estas redes existe en el campo de la
seguridad. Existen algunos programas capaces de capturar paquetes enviados y calcular la
contraseña de la red, y de esta forma acceder a ella. Al igual que el resto de medios de
transmisión wireless, la velocidad de transferencia se ve disminuida al no utilizar cables.
Vistos los principales puntos que nos puede aportar la utilización de Wi-Fi (altas
velocidades de transmisión y gran cobertura), se puede concluir que este tipo de medio
quedaría fuera del tipo de transmisión que se pretende llevar a cabo al necesitar una mayor
fuente de energía para poder proporcionar dichas tasas de velocidades.
Wibree
Wibree resultaría ser una opción a tener en cuenta para su empleo en este proyecto
puesto que sus principales características y sus principios básicos son parejos a los ya
vistos en ZigBee.
Wibree es una nueva tecnología digital de radio interoperable para pequeños
dispositivos. Consiste en una tecnología de comunicación inalámbrica que nos ofrece
conexión y comunicación entre dispositivos móviles o computadores y otros dispositivos
más pequeños. Su diseño está pensado para que funcione con un consumo de energía
mínimo.
Al igual que en ZigBee, Wibree opera a los 2.4GHz (banda ISM) haciendo posible
la comunicación entre dispositivos de pila de botón y dispositivos Bluetooth. Su tasa de
transferencia es superior respecto a ZigBee: 250kbps de ZigBee frente a 1Mbps de Wibree.
Puesto que en este proyecto la cantidad de información a transmitir será mínima
(datos medidos por el sensor de temperatura), la tasa de transferencia tampoco interesa, en
primera instancia, que sea muy elevada.
Wibree se diseñó para dos modos distintos de implementación:
-
Wibree de implementación única: Esta implementación está pensada para el
funcionamiento de dispositivos que requieren un consumo bajo de energía,
pequeños y de bajo costo, como por ejemplo relojes, sensores deportivos, teclados
inalámbricos, etc.
-
Wibree de implementación modo dual (Bluetooth – Wibree): Se diseña para su uso
en dispositivos Bluetooth donde Wibree se integra con Bluetooth y BluetoothRF,
48
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
utilizando los dispositivos existentes y dirigidos especialmente a dispositivos como
teléfonos móviles y computadoras personales.
TinyOS
TinyOS es un sistema operativo open source basado en componentes para redes de
sensores inalámbricas. Está diseñado para incorporar nuevas innovaciones rápidamente y
para funcionar bajo las importantes restricciones de memoria que se dan en las redes de
sensores.
Las aplicaciones para TinyOS se escriben en nesC, un dialecto del lenguaje de
programación C optimizado para las limitaciones de memoria de las redes de sensores;
donde el lenguaje de programación nesC consiste en un conjunto de tareas y procesos que
colaboran entre sí. Existen, además, varias herramientas que completan y facilitan su uso,
escritas en su mayoría en Java y en Bash.
TinyOS proporciona interfaces, módulos y configuraciones específicas, que
permiten a los programadores construir programas como una serie de módulos que hacen
tareas específicas. Los módulos de TinyOS proporcionan interfaces para los tipos estándar
de entradas y salidas de hardware y sensores.
A pesar de que TinyOS no sea una tecnología para comunicaciones inalámbricas, se
puede tener en cuenta su utilización para posibles configuraciones y programaciones de
redes inalámbricas.
49
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Comparativa general
Tabla 8. Comparativa entre los distintos medios de transmisión de datos
Una vez analizados los distintos medios de transmisión inalámbricos podemos
concluir diciendo que cada uno de los medios se adapta mejor a un tipo de necesidades,
pero en este caso son primordiales el bajo consumo y la baja transmisión de datos, por lo
tanto el medio que mejor se adapta es ZigBee.
50
Monitorización Wireless Constantes Vitalesde un bebé
2.5
Automática y Electrónica Industrial
Módulos Zigbee en el Mercado.
Actualmente existen cerca de una veintena de compañías dedicadas entre otras
cosas a la manufacturacón de chips ZigBee, entre ellas, las más importantes son las
siguientes: Atmel Corporation, Chipcon, Crossbow, Ember Corporation, Freescale, etc.
MaxStream al igual que otros fabricantes desarrollan Módulos ZigBee utilizando estos
chips, MaxStream ha optado por la plataforma ZigBee de Freescale.
En este apartado se analizan distintos módulos ZigBee a fin de comparar sus
especificaciones más relevantes. Entre las especificaciones se pueden mencionar a modo
de ejemplo la corriente de transmisión, la corriente de recepción, la dimensión, los tipos de
antenas, etc.
Tabla 9. Comparativa módulos Zigbee
51
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Tabla 10. Comparativa módulos Zigbee
Analizando las tablas comparativas se puede observar que los productos ZigBee de
MaxStream son la mejor opción frente a otros módulos de la competencia. Cuentan con
unas dimensiones reducidas, una fácil integración, diferentes tipos de antenas según las
necesidades del usuario final, un consumo aceptable, una buena disponibilidad, y la
característica más relevante es la concesión del certificado ZigBee.
Además, cabe destacar que existe bastante información, resultando ser un factor
importante al momento de elegir un ódulo ZigBee, ya que una buena documentación
permitirá que el desarrollo del proyecto avance de forma continuada y fluida en el
transcurso del tiempo.
La familia de productos Xbee de MaxStream ha recibido la homologación ZigBee
que concede ZigBee Alliance, superando rigurosas pruebas hasta convertirse en uno de los
pocos productos en recibir la exclusiva homologación ZigBee.
2.5.1 Elección Final
La familia Xbee presenta 2 módulos, el Xbee y el Xbee-PRO. Las características de
ambos son las siguientes:
52
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Tabla 11. Comparativa módulos Xbee y Xbee Pro
Para el desarrollo de este proyecto, se ha optado por escoger el modulo Xbee, con
antena chip integrada. De los dos es el que más se ajusta por su bajo consumo y
dimensiones.
Con antena chip integrada, los alcances de las especificaciones se reducen un 70%,
aun así, siguen siendo más que suficientes para el objetivo de este proyecto.
53
Monitorización Wireless Constantes Vitalesde un bebé
2.6
Automática y Electrónica Industrial
El Microcontrolador
2.6.1 Función
El microcontrolador se encargará de gestionar los recursos y los componentes. Se
encargará de temporizar los estados de bajo consumo cuando no se necesite la temperatura
y de despertar a los diferentes módulos cuando se requiera su uso.
2.6.2 Requisitos
El microcontrolador escogido tendrá que comunicarse con el módulo Xbee de
MaxStream y el sensor MCP9804 de Microchip.
Partiendo de las características de cada uno de los equipos se debe elegir el
microcontrolador más adecuado.
Sensor MCP9804.
Tensión de alimentación: desde 2’7 V a 5’5 V
Entradas / salidas digitales necesarias:
Figura 32. MCP9804
Para su comunicación, el sensor MCP9804 utiliza el protocolo I2C.
SDA – PIN 1
SCL – PIN 2
La señal de Alert (PIN 3) no se utilizará en esta aplicación.
Las señales A0, A1 y A2 (PIN 7, 6 y 5) se configurarán por hardware.
54
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Módulo Xbee.
Figura 33. Módulo Xbee
Tensión de alimentación: desde 2’8 V a 3’4 V
Entradas / salidas digitales necesarias:
Para su comunicación, el módulo XBee utiliza la UART
DOUT – PIN 2
DIN – PIN 3
Para entrar en modo de bajo consumo y salir del modo en bajo consumo se utiliza el
PIN 9.
SLEEP_RQ – PIN 9
El resto de entradas / salidas no se aplican en este proyecto.
Por lo tanto el microcontrolador deberá disponer:
-
Capacidad para una comunicación I2C
-
Capacidad para una comunicación UART
-
Un pin digital para controlar el modo de funcionamiento del módulo XBee.
-
Debe funcionar con una tensión de alimentación comprendida entre 2’8V y 3’4V.
-
Debe poder trabajar en modo de bajo consumo y despertarse por si solo
transcurrido un determinado periodo de tiempo.
55
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Requisitos Microcontrolador
Dispositivo
PIN
1
SDA
Sensor MCP9804
2
SCL
2
DOUT
Módulo Xbee
3
DIN
9
SLEEP_RQ
I2C
UART
Tabla 12. Requisitos del microcontrolador.
2.6.3 Alternativas
Aunque existen múltiples fabricantes, los posibles microcontroladores se han
buscado dentro de la gama que el fabricante MICROCHIP posee.
El principal motivo de la decisión de usar un microcontrolador de MICROCHIP es
que suelen ser de bajo coste y ya disponemos de las herramientas y equipos necesarios para
su programación.
El programa usado para su programación ha sido el CCS y el hardware para cargar
los progamas el USB PIC BURNER.
2.6.4 Elección Final
Dentro de la amplia gama de microcontroladores que posee Microchip, tiene las
versiones LF que trabajan a baja tensión.
Para esta aplicación, estas versiones son las más idóneas ya que trabajan a partir de
los 2V de tensión de alimentación. El resto de familias necesitan 4’2V como mínimo.
Al ser un prototipo no se ha buscado ajustar el microcontrolador a las necesidades
iniciales de diseño, ya que limitaría al equipo en sus posibles mejoras, por lo que se ha
buscado un microcontrolador que facilitase la incorporación de nuevas opciones al
prototipo.
Finalmente, el microcontrolador escogido es el PIC 18LF2525. Es un
microcontrolador de 24 pines, no excesivamente grande, pero lo suficiente para poder
disponer de puertos libres para posibles ampliaciones.
Las características de este microcontrolador son iguales a las del PIC 18F2525,
únicamente cambia la tensión mínima de alimentación.
56
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Tabla 13. Características PIC18F2525.
57
Monitorización Wireless Constantes Vitalesde un bebé
2.7
Automática y Electrónica Industrial
Módulo 2: Equipo de Sobremesa
2.7.1 Funciones:
El módulo 2 es el equipo encargado de realizar las funciones de interface con el
usuario. Su principal misión será la de mostrar en todo momento la temperatura corporal
que el módulo 1 está midiendo.
A su vez, permitirá que el usuario disponga de una serie de opciones para ajustarse
a las necesidades de este.
Entre otras cosas deberá permitir:
-
Conocer si el módulo 1 se encuentra con batería o sin batería.
-
Programar la temperatura a la que quiere que el dispositivo de la alarma.
2.7.2 Diagrama de Bloques:
El diagrama de bloques del modulo 2 será el siguiente:
Regulador 5V
LCD
Regulador 3'2V
uC
AC / DC
Sist. Wireless
Figura 34. Diagrama funcional de bloques Módulo 2
Estará formado por:
-
Un circuito de alimentación.
Se encargará de alimentar los diferentes elementos con las tensiones adecuadas.
58
Monitorización Wireless Constantes Vitalesde un bebé
-
Automática y Electrónica Industrial
El microcontrolador
Se encargará de gestionar la información recibida por los pulsadores y el módulo de
comunicación Xbee. Enviará la información al módulo LCD para mostrarlo por
pantalla y se podrá configurar la aplicación.
-
El módulo LCD
Se encargará de mostrar la información que le envia el microcontrolador, tanto los
menús de configuración, como la temperatura del módulo 1.
-
Pulsadores
Mediante unos pulsadores, el usuario podrá configurar el módulo 2.
-
Zumbador,
Es el encargado de avisar al usuario cuando alguna alarma se activa. Como por
ejemplo:
-
-
Temperatura alta / baja del usuario.
-
Falta batería en el módulo 1.
El módulo de comunicación inalámbrica
Es el encargado de recibir la información proporcionada por el módulo 1 y enviarla
al microcontrolador.
2.7.3 El módulo de comunicación inalámbrica.
Tal y como se ha evaluado en el módulo 1, el dispositivo inalámbrico adecuada
para la comunicación en este tipo de aplicaciones es un dispositivo que utilice la tecnología
ZigBee.
El módulo escogido es el Xbee de Maxstream, la justificación es la misma que para
el módulo 1.
2.7.4 El módulo LCD.
Las pantallas de cristal líquido LCD o display LCD para mensajes (Liquid Cristal
Display) tienen la capacidad de mostrar cualquier carácter alfanumérico, permitiendo
representar la información que genera cualquier equipo electrónico de una forma fácil y
económica.
59
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos)
distribuidos en una, dos, tres o cuatro líneas de 16 hasta 40 carácteres cada línea.
El proceso de visualización es gobernado por un microcontrolador incorporado a la
pantalla, siendo el HITACHI 44780 el modelo de controlador más utilizado. En la
siguiente figura se puede observa un LCD.
Figura 1 : LCD de 2x16: está compuesto por 2 líneas de 16 carácteres
En el presente proyecto se ha optado un un LCD de 2x16, ya que la cantidad de
información a mostrar es mínima.
Las características generales de un módulo LCD 16x2 son las siguientes:
-
Consumo muy reducido, del orden de 7’5 mW.
-
Pantalla de carácteres ASCII, además de los carácteres japoneses kanji, carácteres
griegos y símbolos matemáticos.
-
Desplazamiento de los carácteres hacia la izquierda o a la derecha.
-
Memoria de 40 carácteres por línea de pantalla, visualizándose 16 carácteres por
línea.
-
Movimiento del cursor y cámbio de su aspecto.
-
Permite que el usuario pueda programar 8 carácteres.
-
Pueden ser gobernados de 2 formas principales:
-
Conexión con bus de 4 bits.
-
Conexión con bus de 8 bits.
En este caso, se ha optado por una conexión con bus de 4 bits. La ventaja frente al
bus de 8 bits es su velocidad de transmisión de datos, sin embargo, al ser la necesidad de
velocidad en la muestra de los datos en nuestra aplicación baja, no es necesario una
conexión de 8 bits. Además, nos permite disponer de 4 pines más del microprocesador
libres.
60
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
En la siguiente tabla, se presenta la descripción de señales empleadas por el módulo
LCD así como el número de patilla a la que corresponden.
Tabla 14. Señales del módulo LCD
El módulo LCF posee una zona de memoria RAM llamada DDRAM (Data Display
Ram) donde se almacenan los caracteres que se van a mostrar en la pantalla.
Tiene una capacidad de 80 bytes, 40 por cada línea, de los cuales sólo 32 se pueden
visualizar a la vez (16 bytes por línea).
De las 80 posibles, las dos direcciones más importantes de la DDRAM son:
-
Dirección 00h, que es el comienzo de la primera línea
-
Dirección 40h, que es el comienzo de la segunda línea.
Además de la DDRAM, el módulo LCD dispone de una memoria interna no volátil
llamada CGROM donde se almacena una tabla con los 192 caracteres que pueden ser
visualizados.
Cada uno de los caracteres tiene su representación binaria de 8 bits. Para visualizar un
carácter debe recibir por el bus de datos el código correspondiente.
61
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Tabla 15. Caracteres ASCII
Como ya he comentado anteriormente, la conexión del LCD al microcontrolador se
realizará mediante 4 bits, utilizaremos el puerto B del PIC para realizar esta conexión.
Las conexiones son las siguientes:
-
Las 4 líneas superiores del módulo LCD, pines <DB7:DB4> se conectan a las 4
líneas del puerto B de la siguiente manera:
-
DB4 - PIN B4
-
DB5 - PIN B3
-
DB6 - PIN B2
-
DB7 - PIN B1
-
PIN RS del LCD a la línea PIN B7 del PIC
-
PIN R/W del LCD a la línea PIN B6 del PIC
-
PIN Enable del LCD a la línea PIN B5 del PIC
62
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
La siguiente figura muestra un ejemplo de esquema de conexión del módulo LCD,
aunque no es la utilizada en el presente proyecto ya que en la figura se utiliza el puerto D.
Figura 35. Conexión a 4 bits
Para su funcionamiento he utilizado la librería que el compilador CCS ya incorpora
con subrutinas de control.
2.7.5 Pulsadores
Se han implementado 3 pulsadores mediante los cuales el usuario puede acceder al
menú de la aplicación y configurarla.
La denominación de los pulsadores será:
-
Pulsador 1 Æ Menu / OK
-
Pulsador 2 Æ Sig. +
-
Pulsador 3 Æ Prev. –
El circuito para implementar los pulsadores es el siguiente:
63
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
VCC
Pulsador
PIN uC
R1
10k
Figura 36. Esquema conexión pulsador
Para evitar rebotes en la señal durante la pulsación se implementa mediante
software un retardo en la siguiente lectura del pulsador, evitando así que en una misma
pulsación se detecten varias.
2.7.6 Zumbador
El zumbador utilizado es un zumbador (buzzer) electromecánico. Se activará
mediante un PIN del microcontrolador. Debido a que la intensidad máxima que puede
proporcionar un pin a su salida es de 25 mA, utilizaremos un transistor NPN en la siguiente
configuración como interruptor.
2
VCC
1
BUZZER
PIN uC
R2
1k
Q1
NPN BCE
Figura 37. Esquema conexión zumbador
2.7.7 Alimentación
Los diferentes sistemas que forma el módulo se alimentan principalmente a 2
tensiones diferentes.
El microcontrolador y el módulo Xbee y el zumbador se alimentan a 3,2 V mientras
que el LCD se alimenta a 5 V.
La tensión de alimentación general la obtenemos de la red eléctrica a 230V – 50 Hz
y mediante un transformador la pasamos 9 V de tensión continua.
Mediante 2 reguladores de tensión obtenemos las tensiones deseadas.
64
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El regulador LM317 es un regulador ajustable, con una tensión a su salida que
puede ajustar entre los 1’2V y los 37V. Mediante el LM317 conseguimos la tensión de
3’2V deseada. Su conexión típica es la que aparece en su hoja de características y es la
siguientes:
Figura 38. Montaje típico LM317
Donde la tensión de salida Vou viene dada por la siguiente expresión:
(9)
Para la tensión de 5V, hemos elegido el regulador L7805 que proporciona una
tensión fija a su salida de 5V.
Su conexión típica según su hoja de características es la siguiente:
Figura 39. Montaje típico 7805.
65
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Para evitar posibles conexiones incorrectas de la alimentación, hemos colocado un
diodo en serie justo a la salida del transformador, así evitamos la alimentación inversa.
66
Monitorización Wireless Constantes Vitalesde un bebé
2.8
Automática y Electrónica Industrial
Manual de Funcionamiento
Para operar con los equipos se deben seguir una serie de pasos que se enumeran a
continuación.
1- Conectar el módulo de sobremesa a la red y poner el interruptor en posición ON.
2- La pantalla del LCD se encenderá y aparecerán los comandos AT de
configuración del módulo Xbee.
3- Una vez configurado aparecerá sobre la pantalla el mensaje “esperando dato”.
4- Una vez ha aparecido el mensaje “esperando dato” se procede a conectar el
dispositivo inalámbrico poniendo el interruptor en posición ON.
5- Tras unos segundo aparecerá la temperatura en la pantalla LCD.
En cualquier momento, y siempre después de configurarse el módulo Xbee del
dispositivo de sobremesa, se puede entrar al menú de configuración mediante el
pulsador “Menú”.
El Menú presenta el siguiente árbol de submenus:
Menú:
1- Alarma. Configura los parámetros de alarma de la temperatura.
1.1- T. Max. Dentro de este apartado se puede modificar el valor de
alarma para la temperatura máxima.
1.2- T. Min. Dentro de este apartado se puede modificar el valor de
alarma para la temperatura mínima.
1.3- Act. Alarma. Dentro de este apartado se puede activar o
desactivar la alarma sonora de temperatura. Por defecto, cuando arranca el equipo
está desactivada.
1.4- Salir. Sale del submenu alarma.
2- Termómetro. Dentro de este submenu se puede configurar el tiempo de
muestreo de la temperatura, un intervalo de 5s mínimo a un intervalo de 60s.
3- Save conf. Dentro de este submenu se guarda la configuración del
usuario en la Eeprom del dispositivo. La siguiente vez que se enciende se carga la
última configuración salvada.
4- Salir. Sale del menú.
En caso de que una vez conectado el dispositivo de sobremesa pasen más de 2
minutos sin que se reciba señal de dispositivo inalámbrico, aparece por pantalla la señal de
“Dispositivo no conectado o Baja Bateria”.
67
Monitorización Wireless Constantes Vitalesde un bebé
3
Automática y Electrónica Industrial
MEMORIA DE CÁLCULO
A partir de los elementos reflejados en la memoria descriptiva, se han desarrollado
dos programas para los microcontroladores de los módulos 1 y 2.
El lenguaje utilizado es el CCS, ya que dispone de herramientas y librerias muy
útiles y se trata de un lenguaje muy parecido al C.
El compilador utilizado es el PCWHD versión 4.104 de CCS.
3.1
Diagrama de Flujo Módulo 1: Equipo Inalámbrico con Sensor de Tª
A continuación se refleja el diagrama de flujo del programa que gobierna el
microcontrolador.
En la primera y segunda figura se muestra el diagrama de flujo de las interrupciones
del TIMER1 y de la UART.
Inicio interrupcion Timer1
Contador_timer ++
Si contador_timer>tiempo_muestreo
No
Si
muestrea_envia=1
contador_timer=0
Cargo Timer1
Fin Interrupción
Figura 40. Diagrama de flujo Interrupción TIMER1
68
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El código es el siguiente:
#int_TIMER1
(temporizador)
//Vector de interrupción por TIMER1
void TIMER1_isr(void)
{
contador_TIMER1++;
if
(contador_TIMER1>tiempo_de_muestreo)
segundos //(500ms*tiempo_de_muestreo =xx segundos)
//500msx60=30s
{
muestrea_envia=1;
contador_TIMER1=0;
}
set_timer1(0x0BDC);
//Carga el timer1
}
Funcionamiento:
Cada 500 ms se produce una interrupción por el Timer 1 del microcontrolador.
Cuando entra en la interrupción, se incrementa un contador y se compara con el
tiempo de muestreo preestablecido.
Si es mayor, entonces la variable muestrea_envia toma valor 1 y se pone a 0 el
contador. Esta variable, indicará al programa principal que puede muestrear la Tª del
sensor y enviarla al módulo de sobremesa.
Finalmente, se carga el Timer1 con el valor 0x0BDC para que vuelva a generar una
interrupción a los 500 ms.
69
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Inicio Interrupción UART
Si kbhit
Si
dato=getc()
No
dato_recibido=1
Fin Interrupción
Figura 41. Diagrama de flujo Interrupción UART
El código es el siguiente:
#int_rda
//Vector de interrupcion de la recepcion de
void rda_isr(void)
//por el usart
datos
{
if (kbhit())
// si entra un dato
{
dato[indi]=getc();
aux[indi]=dato[indi];
indi++;
dato_recibido=1;
;
}
}
Funcionamiento:
Si se genera una interrupción de la UART en primer lugar miro si es debido a la
entrada de un dato (if (kbhit)).
Si se genera por la entrada de un dato, leo ese dato, hago una copia en una variable
auxiliar he indico al programa principal que he recibido un dato (dato_recibido=1).
70
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El siguiente diagrama de flujo muestra el programa principal.
71
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Inicio
Inicio variables globales
Configuro Xbee
No
Si "recibo_dato=1"
Si
Defino el tiempo de muestreo
Obtengo Tª del sensor
Envio el dato
Configuro Timer1
Si "muestrea_envia=1"
No
Si
Xbee modo normal
uC modo bajo consumo
Obtengo Tª del sensor
Envio el dato
Xbee bajo consumo
muestrea_envia=0
Mientras True
Figura 42. Diagrama de flujo programa principal
72
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El código del programa principal es el siguiente:
void main()
{
dato_recibido=0;
indice=0;
indi=0;
inicio_Xbee();
while (dato_recibido==0)
{}
printf("z");
configuracion
// señal para el coordinador de fin de
delay_ms(1000);
tiempo_de_muestreo=((aux[0]-48)*10)+(aux[1]-48);
delay_ms(1000);
muestrea();
envia();
inicio_TIMER1();
do
{
if (muestrea_envia==1)
{
output_low(PIN_C5);
XBee, si C5=0, lo despierta
delay_ms(20);
espero 20 ms
// PIN_C5 está conectado al SLEEP_RQ del
// El Xbee tarda 13'2 ms en despertarse,
muestrea();
envia();
output_high(PIN_C5); // Si C5=1->SLEEP_RQ=1, Xbee entra en modo
sleep (<10 uA de consumo)
muestrea_envia=0;
}
else
{
SCS1=1;
SCS2=0;
IDLE=1;
sleep();
// Duermo el microcontrolador pero dejo
funcionando el TIMER1, cuando provoque interrupción despierta.
}
}while (TRUE);
}
73
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Funcionamiento:
En primer lugar inicializo las variables globales.
Configuro el módulo Xbee mediante la acción inicio_Xbee(). Durante su
configuración, y para entrar en modo comando, el módulo Xbee envia el comando +++ al
módulo de sobremesa indicando que está configurando el módulo Xbee, cuando termina la
configuración envia el carácter “z”, cuando éste lo recibe, le envía un valor entero con el
tiempo de muestreo deseado.
En el bucle del while, se espera a recibir este dato. Una vez recibido, se envía el
carácter “z” al módulo de sobremesa para que sepa que se ha recibido correctamente el
valor del tiempo de muestreo, y después se actualiza ese valor.
A continuación, se activa el sensor, se toma el valor de la Tª, se pone al sensor en
bajo consumo y se envía ese valor por el módulo Xbee.
Se configura el Timer1 para que genere una interrupción cada 500 ms y se entra en
un bucle cerrado infinito.
En este bucle, se mira si la variable muestrea_envia toma el valor 1, si es así, se
saca al módulo Xbee de su modo de bajo consumo, se saca al sensor de su modo de bajo
consumo, se muestrea la Tª, se pone al sensor en modo de bajo consumo, se envía el dato y
se vuelve a poner al módulo Xbee en modo de bajo consumo. Una vez enviado,
muestrea_envia vuelve a valer 0.
La variable muestrea_envia toma el valor 1 cuando el número de interrupciones
realizadas por el timer 1 toma un valor superior a valor de tiempo de muestreo. En ese
momento, la interrupción pone muestrea_envia a 1 y vuelve a inicializar el contador de
interrupciones.
Si muestrea_envia está a 0, el microcontrolador entra en modo de bajo consumo.
Únicamente despertará en la interrupción del Timer1. Volverá a analizar el valor de
muestrea_envia, y si es 0 volverá a modo de bajo consumo,sino, enviará la temperatura.
Este ciclo lo realizará infinitamente.
El código completo del programa se encuentra en el capítulo de Anexos.
3.2
Diagrama de Flujo Módulo 2: Módulo de Sobremesa
Para representar el programa del módulo de sobremesa se ha utilizado 3 diagramas
de flujo. Los dos primeros representan los diagramas de flujo de las interrupciones
provocadas por el microcontrolador, mientras que el último representa el desarrollo
principal del programa.
74
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Interrupción Timer1
Contador_timer1++
Si (alarma=1) y (activar_alarma=1)
Si
Si (contador_alarma=1)
No
Si
No
Dispositivo_no_conectado=1
Si
Contador_alarma=0
Contador_alarma=1
Suena alarma
Desactiva Alarma
Si contador_timer1>180
No
Contador_timer1=0
Cargo Timer1
Fin Interrupción
Figura 43. Diagrama de flujo interrupción TIMER 1
El código es el siguiente:
#int_TIMER1
(temporizador)
//Vector de interrupción por TIMER1
void TIMER1_isr(void)
{
contador_TIMER1++;
if ((alarma==1)&&(activar_alarma==1))
{
if (contador_alarma==1)
{
output_high(PIN_C2);
contador_alarma=0;
}
else
{
if (contador_alarma==0)
{
output_low(PIN_C2);
75
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
contador_alarma=1;
}
}
}
if (contador_TIMER1>180) // 60 segundos (500ms*120=60 segundos)
{
disp_no_conectado=1;
contador_TIMER1=0;
}
set_timer1(0x0BDC);
//Carga el timer1
}
Funcionamiento:
En el programa principal se carga el valor del Timer1 con el valor 0xBDC, con lo
que conseguimos que se realice una interrupción cada 500 ms.
Una vez dentro de la interrupción, se incrementa un contador. Cuando este contador
es mayor al valor de 180, significa que no se ha recibido ningún mensaje del módulo
inalámbrico durante más de 60 segundos, por lo que se da la señal de alarma de dispositivo
no conectado.
A su vez, si tenemos la alarma de temperatura activada, cada 500 ms cambia el
estado del zumbador, de activo a inactivo y viceversa, consiguiendo así una señal de
alarma intermitente.
76
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Inici Interrupción UART
Si (comando=1)
Si
No
dato=getc()
dato=getc()
aux=dato
recibido=1
Fin Interrupción
Figura 44. Diagrama de flujo interrupción UART
El código es el siguiente:
#int_rda
de datos
//Vector de interrupcion de la recepcion
void rda_isr()
//por el usart
{
if (comando==1)
{
if (kbhit())
{
dato[indice]= getc();
//Se lee el dato recibido
indice++;
}
}
if (comando==0)
{
if (kbhit())
{
dato[indice]=getc();
77
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
aux[indice]=dato[indice];
indice++;
recibido=1;
}
}
}
Funcionamiento:
Cuando se provoca la interrupción de la UART, en primer lugar miro se el módulo
se encuentra en modo comando, esto significa que está configurando el módulo Xbee. Si es
así, y tambien se da la condición de que la interrupción es provocada por una entrada de
datos, entonces guardo el dato entrante en la variable datos.
Si el módulo no se encuentra en modo comando, y también se da la condición de
que la interrupción es provocada por una entrada de datos, guardo ese dato en la variable
dato, hago una copia de dato a una variable auxiliar, aux, e indico que se ha recibido un
dato.
78
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Inicio
Inicio LCD
Inicio variables
Inicio Xbee
Inicio Timer1
Si (presiono Menu)
Entro en menu()
Si
No
Si (recibido=1)
Contador_timer1=0
Si
Si (dato[0]=+)
Si
ini_Xbee=0
No
Si (dato[0]=x)
Si
Si (Xbee_ok=1)
sensor_ok=1
No
envio t_muestreo
sensor_ok=0
envio t_muestreo
ini_Xbee=1
ini_Xbee=1
No
sensor_ok=1
Si (dato[0]=z)
Si
No
Si Xbee_ok=1, sensor_ok=1, ini_Xbee=1
escribe en LCD la Tª
Ejecuta Alerta()
Si dispositivo_no_conectado=1
No
Si
escribe en LCD"No conectado"
dispositivo_no_conectado=0
Mientras (True)
Figura 44. Diagrama de flujo programa Principal
79
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
El código es el siguiente:
void main()
{
set_tris_c(00111000);
(Pin7,6,5,4,3,2,1,0)
//0
=
salida,
1
=
entrada
int xbee_ok=0;
int sensor_ok=0;
int ini_xbee=0;
inicio_LCD();
inicio_variables();
inicio_Xbee();
inicio_TIMER1();
do
{
// Si presiona el boton Menu (PIN C3) entra en Menu.
if (input(PIN_C3))
{
if (C3==-1)
C3++;
else{
opciones_menu();
}
}
// Si recibo dato del sensor...
if ((recibido==1))
{
contador_TIMER1=0;
conectado vuelve a cero.
// El contador de sensor no
index=0;
// Si recibido la '+', indica que el Xbee del módulo
sensor se está configurando
if (dato[0]=='+')
ini_xbee=0;
// Si recibido la 'x', envio t_muestreo e indico que el
Xbee del módulo sensor está configurado
if (dato[0]=='x')
{
if (xbee_ok==1)
{
sensor_ok=0;
printf("%d",t_muestreo);
80
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
ini_xbee=1;
}
else
{
xbee_ok=1;
printf("%d",t_muestreo);
ini_xbee=1;
}
for (index=0;index<8;index++)
{dato[index]='f';}
}
// Si recibido la 'z', el módulo sensor ha recibido el
tiempo de muestreo
if (dato[0]=='z')
{
sensor_ok=1;
for (index=0;index<8;index++)
{dato[index]='f';}
}
//Si del módulo sensor el Xbee y el sensor están
configurados, recibo la temperatura y la muestro por pantalla.
if ((ini_xbee==1)&&(xbee_ok==1)&&(sensor_ok==1))
{
lcd_putc("\f
Temp=");
escribe_dato_lcd();
T_real=((aux[0]-48)*10)+(aux[1]-48)+((aux[3]48)*0.1)+((aux[4]-48)*0.01);
alerta();
}
index=0;
T_real=0;
delay_us(15);
recibido=0;
indice=0;
}
if (disp_no_conectado==1)
{
lcd_putc("\fSENSOR NO CONECT\n");
lcd_putc("o BAJA BATERIA\n");
disp_no_conectado=0;
81
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
}
}while (TRUE);
}
Funcionamiento:
En primer lugar, inicio variables, el módulo LCD, el módulo Xbee y el timer 1. Este
último lo configuro para que realice una interrupción cada 500 ms.
Una vez configurado el timer 1 el programa entra en un bucle infinito. Dentro de este
bucle realiza secuencialmente varias acciones:
Si se presiona el botón de menú, entonces entra en la opción menú.
Si se ha recibido un dato, lo compara con varios caracteres:
1- Si es un “+”, significa que el módulo inalámbrico está configurando su módulo
Xbee.
2- Si es una “x” indica que el módulo inalámbrico ha terminado de configurar su
módulo Xbee, en ese momento se envia el valor del tiempo de muestreo que se desea
realizar de la Tª.
3- Si recibe una “z” indica que el módulo inalámbrico ha recibido ese dato
correctamente.
4- Si el módulo inalambrico ha configurado su módulo Xbee y tiene el tiempo de
muestreo, se escribe el dato del sensor por pantalla y se ejecuta la función alerta. Esta
compara la temperatura con un máximo y un mínimo y da una señal de alarma.
Si la variable dispositivo no conectado toma valor 1, significa que hace más de 60
segundos que no se ha recibido un dato del dispositivo inalámbrico, por lo que se muestra
por pantalla del LCD la seña de DISPOSITIVO NO CONECTADO O BAJA BATERÍA.
El código completo se encuentra en el capítulo de Anexos.
82
Monitorización Wireless Constantes Vitalesde un bebé
3.3
Automática y Electrónica Industrial
Batería Módulo 1: Módulo inalámbrico
Para la alimentación del módulo 1 se ha escogido un batería de 3’6V, 2600mA, AA.
Aunque existen en el mercado las pilas tipo botón, de menor tamaño, he considerado
que al ser un prototipo susceptible de mejoras y al que se le podrían añadir nuevos
componentes, la batería a escoger debía estar sobredimensionada.
La duración aproximada de la batería, en funcionamiento continuo, y realizando un
muestreo de temperatura cada minuto sería el siguiente:
Características de la pila:
Tensión: 3’6 V
Capacidad: 2600 mA/h
Elementos conectados y consumos:
Dispositivos
PIC 18LF2525
MCP9804
Xbee
(uA)
Modo Normal Modo bajo consumo
11
2,50
200
0,10
45000
10
Totales (uA) =
45211
12,6
Tabla 16. Consumos en modo normal y bajo consumo
Suponiendo que el usuario desea una muestra de temperatura cada minuto, y que
adquirir esa muestra en el peor de los casos conllevará que los componentes funcionen en
modo normal durante menos de un segundo.
Siendo:
Tmn = tiempo (s) funcionamiento en modo normal
Imn = consumo en modo normal
Tbc = tiempo (s) funcionamiento en modo bajo consumo
Ibc = consumo en modo bajo consumo
Suponemos Tmn = 1 s y Tbc=59s.
El consumo del equipo será:
83
Monitorización Wireless Constantes Vitalesde un bebé
Consumo =
Automática y Electrónica Industrial
Tmn ⋅ Im n + Tbc ⋅ Ibc
(10)
Tmn + Tbc
Sustituyendo obtenemos un consumo de 0’77mA.
Dividiendo la capacidad de la batería (mA/h) entre el consumo (mA), obtenemos las
horas de funcionamiento.
El resultado son 3395 horas, aproximadamente 4 meses y medio.
Esta es la duración del equipo si su funcionamiento fuese continuo. Si el uso
doméstico fuese igual que el de los termómetros, su uso sería esporádico, por lo que el
dispositivo podría durar años con la misma batería.
Suponiendo su uso 10 días al mes, durante 8 horas seguidas hacen un total de 80
horas. Diviendo entre las 3395 horas, nos salen 42 meses, aproximadamente tres años y
medio.
84
Monitorización Wireless Constantes Vitalesde un bebé
3.4
Automática y Electrónica Industrial
Datos experimentales
Se ha comprobado el correcto funcionamiento del sensor y el envio de datos al
módulo de sobremesa comparando la temperatura dada con la obtenida mediante un
termómetro digital de farmacia.
En la siguiente tabla se muestran los resultados obtenidos:
Sensor
36,18
36,00
36,05
36,25
36,34
ºC
Termómetro farmacia
36,2
36
36,1
36,2
36,2
error
0,02
0,00
0,05
-0,05
-0,14
Tabla 17. Comparativa valores obtenidos.
Las muestras se han obtenido en diferentes días.
85
Monitorización Wireless Constantes Vitalesde un bebé
4
Automática y Electrónica Industrial
PLANOS
La relación de planos es la siguiente:
Nº PLANO
Plano nº 1
Plano nº 2
Plano nº 3
Plano nº 4
Plano nº 5
Plano nº 6
Descripción
Esquema Módulo 1: Módulo inalámbrico
Esquema Módulo 2: Módulo de sobremesa
Disposición elementos Módulo 1: Módulo Inalámbrico
Disposición de elementos Módulo 2: Módulo de sobremesa
Fotografía Módulo 1
Fotografía Módulo 2
Tabla 18. Relación de planos.
86
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
V1 + 3V
U7
V1 + 3V
V1 + 3V
SDA
SCL
U6
V1 + 3V
SWITCH
D3
BAT54/SOT
+3 '6V
V1
2
3
4
5
6
7
21
22
23
24
25
26
27
28
9
1
SW5
R11
V1 + 3V
20
RA0/AN0
RC0/T1OSO/T1CKI
RA1/AN1
RC1/T1OSI/CCP2
RA2/AN2/VREFRC2/CCP1
RA3/AN3/VREF+
RC3/SCK/SCL
RA4/T0CKI
RC4/SDI/SDA
RA5/SS/AN4
RC5/SDO
RC6/TX/CK
RB0/INT
RC7/RX/DT
RB1
RB2
OSC2/CLKOUT
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
11
12
13
14
15
16
17
18
R10
10k
19 8
8
7
6
5
MCP9804
SDA
10
V1 + 3V
U5
RX
TX
MCLR/VPP/THV
VDD
SDA Vdd
SCL A0
Alert A1
GND A2
TX
RX
OSC1/CLKIN
10k
R9
10k
SCL
1
2
3
4
1
2
3
Vcc
Dout
Din
GND
GND
C6PIC18LF2525
1nF
9
10
V1 + 3V
SLEEP_RQ
GND
XBee
Nº Plano:
Título:
Escala
Plano 1
Esquema Módulo 1: Módulo inalámbrico
Proyecto:
--:-Fecha:
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
87
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
V2
+9V DC
SWITCH 1
BNC
V2
U2 LM317/TO220
D2
R1
330
2
1
3
BAT48
C1
0.1uF
VIN
1
R8
330
VOUT
2
V1 + 3'2V
ADJ
U3 7805
1
C2
1uF
VIN
3
VOUT
C3
1uF
V3 +5V
C4
10uF
D1
LED
R2
10k
2
LS1
V1 + 3'2V
1
R12
21
22
23
24
25
26
27
28
V3 +5V
R7
9
10k
R6
1
SW4
20
RA0/AN0
RC0/T1OSO/T1CKI
RA1/AN1
RC1/T1OSI/CCP2
RA2/AN2/VREFRC2/CCP1
RA3/AN3/VREF+
RC3/SCK/SCL
RA4/T0CKI
RC4/SDI/SDA
RA5/SS/AN4
RC5/SDO
RC6/TX/CK
RB0/INT
RC7/RX/DT
RB1
RB2
OSC2/CLKOUT
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
SW1
10
RX
MCLR/VPP/THV
VDD
SW2
R3
10k
V1 + 3'2V
OSC1/CLKIN
C5
1nF
10k
11
12
13
14
15
16
17
18
BUZZER
SW3
R4
10k
V1 + 3'2V
R5
10k
V1 + 3'2V
TX
V1 + 3'2V
GND
GND
2
3
4
5
6
7
Q1
NPN BCE
10k
U1
19
8
LCD_PIN OUT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
J2
U4
PIC18LF2525
RX
V1 + 3'2V
V1 + 3'2V
TX
1
2
3
9
10
Nº Plano:
Título:
Escala
Vcc
Dout
Din
SLEEP_RQ
GND
Plano 2
Esquema Módulo 2: Módulo de sobremesa
Proyecto:
--:-Fecha:
XBee
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
88
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Pila 3'6V
Switch
SW5
D3
Port B
C8
R10 R9
Sensor
C6
UART
PIC 18LF2525
Port C
Port A
R11
Xbee
Nº Plano:
Título:
Escala
Plano 3
Disposición elementos Módulo 1: Módulo Inalámbrico
Proyecto:
--:-Fecha:
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
89
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
+9 Vdc
C2
Switch1
+9V
R6
R8
+3'2V
UART
U2
Q1
Port B
R5
Xbee
R4
SW1
SW2
R3
UART
PortA
R12
PortB LCD
R2
U1 PIC 18LF2525
SW4
Port C
D2
C5
C1
D1
+3'2V
R1
SW3
R7
C3
U3
C4
Buzzer
Nº Plano:
Título:
Escala
Plano 4
Disposición de elementos Módulo 2: Módulo de sobremesa
Proyecto:
--:-Fecha:
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
90
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Nº Plano:
Título:
Escala
Plano 5
Fotografía Módulo 1
Proyecto:
--:-Fecha:
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
91
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Nº Plano:
Título:
Escala
Plano 6
Fotografía Módulo 2
Proyecto:
--:-Fecha:
01/06/2011
Monitorización wireless de las constantes
vitales de un bebé
Versión
0
Hoja 1/1
92
Monitorización Wireless Constantes Vitalesde un bebé
5
PRESUPUESTO
5.1
Mediciones
Automática y Electrónica Industrial
Las mediciones son el conjunto de todos los conceptos necesarios para la ejecución del
proyecto, agrupando por separado todas aquellas unidades que sean objeto del mismo
precio.
Las mediciones del proyecto son las siguientes:
MEDICIONES
5.2
ITEM
UNIDAD
DESCRIPCIÓN
CANTIDAD
1
ud
1
2
3
ud
ud
4
ud
5
ud
6
ud
7
8
9
10
11
12
13
ud
ud
ud
ud
ud
ud
ud
14
ud
15
16
17
18
19
ud
ud
ud
ud
ud
20
21
22
23
24
25
26
27
28
ud
ud
ud
ud
ud
ud
ud
ud
Pa
Suministro y montaje de OMNICELL - ER14505S - BATERÍA, LITIO, AA, 3'6V,
2400mAh
Suministro y montaje de KEYSTONE - 2460 - BATTERY HOLDER
Suministro y montaje de microcontrolador de MICROCHIP - PIC18LF2525-I/SP - 8BIT MCU, 48K FLASH, PDIP28
Suministro y montaje de MULTICOMP - 2227MC-28-06-07-F1 - ZÓCALO, DIL, 0.6",
28VÍAS
Suministro y montaje de NKK SWITCHES - GW12RHP - INTERRUPTOR
OSCILANTE, SPDT, ON-ON
Suministro y montaje de ALPS - SKHHARA010 - INTERRUPTOR, TÁCTIL, PCB,
2.55N
Suministro y montaje de Resistencia 10 kΩ, 0'25W, 1%
Suministro y montaje de placa a topos de 160x100mm.
Suministro y montaje de sensor de temperatura MCP9804-E/MS.
Suministro y montaje de placa MSOP a DIP para sensor.
Suministro y montaje de módulo Xbee de MaxStream 1mW con chip antena.
Suministro y montaje de placa DIP para módulo Xbee.
Suministro y montaje de LUMBERG - 1613 20 - HEMBRA, CC, 90 GRADOS,
MONTAJE PCB .
Suministro y montaje de LUMBERG - NES/J 135 - MACHO, BAJA TENSIÓN,
1.35mm.
Suministro y montaje de condensador electrolítico 0,1 uF, 16V.
Suministro y montaje de condensador electrolítico 1 uF, 16V.
Suministro y montaje de condensador electrolítico 10 uF, 16V.
Suministro y montaje de condensador 1 nF.
Suministro y montaje de STMICROELECTRONICS - BAT48 - DIODO, SCHOTTKY,
PEQUEÑA SEÑAL
Suministro y montaje de Resistencia 330 kΩ, 0'25W, 1%
Suministro y montaje de ptenciometro multivuelta 10 kΩ.
Suministro y montaje de Interruptor MSP 121C N/A 650mA Negro
Suministro y montaje de led estandar amarillo
Suministro y montaje de regulador de tensión LM317.
Suministro y montaje de regulador de tensión 7805.
Suministro y montaje de LCD alfanumérico de 2x16
Suministro, montaje y mecanizado de caja plástica.120x60x40mm.
Pequeño material, cables…
1
2
2
2
2
8
1
1
1
2
2
1
1
1
2
1
2
2
2
1
3
1
1
1
1
1
1
Cuadro de Precios Unitarios
En los Precios Unitarios figuran en letra y cifra los precios totales de cada una de las
unidades que aparecen en la obra sin detallar su descomposición.
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
PRECIOS DESCOMPUESTOS
ITEM
UNIDAD
DESCRIPCIÓN
CANTIDAD
Prec. Unitario
TOTAL
1
ud
Suministro y montaje de OMNICELL - ER14505S - BATERÍA, LITIO, AA, 3'6V,
2400mAh
(TRES EUROS Y SESENTA Y CUATRO CÉNTIMOS)
1
3,64
3,64
2
ud
Suministro y montaje de KEYSTONE - 2460 - BATTERY HOLDER
(UN EURO Y CINCUENTA Y TRES CÉNTIMOS)
1
1,53
1,53
3
ud
Suministro y montaje de microcontrolador de MICROCHIP - PIC18LF2525-I/SP 8-BIT MCU, 48K FLASH, PDIP28
(SEIS EUROS Y CUARENTA Y SIETE EUROS)
1
6,47
6,47
4
ud
Suministro y montaje de MULTICOMP - 2227MC-28-06-07-F1 - ZÓCALO, DIL,
0.6", 28VÍAS
(UN EURO Y CINCUENTA Y OCHO CÉNTIMOS)
1
1,58
1,58
5
ud
Suministro y montaje de NKK SWITCHES - GW12RHP - INTERRUPTOR
OSCILANTE, SPDT, ON-ON
(DOS EUROS Y DOS CÉNTIMOS)
1
2,02
2,02
6
ud
Suministro y montaje de ALPS - SKHHARA010 - INTERRUPTOR, TÁCTIL, PCB,
2.55N
(OCHENTA Y NUEVE CÉNTIMOS)
1
0,89
0,89
7
ud
Suministro y montaje de Resistencia 10 kΩ, 0'25W, 1%
(VEINTISIETE CÉNTIMOS)
1
0,27
0,27
8
ud
Suministro y montaje de placa a topos de 160x100mm.
(CUATRO EUROS)
1
4
4
9
ud
Suministro y montaje de sensor de temperatura MCP9804-E/MS.
(CUATRO EUROS Y QUINCE CÉNTIMOS)
1
4,15
4,15
10
ud
Suministro y montaje de placa MSOP a DIP para sensor.
(UN EURO Y CINCUENTA Y CINCO CÉNTIMOS)
1
1,55
1,55
11
ud
Suministro y montaje de módulo Xbee de MaxStream 1mW con chip antena.
1
17
17
(DIECISIETE EUROS)
12
ud
Suministro y montaje de placa DIP para módulo Xbee.
(DOS EUROS Y SETENTA CÉNTIMOS)
1
2,7
2,7
13
ud
Suministro y montaje de LUMBERG - 1613 20 - HEMBRA, CC, 90 GRADOS,
MONTAJE PCB .
(UN EURO Y SETENTA Y NUEVE CÉNTIMOS)
1
1,79
1,79
14
ud
Suministro y montaje de LUMBERG - NES/J 135 - MACHO, BAJA TENSIÓN,
1.35mm.
(UN EURO Y CUARENTA CÉNTIMOS)
1
1,4
1,4
15
ud
Suministro y montaje de condensador electrolítico 0,1 uF, 16V.
(SETENTA Y CINCO CÉNTIMOS)
1
0,75
0,75
16
ud
Suministro y montaje de condensador electrolítico 1 uF, 16V.
(SETENTA Y CINCO CÉNTIMOS)
1
0,75
0,75
17
ud
Suministro y montaje de condensador electrolítico 10 uF, 16V.
(SETENTA Y CINCO CÉNTIMOS)
1
0,75
0,75
18
ud
Suministro y montaje de condensador 1 nF.
(SETENTA Y CINCO CÉNTIMOS)
1
0,75
0,75
19
ud
Suministro y montaje de STMICROELECTRONICS - BAT48 - DIODO,
SCHOTTKY, PEQUEÑA SEÑAL
(SETENTA Y UN CÉNTIMOS)
1
0,71
0,71
20
ud
Suministro y montaje de Resistencia 330 kΩ, 0'25W, 1%
(VEINTISIETE CÉNTIMOS)
1
0,27
0,27
94
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
PRECIOS DESCOMPUESTOS
ITEM
UNIDAD
21
ud
22
5.3
DESCRIPCIÓN
CANTIDAD
Prec. Unitario
TOTAL
Suministro y montaje de potenciometro multivuelta 10 kΩ.
(SESENTA Y UN CÉNTIMOS)
1
0,61
0,61
ud
Suministro y montaje de Interruptor MSP 121C N/A 650mA Negro
(DOS EUROS CON DIECINUEVE CÉNTIMOS)
1
2,19
2,19
23
ud
Suministro y montaje de led estandar amarillo
(CUARENTA Y NUEVE CÉNTIMOS)
1
0,49
0,49
24
ud
Suministro y montaje de regulador de tensión LM317.
(UN EURO CON CINCUENTA Y CINCO CÉNTIMOS)
1
1,55
1,55
25
ud
Suministro y montaje de regulador de tensión 7805.
(UN EURO Y VEINTISIETE CÉNTIMOS)
1
1,27
1,27
26
ud
Suministro y montaje de LCD alfanumérico de 2x16
(SIETE EUROS Y TREINTA Y TRES CÉNTIMOS)
1
7,33
7,33
27
ud
Suministro, montaje y mecanizado de caja plástica.120x60x40mm.
(DIECISEIS CÉNTIMOS)
1
16
16
28
Pa
Pequeño material, cables…
(CUATRO EUROS Y SEIS CÉNTIMOS)
1
4,6
4,6
Cuadro de Precios Descompuestos
En el cuadro de precios descompuestos se detalla la descomposición de cada uno de los
precios que figura en el Cuadro de Precios Unitarios.
95
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
PRECIOS DESCOMPUESTOS
ITEM
UNIDAD
DESCRIPCIÓN
CANTIDAD
Prec. Unitario
TOTAL
1
ud
Suministro y montaje de OMNICELL - ER14505S - BATERÍA, LITIO, AA, 3'6V,
2400mAh
Material:
OMNICELL - ER14505S - BATERÍA, LITIO, AA, 3'6V, 2400mAh
Mano de obra:
Horas trabajadas
1
3,64
3,64
1
3,64
3,64
0
12
0
Total
3,64
1
1,53
1,53
1
0,93
0,93
0,05
12
0,6
Total
1,53
2
6,47
12,94
1
6,47
6,47
0
12
0
Total
6,47
2
1,58
3,16
1
0,98
0,98
0,05
12
0,6
Total
1,58
2
2,02
4,04
1
1,42
1,42
0,05
12
0,6
Total
2,02
2
0,89
1,78
1
0,29
0,29
0,05
12
0,6
Total
0,89
8
0,27
2,16
1
0,03
0,03
0,02
12
0,24
Total
0,27
1
4
4
1
4
4
0
12
0
Total
4
ud
hr
2
ud
ud
hr
3
ud
ud
hr
4
ud
ud
hr
5
ud
ud
hr
6
ud
ud
hr
7
ud
ud
hr
8
ud
ud
hr
Suministro y montaje de KEYSTONE - 2460 - BATTERY HOLDER
Material:
KEYSTONE - 2460 - BATTERY HOLDER
Mano de obra:
Horas trabajadas
Suministro y montaje de microcontrolador de MICROCHIP - PIC18LF2525-I/SP 8-BIT MCU, 48K FLASH, PDIP28
Material:
MICROCHIP - PIC18LF2525-I/SP - 8-BIT MCU, 48K FLASH, PDIP28
Mano de obra:
Horas trabajadas
Suministro y montaje de MULTICOMP - 2227MC-28-06-07-F1 - ZÓCALO, DIL,
0.6", 28VÍAS
Material:
MULTICOMP - 2227MC-28-06-07-F1 - ZÓCALO, DIL, 0.6", 28VÍAS
Mano de obra:
Horas trabajadas
Suministro y montaje de NKK SWITCHES - GW12RHP - INTERRUPTOR
OSCILANTE, SPDT, ON-ON
Material:
NKK SWITCHES - GW12RHP - INTERRUPTOR OSCILANTE, SPDT, ON-ON
Mano de obra:
Horas trabajadas
Suministro y montaje de ALPS - SKHHARA010 - INTERRUPTOR, TÁCTIL, PCB,
2.55N
Material:
ALPS - SKHHARA010 - INTERRUPTOR, TÁCTIL, PCB, 2.55N
Mano de obra:
Horas trabajadas
Suministro y montaje de Resistencia 10 kΩ, 0'25W, 1%
Material:
Resistencia 10 kΩ, 0'25W, 1%
Mano de obra:
Horas trabajadas
Suministro y montaje de placa a topos de 160x100mm.
Material:
placa a topos de 160x100mm.
Mano de obra:
Horas trabajadas
96
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
PRECIOS DESCOMPUESTOS
ITEM
UNIDAD
9
ud
ud
hr
10
ud
ud
hr
11
ud
ud
hr
12
ud
ud
hr
13
ud
ud
hr
14
ud
ud
hr
15
ud
ud
hr
16
ud
ud
hr
17
ud
ud
hr
DESCRIPCIÓN
Suministro y montaje de sensor de temperatura MCP9804-E/MS.
Material:
sensor de temperatura MCP9804-E/MS.
Mano de obra:
Horas trabajadas
Suministro y montaje de placa MSOP a DIP para sensor.
Material:
placa MSOP a DIP para sensor.
Mano de obra:
Horas trabajadas
Suministro y montaje de módulo Xbee de MaxStream 1mW con chip antena.
Material:
módulo Xbee de MaxStream 1mW con chip antena.
Mano de obra:
Horas trabajadas
Suministro y montaje de placa DIP para módulo Xbee.
Material:
placa DIP para módulo Xbee.
Mano de obra:
Horas trabajadas
Suministro y montaje de LUMBERG - 1613 20 - HEMBRA, CC, 90 GRADOS,
MONTAJE PCB .
Material:
LUMBERG - 1613 20 - HEMBRA, CC, 90 GRADOS, MONTAJE PCB .
Mano de obra:
Horas trabajadas
Suministro y montaje de LUMBERG - NES/J 135 - MACHO, BAJA TENSIÓN,
1.35mm.
Material:
LUMBERG - NES/J 135 - MACHO, BAJA TENSIÓN, 1.35mm.
Mano de obra:
Horas trabajadas
Suministro y montaje de condensador electrolítico 0,1 uF, 16V.
Material:
condensador electrolítico 0,1 uF, 16V.
Mano de obra:
Horas trabajadas
Suministro y montaje de condensador electrolítico 1 uF, 16V.
Material:
condensador electrolítico 1 uF, 16V.
Mano de obra:
Horas trabajadas
Suministro y montaje de condensador electrolítico 10 uF, 16V.
Material:
condensador electrolítico 10 uF, 16V.
Mano de obra:
Horas trabajadas
CANTIDAD
Prec. Unitario
TOTAL
1
4,15
4,15
1
1,75
1,75
0,2
12
2,4
Total
4,15
1
1,55
1,55
1
0,95
0,95
0,05
12
0,6
Total
1,55
2
17
34
1
16,4
16,4
0,05
12
0,6
Total
17
2
2,7
5,4
1
2,1
2,1
0,05
12
0,6
Total
2,7
1
1,79
1,79
1
1,19
1,19
0,05
12
0,6
Total
1,79
1
1,4
1,4
1
0,8
0,8
0,05
12
0,6
Total
1,4
1
0,75
0,75
1
0,15
0,15
0,05
12
0,6
Total
0,75
2
0,75
1,5
1
0,15
0,15
0,05
12
0,6
Total
0,75
1
0,75
0,75
1
0,15
0,15
0,05
12
0,6
Total
0,75
97
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
PRECIOS DESCOMPUESTOS
ITEM
UNIDAD
18
ud
ud
hr
19
ud
ud
hr
20
ud
ud
hr
21
ud
ud
hr
22
ud
ud
hr
23
ud
ud
hr
24
ud
ud
hr
25
ud
ud
hr
26
ud
ud
hr
27
ud
ud
hr
28
Pa
ud
hr
DESCRIPCIÓN
Suministro y montaje de condensador 1 nF.
Material:
condensador 1 nF.
Mano de obra:
Horas trabajadas
Suministro y montaje de STMICROELECTRONICS - BAT48 - DIODO,
SCHOTTKY, PEQUEÑA SEÑAL
Material:
STMICROELECTRONICS - BAT48 - DIODO, SCHOTTKY, PEQUEÑA SEÑAL
Mano de obra:
Horas trabajadas
Suministro y montaje de Resistencia 330 kΩ, 0'25W, 1%
Material:
Resistencia 330 kΩ, 0'25W, 1%
Mano de obra:
Horas trabajadas
Suministro y montaje de potenciometro multivuelta 10 kΩ.
Material:
potenciometro multivuelta 10 kΩ.
Mano de obra:
Horas trabajadas
Suministro y montaje de Interruptor MSP 121C N/A 650mA Negro
Material:
Interruptor MSP 121C N/A 650mA Negro
Mano de obra:
Horas trabajadas
Suministro y montaje de led estandar amarillo
Material:
led estandar amarillo
Mano de obra:
Horas trabajadas
Suministro y montaje de regulador de tensión LM317.
Material:
regulador de tensión LM317.
Mano de obra:
Horas trabajadas
Suministro y montaje de regulador de tensión 7805.
Material:
regulador de tensión 7805.
Mano de obra:
Horas trabajadas
Suministro y montaje de LCD alfanumérico de 2x16
Material:
LCD alfanumérico de 2x16
Mano de obra:
Horas trabajadas
Suministro, montaje y mecanizado de caja plástica.120x60x40mm.
Material:
caja plástica.120x60x40mm.
Mano de obra:
Horas trabajadas
Pequeño material, cables…
Material:
Cable, conectores, estaño …
Mano de obra:
Horas trabajadas
CANTIDAD
Prec. Unitario
TOTAL
2
0,75
1,5
1
0,15
0,15
12
0,6
Total
0,75
2
0,71
1,42
1
0,11
0,11
0,05
12
0,6
Total
0,71
0,05
2
0,27
0,54
1
0,03
0,03
0,02
12
0,24
Total
0,27
1
0,61
0,61
1
0,25
0,25
0,03
12
0,36
Total
0,61
3
2,19
6,57
1
1,95
1,95
0,02
12
0,24
Total
2,19
1
0,49
0,49
1
0,25
0,25
0,02
12
0,24
Total
0,49
1
1,55
1,55
1
0,95
0,95
0,05
12
0,6
Total
1,55
1
1,27
1,27
1
0,67
0,67
0,05
12
0,6
Total
1,27
1
7,33
7,33
1
6,13
6,13
0,1
12
1,2
Total
7,33
16
16
1
1
4
4
1
12
12
Total
16
1
4,6
4,6
1
4
4
0,05
12
0,6
Total
4,6
98
Monitorización Wireless Constantes Vitalesde un bebé
5.4
Automática y Electrónica Industrial
Presupuesto
El presupuesto es el siguiente:
ITEM UNIDAD
DESCRIPCIÓN
CANTIDAD PRECIO UNITARIO PRECIO TOTAL
Módulo 1 : Equipo a batería con sensor de
temperatura
1
ud
2
ud
3
ud
4
ud
5
ud
6
ud
7
ud
8
ud
9
10
11
ud
ud
ud
12
13
ud
ud
14
15
ud
Pa
Suministro y montaje de OMNICELL - ER14505S - BATERÍA,
LITIO, AA, 3'6V, 2400mAh
Suministro y montaje de KEYSTONE - 2460 - BATTERY
HOLDER
Suministro y montaje de microcontrolador de MICROCHIP PIC18LF2525-I/SP - 8-BIT MCU, 48K FLASH, PDIP28
Suministro y montaje de MULTICOMP - 2227MC-28-06-07-F1
- ZÓCALO, DIL, 0.6", 28VÍAS
Suministro y montaje de NKK SWITCHES - GW12RHP INTERRUPTOR OSCILANTE, SPDT, ON-ON
Suministro y montaje de condensador electrolítico 10uF, 16V.
Suministro y montaje de STMICROELECTRONICS - BAT48 DIODO, SCHOTTKY, PEQUEÑA SEÑAL
Suministro y montaje de ALPS - SKHHARA010 INTERRUPTOR, TÁCTIL, PCB, 2.55N
Suministro y montaje de Resistencia 10 kΩ, 0'25W, 1%
Suministro y montaje de placa a topos de 160x100mm.
Suministro y montaje de sensor de temperatura MCP9804E/MS.
Suministro y montaje de placa MSOP a DIP para sensor.
Suministro y montaje de módulo Xbee de MaxStream 1mW
con chip antena.
Suministro y montaje de placa DIP para módulo Xbee.
Pequeño material, cables…
1
3,64
3,64
1
1,53
1,53
1
6,47
6,47
1
1,58
1,58
1
2,02
2,02
1
0,75
0,75
1
0,71
0,71
1
0,89
0,89
3
0,5
1
0,27
4
4,15
0,81
2
4,15
1
1
1,55
17
1,55
17
1
0,5
2,70
4,6
2,7
2,3
TOTAL MÓDULO 1
48,1
Módulo 2 : Equipo de sobremesa
1
ud
ud
Suministro y montaje de LUMBERG - 1613 20 - HEMBRA,
CC, 90 GRADOS, MONTAJE PCB .
Suministro y montaje de LUMBERG - NES/J 135 - MACHO,
BAJA TENSIÓN, 1.35mm.
Suministro y montaje de microcontrolador de MICROCHIP PIC18LF2525-I/SP - 8-BIT MCU, 48K FLASH, PDIP28
Suministro y montaje de MULTICOMP - 2227MC-28-06-07-F1
- ZÓCALO, DIL, 0.6", 28VÍAS
Suministro y montaje de NKK SWITCHES - GW12RHP INTERRUPTOR OSCILANTE, SPDT, ON-ON
Suministro y montaje de condensador electrolítico 0,1 uF,
16V.
Suministro y montaje de condensador electrolítico 1 uF, 16V.
2
ud
3
ud
4
ud
5
ud
6
ud
7
1
1,79
1,79
1
1,4
1,4
1
6,47
6,47
1
1,58
1,58
1
2,02
2,02
1
0,75
0,75
2
0,75
1,5
8
ud
Suministro y montaje de condensador electrolítico 10 uF, 16V.
1
0,75
0,75
9
10
ud
ud
Suministro y montaje de condensador 1 nF.
Suministro y montaje de STMICROELECTRONICS - BAT48 DIODO, SCHOTTKY, PEQUEÑA SEÑAL
Suministro y montaje de ALPS - SKHHARA010 INTERRUPTOR, TÁCTIL, PCB, 2.55N
Suministro y montaje de Resistencia 330 kΩ, 0'25W, 1%
Suministro y montaje de Resistencia 10 kΩ, 0'25W, 1%
Suministro y montaje de ptenciometro multivuelta 10 kΩ.
Suministro y montaje de placa a topos de 160x100mm.
Suministro y montaje de Interruptor MSP 121C N/A 650mA
Negro
Suministro y montaje de led estandar amarillo
Suministro y montaje de regulador de tensión LM317.
Suministro y montaje de regulador de tensión 7805.
Suministro y montaje de LCD alfanumérico de 2x16
Suministro y montaje de módulo Xbee de MaxStream 1mW
con chip antena.
Suministro y montaje de placa DIP para módulo Xbee.
Suministro,
montaje
y
mecanizado
de
caja
plástica.120x60x40mm.
Pequeño material, cables…
1
1
0,75
0,71
0,75
0,71
11
ud
1
0,89
0,89
12
13
14
15
16
ud
ud
ud
ud
ud
2
5
1
1
3
0,27
0,27
0,61
4
2,19
0,54
1,35
0,61
4
6,57
17
18
19
20
21
ud
ud
ud
ud
ud
1
1
1
1
1
0,49
1,55
1,27
7,33
17
0,49
1,55
1,27
7,33
17
22
23
ud
ud
1
1
2,70
16
2,7
16
24
Pa
0,5
4,6
2,3
TOTAL MÓDULO 2
80,32
TOTAL PRESUPUESTO
128,42
99
Monitorización Wireless Constantes Vitalesde un bebé
5.5
Automática y Electrónica Industrial
Resumen del Presupuesto
El presupuesto para la ejecución de los prototipos incluyendo el material y la mano de obra
de montaje asciende a 128’42 €.
(CIENTO VEINTIOCHO EUROS CON CUARENTA Y DOS CÉNTIMOS)
No se ha contemplado en el presupuesto las horas de diseño y programación de los
prototipos.
En caso de su fabricación a gran escala el precio de montaje descendería notablemente
debido sobre todo a:
-
Un mejor precio en la compra de los materiales. La compra de grandes cantidades
provoca que los proveedores ajustan más sus precios.
Por ejemplo:
PIC 18LF2525 :
1 ud 6’47 euros
100 ud 4’07 euros
Se logra una rebaja en el precio de compra de un 37%.
-
Disminución de la mano de obra en la fabricación. En un proceso totalmente
automatizado la mano de obra para la fabricación sería prácticamente nula.
Por ejemplo:
En este proyecto, la mano de obra imputada al total del presupuesto hace
incrementar el total en un 26’7%.
Considero que una producción en masa podría significar una reducción del
presupuesto en un 53%, alcanzando un total de unos 59 euros los dos módulos.
100
Monitorización Wireless Constantes Vitalesde un bebé
6
Automática y Electrónica Industrial
CONCLUSIONES
El objetivo principal de este proyecto ha sido realizar un sistema de monitorización de
la temperatura para bebes wireless. Este tipo de equipos no existen en el mercado actual a
nivel doméstico, aunque si se pueden encontrar aplicaciones específicas a nivel
hospitalario.
Como objetivos secundarios se pretendía conseguir que los equipos diseñados tuviesen
un coste, consumo de energía y tamaño mínimo.
El proyecto ha presentado dos fases bien diferenciadas. Una primera etapa en la que se
ha tenido que decidir la estructura de los módulos, se ha definido el funcionamiento de
ambos y se han escogido los componentes adecuados. Y una segunda etapa en la que se ha
realizado la implementación en una versión de prototipo de los módulos y se ha
comprobado su funcionamiento.
Se ha diseñado e implementado un módulo inalámbrico, el cual dispone de un sensor
de temperatura y funciona alimentado mediante batería, y un módulo de sobremesa,
encargado de mostrar la lectura de temperatura y realizar un aviso sonoro en caso de
alarma. En el módulo inalámbrico la gestión de la energía ha sido un factor determinante
ya que de ello dependía la duración de la batería.
Para la comunicación wireles se ha utilizado la tecnología Zigbee. Esta tecnología ha
sido diseñada para aplicaciones de bajo consumo y baja tasa de transferencia de datos, por
lo que la hacía ideal para esta aplicación. Se ha profundizado en la comunicación mediante
esta tecnología así como en la programación de los microcontroladores en lenguaje C.
Experimentalmente se ha comprobado el correcto funcionamiento del sensor
comparando sus medidas con un termómetro digital de farmacia. También se ha
comprobado el rango de distancia alzanzado en la comunicación, siendo los resultados
satisfactorios y mostrados en el proyecto.
Se puede afirmar que se ha alcanzado el objetivo principal del proyecto de manera
satisfactoria.
La posible producción de estos módulos a nivel comercial supondría rellenar un hueco
en el mercado de los termómetros todavía sin explotar. Gracias a estos módulos, se puede
mejorar el control de la temperatura en bebés. Por extensión, también se podría aplicar a
adultos enfermos o con minusvalías.
Durante el desarrollo del proyecto han surgido múltiples aplicaciones además de la
inicial y posibles mejoras.
101
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
Como posibles mejoras y aplicaciones indicar que la tecnología Zigbee permite la
realización de redes de comunicación con un único módulo coordinador, en nuestro caso el
módulo de sobremesa. Con este tipo de red, se podría monitorizar desde enfermería a todos
los pacientes de una planta hospitalaria de manera continua, o una madre podría controlar a
todos sus hijos.
Otras posibles mejoras sería la incorporación de nuevos sensores capaces de medir el
ritmo cardíaco, el ritmo respiratorio e incluso la tensión sanguínea. Con estos nuevos
sensores se podría monitorizar las principales constantes vitales de bebés, de enfermos, o
incluso de deportistas de élite.
La muerte súbita causa múltiples muertes en los bebés así como en los deportistas de
élite. Los módulos multisensor podrían avisar al personal médico cuando alguna de las
constantes vitales comenzasen a fallar, anticipándose el personal médico a la muerte súbita.
Considero que queda justificada la necesidad de continuar desarrollando los prototipos
diseñados, mejorándolos en tamaño, precio y operatividad.
A nivel personal he decidido realizar este proyecto ya que considero que una de las
vías hacia una mejor atención sanitaria tanto a nivel hospitalario como doméstico, se
realiza a través de la prevención y la vigilancia estrecha de las constantes vitales de los
bebés y pacientes.
Por este motivo he pretendido desarrollar una herramienta que facilite a los padres la
vigilancia de sus bebés cuando estos se encuentren enfermos.
102
Monitorización Wireless Constantes Vitalesde un bebé
7
ANEXOS
7.1
Programa en CCS Módulo 1.
Automática y Electrónica Industrial
#include <18F2525.h>
#device adc=10//La resolución del módulo A/D es de 8 bits.
// SIN RELOJ EXTERNO
#fuses INTRC_IO,PUT,BROWNOUT,NOWDT,NOPROTECT,NOLVP,NOMCLR,NOLVP
#use delay(clock=4000000)
#use RS232(BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7)
#use i2c(master,sda=PIN_C4,scl=PIN_C3,FORCE_HW)
// LIBRERIAS
#include <stdlib.h>
// DECLARO FUNCIONES
void inicio_Xbee();
void inicio_TIMER1();
void muestrea();
void envia();
void convierte_a_T();
// DECLARO VARIABLES
int contador_TIMER1;
int muestrea_envia;
int indice;
int Upper_data;
int Low_data;
float T;
int dato_recibido;
char dato[8];
char aux[8];
int tiempo_de_muestreo;
int indi;
// DECLARO REGISTROS
#byte OSCCON=0xFD3
//Registro configuración modo sleep()
#bit IDLE=OSCCON.7
#bit SCS1=OSCCON.1
#bit SCS2=OSCCON.0
// DECLARO INTERRUPCIONES
103
Monitorización Wireless Constantes Vitalesde un bebé
#int_rda
Automática y Electrónica Industrial
//Vector de interrupcion de la recepcion de datos
void rda_isr(void)
//por el usart
{
if (kbhit())
{
dato[indi]=getc();
aux[indi]=dato[indi];
indi++;
dato_recibido=1;
;
}
}
#int_TIMER1
(temporizador)
//Vector
de
interrupción
por
TIMER1
void TIMER1_isr(void)
{
contador_TIMER1++;
if
(contador_TIMER1>tiempo_de_muestreo)
(500ms*tiempo_de_muestreo =xx segundos)
//
500msx60=30s
segundos
{
muestrea_envia=1;
contador_TIMER1=0;
}
set_timer1(0x0BDC);
//Carga el timer1
}
//FUNCION PRINCIPAL
void main()
{
dato_recibido=0;
indice=0;
indi=0;
inicio_Xbee();
while (dato_recibido==0)
{}
printf("z");
configuracion
// señal para el coordinador de fin de
delay_ms(1000);
tiempo_de_muestreo=((aux[0]-48)*10)+(aux[1]-48);
delay_ms(1000);
muestrea();
104
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
envia();
inicio_TIMER1();
do
{
if (muestrea_envia==1)
{
output_low(PIN_C5);
XBee, si C5=0, lo despierta
delay_ms(20);
espero 20 ms
// PIN_C5 está conectado al SLEEP_RQ del
// El Xbee tarda 13'2 ms en despertarse,
muestrea();
envia();
output_high(PIN_C5); // Si C5=1->SLEEP_RQ=1, Xbee entra en modo
sleep (<10 uA de consumo)
muestrea_envia=0;
}
else
{
SCS1=1;
SCS2=0;
IDLE=1;
sleep();
// Duermo el microcontrolador pero dejo
funcionando el TIMER1, cuando provoque interrupción despierta.
}
}while (TRUE);
}
//FUNCIONES
void convierte_a_T()
{
//T = Temperatura ambiente ( ºC)
T=0;
if (bit_test(Low_data,0))
{T=T+0.0625;}
if (bit_test(Low_data,1))
{T=T+0.125;}
if (bit_test(Low_data,2))
{T=T+0.25;}
if (bit_test(Low_data,3))
{T=T+0.5;}
105
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
if (bit_test(Low_data,4))
{T=T+1;}
if (bit_test(Low_data,5))
{T=T+2;}
if (bit_test(Low_data,6))
{T=T+4;}
if (bit_test(Low_data,7))
{T=T+8;}
if (bit_test(Upper_data,0))
{T=T+16;}
if (bit_test(Upper_data,1))
{T=T+32;}
if (bit_test(Upper_data,2))
{T=T+64;}
if (bit_test(Upper_data,3))
{T=T+128;}
}
void envia()
{
printf("%2.2f",T);
printf("f");
}
void muestrea()
{
// Dirección sensor - lectura : 0x3F
// Dirección sesnor - escritura: 0x3E
// Config register - 0x01
i2c_start();
// Inicio comunicación
i2c_write(0x3E);
// Dirección escritura
i2c_write(0x01);
// Dirección Conig register
i2c_write(0x00);
// Sensor en modo continuo
i2c_write(0x00);
i2c_stop();
delay_ms(5);
// Fin trama
// Resolution register - 0x08
i2c_start();
// Inicio comunicación
i2c_write(0x3E);
// Dirección escritura
106
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
i2c_write(0x08);
// Dirección Conig register
i2c_write(0x03);
// Resolucion: 0'0625ºC
i2c_stop();
// Fin trama
// Espero conversión
delay_ms(350);
// Leo conversión
i2c_start(); // send START command
i2c_write (0x3E); //WRITE Command (see Section 4.1.4)
i2c_write(0x05); // Write TA Register Address
i2c_start(); //Repeat START
i2c_write(0x3F); // READ Command (see Section 4.1.4)
Upper_data = i2c_read(1); // READ 8 bits
Low_data = i2c_read(0); // READ 8 bits
i2c_stop(); // send STOP command
delay_ms(5);
// Lectura realizada, duermo el sensor.
i2c_start();
// Inicio comunicación
i2c_write(0x3E);
// Dirección escritura
i2c_write(0x01);
// Dirección Conig register
i2c_write(0x01);
// Sensor en modo shutdown
i2c_write(0x00);
i2c_stop();
delay_ms(5);
// Convierto dato a grados centígrados
convierte_a_T();
}
void inicio_TIMER1()
{
contador_TIMER1=0;
muestrea_envia=0;
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
preescaler= 8
enable_interrupts(INT_TIMER1);
particular del TIMER1
enable_interrupts(GLOBAL);
globales
//Setup timer: Reloj interno,
//Habilito interrupción
//Habilito interrupciones
// Desbordamiento_TIMER1=(4/frecuencia_oscilador)*Preescaler*(65536-TMR1)
// Provocamos un desbordamiento del TIMER1 cada 500 ms.
107
Monitorización Wireless Constantes Vitalesde un bebé
set_timer1(0x0BDC);//Carga
hexadecimal
del
TMR1
Automática y Electrónica Industrial
con
el
valor
3036,
0x0BDC
en
}
void inicio_Xbee() //Configuro Xbee
{
enable_interrupts(int_rda);
enable_interrupts(global);
//Entro en modo comando
printf("+++");
delay_ms(1500);
//La dirección
del módulo es BBBB
printf("ATMYBBBB\r");
delay_ms(1500);
// La dirección del módulo de destino es 0xAAAA
printf("ATDLAAAA\r");
delay_ms(1500);
// La PAN ID es 0x3332
printf("ATID3332\r");
delay_ms(1500);
// Comunicación entre el HOST y el MODEM es 9600 baudios
printf("ATBD3\r");
delay_ms(1500);
// Se elige el canal 0x0C, canal 12.
printf("ATCHC\r");
delay_ms(1500);
// Se elige MODO SLEEP 1 controlado por un pin (1=sleep / 0=wake up).
printf("ATSM1\r");
delay_ms(1500);
// Graba todos los parámetros en memoria
printf("ATWR\r");
delay_ms(1500);
// Sale del modo comando
printf("ATCN\r");
delay_ms(3000);
printf("x");
configuracion
// señal para el coordinador de fin de
}
108
Monitorización Wireless Constantes Vitalesde un bebé
7.2
Automática y Electrónica Industrial
Programa en CCS Módulo 2.
#include <18F2525.h>
// CON RELOJ EXTERNO
//#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT,MCLR
// SIN RELOJ EXTERNO
#fuses INTRC_IO,NOPUT,NOBROWNOUT,NOWDT,NOPROTECT,NOLVP,MCLR,NOLVP
#use delay(clock=4000000)
#use RS232(BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7)
// Conexiones uC con el LCD
#define LCD_RS_PIN
PIN_B7
#define LCD_RW_PIN
PIN_B6
#define LCD_ENABLE_PIN
PIN_B5
#define LCD_DATA4
PIN_B4
#define LCD_DATA5
PIN_B3
#define LCD_DATA6
PIN_B2
#define LCD_DATA7
PIN_B1
// LIBRERIAS
#include "lcd_mod.c"
#include <stdlib.h>
#include <internal_eeprom.c>
// Valores predeterminados
float const Tmax_default_valor=38.00;
máxima temperatura para alarma
// valor predeterminado como
float const Tmin_default_valor=35.50;
minima temperatura para alarma
// valor predeterminado como
int const Sample_default_valor=60;
// valor mediante el cual se
configura el tiempo de muestreo 60*500ms=30s
int const Tmax_default_adress=0x0A;
// dirección de EEPROM donde se
guarda la Tª maxima elegida por el usuario
int const Tmin_default_adress=0x14;
// dirección de EEPROM donde se
guarda la Tª minima elegida por el usuario
int const Sample_default_adress=0x1E;
se guarda el tiempo de muestreo de la Tª
// dirección de EEPROM donde
long const pulsacion=300;
evitar rebotes en los pulsadores
// tiempo en ms que espera para
int const primer_adress=0x28;
programa se ejecuta por primera vez
// direccion donde guardo si el
// DECLARO FUNCIONES
109
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
void inicio_LCD();
void inicio_Xbee();
void inicio_variables();
void escribe_dato_LCD();
void opciones_menu();
void t_config();
void inicio_TIMER1();
void alerta();
void activar_al();
void termometro();
// DECLARO VARIABLES
char dato[8];
char aux[8];
int fin_mensaje;
int fin;
int respuesta;
int indice;
int index;
int comando;
int temperatura;
int recibido;
int menu;
float T_max;
float T_min;
float T_real;
int alarma;
int aceptar_opcion;
int salir;
int temp_maxima;
long C3;
int contador_TIMER1;
int disp_no_conectado;
int comienza;
int contador_alarma;
int activar_alarma;
int t_muestreo;
int ini_xbee;
// DECLARO INTERRUPCIONES
110
Monitorización Wireless Constantes Vitalesde un bebé
#int_TIMER1
(temporizador)
//Vector
Automática y Electrónica Industrial
de
interrupción
por
TIMER1
void TIMER1_isr(void)
{
contador_TIMER1++;
if ((alarma==1)&&(activar_alarma==1))
{
if (contador_alarma==1)
{
output_high(PIN_C2);
contador_alarma=0;
}
else
{
if (contador_alarma==0)
{
output_low(PIN_C2);
contador_alarma=1;
}
}
}
if (contador_TIMER1>180) // 60 segundos (500ms*120=60 segundos)
{
disp_no_conectado=1;
contador_TIMER1=0;
}
set_timer1(0x0BDC);
//Carga el timer1
}
#int_rda
datos
void rda_isr()
//Vector de interrupcion de la recepcion de
//por el usart
{
if (comando==1)
{
if (kbhit())
{
dato[indice]= getc();
//Se lee el dato recibido
indice++;
}
111
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
}
if (comando==0)
{
if (kbhit())
{
dato[indice]=getc();
aux[indice]=dato[indice];
indice++;
recibido=1;
}
}
}
//PROGRAMA PRINCIPAL
void main()
{
set_tris_c(00111000);
//0 = salida, 1 = entrada (Pin7,6,5,4,3,2,1,0)
int xbee_ok=0;
int sensor_ok=0;
int ini_xbee=0;
inicio_LCD();
inicio_variables();
inicio_Xbee();
inicio_TIMER1();
do
{
// Si presiona el boton Menu (PIN C3) entra en Menu.
if (input(PIN_C3))
{
if (C3==-1)
C3++;
else{
opciones_menu();
}
}
// Si recibo dato del sensor...
if ((recibido==1))
{
contador_TIMER1=0;
vuelve a cero.
// El contador de sensor no conectado
112
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
index=0;
// Si recibido la '+', indica que el Xbee del módulo sensor
se está configurando
if (dato[0]=='+')
ini_xbee=0;
// Si recibido la 'x', envio t_muestreo e indico que el Xbee
del módulo sensor está configurado
if (dato[0]=='x')
{
if (xbee_ok==1)
{
sensor_ok=0;
printf("%d",t_muestreo);
ini_xbee=1;
}
else
{
xbee_ok=1;
printf("%d",t_muestreo);
ini_xbee=1;
}
for (index=0;index<8;index++)
{dato[index]='f';}
}
// Si recibido la 'z', el módulo sensor ha recibido el tiempo
de muestreo
if (dato[0]=='z')
{
sensor_ok=1;
for (index=0;index<8;index++)
{dato[index]='f';}
}
//Si del módulo sensor el Xbee y el sensor
configurados, recibo la temperatura y la muestro por pantalla.
están
if ((ini_xbee==1)&&(xbee_ok==1)&&(sensor_ok==1))
{
lcd_putc("\f
Temp=");
escribe_dato_lcd();
T_real=((aux[0]-48)*10)+(aux[1]-48)+((aux[3]48)*0.1)+((aux[4]-48)*0.01);
alerta();
113
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
}
index=0;
T_real=0;
delay_us(15);
recibido=0;
indice=0;
}
if (disp_no_conectado==1)
{
lcd_putc("\fSENSOR NO CONECT\n");
lcd_putc("o BAJA BATERIA\n");
disp_no_conectado=0;
}
}while (TRUE);
}
// FUNCIONES
void alerta()
{
if (T_real<T_min)
{
alarma=1;
lcd_putc("\n
TEMP.BAJA!");
}
else
{
if (T_real>t_max)
{
alarma=1;
lcd_putc("\n
TEMP.ALTA!");
}
else
{
alarma=0;
lcd_putc("\n
TEMP.OK");
}
}
}
114
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
void inicio_TIMER1()
{
contador_TIMER1=0;
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
preescaler= 8
//Setup timer: Reloj interno,
enable_interrupts(INT_TIMER1);
particular del TIMER1
//Habilito interrupción
enable_interrupts(GLOBAL);
globales
//Habilito interrupciones
// Desbordamiento_TIMER1=(4/frecuencia_oscilador)*Preescaler*(65536-TMR1)
// Provocamos un desbordamiento del TIMER1 cada 500 ms.
set_timer1(0x0BDC);//Carga
hexadecimal
del
TMR1
con
el
valor
3036,
0x0BDC
en
}
void inicio_LCD()
{
delay_ms(1000);
lcd_init();
lcd_putc("\fXBee Coordinador\n");
delay_ms(2000);
}
void inicio_Xbee()
{
lcd_putc("\fSetup: uC-->XBee\n");
delay_ms(1000);
enable_interrupts(int_rda);
enable_interrupts(global);
comando=1;
//Entro en modo comando
printf("+++");
delay_ms(1500);
printf (lcd_putc,"\f%d)+++\n ",comando);
indice=0;
escribe_dato_LCD();
//La dirección
del módulo es AAAA
printf("ATMYAAAA\r");
delay_ms(1500);
printf (lcd_putc,"\fATMYAAAA\n");
115
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
indice=0;
escribe_dato_LCD();
// La dirección del módulo de destino es 0xBBBB
printf("ATDLBBBB\r");
delay_ms(1500);
printf (lcd_putc,"\fATDLBBBB\n");
indice=0;
escribe_dato_LCD();
// La PAN ID es 0x3332
printf("ATID3332\r");
delay_ms(1500);
printf (lcd_putc,"\fATID3332\n");
indice=0;
escribe_dato_LCD();
// Comunicación entre el HOST y el MODEM es 9600 baudios
printf("ATBD3\r");
delay_ms(1500);
printf (lcd_putc,"\fATBD3\n");
indice=0;
escribe_dato_LCD();
// Se elige el canal 0x0C, canal 12.
printf("ATCHC\r");
delay_ms(1500);
printf (lcd_putc,"\fATCHC\n");
indice=0;
escribe_dato_LCD();
// Graba todos los parámetros en memoria
printf("ATWR\r");
delay_ms(1000);
printf (lcd_putc,"\fATWR\n");
indice=0;
escribe_dato_LCD();
// Sale del modo comando
printf("ATCN\r\f");
delay_ms(1000);
printf (lcd_putc,"\fATCN\n");
indice=0;
escribe_dato_LCD();
delay_ms(1000);
comando=0;
116
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
lcd_putc("\f.esperando dato.\n");
}
void escribe_dato_LCD()
{
index=0;
for (index=0;index<8;index++)
{
if (dato[index]!='f')
{
printf (lcd_putc,"%c",dato[index]);
dato[index]='f';
}
}
}
void inicio_variables()
{
activar_alarma=0;
contador_alarma=0;
aceptar_opcion=0;
C3=-1;
menu=0;
fin=0;
recibido=0;
temperatura=0;
fin_mensaje=0;
comando=1;
index=0;
indice=0;
respuesta=0;
// Inicializo las temperaturas máxima y mínima de alarma. Un byte
de la eeprom viene de fábrica con valor entero -1. Leo una posición de
memoria a la que llamo
// "primer", si vale -1 es que se ejecuta por primera vez el
programa y cargo las temperaturas iniciales, si es diferente de -1, cargo
las que tenga guardada la eeprom.
int primer;
primer=read_eeprom(primer_adress);
if (primer==-1)
{
117
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
write_float_eeprom(Tmax_default_adress,Tmax_default_valor);
write_float_eeprom(Tmin_default_adress,Tmin_default_valor);
write_eeprom(Sample_default_adress,Sample_default_valor);
T_max=read_float_eeprom(Tmax_default_adress);
T_min=read_float_eeprom(Tmin_default_adress);
t_muestreo=read_eeprom(Sample_default_adress);
write_eeprom(primer_adress,5);
}
else
{
T_max=read_float_eeprom(Tmax_default_adress);
T_min=read_float_eeprom(Tmin_default_adress);
t_muestreo=read_eeprom(Sample_default_adress);
}
alarma=0;
disp_no_conectado=0;
for (index=0;index<8;index++)
{
dato[index]='f';
}
index=0;
comienza=0;
}
void opciones_menu()
{
lcd_putc("\fConfiguracion:
\n");
long C4, C5;
long opcion, sig, prev;
int aceptar;
C3=-1;
C4=-1;
C5=-1;
opcion=100;
sig=10;
prev=10;
aceptar=0;
menu=1;
do
{
if (input (PIN_C3))
118
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
{
if (C3==-1)
C3++;
else
aceptar=1;
}
if (input (PIN_C4))
{
if (C4==-1)
C4++;
else
opcion=opcion+sig;
}
if (input (PIN_C5))
{
if (C5==-1)
C5++;
else
opcion=opcion-prev;
}
switch (opcion){
case 100:
lcd_gotoxy(1,2);
lcd_putc("1/4-> Alarma
");
delay_ms(pulsacion);
if (aceptar==0){
prev=-40;
sig=10;}
else{
opcion=101;
aceptar=0;}
break;
case 101:
lcd_gotoxy(1,2);
lcd_putc("1/4->T. Max:
");
delay_ms(pulsacion);
prev=-3;
sig=1;
if (aceptar==1){
temp_maxima=1;
119
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
t_config();
aceptar=0;}
break;
case 102:
lcd_gotoxy(1,2);
lcd_putc("2/4->T. Min:
");
delay_ms(pulsacion);
prev=1;
sig=1;
if (aceptar==1){
temp_maxima=0;
t_config();
aceptar=0;}
break;
case 103:
lcd_gotoxy(1,2);
lcd_putc("3/4->Act Alarma ");
delay_ms(pulsacion);
if (aceptar==0){
prev=1;
sig=1;}
else {
activar_al();
aceptar=0;}
break;
case 104:
lcd_gotoxy(1,2);
lcd_putc("4/4-> Salir
");
delay_ms(pulsacion);
if (aceptar==0){
prev=1;
sig=-3;}
else {
opcion=100;
aceptar=0;}
break;
case 120:
lcd_gotoxy(1,2);
lcd_putc("2/4->Termometro ");
delay_ms(pulsacion);
120
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
if (aceptar==0){
prev=10;
sig=10;}
else {
termometro();
aceptar=0;}
break;
case 130:
lcd_gotoxy(1,2);
lcd_putc("3/4->Save conf. ");
delay_ms(pulsacion);
if (aceptar==0){
prev=10;
sig=10;}
else{
write_float_eeprom(Tmax_default_adress,T_max);
delay_ms(2);
write_float_eeprom(Tmin_default_adress,T_min);
delay_ms(2);
write_eeprom(Sample_default_adress,t_muestreo);
delay_ms(2);
lcd_gotoxy(1,2);
lcd_putc("2/3-> SALVADO!
");
delay_ms(2000);
lcd_gotoxy(1,2);
int segundo;
segundo=(t_muestreo/10)*5;
printf (lcd_putc,"%f,%f,%ds
",T_max,T_min,segundo);
delay_ms(2000);
opcion=120;
aceptar=0;
}
break;
case 140:
lcd_gotoxy(1,2);
lcd_putc("4/4-> Salir
");
delay_ms(pulsacion);
if (aceptar==0){
prev=10;
sig=-40;}
121
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
else{
menu=0;
aceptar=0;
}
break;
default:
break;}
}while (menu==1);
lcd_gotoxy(1,2);
lcd_putc("Fin Menu
");
delay_ms(3000);
lcd_putc("\f.esperando dato.\n");
C3=0;
}
void activar_al()
{
long C4, C5;
C3=-1;
C4=-1;
C5=-1;
salir=1;
do {
if (input (PIN_C3))
{
if (C3==-1)
C3++;
else{
salir=0;
delay_ms(pulsacion);}
}
if (input (PIN_C4))
{
if (C4==-1)
C4++;
else{
if (activar_alarma==0)
{
activar_alarma=1;
}
122
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
else
{
activar_alarma=0;
output_low(PIN_C2);
}
delay_ms(pulsacion);}
}
if (input (PIN_C5))
{
if (C5==-1)
C5++;
else{
if (activar_alarma==0)
{
activar_alarma=1;
}
else
{
activar_alarma=0;
output_low(PIN_C2);
}
delay_ms(pulsacion);}
}
if (activar_alarma==0)
{
lcd_gotoxy(1,2);
lcd_putc("Alarma = NO
");
}
else
{
lcd_gotoxy(1,2);
lcd_putc("Alarma = SI
");
}
}while (salir);
123
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
}
void t_config()
{
long C4, C5;
C3=-1;
C4=-1;
C5=-1;
if (temp_maxima) // Configuro la variable de la temperatura máxima.
{
salir=1;
do {
if (input (PIN_C3))
{
if (C3==-1)
C3++;
else{
salir=0;
delay_ms(pulsacion);}
}
if (input (PIN_C4))
{
if (C4==-1)
C4++;
else{
T_max=T_max+0.1;
delay_ms(200);}
}
if (input (PIN_C5))
{
if (C5==-1)
C5++;
else{
T_max=T_max-0.1;
delay_ms(pulsacion);}
}
lcd_gotoxy(1,2);
printf (lcd_putc,"T.Max Al.=%f",T_max);
}while (salir);
}
124
Monitorización Wireless Constantes Vitalesde un bebé
else
Automática y Electrónica Industrial
// Configuro la variable de la temperatura mínima.
{
salir=1;
do {
if (input (PIN_C3))
{
if (C3==-1)
C3++;
else{
salir=0;
delay_ms(pulsacion);}
}
if (input (PIN_C4))
{
if (C4==-1)
C4++;
else{
T_min=T_min+0.1;
delay_ms(pulsacion);}
}
if (input (PIN_C5))
{
if (C5==-1)
C5++;
else{
T_min=T_min-0.1;
delay_ms(pulsacion);}
}
lcd_gotoxy(1,2);
printf (lcd_putc,"T.Min Al.=%f",T_min);
}while (salir);
}
}
void termometro()
{
long C4, C5;
int segundos;
C3=-1;
C4=-1;
125
Monitorización Wireless Constantes Vitalesde un bebé
Automática y Electrónica Industrial
C5=-1;
salir=1;
do {
if (input (PIN_C3))
{
if (C3==-1)
C3++;
else{
salir=0;
delay_ms(pulsacion);}
}
if (input (PIN_C4))
{
if (C4==-1)
C4++;
else{
t_muestreo=t_muestreo+10;
delay_ms(200);
if (t_muestreo>120)
t_muestreo=10;
}
}
if (input (PIN_C5))
{
if (C5==-1)
C5++;
else{
t_muestreo=t_muestreo-10;
delay_ms(pulsacion);
if (t_muestreo<10)
t_muestreo=120;
}
}
segundos=(t_muestreo/10)*5;
lcd_gotoxy(1,2);
printf (lcd_putc,"T. temp(s)= %d
",segundos);
}while (salir);
}
126
Monitorización Wireless Constantes Vitalesde un bebé
7.3
Automática y Electrónica Industrial
Ficheros
En el cd adjunto al proyecto se encuentran todos los ficheros de programación así
como las hojas de características técnicas de los equipos empleados.
127
Descargar