Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema Electronico Monitoreo Alerta Temperatura Corporal Murcia 2014 PDF
Sistema Electronico Monitoreo Alerta Temperatura Corporal Murcia 2014 PDF
CORPORAL
Trabajo de Grado
Director
Mg. Ing. Oscar Casas García
_______________________________________
Oscar Casas García, Mg. Ing.
_______________________________________
José Fernando Valencia Murillo, Dr. Ing.
_______________________________________
Jairo Alejandro Gómez Escobar, Dr. Ing.
5
6
Agradezco en primer lugar a Dios, sin embargo este trabajo no podría haberse
realizado sin el conocimiento adquirido en la carrera, por lo cual agradezco a todos los
docentes y mi compañero de proyecto, a mis familiares y novia por creer en mí y
apoyarme.
Javier Augusto Murcia Rodríguez
Gracias a mi familia por apoyarme y creer en mí, a mis padres por ser la base esencial
para lograr esta meta, a mi compañero de tesis el cual siempre tuvo un buen aporte
para el proyecto y a todas las personas que me han acompañado a lo largo de este
trayecto.
Juan David Buitrago Vargas
7
8
TABLA DE CONTENIDO
RESUMEN ___________________________________________________________ 23
1. INTRODUCCIÓN __________________________________________________ 25
9
2.5.1 Hipotermia ______________________________________________________ 37
2.5.2 Febrícula _______________________________________________________ 38
2.5.3 Fiebre __________________________________________________________ 38
2.5.4 Hipertermia _____________________________________________________ 42
10
4.3.2 Sección de comunicación __________________________________________ 73
4.3.3 Sección de medición de temperatura _________________________________ 74
4.3.4 Sección de procesamiento__________________________________________ 77
4.3.5 Plaqueta y esquemático del periférico ________________________________ 81
5. IMPLEMENTACIÓN __________________________________________________ 83
11
6.3.5 Consumo de potencia ____________________________________________ 130
BIBLIOGRAFÍA_______________________________________________________ 137
12
LISTA DE FIGURAS
13
Figura 36. Fuente Stick _________________________________________________ 72
Figura 37. Fuente de alimentación baterías AAA _____________________________ 72
Figura 38. Socket para baterías AAA ______________________________________ 73
Figura 39. Condiciones de Start y Stop I2C __________________________________ 74
Figura 40. Sensor de temperatura LM35 ___________________________________ 75
Figura 41. Sensor de temperatura MLX90614 _______________________________ 76
Figura 42. Sensor TMP102 ______________________________________________ 76
Figura 43. Pines del 16F883 _____________________________________________ 79
Figura 44. Plaqueta del dispositivo periférico _______________________________ 81
Figura 45. Plaqueta en físico_____________________________________________ 81
Figura 46. Esquemático del dispositivo periférico____________________________ 82
Figura 47. Dispositivo central y periférico __________________________________ 83
Figura 48. Dispositivo periférico __________________________________________ 84
Figura 49. Configuración I2C del TMP102 __________________________________ 87
Figura 50. Lectura de la temperatura _____________________________________ 88
Figura 51. Recepción del dato de inicio ____________________________________ 89
Figura 52. Envió de la temperatura al dispositivo central ______________________ 90
Figura 53. Programa principal ___________________________________________ 91
Figura 54. Dispositivo central ____________________________________________ 92
Figura 55. Botón 1 ____________________________________________________ 93
Figura 56. Menú inicial sin configuraciones previas ___________________________ 94
Figura 57. Menú con SMS activado _______________________________________ 94
Figura 58. Visualización de la temperatura _________________________________ 95
Figura 59. Menú de configuraciones ______________________________________ 95
Figura 60. Tiempo de medición __________________________________________ 96
Figura 61. Configuración del SMS _________________________________________ 96
Figura 62. Configuración del número de celular _____________________________ 97
Figura 63. Alerta por temperatura >=38°C. _________________________________ 98
Figura 64. Implementación pantalla LCD ___________________________________ 98
Figura 65. Enviar temperatura al LCD ______________________________________ 99
Figura 66. Diagrama de bloques requerimiento de temperatura _______________ 100
Figura 67. Interrupción serial dato de temperatura _________________________ 101
Figura 68. Petición del dato de temperatura _______________________________ 102
Figura 69. Diagrama de bloques para la alerta______________________________ 103
Figura 70. Envió del mensaje de texto ___________________________________ 104
Figura 71. Programa principal __________________________________________ 105
Figura 72. Interrupción externa _________________________________________ 106
Figura 73. Temporización ______________________________________________ 107
Figura 74. Acciones del botón 1 _________________________________________ 108
Figura 75. Acciones del botón 2 _________________________________________ 109
14
Figura 76. Acciones del botón 3 _________________________________________ 110
Figura 77. Acciones del botón 4 _________________________________________ 111
Figura 78. Dispositivo central apagado ___________________________________ 113
Figura 79. Dispositivo central encendido __________________________________ 114
Figura 80. Menú inicial ________________________________________________ 114
Figura 81. Temperatura Actual __________________________________________ 115
Figura 82. Menú de configuraciones _____________________________________ 115
Figura 83. Modo bajo consumo _________________________________________ 116
Figura 84. Tiempo de monitoreo ________________________________________ 116
Figura 85. Menú para activar el SMS _____________________________________ 117
Figura 86. Menú para ingresar el número de celular ________________________ 117
Figura 87. GPRS encendido y alerta de temperatura alta _____________________ 118
Figura 88. Recepción del mensaje de texto ________________________________ 118
Figura 89. Dispositivo periférico apagado _________________________________ 119
Figura 90. Dispositivo periférico encendido ________________________________ 120
Figura 91. Envió del dato de temperatura _________________________________ 120
Figura 92. Termómetro digital comercial __________________________________ 121
Figura 93. Horno de secado elemento patrón. _____________________________ 123
Figura 94. Temperatura sensor del proyecto vs elemento patrón ______________ 125
Figura 95. Respuesta sensor del dispositivo respecto al tiempo de establecimiento 127
Figura 96. Cancha de futbol ____________________________________________ 128
Figura 97. Apartamento 1______________________________________________ 129
Figura 98. Apartamento 2______________________________________________ 130
Figura 99. Consumo del dispositivo central en reposo _______________________ 130
Figura 100. Consumo del dispositivo central _______________________________ 131
Figura 101. Consumo mostrando la temperatura ___________________________ 131
Figura 102. Consumo del dispositivo central en alerta _______________________ 132
Figura 103. Consumo dispositivo periférico en reposo _______________________ 132
Figura 104. Consumo dispositivo periférico sensando________________________ 132
15
16
LISTA DE TABLAS
17
18
LISTA DE ANEXOS
19
20
GLOSARIO
DAÑO HÍSTICO: No son más que lesiones que ocurren en un determinado tejido del
organismo, pueden deberse a cambios en la reproducción celular, o a agresiones del
tejido.
AGENTE BIOLÓGICO: es una enfermedad infecciosa o toxina que puede ser utilizada
para la guerra biológica o para el bioterrorismo. Existen más de 1200 tipos de agentes
biológicos.
GPRS: (General Packet Radio Services) es una técnica de conmutación de paquetes, que
es integrable con la estructura actual de las redes GSM. Esta tecnología permitirá unas
velocidades de datos de 115 kbs. Sus ventajas son múltiples, y se aplican
fundamentalmente a las transmisiones de datos que produzcan tráfico "a ráfagas", es
decir, discontinuo. Por ejemplo, Internet y mensajería.
21
SMS: Es el acrónimo de Short Message Service, es un servicio disponible en los teléfonos
móviles que permite el envío de mensajes cortos.
XBEE: es el nombre comercial de Digi International para una familia de módulos de radio
compatibles.
22
RESUMEN
23
24
1. INTRODUCCIÓN
Se conoce la incapacidad de los bebés para poder comunicar los diferentes síntomas que
pueden llegar a sufrir en su etapa de crecimiento, mientras adquieren la habilidad de
comunicarse; algunos de estos síntomas son el aumento de temperatura, dolores,
enfermedades, infecciones, baja capacidad respiratoria, entre otros. Se observa que el
único medio de comunicación que poseen los bebés son el llanto o sus cambios de
comportamiento habitual, generando una constante incertidumbre en los encargados
de éstos, debido a que si los bebés no están siendo constantemente monitoreados y
cuidados las 24 horas del día, en cualquier momento puede presentar una
sintomatología de cuidado, la cual pueda ser que indique que el bebé está enfermo o
presente alguna enfermedad y éste por un posible descuido se puede poner en riesgo
generando posibles problemas futuros.
Éste mismo estudio revela que en la ciudad de Cali, de 202 madres encuestadas, el 87%
de estas madres hace el uso de la palpación para determinar el grado de temperatura
de su bebe y el 65% demuestra que su mayor preocupación es el riesgo de convulsiones
en caso de no controlar la fiebre.
El mismo estudio indica que el 79% de los casos de las madres aceptaron sentir miedo
de la fiebre junto con ansiedad, generando en muchos casos falsas alarmas debido a que
su método de sensado de la temperatura, el cual generalmente es la palpación en
diferentes partes del cuerpo como cuello, pecho y frente, no es muy eficaz. La fobia a la
fiebre por parte de los padres se puede caracterizar por miedo irracional y exagerado
llevándolos a asumir conductas inapropiadas.
De acuerdo al estudio se evidencia las diferentes problemáticas que viven los padres
cuando sus bebés presentan síntomas de fiebre, las problemática con la que se
encuentran es la de no tener un método eficaz, confiable y lo suficientemente práctico
25
para la medición de la temperatura corporal en sus bebés, agravando el hecho de que
los bebés aun no desarrollan la capacidad de expresión verbal, y los métodos para
expresar los síntomas de enfermedades son el cuerpo, cuando expresan cambios de
actitud o cuando lloran en algunos casos. El bebé y su sistema inmune no está adaptado
al nuevo medio ambiente en el que se encuentra por lo tanto debe de tenerse un
cuidado y un seguimiento especial en caso de fiebre debido a que esta puede o no
presentarse múltiples veces en el mismo día generando incertidumbre y preocupación
en el encargado generándole desvelo debido a que las formas que existen para la toma
de temperatura corporal requieren de una o más acciones físicas de parte del encargado
cada que quiera realizar una toma de la temperatura del bebé.
1.2 JUSTIFICACIÓN
El estudio de (Figueroa et al, 2012) indica que existen dos lugares eficaces para medir la
temperatura en los bebés con termómetro, ya sea en el recto o la axila, pero según el
estudio, 87% de la madres hace uso de la palpación la cual consiste en poner una mano
ya sea en el cuello, frente o pecho del bebé, seguido en frecuencia por el termómetro
como se ve en la Tabla 1.
Método N=202 %
Palpación 175 87%
Termómetro 108 54%
Comportamientos 83 41%
Inspección 72 36%
(Fabio Nelson Figueroa, 2012)
“En los bebés recién nacidos y hasta los tres meses de edad, la fiebre puede ser el primer
y único signo de una infección grave y el bebé debe ser llevado inmediatamente al
médico”. (Children, 2009)
También se encuentra que la fiebre generalmente se asocia a otros tipos de virus siendo
esta la única alerta para proteger al bebé de posibles futuras complicaciones o
enfermedades, las cuales requieran un tratamiento que requiera de más cuidado y
pueda ser más riesgoso para el bebé.
26
Debido a esto se encuentra la necesidad de informarle a una unidad remota de forma
constante y de manera correcta cual es la temperatura corporal, pues si la fiebre
aumenta y no se tiene un cuidado adecuado puede llegar a causar problemas severos
en los seres humanos, como convulsiones, daños del sistema nervioso central,
también puede agravar la inestabilidad metabólica y según los estudios realizados por
(Herrera, 1998), los más afectados por este tipo de alerta son los bebés.
1.3 OBJETIVOS
1.4 CONTRIBUCIONES
Gran parte del proyecto pretende impactar en ámbitos como son la salud,
especialmente en la pediatría, pues por medio de este trabajo se busca lograr un control
de la temperatura de forma eficiente y precisa en los recién nacidos debido a que estos
27
no han desarrollado su habilidad para comunicarse y su único medio de comunicación
en muchos casos es el llanto o cambio de comportamiento. Logrando lo anterior se
genera tranquilidad en los padres al tener un mayor control de la temperatura corporal
en sus bebés, debido a que estos podrán conocer esta y podrán evitarse posibles
agravantes donde no se tuviera el cuidado necesario de este.
El capítulo 7 está compuesto por las conclusiones obtenidas al analizar las pruebas y
propone posibles trabajos futuros.
28
2. TERMORREGULACIÓN Y MEDICIÓN DE TEMPERATURA CORPORAL
Según (RAE, 2013) “La temperatura es considerada una magnitud física que expresa el
grado o nivel de calor de los cuerpos o del ambiente y su unidad en el Sistema
Internacional es el Kelvin (K).” En cuanto a medición de temperatura corporal suele
medirse en grados Celsius (°C), o en grados Fahrenheit (°F).
29
aproximadamente en 36.7°C. Las divergencias entre esa temperatura conjunto y
cambios periféricos son regulados desde esa ubicación; por ejemplo, cuando hace frío
se produce un aumento de la tasa metabólica; con el propósito de mantener el cerebro
y por consiguiente la temperatura central corporal estable. (Gunga, 2012).
Cuando hace calor en el medio ambiente, por ejemplo 35°C, la piel del cuerpo está cerca
de reflejar la temperatura del núcleo. En contraste en entornos más fríos, por ejemplo
20°C la piel del cuerpo se encontrará más fría que dicha temperatura, de esta manera
la medición externa de la temperatura del núcleo está sesgada.
(Gunga, 2012)
Esta red de venas, que sólo se encuentran en el cráneo de los seres humanos, se
encuentra implicada en la regulación de la temperatura del cerebro. Estos vasos se han
originado y aún más, desarrollado como una función del volumen del cerebro y el
aumento de una mayor rotación de la energía junto con la necesidad de eliminar calor
para mantener constante la temperatura del cerebro. (Gunga, 2012).
30
2.2 TIPOS DE GANANCIA O PÉRDIDA DE CALOR
La Figura 2 muestra los tipos de ganancia o pérdida de calor en el ser humano, los cuales
son: conducción, radiación, convección, evaporación.
(Egan, 2006)
2.2.1 Conducción
2.2.2 Convección
31
2.2.3 Radiación
2.2.4 Evaporación
Tipo °C
Axilar 35.6 - 37
Rectal 36.5 – 37.5
(Lyon, 2007)
Ha sugerido (Lyon, 2011) que en lactantes al nacer con muy bajo peso la temperatura
del núcleo es de 36.7°C y 37.3°C y la diferencia de temperatura piel versos la
temperatura del núcleo fluctúa menos de 0.2°C o 0.3°C cada hora. Un bebé puede gastar
una gran cantidad de energía para mantener una temperatura central normal. El bebé
prematuro se encuentra en mayor riesgo para mantener el rango de temperatura neutra
NTR debido a que el rango de temperatura neutra es más estrecho comparado con el de
los bebés nacidos a término. A pesar de una temperatura normal aparente, el bebé
puede ser térmicamente estresado creando un mayor riesgo de resultado adverso.
De acuerdo con (Ventura, 2001), se encuentra que a comienzos del siglo XX los bebés
prematuros de menos de 1.5Kg que se enfriaban tenían una mortalidad
significativamente alta.
32
2.4 MEDICIÓN DE TEMPERATURA EN EL CUERPO HUMANO
Según (Paguay, 2013) existen 4 partes del cuerpo humano en las que normalmente se
puede medir la temperatura, las cuales son:
La boca
La axila
El recto
El oído
La boca y el recto son los lugares donde se puede tener una idea más precisa de la
temperatura real del organismo, en general la temperatura rectal suele ser mayor 0.5°C
mayor que la oral y, esta 0.5°C mayor que la axilar. (Dorta, 2011)
La temperatura corporal normal de los seres humanos varía entre los 36.5°C -37.5°C
cabe aclarar que estos rangos se refieren a la temperatura corporal mas no a la
temperatura de los órganos, como se explicó anteriormente. En general se habla de:
Se encontró en la investigación realizada por (Dorta, 2011) que existen diversos factores
que pueden afectar la temperatura corporal, por lo tanto estos deben ser tomados en
cuenta al realizar la medición:
33
Tratamientos farmacológicos. Existe la posibilidad de un aumento de
temperatura ya que la medicina puede ser considera por el organismo como una
bacteria o enfermedad.
Las enfermedades. En general las bacterias y enfermedades se desarrollan en
torno a la temperatura normal del cuerpo, debido a esto se produce un
incremento de temperatura como mecanismo de defensa para evitar el
desarrollo de esta.
Otros. La ingesta reciente de alimentos calientes o fríos, el haberse fumado un
cigarrillo, la aplicación de un enema y la humedad de la axila o su fricción (por el
ejemplo al secarla), pueden afectar el valor de la temperatura oral, rectal y axilar
respectivamente, por lo que se han de esperar unos 15 minutos antes de tomar
la constante. Si la axila está húmeda, se procederá a secarla mediante toques.
También influye la temperatura ambiente y la ropa que se lleve puesta.
De acuerdo a la investigación realizada por (Herrera, 1998), “Se recomienda pues, tomar
la temperatura rectal preferentemente durante 1 minuto antes de hacer la lectura. Si
ésta se hace a partir de la temperatura oral, se debe mantener el termómetro al menos
2 minutos en la cavidad oral y no menos de 3 minutos si es axilar.”
(UAL, 2014)
34
2.4.2 Temperatura oral
Este es una de las formas de medición de temperatura más cómoda, con la cual el
paciente no tiene ningún compromiso moral. La única desventaja frente a las demás
formas de medir la temperatura es que normalmente tiene 0.1°C de error por lo cual no
es tan fiable respecto a las otras (Paguay, 2013). En la Figura 5 se observa la forma de
medir la temperatura en la axila.
(Jaramillo, 2014)
35
Figura 5. Medición de temperatura en la axila
(UAL, 2014)
(Crecerfeliz, 2014)
36
2.5 REACCIONES ASOCIADAS A LA TEMPERATURA
Según (Paguay, 2013), la temperatura en los seres humanos, puede variar según la edad,
y se clasifica como se muestra en la Tabla 3.
2.5.1 Hipotermia
Según (Cardona, 2011) la hipotermia ocurre cuando el cuerpo pierde más calor del que
puede generar y generalmente es causada por una prolongada exposición al frio.
37
A medida que las personas desarrollan hipotermia, sus habilidades para pensar y
moverse generalmente se van perdiendo lentamente; es posible que sean inconscientes
de la necesidad de tratamiento debido a la misma. (Cardona, 2011)
Somnolencia
Debilidad y perdida de la coordinación
Piel pálida y fría
Confusión
Temblor incontrolable (si la temperatura es extremadamente baja el
temblor puede cesar)
Frecuencia cardíaca y respiratoria lenta.
2.5.2 Febrícula
2.5.3 Fiebre
38
“El desequilibrio en la termorregulación del organismo y el consiguiente aumento de la
temperatura puede ser el resultado de infecciones, lesiones de los centros nerviosos,
enfermedades endocrinas o hemáticas, deshidrataciones, intoxicaciones, etcétera. Estas
situaciones son capaces de inducir a la liberación de una sustancia contenida en los
leucocitos (pirógeno endógeno) que altera los mecanismos de regulación hipotalámica
produciendo un aumento de la temperatura corporal.” (Castro, 2013)
Cabe resaltar del estudio que en los niños es frecuente que enfermedades poco graves
provoquen temperaturas muy altas (39°C – 40°C), mientras que algunas enfermedades
graves se pueden causar con fiebre baja. La gravedad de la fiebre alta son los síntomas
que la acompañan: convulsiones, delirio, deshidratación, signos meníngeos, entre otros.
39
En la Tabla 5 se observa la clasificación de la temperatura recto vs axila:
Además de agentes infecciosos, existen múltiples causas que pueden producir fiebre,
tales como:
Emociones fuertes
Temperatura ambiente alta y húmeda.
Ropas gruesas o arropamiento excesivo
Golpes de calor o insolación
Después de realizar actividad física intensa
Vacunaciones
Intoxicaciones y otras enfermedades no infecciosas
Después de comer
40
En bebés con más de 2 meses cuando la temperatura rectal es de 38.8°C o
superior.
En bebés de 3 a 6 meses cuando la temperatura en la axila es de 38,3°C o
superior.
En bebés y niños hasta 2 años cuando la fiebre dure más de dos días.
Infecciones.
Vacunaciones (contra la tos ferina, gripe y sarampión).
Agentes biológicos (factor estimulador de colonias de granulocitos y macrófagos,
interferón, interleuquinas).
Daño histico (infartos, embolia pulmonar, traumatismos, inyecciones
intramusculares y quemaduras).
Patología neoplastica maligna (linfoma, neoplasias, metástasis, hepatoma).
Fármacos (fiebre medicamentosa, cocaína).
Desordenes inmunitarios (lupus eritematoso sistémico, conectivopatias, artritis
reumatoide).
Enfermedades inflamatorias
Granulomatosis
Enfermedades endocrinas (feocromocitoma, tirotoxicosis).
Trantornos familiar mediterránea
Fiebre ficticia (por manipulaciones intencionales del termómetro o inyección de
material pirogénico).
41
2.5.4 Hipertermia
42
3. ESTADO DEL ARTE
Es necesario conocer el estado del arte en el cual se encuentra el proyecto, con el fin
de verificar la existencia de investigaciones relacionadas con el tema, o productos que
se encuentren actualmente en el mercado, obteniendo información relevante para
realizar el dispositivo.
(Bernal, 2003) Diseña un sistema el cual reúne todas las alarmas que se presentan en
una incubadora en un solo punto, para que cualquier persona sin necesidad de ser
especializada en maternidad pueda saber de dónde proviene el problema. El dispositivo
contiene dos sensores de temperatura los cuales censan constantemente, fuera y
dentro de la incubadora, en caso que la temperatura se encuentre inferior a los 29°C o
superior a los 35°C se genera una alarma.
43
3.3 PIRÓMETRO A BAJA RADIACIÓN PARA LA MEDICIÓN DE LA TEMPERATURA EN LA
FRENTE
(Del Valle Ayala Uzziel, et all, 2009) Diseñaron un prototipo el cual funciona como
termómetro digital con transmisión inalámbrica. Este consta de un sensor de
temperatura corporal la cual se transmite mediante un sistema de radiofrecuencia (RF)
para posteriormente desplegar la información en una pantalla de cristal líquido y en caso
de valores anormales activar una alerta sonora. Este prototipo funcionó correctamente
a una distancia máxima de 8 metros.
Según (Cardona, 2011) desarrollo una prenda de vestir niños, capaz de monitorear la
temperatura corporal e informar inalámbricamente a padres o representantes sobre el
estado del bebé.
44
Esta investigación aporta datos importantes sobre la temperatura normal del ser
humano y los rangos donde es necesario generar una alerta, también presenta la
respuesta del sensor utilizado el cual es un Lilipad de XBEE, arrojando como conclusión
que el sensor es poco estable ya que al enviar los datos, en ocasiones genera datos
erróneos, por ejemplo temperaturas por encima de los 41°C lo que imposibilita la
generación de un promedio con dichos datos.
(Desing, 2014)
3.6.2 ThermoDock
Este es un termómetro infrarrojo diseñado para usarse con el iPhone, iPod touch o iPad.
Este dispositivo permite guardar varios perfiles, en los cuales registra y almacena los
datos de temperatura, en caso de fiebre genera alerta.
45
Figura 8 Sensor de temperatura ThermoDock
(VitaDock, 2014)
(philips, 2014)
46
4. DISEÑO ELECTRÓNICO
Previo al diseño electrónico se realizó una encuesta, la cual tuvo como fin determinar
qué tipo de diseño implementar. Se encuestó de forma aleatoria a 80 personas de la
ciudad de Cali para conocer mejor las percepciones y gustos de los usuarios con respecto
a la medición de la temperatura en los recién nacidos. Las preguntas realizadas en la
encuesta se encuentran, en el ANEXO D.
Por lo tanto para la realización de este se tuvo en cuenta las problemáticas encontradas
tanto en la investigación como en la encuesta realizada.
47
El cuarto es un requerimiento encontrado por la encuesta, la mayoría de los
encuestados prefieren que el sensor no sea incómodo para su bebé y de fácil uso
a diferencia de termómetros de mercurio y de oído.
Se plantea una interfaz gráfica para que el usuario tenga comodidad al
interactuar con el dispositivo.
48
configurada por el encargado, también se podrá visualizar la temperatura en el
momento en que el encargado lo requiera, este podrá elegir cada cuanto quiere que sea
monitoreada la temperatura de forma automática. En la Figura 12 se puede observar el
esquema del dispositivo central.
El dispositivo central cuenta con 4 secciones las cuales son necesarias para realizar las
acciones descritas anteriormente, las secciones con las que cuenta son las siguientes:
Sección de potencia.
Sección de comunicación.
Sección de procesamiento.
Sección de interfaz usuario máquina.
Una vez realizadas las secciones anteriores, es posible diseñar el esquemático el cual es
necesario para la posterior implementación.
Para realiza el dispositivo de acuerdo a los requerimientos, éste consta de tres tipos de
comunicaciones: una es la comunicación local para que el microcontrolador pueda
controlar los diferentes módulos, la cual se realiza a través de la UART, la otra es una
comunicación por radio frecuencia entre los XBEE en una banda predeterminada usando
la topología punto a punto, la cual es utilizada para comunicarse con el periférico y por
último el dispositivo cuenta con comunicación SMS (Short Message Service) para enviar
mensajes de texto a un número predeterminado. En la Figura 13 se muestra el esquema
de comunicaciones utilizado.
49
Figura 13. Esquema de comunicaciones
(Berkeley, 2014)
El microcontrolador se comunica con tres módulos a través de la UART, los cuales son el
módulo XBEE, la pantalla y el GPRS.
50
El microcontrolador se comunica con el XBEE para enviar un carácter al dispositivo
periférico, este lo recibe con otro XBEE y lo interpreta como un bit de start, a partir de
ese momento el periférico retorna de manera inalámbrica el dato de temperatura al
dispositivo central. Una vez es procesado se hace uso de una UART VIRTUAL definida
por programación, esta se comunica con la pantalla indicándole que debe mostrar el
dato de temperatura, solo si el dato de temperatura es mayor a 38°C y el SMS se
encuentra activo se hace uso de una segunda UART VIRTUAL la cual se comunica con el
GPRS logrando que este envié el mensaje de texto al número ingresado en el dispositivo
central. En la Figura 15 se puede observar el esquema de comunicación de la UART
utilizado.
51
Tabla 6. Cuadro comparativo comunicación inalámbrica
De acuerdo a la tabla anterior se descarta el uso del Wifi por su alto consumo de
corriente, el Bluetooth no se descarta aún del todo debido a que sus consumos son
cercanos por lo tanto se indagará, para elegir entre el ZigBee o el Bluetooth.
ZigBee fue diseñado para el control y automatización a bajo costo de operación de
sistemas electrónicos, mientras Bluetooth fue diseñado para reemplazar cables y
realizar conectividad en dispositivos como celulares y portátiles. ZigBee tiene un
distancia promedio de comunicación de 120-1600 metros, mientras los Bluetooth la
distancia promedio es de tan solo 20 hasta 120 metros. El ZigBee utiliza la banda ISM la
cual es una banda reservada internacionalmente para uso no comercial de radio
frecuencia electromagnética, en áreas industriales, científicas y médicas; en concreto,
868 MHz en Europa, 915 en Estados Unidos y 2,4 GHz en todo el mundo. (Adams, 2006).
Teniendo en cuenta todas las ventajas anteriores se toman la decisión de utilizar ZigBee.
Estos módulos son como se ven en la Figura 16, hacen uso de la comunicación
inalámbrica y fueron diseñados para cumplir con los estándares IEEE 802.15.4, además
de ser diseñados para ser de bajo costo y bajo consumo de energía. Tienen la ventaja y
el reconocimiento de ser fiables en el momento de la entrega de datos. Este módulo usa
la técnica de modulación QPSK (MaxStream, 2007).
(MaxStream, 2007)
52
Rendimiento.
Rendimiento XBEE S2
Interiores/Urbano 30-45 m
Exteriores/vista recta 100-125 m
Salida de potencia 1mW (0dBm)
RF data rate 250,000 bps
Data rate con la interfaz serial 1200 - 115200 bps
Sensibilidad del receptor3 -92 dBm (1% packet error rate)
(MaxStream, 2007)
Requisitos de alimentación.
Requisito XBEE S2
Especificaciones generales.
Generales XBEE S2
3 Mínima magnitud en la señal de entrada requerida para producir una determinada magnitud en la señal de salida
4 Banda ISM (Industrial, Scientific and Medical)
53
Pines de configuración.
El dispositivo central se comunica con el periférico a través del XBEE los cuales poseen
una conexión punto a punto. El XBEE que se encuentra en el dispositivo central está
configurado como maestro y el XBEE que se encuentra en el periférico es configurado
como esclavo. Las configuraciones se realizaron a través del computador usando el
programa X-CTU, para poder conectarse a dicho programa es necesario el adaptador
XBEE EXPLORER USB el cual se ve en la Figura 17.
54
Figura 17. Programado XBEE
(XBEE, 2014)
Una de las ventajas de este protocolo es que el que envía el mensaje tiene la certeza de
cuando llega su mensaje, incluso si el celular se encuentra apagado, este le avisa que su
mensaje se encuentra pendiente, pero una vez se encienda dicho celular se le notifica a
la persona que su mensaje ahora si ha llegado a su destinatario. (Frehner, 2007).
Para brindar mayor comodidad y seguridad a los padres, el dispositivo central cuenta
con un módulo GPRS el cual cumple el propósito de enviar un mensaje de texto corto al
celular ingresado en dicho dispositivo. Se seleccionó el módulo GPRS M95 por varias
ventajas, una de ellas y la más importante se encontraba disponible en Colombia, otra
de sus ventajas es que su programación se realiza por comandos AT, además existe
bastante información detallada de cómo configurarlo y usarlo, una de sus mejores
prestaciones es que es quad-band lo que significa que es compatible con todos los
operadores de telefonía que funcionen dentro de las siguientes frecuencias
(GSM850MHz, GSM900MHz, DCS1800MHz y PCS1900MHz), las cuales son las que se
utilizan en Colombia, cuenta con las siguientes características.
55
Figura 18. Módulo GPRS
(Quectel, 2014)
Requisitos.
Especificaciones generales.
Generales M95
SMS Texto (160 Caracteres)
Almacenamiento de SMS
SIM Soporta SIM Cards de 1.8V y 3V
Reguladores de Voltaje Regula los voltajes de entrada
UART Para recibir los comandos AT, datos
GPRS y CSD
Firmware Permite la actualización del Firmware
Antena 50Ω
Temperatura normal de trabajo -35°C-80°C
Dimensiones 19.9 mm x 23.6 mm x 2.65 mm
Peso 3gramos
(Quectel, 2014)
56
Diagrama de pines.
(Quectel, 2014)
Pines de configuración.
57
12 STATUS Salida Indica si el modulo esta encendido
13 NETLIGTH Salida Indica si existe conexión con la red
14 DBG_RXD Entrada Interfaz de entrada de la UART
15 DBG_TXD Salida Interfaz de salida de la UART
16 RESERVED RESERVED RESERVED
17 RESERVED RESERVED RESERVED
18 RESERVED RESERVED RESERVED
19 VDD_EXT Salida Fuente de 2.8V
20 DTR Entrada Indica que el dato de entrada está
listo
21 RXD Entrada Recibe el dato
22 TXD Salida Envía el dato
23 CTS Salida Indica que puede enviar
24 RTS Entrada Se activa con un pulso (Petición
para enviar)
25 DCD Salida Detección del carry del dato
26 RI Salida Indicador de llamada
27 SIM_VDD Salida Fuente para la sim card
28 SIM_RST Salida Resetea la sim
29 SIM_DATA Salida/Entrada Enviar y recibir datos de la sim
30 SIM_CLK Salida Señal de reloj para sim
31 SIM_GND GND GND
32 VRTC Salida/Entrada Fuente para RTC cuando ̅̅̅̅̅̅̅̅
VBAT
33 VBAT Entrada VCC
34 VBAT Entrada VCC
35 GND GND GND
36 GND GND GND
37 GND GND GND
38 GND GND GND
39 GND GND GND
40 GND GND GND
(Quectel, 2014)
Comandos AT (Attention):
58
la telefonía móvil GSM también adoptó este estándar para comunicarse con sus
terminales, por lo cual todos los teléfonos móviles GSM poseen un juego de
comandos AT específicos, los cuales sirven como interfaz para configurar y
proporcionar instrucciones a los terminales, permitiendo acciones tales como
realizar llamadas de datos o de voz, leer y escribir en la agenda de contactos y
enviar mensajes cortos o SMS, además de muchas otras opciones de
configuración del terminal. (Bies, 2010)
Requisitos de alimentación.
Requisito PIC18F452
59
Especificaciones generales.
Generales PIC18F452
UART 1
EEPROM 256 Bytes
RAM 1536 Bytes
Flash o ROM 32 KBytes
TIMERS/COUNTERS 4 de 8 y 16 Bits
INTERRUPCIONES EXTERNAS 3
PUERTOS I/O 5(A, B, C, D, E)
Temperatura de trabajo -55°C to 125º C
Dimensiones 51.94mm x 13.46mm x 4.06
(Microchip, 2006)
Encapsulado de Pines.
(Microchip, 2006)
Descripción de pines.
1 ̅̅̅̅̅̅̅̅̅̅̅̅̅̅
MCLR/vpp Entrada Reset/Pin de programación
2 RA0 Entrada-Salida On/Off Pantalla
3 TXLCD Salida Salida UART para escribir en el LCD
4 RA2 Entrada-Salida No Conectado
5 RA3 Entrada-Salida No Conectado
60
6 RA4 Entrada-Salida No Conectado
7 RA5 Entrada-Salida No Conectado
8 RE0 Entrada-Salida No Conectado
9 RE1 Entrada-Salida No Conectado
10 RE2 Entrada-Salida No Conectado
11 VDD Entrada Fuente positiva
12 VSS GND GND
13 OSC1 Entrada Entrada del cristal
14 OSC2 Salida Salida del cristal
15 RC0 Entrada-Salida No Conectado
16 RC1 Entrada-Salida No Conectado
17 RC2 Entrada-Salida No Conectado
18 RC3 Entrada-Salida No Conectado
19 RD0 Entrada-Salida LED indicador dispositivo (On/Off)
20 RD1 Entrada-Salida On/Off Alarma
21 RD2 Entrada-Salida On/Off GPRS
22 RD3 Entrada-Salida No Conectado
23 RC4 Entrada-Salida No Conectado
24 RC5 Entrada-Salida No Conectado
25 TXXBEE Salida Salida UART para escribir en el XBEE
26 RXXBEE Entrada Entrada UART datos del XBEE
27 TXGPRS Salida Salida UART para escribir en el GPRS
28 RXGPRS Entrada Entrada UART datos del GPRS
29 RD6 Entrada-Salida No Conectado
30 RD7 Entrada-Salida No Conectado
31 VSS GND GND
32 VDD Entrada Fuente positiva
33 INT0 Entrada Interrupción Externa 0
34 RB1 Entrada-Salida No Conectado
35 RB2 Entrada-Salida Botón 4
36 RB3 Entrada-Salida Botón 3
37 RB4 Entrada-Salida Botón 2
38 RB5 Entrada-Salida Botón 1
39 PGC Entrada Señal de reloj de programación
40 PGD Entrada Entrada de datos de programación
(Microchip, 2006)
61
en cualquier lado de la casa, la segunda consideración que su tuvo en cuenta es la de
brindarle autonomía al usuario sobre el dispositivo permitiéndole manipular ciertas
configuraciones. Se pretende que el dispositivo sea independiente de otras plataformas
como podrían ser los computadores o celulares que pueden llegar a descargarse o
requieren un encendido y son para otros propósitos, la idea es desarrollar un dispositivo
encargado únicamente de monitorear la temperatura del paciente, teniendo en cuenta
todo lo anterior se decide utilizar un LCD.
El LCD (Liquid Cristal Display), es una pantalla plana y delgada formada por un número
de pixeles. En la actualidad existen muchos tipos de LCD, para determinar qué tipo de
pantalla LCD estará a cargo de desplegar la temperatura, se tuvo en cuenta que fuera
una pantalla LCD que permita mostrar imágenes, que permitiera la comunicación por
UART, que no fuera muy grande ya que el dispositivo debe ser portable, que se
encontrara en Colombia, que su programación se encuentre basada en C y se encontrara
bastante información. En concordancia con lo anterior se toma la decisión de comprar
el µLCD-144(GFX) debido a las siguientes características:
62
Figura 21. Pantalla de cristal liquido
(Sytems, 2014)
63
Pantalla principal.
En la Figura 23 se muestra el menú principal. Con el botón 1 se visualiza la
temperatura cada 2 segundos, con el botón 2 se accede al menú de
configuraciones, con el botón 3 se apaga la pantalla pero no el dispositivo, lo que
significa que continuará sensando, cualquier botón puede encender la pantalla
cuando esta se encuentra apagada.
Configuraciones.
Esta es la pantalla de configuraciones. Con el botón 1 se accede a configurar cada
cuanto desea que él paciente sea monitoreado, con el botón 2 se accede a activar
64
el SMS por si desea o no que se envié el mensaje de texto, con el botón 3 se
regresa a las configuraciones iniciales.
Tiempo de Medición.
En esta pantalla el usuario podrá configurar el tiempo en que el paciente será
monitoreado autónomamente, con el botón 1 será cada 15 minutos, con el botón
2 será cada 30 minutos y con el botón 3 cada 60 minutos, se escogen estos rangos
basados en que los aumentos de temperatura no son bruscos por el contrario es
un fenómeno físico donde el cuerpo absorbe calor o lo genera de forma gradual;
dependiendo principalmente de 3 razones, si se está defendiendo de un
microrganismo o bacteria, si su hipotálamo se encuentra descontrolado, o por
insolación, en cualquier caso no se presentan picos de subida de temperatura
repentinos.
65
GSM (Mensaje de Texto).
En esta pantalla se realiza la configuración del SMS, con el botón 1 se activa el
mensaje de texto y con el botón 2 se desactiva, con el botón 3 se regresa al menú
principal.
66
Figura 28. Esquema sección de potencia
(Instruments, 2014)
67
Figura 30. Encapsulado del regulador
(Instruments, 2014)
(microelectronics, 2014)
El diseño se realizó en dos capas para mayor facilidad a la hora de ubicar los diferentes
módulos y obtener una mejor distribución del espacio. Los siguientes módulos se
encuentran en la capa superficial de la plaqueta XBEE, LCD, GPRS,
MICROCONTROLADOR, ALARMA, el resto de elementos se encuentran en la capa de
soldaduras, la plaqueta se diseñó en el programa Eagle. La Figura 32 es el diseño final
de la plaqueta para el dispositivo central, en la Figura 33 se observa la plaqueta en físico
y la Figura 34 contiene el esquemático utilizado para el diseño de la plaqueta.
68
Figura 32. Plaqueta del dispositivo central
69
Figura 34. Esquemático del dispositivo central
70
4.3 DISPOSITIVO PERIFÉRICO
El dispositivo central cuenta con 4 secciones las cuales son necesarias para realizar las
acciones descritas anteriormente, las secciones con las que cuenta son las siguientes:
Sección de potencia.
Sección de comunicación.
Sección de medición de temperatura.
Sección de procesamiento.
71
así que teniendo en cuenta lo anterior se busca una alimentación de 3.3V encontrando
las siguientes opciones:
Fuente stick 5V/3.3V: Esta es una fuente de alimentación la cual soporta voltajes
de entrada desde 6V hasta 12V, la cual está pensada para adaptarse con placas
de prototipado debido a que sus pines coinciden con los raíles de alimentación.
Esta fuente contiene dos interruptores, el primero para encendido y apagado, y
el segundo interruptor es el encargado de seleccionar el voltaje que se requiere,
ya que tiene la opción de entregar 5V o 3.3V y una corriente de 1A en su salida.
(Bricogeek, 2014)
72
En la Figura 38 se observa el socket utilizado para el funcionamiento de las
baterías AAA.
En esta etapa del diseño del dispositivo periférico necesitamos de igual forma 3 tipos de
comunicación: la primera es la comunicación local para que el microcontrolador pueda
comunicarse con el modulo inalámbrico XBEE, la cual se realiza a través de la UART, para
mayor información de este tipo de comunicación ir a la sección 3.2.1 del documento
actual. El segundo tipo de comunicación es por medio de radio frecuencias a través de
los módulos XBEE, como se dijo anteriormente usando la topología punto a punto, para
mayor información de este tipo de comunicación ir a la sección 3.2.1 del documento
actual. El tercer y último tipo de comunicación es la comunicación I2C, la cual se debe
realizar entre el microcontrolador y el sensor de temperatura TMP102, el protocolo de
comunicación se explicara a continuación:
4.3.2.1 I2C (Bus Inter-IC): Este tipo de comunicación emplea únicamente dos líneas, en
la primera línea se encuentra la señal por el cual se transmiten los datos (SDA) y por la
segunda línea se encuentra la señal de reloj (SCL). En sus posibles topologías siempre
debe de haber un maestro, el cual puede tener uno o varios esclavos. El maestro y los
esclavos se identifican por medio de un número o identidad la cual debe de ser única
por topología para no causar interferencia y malas comunicaciones. Cabe resaltar que la
73
comunicación entre el maestro y esclavo es bidireccional, pero quien envía la señal de
reloj siempre será el maestro, este envía una señal de reloj por cada uno de los bits
transferidos.
Para el funcionamiento del protocolo I2C son necesarias las siguientes condiciones:
Condición de START: Antes de cualquier transferencia de datos, el maestro debe
de informar al esclavo que transmitirá, por lo cual, pone a nivel bajo la señal SDA,
mientras la señal SCL se mantiene en nivel alto. Ver Figura 39
(Astarloba, 2008)
Acuse de recibo o acknowledge: Por cada byte que se transmite ya sea desde un
maestro o un esclavo debe tener un acuse de recibo, es decir, quien recibe debe
mantener en cierto nivel la señal del SCL, en el caso del maestro, este después
de enviar un byte deja la señal de SCL en alto durante un periodo de tiempo en
el cual el esclavo debe mantener la señal del SDA en nivel bajo, de esta forma el
maestro valida que el byte fue transferido con éxito.
Esta etapa de diseño es una de las más críticas debido a que se debe buscar un sensor
de temperatura que cumpla con varias especificaciones técnicas como alimentación por
debajo de 3.3V y el consumo de su corriente sea bajo, pero además de estas
especificaciones técnicas lo más importante es que este sensor no sea obstrusivo, pues
debemos de tener en cuenta que se debe hacer contacto con el recién nacido, y la idea
74
es no generarle incomodidades y/o molestias. Siendo consecuente con lo anterior se
evaluaron las siguientes opciones:
(Instruments, 2013)
Característica LM35
Salida Análoga
Precisión calibrada 1°C
Rango medición -55°C hasta 150°C
Alimentación 4V hasta 30V
Corriente 60µA
75
Figura 41. Sensor de temperatura MLX90614
(Melexis, 2014)
Salida Digital/PWM
Precisión calibrada 0,5°C
Rango medición -40°C hasta 125°C
Alimentación 3V y 5V
Corriente 25Ma
(TMP102, 2012)
76
Características principales del TMP102:
Salida Digital
Precisión calibrada 0,5°C
Rango medición -25°C hasta 85°C
Alimentación 1.4V hasta 3.6V
Corriente 10µA
77
El microcontrolador debe ser lo más pequeño posible, para lograr que el
dispositivo periférico sea pequeño ya que este es el dispositivo más cercano al
paciente.
El microcontrolador debe ser de bajo costo y encontrarse en Colombia.
Requisitos de alimentación.
Requisito PIC16F883
Especificaciones generales.
Generales PIC16F883
UART 1
EEPROM 256 Bytes
RAM 256 Bytes
Flash o ROM 4 KBytes
I2C 1
PUERTOS I/O 3(A, B, C)
Temperatura de trabajo -40°C to 125º C
Dimensiones 34.16mm x 7.36mm x 5.08mm
78
Encapsulado.
(Microchip, 2006)
79
Diagrama de Pines.
1 ̅̅̅̅̅̅̅̅̅̅̅̅̅̅
MCLR/vpp Entrada Reset/Pin de programación
2 RA0 Entrada-Salida LED indicador On/Off dispositivo
3 RA1 Entrada-Salida LED indicador sensado
4 RA2 Entrada-Salida No conectado
5 RA3 Entrada-Salida No conectado
6 RA4 Entrada-Salida No conectado
7 RA5 Entrada-Salida No conectado
8 VSS GND GND
9 RA7 Entrada Entrada del cristal
10 RA6 Salida Salida del cristal
11 RC0 Entrada-Salida No conectado
12 RC1 Entrada-Salida No conectado
13 RC2 Entrada-Salida No conectado
14 SCL Salida Señal de reloj I2C
15 SDA Entrada-Salida Entrada o salida de datos I2C
16 RC5 Entrada-Salida No conectado
17 RC6 Entrada-Salida TX XBEE
18 RC7 Entrada-Salida RX XBEE
19 VSS GND GND
20 VDD Entrada Fuente positiva
21 RB0 Entrada-Salida No conectado
22 RB1 Entrada-Salida No conectado
23 RB2 Entrada-Salida No conectado
24 RB3 Entrada-Salida No conectado
25 RB4 Entrada-Salida No conectado
26 RB5 Entrada-Salida No conectado
27 RB6 Entrada-Salida Señal de reloj de programación
28 RB7 Entrada-Salida Entrada de datos de programación
80
4.3.5 Plaqueta y esquemático del periférico
81
Figura 46. Esquemático del dispositivo periférico
82
5. IMPLEMENTACIÓN
El dispositivo periférico cuenta con el PIC16F883, este tiene dos módulos conectados a
él, los cuales son el XBEE y el sensor de temperatura TMP102, adicionalmente el
periférico cuenta con dos LED, los cuales cumplen la función de indicadores, uno de ellos
indica que el dispositivo se encuentra encendido, el otro solo se enciende cuando el
sensor se encuentra midiendo la temperatura. En la Figura 48 se observa el dispositivo
periférico.
83
Figura 48. Dispositivo periférico
BYTE D7 D6 D5 D4 D3 D2 D1 D0
1 OS R1 R0 F1 F0 POL TM SD
2 CR1 CR0 AL EM X X X X
(TMP102, 2012)
84
Configuración del BYTE 2:
EM (EXTEND MODE)
EM = 1, configura el sensor para entregar el registro de temperatura en 13 bits.
EM = 0, configura el sensor para entregar el registro de temperatura en 12 bits.
No se hace uso de la configuración de 13 bits ya que esta es para medir
temperaturas negativas, debido a que este no es el caso se seleccionó el de 12
bits.
AL (ALERT)
El bit de AL su función de sólo lectura. Leyendo el bit AL proporcionará
información sobre el modo de comparación. Para el caso en específico no se
utiliza ya que los datos son procesados en el dispositivo central y es allí donde se
realiza la comparación.
Para esta configuración se seleccionó la tasa de conversión de 4Hz, ya que esta es la tasa
que esta seleccionada por defecto, cabe resaltar que todas las tasas de conversión
sirven.
SD (SHUTDOWN MODE)
SD = 0, inhabilitado el modo bajo consumo.
SD = 1, habilita el modo de bajo consumo.
Se hace uso de este bit para lograr el bajo consumo en el dispositivo periférico, se realiza
la acción de enviarle 1 para que él se active y solo este activo el sensor mientras toma
temperatura, el resto del tiempo se encuentra en bajo consumo.
85
TM (THERMOSTAT MODE)
TM =0, modo comparación.
TM =1, modo interrupción.
Para el dispositivo no se requiere ninguna de estas acciones, se deja este bit en 0 por
defecto.
POL (POLARITY)
Este bit tiene como función darle la polaridad al bit de ALERT como no se usa
para el proyecto se deja en 0 por defecto.
OS (ONE SHOT)
Cuando el modo de bajo consumo está activado, se debe poner en nivel alto el
OS para que el sensor sepa que debe activarse y realizar la medición de
temperatura, actualizando el registro de temperatura con el nuevo dato.
BYTE D7 D6 D5 D4 D3 D2 D1 D0
1 OS R1 R0 F1 F0 POL TM SD
1 1 1 1 0 0 0 1
2 CR1 CR0 AL EM X X X X
1 0 0 0 0 0 0 0
(TMP102, 2012)
86
(configTMP102xI2C ()), en esta función se envía el bit de star, se le indica
al sensor que se le va a escribir la configuración requerida, se apunta al registro
de configuración y se escribe en este los bits necesarios para realizar la toma de
temperatura.
87
Figura 50. Lectura de la temperatura
88
Se muestra la implementación para la recepción del dato de inicio de lectura de
temperatura, cabe resaltar que dicho dato de inicio es muy importante, ya que
este dato indica que se debe encender el sensor, para realizar una toma de
temperatura y enviarla; dicha implementación se muestra en el siguiente
diagrama de bloques:
En este podemos observar que el dispositivo central debe enviarle el símbolo ‘?’,
con el fin de poner la variable menú = 0, y al salir de la interrupción llegando a la
bucla infinita entrara al caso 0 realizando una toma de temperatura.
89
Figura 52. Envió de la temperatura al dispositivo central
90
Figura 53. Programa principal
91
5.2 IMPLEMENTACION DISPOSITIVO CENTRAL
También cuenta con 2 LED, los cuales cumplen la función de indicadores, uno de ellos al
estar encendido indica que el dispositivo central se encuentra activo y el otro solo se
prende cuando el GPRS se activa para enviar el mensaje de texto, una vez se ha enviado
dicho mensaje se apaga el GPRS y a su vez dicho LED también se apaga indicando el
estado.
Cabe resaltar que la pantalla se puede bloquear, pero esto no implica que el dispositivo
central deje de funcionar, esto solo indica que el dispositivo se encuentra en modo de
bajo consumo; se interrumpe el funcionamiento del dispositivo central solo cuando se
apague el LED indicador de encendido, para realizar esta acción se cuenta con un botón
adicional, el cual es diferente a los otros y su única función es la de cortar la alimentación
que se le entrega al dispositivo central.
Botones:
El dispositivo cuenta con 4 botones los cuales son pulsadores normalmente
abiertos, para su implementación es necesario la realización de dos filtros, el
92
primero de ellos por hardware y el segundo por software, esto se hace en busca
de darle estabilidad a los botones, adicionalmente estos botones se encuentran
conectados a una compuerta AND de 4 entradas 1 salida, dicha salida está
conectada a la interrupción externa del PIC18F452 para procesar la información
de forma más rápida y organizada, el usuario debe tener en cuenta la
numeración de los botones ya que esta siempre corresponderá a la numeración
de que aparece en la pantalla, permitiéndole navegar por esta y controlar el
dispositivo.
93
5.2.1.1 Menú principal se crean dos menús, por lo tanto es necesario enviar dos
caracteres diferentes, el primero es el carácter ‘j’ el cual equivale al número 106 en la
tabla ASCII y tiene la característica de mostrar cuando el SMS se encuentra inhabilitado,
el segundo es el carácter ‘d’ el cual equivale en la tabla ASCII al número 100 y tiene la
característica de indicar que el SMS está activo, cabe resaltar que la pantalla indica la
activación del SMS mas no que esta encendido, en otras palabras si el SMS se encuentra
activo, entonces en caso de alarma dicho GPRS se enciende y a su vez el LED indicador,
una vez es enviado el mensaje de texto el LED se apaga y el GPRS también, sin embargo
el SMS en la pantalla continua activo, en caso contrario el SMS nunca se mostrara activo
por lo tanto no enviara el mensaje de texto y el LED nunca prendera ya que el usuario a
configurado que el SMS se encuentre inactivo.
94
mientras el usuario se mantenga en esta opción, el dato de temperatura se actualiza
cada 2 segundos, brindándole al usuario la opción de consultar la temperatura del
paciente cada que lo desee, para regresar el menú principal debe presionar nuevamente
el boton1.
95
el PIC18F452 debe enviar el carácter ‘g’ el cual corresponde al número 103 en el código
ASCII.
Este menú tiene la característica de configurar cada cuanto se desea que el paciente sea
monitoreado de forma autónoma, el usuario debe seleccionar 15, 30 o 60 minutos,
dependiendo de su preferencia, una vez que el usuario elija una opción del menú el
dispositivo quedará configurado y regresará al menú principal.
5.2.1.5 SMS. Para entrar al menú del GPRS, es necesario encontrarse en el menú de
configuraciones y presionar el botón 2, al presionar este botón en esas condiciones el
PIC18F452 le envía la letra ‘h’ que corresponde al número 104 del código ASCII, este
menú tiene la característica de brindarle la opción al usuario de activar el GPRS o no,
cabe resaltar que por defecto el dispositivo tiene desactivado el GPRS.
96
corresponde al número 107 del código ASCII, comunicándose a través del puerto serial
con la pantalla.
5.2.1.7 Alerta. La pantalla de alerta solo se mostrará cuando el sensor tome el dato de
temperatura de 38°C o más, una vez la temperatura es mayor o igual a 38°C el PIC18F452
deberá sonar la alarma, enviar el mensaje de texto en caso de tenerlo activado, y
transmitir el carácter ‘i’ el cual pertenece al número 105 en ASCII, una vez la pantalla
recibe este carácter empieza a mostrar el valor de temperatura en rojo indicando que
hay una alerta tal como se observa en la Figura 63; con el botón 1 se puede apagar la
alarma, una vez es apagada la alarma la pantalla regresa a mostrar el menú inicial,
mientras no se presione el botón 1, la alarma sonara y la pantalla actualiza el dato de
temperatura cada 2 segundos.
97
Figura 63. Alerta por temperatura >=38°C.
98
En la Figura 65 está el diagrama de bloques el cual muestra como el PIC18F452 le
comunica el dato de temperatura a la pantalla, este debe enviar primero la parte baja
‘decimal’, y debe esperar 50 ms para enviar la parte alta ‘entera’, esto es por cuestiones
de la pantalla, debido a que esta puede des configurarse si no se deja espacio de tiempo
entre los datos.
El módulo XBEE maestro funciona a través del PIC18F452 y es el encargado de: pedir la
temperatura al dispositivo periférico, recibir el dato de temperatura y transmitir el dato
al PIC18F452 para que este pueda ser procesado. Estas acciones suceden en dos casos,
el primero de ellos es cuando el usuario requiere visualizar la temperatura del paciente,
y el segundo caso es cuando él dispositivo entra a la interrupción sea en 15, 30, o 60
minutos, según halla configurado el usuario, una vez el dispositivo se encuentra en esta
interrupción le pide el dato de temperatura al dispositivo periférico, pero el dispositivo
central no lo muestra a menos de que el dato que reciba, le indique que él paciente
presenta una temperatura mayor o igual a 38°C .
99
pantalla muestre el menú correspondiente, una vez realizado esto pide el dato de
temperatura al periférico, espera un tiempo para asegurar la recepción del dato, y llama
la función enviarTempLCD(), la cual permite a la pantalla actualiza el dato de
temperatura, en LCD, mientras se encuentre el menú 1 se repetirá las acciones descritas
cada 2 segundos.
100
Figura 67. Interrupción serial dato de temperatura
101
El módulo XBEE maestro deberá requerir el dato de la temperatura al periférico cada 15,
30, o 60 minutos, dependiendo de cómo el usuario halla configurado el dispositivo
central para el monitoreo del paciente, el siguiente diagrama corresponde a la
interrupción por tiempo la cual inicia cuando se completa el tiempo configurado por el
usuario, en esta se habilita la interrupción por UART para poder comunicarse con el
periférico y recibir el dato de temperatura.
Cabe resaltar que se piden tres datos de temperatura, por eso el dispositivo central
envía tres signos de ‘?’ con un espacio de 1 segundo para asegurar la recepción del dato
de temperatura.
102
Figura 69. Diagrama de bloques para la alerta
El PIC18F452 debe encender el módulo GPRS cuando ocurra una alerta de temperatura
alta en el paciente, ya sea por monitoreo del dispositivo 15, 30 o 60 minutos
dependiendo de cómo lo halla configurado el usuario, o cuando esta esté siendo
visualizada por dicho usuario, cuando el PIC18F452 enciende el módulo GPRS, le indica
a que numero debe enviar el mensaje de texto y también le escribe el mensaje que debe
enviar, una vez ha realizado esta acción, se debe apagar el GPRS; se resalta el hecho de
que el SMS debe estar activo en el dispositivo, para que el PIC18F452 realice las acciones
necesarias.
103
La lógica utilizada para realizar el control del módulo GPRS, es la que se presenta en el
siguiente diagrama de bloques el cual realiza las acciones de desactivar la UART para
que no exista conflicto al enviar el mensaje, se envía por el puerto serial los comandos
AT programados para lograr que el mensaje de texto llegue al usuario, siguiendo la
secuencia mostrada en la Figura 70.
104
Figura 71. Programa principal
105
Se requiere el uso de dos interrupciones una es la externa y otra por software, la externa
es para determinar cuando el usuario presiona algún botón, y la segunda es para
temporizar los 15, 30 o 60 minutos que elija el usuario para realizar el monitoreo de la
persona.
106
Interrupción por software: la Figura 73 corresponde al diagrama de bloques
implementado, para realizar la cuenta de 15, 30 o 60 minutos, es necesario
indicarle al procesador que debe entrar a esta interrupción cada determinado
tiempo en este caso (0x1B), se cuenta cuantas veces el procesador entra en esta
interrupción, cuando el contador sea igual 2285 es por qué ha pasado un minuto,
en ese momento se almacena la cuenta de los minutos y se reinicia el contador
de la interrupción para que este pueda contar otro minuto.
A continuación se explican las funciones que deben realizar cada uno de los botones
para responder a los requerimientos del usuario.
107
Botón 1 dentro de la función se evalúa si el menú es igual a 7, en caso de serlo
entonces el botón realiza la acción de aumentar de uno en uno el número que
se ingresa para registrar el celular donde se envía el mensaje de texto, de lo
contrario, pregunta si el estado del LCD es igual a cero si este es igual a cero, y
es accionado, debe encender el LCD y esperar 4 segundos, pero si LCD es
diferente de cero, guarda la variable botón con el número 1.
108
Figura 75. Acciones del botón 2
Botón 3: Pregunta si el estado del LCD es igual a cero si este es igual a cero, y es
accionado, debe encender el LCD y esperar 4 segundos, pero si LCD es diferente
de cero, guarda la variable botón con el número 3, cabe resaltar que es el único
botón que no tiene acciones en el menú 7, en este menú es donde se registra el
número telefónico.
109
Figura 76. Acciones del botón 3
110
Figura 77. Acciones del botón 4
111
112
6. PRUEBAS Y RESULTADOS
Se realizan las pruebas pertinentes para el dispositivo central, estas consisten en:
verificar el encendido del dispositivo, las acciones de la pantalla al pulsar los botones, el
encendido del GPRS, también de la alarma y él envió del mensaje de texto.
El dispositivo cuenta con un interruptor el cual, permite el encendido de este, una vez
este es accionado se enciende un LED verde el cual indica que el dispositivo central está
activo, a su vez la pantalla enciende y toma 4 segundos en mostrar el menú inicial.
113
La Figura 79, muestra como después de ser accionado el interruptor, la pantalla
y el LED verde encienden, asegurando que el dispositivo central esta prendido.
Esta prueba muestra cómo reacciona la pantalla al accionar cada uno de los botones que
permite ingresar el menú principal.
114
En la Figura 81 se observa como al presionar el botón 1, el dispositivo central
muestra la temperatura en pantalla.
115
La Figura 83 muestra cómo se apaga la pantalla para lograr un bajo consumo,
pero el LED verde continua encendido, indicando que el dispositivo central aún
se encuentra monitoreando.
116
En la Figura 85 se observa el menú para activar o desactivar el GPRS, este cambio
se ve reflejado en la pantalla del menú inicial, el cual dependiendo de si está
activo muestra una luz verde con el título al lado de SMS.
117
6.1.3 Encendido SMS
118
6.2 PRUEBAS DEL DISPOSITIVO PERIFÉRICO
Las pruebas del dispositivo periférico consisten en verificar el encendido del dispositivo,
él envió de los datos de temperatura y el comportamiento del sensor.
El dispositivo cuenta con un interruptor el cual, permite el encendido de este, una vez
este es accionado se enciende un LED verde el cual indica que el dispositivo periférico
está activo.
119
Figura 90. Dispositivo periférico encendido
Se realizan varios tipos de pruebas para la parte funcional del dispositivo, una es la
precisión del sensor y tiempo de establecimiento, la otra es la distancia de alcance que
120
hay entre el dispositivo periférico y el central, y se realiza las pruebas de consumo de
potencia para determinar la duración de las baterías.
Con el fin de conocer que tan preciso es el sistema, debemos realizar cálculos con datos
experimentales para basarnos en la estadística y llegar a una conclusión. Teniendo en
cuenta lo anterior se decide comprar un termómetro digital genérico ver Figura 92, para
realizar una comparación en los datos y encontrar la diferencia entre los mismos.
121
Tabla 26. Pruebas dispositivo vs termómetro digital
Temperatura Temperatura
Parte toma
PRUEBA1 Edad (años) termómetro sensor proyecto
temperatura
genérico (°C) (°C)
Con los datos anteriores procedemos a sacar la media y la desviación estándar de cada
dispositivo de medición con el fin de ver la diferencia entre estos (ver tabla 27):
122
Tabla 27. Diferencia absoluta de los sensores
Desviación Desviación
Promedio Promedio
estándar estándar
36,07 0,416 35,6155 0,565
123
Tabla 28. Tabla comparativa elemento patrón vs. sensor del dispositivo
124
El promedio del error relativo nos indica en porcentaje que tan grave puede llegar a ser
el error de nuestro dispositivo respecto al real (horno), y cómo podemos observar en
promedio el error es del 0,41%.
125
Para determinar el tiempo de establecimiento del dispositivo se realizó la siguiente
prueba, se tomó la temperatura de una persona con el termómetro digital comercial el
cual arrojo un valor de 36.2°C, este dato se tomó como referencia para determinar la
respuesta del sensor del proyecto. Se tomó el sensor en frio, se ubicó en la axila de la
persona y se registraron los datos de temperatura que el dispositivo arrojaba cada 30
segundos, hasta que el sensor del dispositivo lograra la homotermia ver tabla 30.
Temperatura sensor
Tiempo (segundos) dispositivo °C
0 27,19
30 33,03
60 34,12
90 35,03
120 35,11
150 35,17
180 35,22
210 36
240 36,03
270 36,06
300 36,08
330 36,09
360 36,11
390 36,12
420 36,14
450 36,16
480 36,17
Se grafican los datos teniendo como el eje x el tiempo y en el eje y la temperatura del
dispositivo, para observar la respuesta de este, hasta llegar al tiempo de
establecimiento.
126
Figura 95. Respuesta sensor del dispositivo respecto al tiempo de establecimiento
6.3.4 Distancia
Para determinar el alcance efectivo del dispositivo se realizan 3 pruebas, una a campo
abierto sin obstáculos y dos en apartamentos los cuales miden alrededor de 62mt2,
ubicando el dispositivo en diferentes lugares.
127
Figura 96. Cancha de futbol
Prueba en apartamento 1.
En la Figura 97 se muestra el plano del apartamento el cual mide
aproximadamente 62mts2, en este se verifico la comunicación eficaz entre el
dispositivo periférico y el central, en literal A se ubica el dispositivo periférico, y
se mueve el dispositivo central a todos los literales (B, C, D, E, F, G, H, I, J, K, L) a
continuación se muestran las distancias que hay entre los literales, cabe resaltar
que en ninguno se pierde el dato, ni siquiera del literal A al L el cual debe
atravesar 3 paredes.
A-B= 2,5mts
B-C= 3mts
C-D= 2,5mts
C-E= 1mts
G-F= 2mts
F-G= 2mts
E-H= 3mts
H-I= 1mts
H-J= 1,5mts
J-L= 1,5mts
J- K= 2mts
128
Figura 97. Apartamento 1
Prueba en apartamento 2.
En la Figura 98 se muestra el plano del apartamento el cual también mide
aproximadamente 62mts2, se realiza esta prueba con el fin de probar en otro
tipo de distribución y verificar la eficacia lograda en el apartamento 1, en literal
A se ubica el dispositivo periférico, y se mueve el dispositivo central a todos los
literales (B, C, D, E, F, G, H, I, J, K) a continuación se muestran las distancias que
hay entre los literales, cabe resaltar que en ninguno se pierde el dato, ni siquiera
del literal A al K el cual debe atravesar 2 paredes.
A-B= 2mts
B-C= 2,5mts
C-D= 1mts
D-E= 1mts
E-F= 2mts
D-G= 1mts
G-H= 4mts
G-I= 4mts
I-K= 3mts
I-J= 5mts
129
Figura 98. Apartamento 2
130
En la Figura 100 se observa que la pantalla del dispositivo central está encendida
y no recibe el dato de temperatura, en este estado su consumo se es de 0.952W.
De acuerdo a esto una batería de 9 voltios de 600mAh, lograría una duración de
5 horas encontrándose en este estado.
131
Figura 102. Consumo del dispositivo central en alerta
El dispositivo periférico solo cuenta con dos estados uno es encendido en reposo,
y el otro es encendido tomando la medición de temperatura. En la Figura 103 se
observa el consumo en estado de reposo el cual es de 0.119W, en la Figura 104
se observa que el consumo realizando la medición es de 0.123W. De acuerdo a
esto dos baterías AAA de 1.5 voltios que entreguen 2700mAh cada una, lograría
una duración de 136 horas en cualquiera de los dos estados.
132
7. CONCLUSIONES Y TRABAJO FUTURO
7.1 CONCLUSIONES
133
La arquitectura, y el software empleado en los dispositivos permite el monitoreo
y alerta de temperatura con una precisión de 0,30°C según los resultados
obtenidos.
Se encuentra la necesidad de medir otro tipo de variables críticas para los bebés,
como lo es el CO2 el cual causa una gran tasa de mortalidad en los neonatos.
134
Se podría plantear la posibilidad de almacenar los datos de temperatura dentro
de una memoria en el dispositivo, con el fin de estudiar el comportamiento de
esta en el tiempo para futuras investigaciones.
135
136
BIBLIOGRAFÍA
Ángel Custodio, Z. B. (2006). Sistema de medición de temperatura sin contacto con el proceso.
Antonio Miguel Ruiz Armenteros, J. L. (2008). Error, incertidumbre, precisión y exactitud, términos
asociados a la calidad espacial.
Cardona, V. A. (2011). Desarrollo de Prototipo en Prenda de Vestir para Niños de Temprana Edad, Capaz
de Medir e Informar la Temperatura a Distancia. Caracas.
Del Valle Ayala Uzziel, L. A. (2009). sistema de monitoreo continuo de temperatura en infantes mediante
transmision inalámbrica. Juárez.
Egan, L. F. (2006). El ABC del cuidado de enfermería en los bebés prematuros extremos –Segunda
parte–. EnfermeriaNeonatal, 19-23.
137
Fabio Nelson Figueroa, J. F. (15 de 02 de 2012). Detección, manejo y percepción materna de la fiebre en
niños Cali - Colombia. Detección, manejo y percepción materna de la fiebre en niños Cali -
Colombia. Cali, Valle, Colombia.
Frehner, C. (2007). Email-SMS-MMS (the linguistic creativity of asynchronous discorse in the new media
age). Germany: Peter Lang AG.
Gianni Pezzotti a, P. C. (2006). Pirómetro a baja radiación para la medición de la temperatura en la frente.
Roma.
Gunga, A. W.-C. (2012). Monitoring of Body Core Temperature in Humans. En A. W.-C. Gunga,
Monitoring of Body Core Temperature in Humans (págs. 309-326). Berlin.
Herrera, D. L. (1998). Efectos nocivos de la fiebre en el niño y medidas terapéuticas. Revista Cubana de
Pediatría.
Lyon, A. (2007). Temperature control. PAE DIAT RICS AND CHILD HEALT , 155-160.
Lyon, Y. F. (2011). Temperature monitoring and. En PAEDIATRICS AND CHILD HEALTH (págs. 127-
130). Edinburgh: Elsevier .
138
Palacios, A. G. (2000). Alteraciones de la termorregulación. En A. G. E. Lizarralde Palacios, Emergencias
(págs. 192-207). BILBAO.
Pearson, F. I. (2014). Fichas Interactivas Pearson. Obtenido de Fichas Interactivas Pearson: http://fichas-
interactivas.pearson.es/material_ejemplo/Respuesta_temporal_segundo_orden.pdf
Rodríguez, J., Sánchez Campayo, C., Pérez Botella, J., Pérez López, J., Rodríguez Mondéjar, M., Pastor
Pérez, R., . . . Invernón Caparrós, A. (1 de Noviembre de 2002). ESTUDIO PROSPECTIVO DE
LA LECTURA DE LATEMPERATURA TIMPÁNICA EN UNA UCI POLIVALENTE. Obtenido de
UM: www.um.es/eglobal/
139
140
ANEXO A – SOFTWARE DISPOSITIVO CENTRAL
#include <main.h>
#use standard_io(B)
#use
rs232(baud=9600,bits=8,parity=n,xmit=pin_C6,rcv=pin_C7,stream=ESCLAVO)
/***** Se habilita el otro puerto UART para comunicarnos con el otro PIC****/
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_D4,rcv=pin_D5,stream=GPRS)
/*****Se habilita el otro puerto UART para comunicarnos con el GPRS*****/
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_A1,rcv=pin_A2,stream=LCD)
/*****Se habilita el otro puerto UART para comunicarnos con el LCD*****/
141
menu=5;
contMinuto=0;
}
set_timer0 (0x1B);
}
if((temperatura[1]>38)||(temperatura[1]==38
{
menu=6; //En caso de ser mayor a 38°C menú=6
boton=0;
}
}
}
142
if(menu==7)
{
if(numCel==9)
{
numCel=0;
bandNumCel=0;
}else{
numCel++;
bandNumCel=numCel;
}
}else{
if(estadoLCD==0)
{
output_high(pin_A0);
estadoLCD=1;
delay_ms(4000);
}else
{
boton=1;
}
}
}
143
estadoLCD=1;
delay_ms(4000);
}else
{
boton=2;
}
}
144
}
}
}
void main()
{
numero[0]=read_EEPROM(0x02);
numero[1]=read_eeprom(0x03);
145
numero[2]=read_eeprom(0x04);
numero[3]=read_eeprom(0x05);
numero[4]=read_eeprom(0x06);
numero[5]=read_eeprom(0x07);
numero[6]=read_eeprom(0x08);
numero[7]=read_eeprom(0x09);
numero[8]=read_eeprom(0x0A);
numero[9]=read_eeprom(0x0B);
set_tris_A(0x00); //Todo puerto A como salida
set_tris_D(0x00); //Todo puerto D como salida
set_tris_B(0x3D); // Puertos de entrada de botones
setup_timer_0(RTCC_INTERNAL | RTCC_DIV_2); //Configuracion del timer
set_timer0 (0x1B); //Carga del timer
enable_interrupts(INT_TIMER0); // Habilita interrupción del timer0
enable_interrupts(INT_EXT); //Habilita interrupción externa
enable_interrupts(global); //Habilita interrupciones globales
ext_int_edge(H_TO_L); //Interrupcion de nivel alto a bajo
output_low(pin_D1);
output_high(pin_D0);
temperatura[0]=0;
temperatura[1]=0;
if(estadoLCD==1)
{
output_high(pin_A0);
}
delay_ms(4000);
while(TRUE)
{
switch(menu)
{
case 0:
estadoSMS=read_eeprom(0x01);
if(estadoSMS==1)
{
fputc('d',LCD); //Se envia d al lcd SMS activo
}else //si no
{
if(estadoSMS==0)
{
146
fputc('j',LCD); //Se envia j al lcd SMS desactivado
}
}
numCel=0, bandNumCel=0, contNumCel=0,numMensajes=1;
while(menu==0)
{
if(boton==1) //Toma Temperatura actual
{
menu=1;
}else{
if(boton==2) //Modo de configuraciones
{
menu=2;
}else{
if(boton==3) //Opción para apagar el LCD
{
estadoLCD=0; // LCD : 0- apagado y 1- prendido
output_low(pin_A0); //Apaga el LCD
boton=0;
menu=8;
}
}
}
}
boton=0;
break;
case 1:
disable_interrupts(INT_TIMER0);
delay_ms(20);
147
fputc('?',ESCLAVO); //Se envia al otro PIC el caracter
?, con el fin de que calcule un nuevo dato de temperatura//
delay_ms(500);
enviarTempLCD(); //Se envia el dato de temperatura
recibido por la uart al LCD//
delay_ms(2000);
if(boton==1) //Para volver al menu inicial
{
menu=0;
}
}
enable_interrupts(INT_TIMER0);
boton=0;
break;
case 2:
delay_ms(20);
fputc('f',LCD); //Entra al menu de configuraciones
while(menu==2)
{
if(boton==1) //Configurar el tiempo para el
monitoreo//
{
menu=3;
}else{
if(boton==2) //Para activar o desactivar el envio
de mensajes de texto//
{
menu=4;
}else{
if(boton==3) //Para introducir el numero celular al
cual se deben enviar los SMS//
{
menu=7; //En el menu 7 guardamos el nuevo
numero en el pic//
148
}else
{
if(boton==4) //Para volver al menu de Inicio
{
menu=0;
}
}
}
}
}
boton=0;
break;
case 3:
fputc('g',LCD); //Entra al menu donde puede
seleccionar el tiempo//
while(menu==3)
{
if(boton==1) //Selecciona 15 minutos, para las
pruebas le ponemos 1 minuto//
{
tiempo=15;
set_timer0 (0x1B); //Reiniciamos la cuenta del
Timer0//
menu=0;
cont=0;
contMinuto=0; //Reiniciamos el contador de
Minutos//
write_eeprom(0x00,tiempo);
}else{
if(boton==2)
{
tiempo=30;
set_timer0 (0x1B);
menu=0;
cont=0;
contMinuto=0;
149
write_eeprom(0x00,tiempo);
}else{
if(boton==3)
{
tiempo=60;
set_timer0 (0x1B);
menu=0;
cont=0;
contMinuto=0;
write_eeprom(0x00,tiempo);
}else{
if(boton==4) //Opcion para volver al inicio
{
menu=0;
}
}
}
}
}
boton=0;
break;
case 4:
fputc('h',LCD); //Opcion de activar o desactivar el
envio de mensajes de texto//
while(menu==4)
{
{
estadoSMS=1; //En 1 indica que el envio de SMS
está activado//
150
estadoSMS=0; //En 0 indica que el envio de SMS
esta desactivado//
if(estadoLCD==0)
{
menu=8;
}else{
if(estadoLCD==1)
{
menu=0;
}
}
fputc('?',ESCLAVO); //Se envia este caracter al otro pic
delay_ms(1000);
fputc('?',ESCLAVO); //Se envia este caracter al otro pic
delay_ms(1000);
fputc('?',ESCLAVO); //Se envia este caracter al otro pic
delay_ms(1000);
enable_interrupts(INT_TIMER0);
break;
case 6:
151
/******Caso de alerta de temperatura Alta encima de 38°C*******/
disable_interrupts(INT_TIMER0);
output_high(pin_D1); //Activa la alerta (alarma)
delay_ms(500);
enviarTempLCD(); //Se envia el dato de
temperatura recibido por la uart al LCD//
delay_ms(2000);
152
{
output_low(pin_D1); //Se desactiva la alarma
menu=0; //Vuelva al menu inicial
if(estadoSMS==1)
{
output_high(pin_D2);
delay_ms(1000);
output_low(pin_D2);
}
}
}
enable_interrupts(INT_TIMER0);
boton=0;
break;
case 7:
disable_interrupts(INT_TIMER0);
fputc('k',LCD); //Se envia este caracter al modulo
LCD, para indicarle//
while(menu==7)
{
switch(bandNumCel) //bandNumCel nos indicara el caso
al cual debemos entrar//
{
case 0:
fputc(numCel,LCD); //Enviara el nuemro 0 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 1:
fputc(numCel,LCD); //Enviara el nuemro 1 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
153
break;
case 2:
fputc(numCel,LCD); //Enviara el nuemro 2 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 3:
fputc(numCel,LCD); //Enviara el nuemro 3 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 4:
fputc(numCel,LCD); //Enviara el nuemro 4 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 5:
fputc(numCel,LCD); //Enviara el nuemro 5 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 6:
fputc(numCel,LCD); //Enviara el nuemro 6 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 7:
fputc(numCel,LCD); //Enviara el nuemro 7 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 8:
fputc(numCel,LCD); //Enviara el nuemro 8 al LCD
154
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 9:
fputc(numCel,LCD); //Enviara el nuemro 9 al LCD
bandNumCel=10; //Lo enviamos a este caso el cual
no hacer nada mientras se oprime un boton//
break;
case 10: //No se hace nada, pero deja en
funcionamiento el procesador//
break;
case 11:
fputc('z',LCD); //Se envia el caracter Z al LCD indicando
que ya se seleccionó un número, que debe avanzar para seleccionar el otro//
{
contNumCel=0; //Se reinicializa el contador
menu=0; //Vuelva al menu inicial
delay_ms(1000);
fputc('y',LCD); //Se envia esto para indicarle al LCD
que los 10 digitos fueron guardados//
delay_ms(1000);
}else //Si no se han llenado todas las posiciones
del arreglo//
155
contNumCel++; //Se aumenta el contador de
posicion del arreglo donde se guarda el numero//
}
break;
}
}
boton=0;
write_eeprom(0x02,numero[0]);
delay_ms(10);
write_eeprom(0x03,numero[1]);
delay_ms(10);
write_eeprom(0x04,numero[2]);
delay_ms(10);
write_eeprom(0x05,numero[3]);
delay_ms(10);
write_eeprom(0x06,numero[4]);
delay_ms(10);
write_eeprom(0x07,numero[5]);
delay_ms(10);
write_eeprom(0x08,numero[6]);
delay_ms(10);
write_eeprom(0x09,numero[7]);
delay_ms(10);
write_eeprom(0x0A,numero[8]);
delay_ms(10);
write_eeprom(0x0B,numero[9]);
enable_interrupts(INT_TIMER0);
break;
case 8:
//En este caso se queda el procesador mientras la pantalla del LCD
este apagada//
156
}
}
void enviarSMS(void)
{
disable_interrupts(INT_RDA); //Se deshabilita la interrupción de la uart
int8 cont, aux; //Se declaran la variables
fprintf(GPRS,"AT+CMGF=1"); //Se envía al módulo la opción de escribir
delay_ms(1000);
fputc(13,GPRS); //Se envía un enter
delay_ms(1000);
fprintf(GPRS,"AT+CMGS="); //indica que se envía un mensaje de texto
delay_ms(1000);
fputc('"',GPRS); //Se abre Las comillas para escribir el numero
delay_ms(1000);
delay_ms(1000);
fputc('"',GPRS); //Se cierran Las comillas para
escribir el numero
delay_ms(1000);
fputc(13,GPRS); //Se envía un enter
delay_ms(1000);
/*****************Se escribe el mensaje a enviar*************/
fprintf(GPRS,"El Bebe tiene fiebre por ");
delay_ms(500);
fprintf(GPRS,"encima de %i,%i grados C, la ",temperatura[1],temperatura[0]);
delay_ms(500);
fprintf(GPRS,"alarma se acaba de activar");
delay_ms(1000);
fputc(0x1A,GPRS); //Control+Z para que envie el
mensaje
157
delay_ms(1000);
fputc(0x1A,GPRS); //Control+Z para que envie el mensaje
delay_ms(1000);
}
158
ANEXO B – SOFTWARE DEL LCD
#platform "GOLDELOX"
#inherit "4DGL_16bitColours.fnc"
#inherit "VisualConst.inc"
#inherit "pruebaConst.inc"
#inherit "ledDigitsDisplayGoldelox.inc"
var Aux, band:=1, uni, dec, opcion, borr:=1, numx1, numx2, numx3, numx4,
numx5, numx6, numx7, numx8;
var numx9, numx10, numx11:=1, band2:=1, numero2, numerocel:=0,
numBand:=0;
func capturaNumero()
while(band2==1)
if(numero2==121)
band2:=0;
gfx_Cls();
endif
if(numero2==122)
numerocel++;
numBand:=numx11;
else
numx11:=numero2;
endif
159
if(numerocel==1)
numx1:=numBand;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==2)
numx2:=numBand;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==3)
numx3:=numBand;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==4)
numx4:=numBand;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==5)
numx5:=numBand;
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==6)
numx6:=numBand;
ledDigitsDisplay(numx6, iiCustomdigits6H, iiCustomdigits6L, 64, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==7)
160
numx7:=numBand;
ledDigitsDisplay(numx7, iiCustomdigits7H, iiCustomdigits7L, 76, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx6, iiCustomdigits6H, iiCustomdigits6L, 64, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==8)
numx8:=numBand;
ledDigitsDisplay(numx8, iiCustomdigits8H, iiCustomdigits8L, 84, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx7, iiCustomdigits7H, iiCustomdigits7L, 76, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx6, iiCustomdigits6H, iiCustomdigits6L, 64, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==9)
numx9:=numBand;
ledDigitsDisplay(numx9, iiCustomdigits9H, iiCustomdigits9L, 92, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx8, iiCustomdigits8H, iiCustomdigits8L, 84, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx7, iiCustomdigits7H, iiCustomdigits7L, 76, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx6, iiCustomdigits6H, iiCustomdigits6L, 64, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
if(numerocel==10)
numx10:=numBand;
ledDigitsDisplay(numx10, iiCustomdigits10H, iiCustomdigits10L, 100, 96, 1, 1, 9,
0) ;
ledDigitsDisplay(numx9, iiCustomdigits9H, iiCustomdigits9L, 92, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx8, iiCustomdigits8H, iiCustomdigits8L, 84, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx7, iiCustomdigits7H, iiCustomdigits7L, 76, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx6, iiCustomdigits6H, iiCustomdigits6L, 64, 96, 1, 1, 9, 0) ;
161
ledDigitsDisplay(numx5, iiCustomdigits5H, iiCustomdigits5L, 56, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx4, iiCustomdigits4H, iiCustomdigits4L, 48, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx3, iiCustomdigits3H, iiCustomdigits3L, 32, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx2, iiCustomdigits2H, iiCustomdigits2L, 24, 96, 1, 1, 9, 0) ;
ledDigitsDisplay(numx1, iiCustomdigits1H, iiCustomdigits1L, 16, 96, 1, 1, 9, 0) ;
endif
ledDigitsDisplay(numx11, iiLeddigits3H, iiLeddigits3L, 40, 24, 1, 1, 43, 0) ;
//1. Aumentar
// Statictext28 1.0 generated 14/08/2014 03:15:41 p.m.
media_SetAdd(iStatictext28H, iStatictext28L) ; // point to the Statictext28
image
media_Image(24, 8) ; // show image
//2. diminuir
// Statictext29 1.0 generated 14/08/2014 03:16:01 p.m.
media_SetAdd(iStatictext29H, iStatictext29L) ; // point to the Statictext29
image
media_Image(28, 80) ; // show image
//4. ok
// Statictext30 1.0 generated 12/08/2014 06:55:27 p.m.
media_SetAdd(iStatictext30H, iStatictext30L) ; // point to the Statictext30
image
media_Image(84, 44) ; // show image
wend
endfunc
func calcularTemp()
162
numero:=serin(); //...llegue un dato valido
wend
band:=1; //sumamos la bandera que da la salida
dec:=numero; //guardamos el dato
dec:=dec*100; //sacamos la decena del dato
if(dec>10)
Aux:=uni+dec; //sumamos todo para obtener el dato completo
endif
numero:=-1; //aseguramos que el numero entrante sea valido
endif
endif
endfunc
func main()
setbaud(BAUD_9600); // set baud rate of COM0
while(!media_Init())
wend
repeat
opcion:=serin(); //capturamos el dato serialmente
switch(opcion) //de acuerdo al dato capturado se entra en cada case
163
//Configuraciones
// Statictext5 1.0 generated 25/07/2014 10:28:55 a.m.
media_SetAdd(iStatictext5H, iStatictext5L) ; // point to the Statictext5 image
media_Image(0, 84) ; // show image
//Apagar pantalla
// Statictext6 1.0 generated 25/07/2014 10:28:55 a.m.
media_SetAdd(iStatictext6H, iStatictext6L) ; // point to the Statictext6 image
media_Image(0, 104) ; // show image
//Boton del GPRS
// Led1 1.0 generated 12/08/2014 04:12:03 p.m.
media_SetAdd(iLed1H, iLed1L) ; // point to the Led1 image
media_VideoFrame(0, 4, 1) ; // where numx is 0 (Off) or 1 (On)
break;
case 106:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
band2:=1;
numBand:=0;
numerocel:=0;
numx11:=0;
gfx_Cls(); //borrar pantalla
// Monitoreo y alerta de temperatura
// Statictext23 1.0 generated 12/08/2014 04:27:56 p.m.
media_SetAdd(iStatictext23H, iStatictext23L) ; // point to the Statictext23
image
media_Image(0, 28) ; // show image
//Temp Actual
// Statictext24 1.0 generated 12/08/2014 04:28:06 p.m.
media_SetAdd(iStatictext24H, iStatictext24L) ; // point to the Statictext24
image
media_Image(0, 64) ; // show image
//Configuraciones
// Statictext25 1.0 generated 12/08/2014 04:28:23 p.m.
media_SetAdd(iStatictext25H, iStatictext25L) ; // point to the Statictext25
image
media_Image(0, 84) ; // show image
//Apagar pantalla
// Statictext26 1.0 generated 12/08/2014 04:28:29 p.m.
media_SetAdd(iStatictext26H, iStatictext26L) ; // point to the Statictext26
image
164
media_Image(0, 104) ; // show image
break;
case 101:
if(borr==1)
gfx_Cls(); //borrar pantalla
borr:=0;
endif
calcularTemp();
//DIGITOS TERMOMETRO
// Leddigits1 1.0 generated 31/07/2014 04:47:37 p.m.
media_SetAdd(iLeddigits1H, iLeddigits1L) ; // point to the Leddigits1 image
media_Image(8, 40) ; // show all digits at 0, only do this once
//Temp Actual
// Statictext1 1.0 generated 25/07/2014 10:29:37 a.m.
media_SetAdd(iStatictext1H, iStatictext1L) ; // point to the Statictext1 image
media_Image(0, 8) ; // show image
//icono de °C
// Statictext2 1.0 generated 31/07/2014 04:46:58 p.m.
media_SetAdd(iStatictext2H, iStatictext2L) ; // point to the Statictext2 image
media_Image(44, 84) ; // show image
//Inicio
// Statictext7 1.0 generated 04/08/2014 09:37:05 a.m.
media_SetAdd(iStatictext7H, iStatictext7L) ; // point to the Statictext7 image
media_Image(0, 114) ; // show image
ledDigitsDisplay(Aux, iiLeddigits1H, iiLeddigits1L, 8, 40, 4, 3, 28, 0) ;
//mostramos la Temp
break;
case 102:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
gfx_Cls(); //borrar pantalla
// Configuraciones
// Statictext8 1.0 generated 25/07/2014 10:54:21 a.m.
media_SetAdd(iStatictext8H, iStatictext8L) ; // point to the Statictext8 image
media_Image(20, 24) ; // show image
//1. Tiempo Medicion
// Statictext9 1.0 generated 12/08/2014 05:01:40 p.m.
media_SetAdd(iStatictext9H, iStatictext9L) ; // point to the Statictext9 image
media_Image(0, 64) ; // show image
165
//2. SMS(On/Off)
// Statictext10 1.0 generated 28/10/2014 09:40:53 a.m.
media_SetAdd(iStatictext10H, iStatictext10L) ; // point to the Statictext10
image
media_Image(0, 80) ; // show image
//3. #Cel
// Statictext27 1.0 generated 12/08/2014 05:02:16 p.m.
media_SetAdd(iStatictext27H, iStatictext27L) ; // point to the Statictext27
image
media_Image(0, 95) ; // show image
//4. Inicio
// Statictext11 1.0 generated 12/08/2014 05:02:39 p.m.
media_SetAdd(iStatictext11H, iStatictext11L) ; // point to the Statictext11
image
media_Image(0, 110) ; // show image
break;
case 103:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
gfx_Cls(); //borrar pantalla
// Tiempo Medicion
// Statictext12 1.0 generated 25/07/2014 11:00:48 a.m.
media_SetAdd(iStatictext12H, iStatictext12L) ; // point to the Statictext12
image
media_Image(16, 20) ; // show image
// 1. Cada 15 min
// Statictext13 1.0 generated 25/07/2014 11:00:48 a.m.
media_SetAdd(iStatictext13H, iStatictext13L) ; // point to the Statictext13
image
media_Image(0, 48) ; // show image
//2. Cada 30 min
// Statictext14 1.0 generated 25/07/2014 11:00:48 a.m.
media_SetAdd(iStatictext14H, iStatictext14L) ; // point to the Statictext14
image
media_Image(0, 68) ; // show image
//3. Cada 60 min
// Statictext15 1.0 generated 25/07/2014 11:00:48 a.m.
media_SetAdd(iStatictext15H, iStatictext15L) ; // point to the Statictext15
image
media_Image(0, 88) ; // show image
166
break;
case 104:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
gfx_Cls(); //borrar pantalla
// GSM (Mensajes de Texto):
// Statictext17 1.0 generated 28/10/2014 09:47:04 a.m.
media_SetAdd(iStatictext17H, iStatictext17L) ; // point to the Statictext17
image
media_Image(0, 8) ; // show image
//1. si
// Statictext18 1.0 generated 12/08/2014 04:57:38 p.m.
media_SetAdd(iStatictext18H, iStatictext18L) ; // point to the Statictext18
image
media_Image(0, 76) ; // show image
// 2. No
// Statictext19 1.0 generated 12/08/2014 04:57:57 p.m.
media_SetAdd(iStatictext19H, iStatictext19L) ; // point to the Statictext19
image
media_Image(0, 92) ; // show image
// 3. Inicio
// Statictext20 1.0 generated 12/08/2014 04:58:14 p.m.
media_SetAdd(iStatictext20H, iStatictext20L) ; // point to the Statictext20
image
media_Image(0, 108) ; // show image
break;
case 105:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
gfx_Cls(); //borrar pantalla
calcularTemp();
//DIGITOS TERMOMETRO
// Leddigits2 1.0 generated 04/08/2014 11:44:20 a.m.
media_SetAdd(iLeddigits2H, iLeddigits2L) ; // point to the Leddigits2 image
media_Image(8, 32) ; // show all digits at 0, only do this once
//Temperatura Alta
// Statictext21 1.0 generated 04/08/2014 11:40:53 a.m.
media_SetAdd(iStatictext21H, iStatictext21L) ; // point to the Statictext21
image
167
media_Image(12, 8) ; // show image
//icono de °C
// Statictext22 1.0 generated 04/08/2014 11:41:19 a.m.
media_SetAdd(iStatictext22H, iStatictext22L) ; // point to the Statictext22
image
media_Image(48, 72) ; // show image
// 1. Apagar Alarma
// Statictext16 1.0 generated 04/08/2014 11:41:58 a.m.
media_SetAdd(iStatictext16H, iStatictext16L) ; // point to the Statictext16
image
media_Image(0, 108) ; // show image
ledDigitsDisplay(Aux, iiLeddigits2H, iiLeddigits2L, 8, 32, 4, 3, 28, 0) ;
//mostramos la Temp
break;
case 107:
borr:=1; //para borrar solo 1 vez la pantalla de la Temp
gfx_Cls();
capturaNumero();
//selecionar numero
// Leddigits3 1.0 generated 12/08/2014 06:42:13 p.m.
// Leddigits3 1.0 generated 14/08/2014 03:07:22 p.m.
media_SetAdd(iLeddigits3H, iLeddigits3L) ; // point to the Leddigits3 image
media_Image(40, 24) ; // show all digits at 0, only do this once
//1 digito
// Customdigits1 1.0 generated 12/08/2014 07:25:18 p.m.
media_SetAdd(iCustomdigits1H, iCustomdigits1L) ; // point to the
Customdigits1 image
media_Image(16, 96) ; // show all digits at 0, only do this once
//2 digito
// Customdigits2 1.0 generated 12/08/2014 07:25:39 p.m.
media_SetAdd(iCustomdigits2H, iCustomdigits2L) ; // point to the
Customdigits2 image
media_Image(24, 96) ; // show all digits at 0, only do this once
//3 digito
// Customdigits3 1.0 generated 12/08/2014 07:26:05 p.m.
media_SetAdd(iCustomdigits3H, iCustomdigits3L) ; // point to the
Customdigits3 image
media_Image(32, 96) ; // show all digits at 0, only do this once
//4 digito
// Customdigits4 1.0 generated 12/08/2014 06:30:37 p.m.
168
media_SetAdd(iCustomdigits4H, iCustomdigits4L) ; // point to the
Customdigits4 image
media_Image(48, 96) ; // show all digits at 0, only do this once
//5 digito
// Customdigits5 1.0 generated 12/08/2014 06:31:26 p.m.
media_SetAdd(iCustomdigits5H, iCustomdigits5L) ; // point to the
Customdigits5 image
media_Image(56, 96) ; // show all digits at 0, only do this once
//6 digito
// Customdigits6 1.0 generated 12/08/2014 06:31:57 p.m.
media_SetAdd(iCustomdigits6H, iCustomdigits6L) ; // point to the
Customdigits6 image
media_Image(64, 96) ; // show all digits at 0, only do this once
//7 digito
// Customdigits7 1.0 generated 12/08/2014 06:32:39 p.m.
media_SetAdd(iCustomdigits7H, iCustomdigits7L) ; // point to the
Customdigits7 image
media_Image(76, 96) ; // show all digits at 0, only do this once
//8 digito
// Customdigits8 1.0 generated 12/08/2014 06:33:19 p.m.
media_SetAdd(iCustomdigits8H, iCustomdigits8L) ; // point to the
Customdigits8 image
media_Image(84, 96) ; // show all digits at 0, only do this once
//9 digito
// Customdigits9 1.0 generated 12/08/2014 06:33:53 p.m.
media_SetAdd(iCustomdigits9H, iCustomdigits9L) ; // point to the
Customdigits9 image
media_Image(92, 96) ; // show all digits at 0, only do this once
//10 digito
// Customdigits10 1.0 generated 12/08/2014 06:34:21 p.m.
media_SetAdd(iCustomdigits10H, iCustomdigits10L) ; // point to the
Customdigits10 image
media_Image(100, 96) ; // show all digits at 0, only do this once
break;
endswitch
forever
endfunc
169
ANEXO C – SOFTWARE DEL DISPOSITIVO PERIFÉRICO
#include <main.h>
#use i2c(Master, sda=PIN_C4, scl=PIN_C3) //activamos la comunicacion i2c
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //activamos la comunicacion
serial//
int8 menu=0,cont=0;
int8 bandMSB=0; //guardamos la parte alta(entera) de la temperatura
int8 bandLSB=0;
170
i2c_write(0xF1);
i2c_write(0x80);
i2c_stop(); //Enviamos el finalizador de trama
}
bandMSB=msb;
bandLSB=lsb;
bandLSB/=10;
}
/********Función para enviar dato de temperatura al otro pic*************/
void enviarDatoTemp(void)
{
delay_ms(250); //esperamos para iniciar el envio del dato
putc(bandLSB); //enviamos las unidades del decimal
putc(bandMSB); //enviamos las unidades del decimal
}
/*********************Interrupción serial***********************/
#int_RDA
void RDA_isr(void)
{
delay_ms(20);
int8 dato=getchar(); //capturamos el dato que llegue del otro pic
171
if (dato=='?') //si el dato que nos envia el pic es igual a pregunta
{
menu=1; //el menu lo ponemos en uno para que apenas salga
empieze la toma de temp//
while(TRUE)
{
switch(menu)
{
case 1:
output_high(pin_A1);
leerTemperatura(); //llamamos la funcion para leer la
temperatura//
break;
case 0:
172
output_low(pin_A1);
break;
}
173
174
ANEXO D – RESULTADO ENCUESTA
21,25%
78,75%
175
3. Cantidad de padres encuestados:
*Nota: 3 de los 29 encuestados que afirmaron no ser padres, nunca han tenido
a su cuidado un bebé.
176
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido
a su cargo un bebé.
5. Intereses específicos:
5.1 Considera que las temperaturas altas causan daños irremediables a los
bebés:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a
su cargo un bebé.
177
5.2 Considera que los termómetros digitales son exactos:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a
su cargo un bebé.
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido
a su cargo un bebé.
178
5.4 Considerar que la fiebre es normal y se quita sola:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido
a su cargo un bebé.
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido
a su cargo un bebé.
179
7 Cantidad de dinero que los encuestados estarían dispuestos a pagar por el
dispositivo electrónico ya mencionado:
Rango Cantidad
$100.001 - 200.000 (cop) 16
$200.001 - 300.000 (cop) 6
$300.001 - 400.000 (cop) 2
$50.000 - 100.000 (cop) 43
(en blanco) 13
Total general 80
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido
a su cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
180
8 Intereses específicos sobre el dispositivo electrónico:
8.1 Comodidad con el hecho de que el dispositivo haga contacto con la axila del
bebé:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
8.2 Comodidad con el hecho de que el dispositivo haga contacto con el recto
del bebé:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
181
8.3 Comodidad con el hecho de que el dispositivo haga contacto con el oído del
bebé:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
8.4 Comodidad con el hecho de que el dispositivo haga contacto con la boca del
bebé:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
182
8.5 Posición respecto al hecho de que el monitor del dispositivo deba ser
inalámbrico:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
183
8.7 Considerar que los dispositivos electrónicos pueden hacer daño a los bebés:
*Nota: (en blanco) representa a las personas que afirmaron nunca haber tenido a su
cargo un bebé sumadas con aquellas que no pagarían por el dispositivo.
184