FACULTAD DE INGENIERÍA
CALI
2017
DESARROLLO E IMPLEMENTACIÓN DE UNA APLICACIÓN
WEB PARA EL MONITOREO EN TIEMPO REAL DE
TEMPERATURA, PRESIÓN Y HUMEDAD AL INTERIOR DE LOS
GALPONES DE AVES DE ENGORDE UTILIZANDO REDES DE
SENSORES INALÁMBRICOS
Proyecto de grado
FACULTAD DE INGENIERÍA
CALI
2017
Tabla de Contenidos
1. Resumen 5
2. Introducción 6
2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Marco teórico 10
3.1. Avicultura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.1. Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.3. Presión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
3.6. Redes de sensores inalámbricos en el monitoreo de microclimas . . . . . . . 16
3.9. ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.5. Alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4. Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2
4.4.4. Topologı́a de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.5.3. ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.5.5.2. Acerca de . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5.5.3. Contáctenos . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3
4.5.5.8. Alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5. Resultados 61
6. Conclusiones 82
7. Trabajo futuro 84
4
1. Resumen
SISMO-RT es una aplicación web que permite monitorear el proceso de engorde de pollos
mediante nodos inalámbricos encargados de medir en el interior de los galpones la tem-
peratura, la presión y la humedad. A través de la aplicación web es posible observar los
distintos fenómenos que afectan el desarrollo y rendimiento del pollo como los cambios en
la temperatura y la humedad.
Para el desarrollo de la red de sensores inalámbrica se optó por utilizar dispositivos XBee,
los cuales son de fácil adquisición en el mercado, confiables, bajo costo, bajo consumo de
energı́a y con un campo de aplicación amplio.
En el siguiente trabajo de grado se desarrolla una aplicación web, a la que se llamó SISMO-
RT, que mediante una red de sensores inalámbricos es capaz de mostrar información en
tiempo real del comportamiento de la temperatura, presión y humedad al interior de los
galpones.
5
2. Introducción
El estrés térmico producido por exceso de calor hace que las aves consuman menos alimen-
tos en un intento por disminuir su temperatura; como consecuencia, el ave no se puede
desarrollar completamente debido a una mala alimentación. Por otra parte, el estrés térmi-
co producido por el frı́o hace que las aves gasten parte de su alimento tratando de mantener
la temperatura corporal; como consecuencia, el ave deberı́a consumir más alimentos que
los minimos necesarios para obtener el peso ideal. En ambos casos se generan pérdidas
económicas potenciales para el avicultor.
Además de la temperatura, otros factores como la humedad relativa tanto como la compo-
sición del aire son causantes de efectos nocivos en la salud y desarrollo del pollo, reduciendo
la productividad al no alcanzar el peso deseado o incluso la muerte del ave. Por lo tanto, es
de vital importancia monitorear estas variables que si no son controladas podrı́an generar
pérdidas económicas significativas para el granjero.
6
2.2. Objetivos
Diseño e implementación de una aplicación web para la visualización en tiempo real del
comportamiento de la temperatura, presión y humedad relativa al interior de un galpón
avı́cola monitoreadas por medio de una red de sensores inalámbricos, a través de 5 nodos
que permita la recolección y transmisión de los datos.
Crear una base de datos en SQL Server con las tablas necesarias para almacenar
la información recolectada por la red de sensores inalámbricos y los registros de la
aplicación web.
7
2.3. Justificación
Actualmente la carne de pollo es una de las fuentes de proteı́nas más importante en nuestro
paı́s; según estadı́sticas de FENAVI (Federación nacional de avicultores de Colombia), el
consumo per cápita (por habitante) del pollo fue de 30,4 Kg para el año 2015 y de 29,5
Kg para el 2014, mientras que según FEDEGAN (Federación colombiana de ganaderos),
el consumo de carne de res fue de 19,3 Kg, el de cerdo 7,18Kg y el de pescado 6,1Kg[9].
Figura 1.
Además de la gran cantidad de carne de pollo que se consume en Colombia se espera que
para el año 2018 la exportación de carne de pollo y bovina se multipliquen por 10 como
lo dice un anuncio del ministerio de agricultura y comercio de Colombia, por lo que se
espera que siga aumentando la producción de carne de pollo en el pais.1 . Dicho lo anterior
podemos clasificar la avicultura como una de las actividades económicas más importantes
del paı́s, por lo que centrar la atención en su proceso y en cómo mejorarlo ayudará para
ser de ésta una actividad económica mucho más rentable.
8
haciendo que sea fácil experimentar algún tipo de estrés y que su rendimiento no sea el
mejor o que la mortalidad en los galpones sea alta.
Por lo tanto, es de vital importancia crear un sistema que permita obtener mediciones
de variables como la temperatura, humedad relativa y presión al interior del galpón que
sirva como herramienta para verificar si se está haciendo una ventilación correcta y que el
rendimiento de las aves de engorde sea óptimo.
Para esto se propone una aplicación web que permita a los avicultores realizar un monitoreo
en tiempo real de las variables de temperatura, presión y humedad relativa tomadas por
la red de sensores inalámbricos. Además; proporcionar un registro de alarmas cuando la
temperatura no sea la ideal y un histórico de las variables a lo largo del proceso de engorde
del pollo, facilitando la toma de decisiones para alcanzar un proceso mas rentable.
9
3. Marco teórico
3.1. Avicultura
La avicultura hace parte del sector agropecuario de Colombia y abarca a las actividades
de producción de huevos y de carne de pollo. La avicultura en Colombia ha tenido un
crecimiento en los últimos 50 años al pasar de producir 30 mil toneladas de carne de pollo
en 1961 a más de un millón de toneladas en 2012. La Federación Nacional de Avicultores
de Colombia FENAVI se encarga de representar al sector avı́cola nacional y asegurar
su crecimiento, competitividad y sostenibilidad, mediante acompañamientos tecnológicos,
sanitarios, de inocuidad, capacitación e investigación.
En el proceso de crianza de aves de engorde en Colombia, las aves llegan con un dı́a
de nacidas y se vacunan de acuerdo con un plan de vacunación diseñado por el médico
veterinario encargado de la granja, según los factores de riesgo de la zona. Las aves se alojan
en piso sobre una cama de viruta de madera o cascarilla de arroz. El ciclo tiene una duración
de 38 a 42 dı́as, dependiendo del destino final de las aves ( asaderos, supermercados o
distribuidores exclusivos de carne de pollo).
Durante éste proceso de engorde de las aves es necesario suministrar además condiciones
ambientales óptimas cómo garantizar una humedad relativa entre el 40 % y el 70 %, una
buena ventilación, espacio suficiente para su movilidad, lo anterior con el fin de evitar la
generación de enfermedades y la muerte de las aves.
Las aves, a diferencia de los humanos, no sudan, por lo que no disfrutan de este tipo
de sistema de enfriamiento evaporativo interconstruido en su organismo, pero sı́ tienen
cierto efecto de enfriamiento evaporativo a través de la respiración o jadeo y a través de
la transferencia directa del calor de su cuerpo al ambiente.
10
Sin embargo, al exceder los 38o C, los mecanismos de disipación del calor en el ave se
vuelven menos efectivos, para lo cual las aves reducen el consumo de alimento o dejan de
comer completamente, trayendo como consecuencia que el ave deje de crecer y si no se
controla, causando la muerte del ave.Además del estrés térmico producido por el exceso de
calor, las aves también pueden sufrir de estrés térmico por frı́o que trae como consecuencia
la muerte del ave si no se corrige a tiempo. [12]
3.3.1. Temperatura
Las aves no sudan; por lo tanto, su sistema de enfriamiento es básicamente a través del
intercambio directo de calor entre sus cuerpos y el aire. De esta manera, si un ave abre
11
sus alas es para exponer una mayor superficie de cuerpo y transferir más cantidad de
calor al aire. Para las aves con plumaje ya desarrollado, la temperatura del ambiente no
debe rebasar los 26,7o C, ya que después de esta temperatura, la capacidad de disipar el
calor es menos efectiva y empiezan a experimentar estrés por calor haciendo que consuman
menos alimentos o que dejen de comer completamente. Las aves también experimentan un
enfriamiento por el viento producto de circulación del aire a través del ave, creando una
temperatura efectiva o sensación térmica inferior a la temperatura real, haciendo que el
ave sienta una temperatura de hasta 5o C menos. [12] En el siguiente cuadro se muestran
las mediciones de temperatura y humedad relativa óptimas dependiendo los dı́as de edad
de las aves.
El intercambio de calor entre las aves y el aire al interior del galpón hace que éste aire se
sature de vapor de agua caliente el cual aumenta la temperatura al interior del galpón y
además puede traer consecuencias en la salud del ave. La humedad relativa indica que tan
cerca se encuentra el aire de retener toda la humedad que pueda antes de que ocurra la
condensación. Por lo tanto los avicultores ingresan aire a los galpones con una humedad
relativa entre el 50 % y el 70 % que le permita absorber el vapor de agua de las aves y de
la cama y expulsarlo mediante los diferentes sistemas de ventilación en los galpones que
son herméticamente sellados.
12
3.3.3. Presión
La presión atmosférica al interior del galpón no tiene un efecto directo sobre el desem-
peño de las aves y su salud; sin embargo, gracias a ésta es posible controlar, en galpones
herméticamente sellados y con ventilación de presión negativa, la velocidad a la que ingre-
sa y atraviesa el viento al galpón. Según el documento de Aplicación de los Conceptos de
Ventilación [14], se requiere que la diferencia de presión entre el interior del galpón y el
exterior sea de unos 15-30 Pascales y de esta manera mantener la velocidad del aire entre
1,5 y 2,5 m/s. Permitiendo ası́, que el aire ingrese a una velocidad que permita que no
incida directamente a las aves sino que se vaya mezclando con el que ya se encuentra en
el interior y que además no enfrı́e de más a las aves.
Los galpones con ventilación natural requieren de un manejo continuo las 24 horas del
dı́a, además del monitoreo constante de las condiciones internas del galpón; para esto es
necesario abrir o cerrar cortinas laterales asegurando el confort de las aves.
Sin embargo, es difı́cil el control adecuado del ambiente interno y como resultado el desem-
peño de las aves suele ser deficiente y más variable que el de las aves en galpones con
ambientes controlados.[13]
13
3.4.2. Ventilación forzada con extractores
Los sistemas de ventilación forzada con extractores son los más usados en galpones de
ambientes controlados debido a su capacidad para dar un mejor control ambiental interno
bajo diferentes condiciones climáticas externas. Existen dos tipos de ventilación forzada
con extractores: los de presión negativa y los de presión positiva. Sin embargo, los más
utilizados son los de presión negativa porque permiten un mejor control de las variables
deseadas. Los galpones con ventilación forzada y presión negativa cuentan con tres tipos de
ventilación, la ventilación mı́nima, la ventilación de transición y la ventilación de túnel.[13]
14
tipo de ventilación se encuentra diseñado para manejar la necesidad de eliminar el calor,
proporcionando la tasa de intercambio de aire necesaria para sacar el exceso de calor.
Además de eliminar el exceso de calor también proporciona a las aves enfriamiento por
viento, movilizando aire a lo largo de todo el galpón. Este efecto de enfriamiento puede
reducir la temperatura efectiva que sienten las aves hasta en 6o C en comparación a los
indicadores en los termómetros.[14]
La carne de pollo es una de las fuentes de alimento más grande del mundo. Esta se obtiene
mediante la crianza de aves en estructuras grandes techadas llamadas galpones o naves.
Estos galpones les proporcionan los requerimiento alimenticios y ambientales necesarios
para que las aves se desarrollen adecuadamente. Actualmente, avances en el campo de
la genética han logrado elevar el ritmo de crecimiento y el rendimiento carnal del pollo,
logrando de esta manera obtener aves más grandes y en un tiempo más reducido.
La cantidad de carne adicional que producen estas aves, cuya concentración principal está
en la pechuga, tiene como consecuencia que el pollo sea más sensible a las altas temperatu-
ras. Por lo tanto, es de vital importancia que la crianza se realice en ambientes controlados
en los que se pueda manejar de alguna manera la temperatura medioambiental a la que
están expuestas las aves.
Un estudio titulado Effect of Pressure and Temperature on Poultry Offal Meal Quality
realizado por J. McNaughton del U. S Department of Agriculture, A.R.S. y la informa-
ción establecida en La importancia económica del manejo de la ventilación: la perspectiva
estadounidense escrita por John R. Blakely y Gene Simpson dan a entender de la impor-
tancia de la crianza de pollos en ambientes controlados en los que se puedan monitorear
y controlar las variables más importantes en el desarrollo del ave como la temperatura, la
humedad relativa, la calidad del aire y la presión al interior de los galpones.
Según estos documentos, las aves alcanzan la mayor eficiencia para convertir el alimento en
carne cuando se les proporcionan las condiciones ambientales óptimas a lo largo de la vida
del ave durante el proceso. Se evidenció que la temperatura es la variable más crı́tica, ya
que, diferencias en la temperatura del galpón con respecto a la temperatura ideal pueden
15
hacer que el pollo no se desarrolle completamente, produciendo de esta manera efectos
significativos en las ganancias del avicultor.
En el estudio también determinaron que tan sólo 2 horas diarias de desviarse de la tem-
peratura ideal el ave tendrá 160 gramos menos de los que habrı́a podido desarrollar en
óptimas condiciones. La siguiente gráfica, tomada de importancia económica del manejo
de la ventilación: la perspectiva estadounidense, muestra las diferencias, en centavos de
dólar por ave, resultantes del desarrollo a temperaturas dentro y fuera del objetivo. En la
gráfica se puede evidenciar la importancia económica que tiene para los avicultures garan-
tizar condiciones climáticas óptimas y garantizar la mayor productividad del lote de pollos.
Las redes de sensores inalámbricos son una tecnologı́a relativamente nueva que ha sido
adoptada ampliamente para el desarrollo de sistemas de monitoreo y control en varios
campos tales como entornos industriales, domótica, entornos militares, y monitoreo am-
biental. En este último, se han realizado diferentes proyectos e investigaciones en los que
se demuestra la utilidad de esta tecnologı́a.
16
Seong-eun Yoo, Jae-eon Kim, Taehong Kim, Sungjin Ahn, Jongwoo Sung, Daeyoung Kim,
del laboratorio de sistemas embebidos en tiempo real de la Information and Comunication
University de Corea del Sur, en su artı́culo Automated Agriculture System based on WSN,
realizaron un sistema automático de agricultura basado en redes de sensores inalámbri-
cos. Para este proyecto desarrollaron un conjunto de nodos equipados con sensores de
luminosidad, temperatura y humedad relativa. Estos nodos se ubicaron al interior de un
invernadero y le proporcionaban una retroalimentación a un sub-sistema que se encargaba
de controlar estas variables. Realizando de esta manera un control realimentado y mejo-
rando las condiciones en las que se cultivan los melones en el invernadero.
La WSN( Wireless Sensor Network) es una tecnologı́a inalámbrica que consiste en dis-
positivos autónomos distribuidos espacialmente en un área, que utilizan sensores para
monitorear condiciones fı́sicas o ambientales. Este tipo de redes debe contar con un Gate-
way con el objetivo de mantener la red y proveer conectividad inalámbrica de regreso al
mundo de los cables y nodos distribuidos. Existen varios protocolos de comunicación que
soportan este tipo de redes y su selección depende en los requerimientos de la aplicación.
En nuestra tesis deseamos utilizar dispositivos Xbee por su bajo costo, bajo consumo de
potencia y facilidad de crear este tipo de redes, el protocolo de estos dispositivos esta
basado en comunicación de radio a 2,4GHz y su nombre es ZigBee.
Una red de sensores inalámbrica está formada por un gran número de nodos, donde cada
uno es equipado con un sensor para la detección de un fenómeno fı́sico como puede ser luz,
calor, presión, etc. Estas redes son consideradas un revolucionario método de recolección de
información para la construcción de sistemas de información y comunicación que mejoran
grandiosamente la confiabilidad y la eficiencia de los sistemas de infraestructura.[24]
17
Figura 4: Componentes de WSN Gateway y nodos distribuidos[4]
Los nodos de la red deben tener la capacidad de conectarse automáticamente y ser energéti-
camente independientes; también deben transferir la información adquirida por otro nodo
en caso de que esté fuera del alcance con el nodo principal. Todo lo anterior con el propósito
de garantizar que la información individual de cada nodo se transmita al nodo principal.
Estas redes se caracterizan por tener solo un punto de extracción de información llamada
puerta de enlace; todos los nodos deben garantizar una relación de conexión ya sea directa
o indirecta. La conexión directa ocurre cuando los nodos están suficientemente cerca a la
puerta de enlace como para realizar la transferencia de información entre ellos. La conexión
indirecta se da cuando un nodo debe conectarse a través de otros nodos hasta finalmente
llegar a la puerta de enlace.
Los nodos en este tipo de red están organizados en 3 tipos diferentes dependiendo de la
topologı́a. Topologı́a estrella cada nodo se conecta al Gateway. Topologı́a de árbol, cada
nodo se conecta a un nodo de mayor jerarquı́a en el árbol y después al Gateway, los datos
son enviados desde el menor jerarquı́a hasta el Gateway. Por último, para ofrecer mayor
confiabilidad, las redes tipo malla, donde los nodos se pueden conectar a múltiples nodos
en el sistema y pasar los datos por el camino disponible con mayor confiabilidad.
Un nodo contiene diferentes componentes técnicos. Estos incluyen el radio, baterı́a, mi-
crocontrolador, circuito analógico y una interfaz a sensor. Hoy en dı́a muchas redes están
18
Figura 5: Topologı́as de red WSN comunes[4]
basadas en ZigBee debido al bajo consumo de potencia, ya que al ser sistemas alimentados
con baterı́as y a las altas tasas de datos y uso frecuente de radio los dispositivos consumen
mucha energı́a por lo tanto es necesario garantizar un uso mı́nimo viable que garantice el
monitoreo total de un proceso.
19
3.8. Estándar IEEE 802.15.4
3.9. ZigBee
El protocolo ZigBee está diseñado para agregar redes de malla a la radio 802.15.4 sub-
yacente. La red de malla se utiliza en aplicaciones en las que el rango entre dos puntos
20
puede estar más allá del rango de las dos radios situadas en esos puntos, pero hay radios
intermedias que pueden transmitir cualquier mensaje hacia y desde las radios deseadas.
Una aplicación Web es un sitio Web que contiene páginas con contenido sin determinar,
parcialmente o en su totalidad. El contenido final de una página se determina sólo cuando
el usuario solicita una página del servidor Web. Dado que el contenido final de la página
varı́a de una petición a otra en función de las acciones del visitante, este tipo de página se
denomina página dinámica.
Una aplicación Web es un conjunto de páginas Web estáticas y dinámicas. Una página
Web estática es aquélla que no cambia cuando un usuario la solicita: el servidor Web envı́a
la página al navegador Web solicitante sin modificarla. Por el contrario, el servidor modi-
fica las páginas Web dinámicas antes de enviarlas al navegador solicitante. La naturaleza
cambiante de este tipo de página es la que le da el nombre de dinámica. El proceso de
procesamiento de páginas dinámicas se puede observar en la Figura 2.[2]
21
Figura 7: Procesamiento de páginas web dinámicas[2]
22
4. Diseño e implementación del sistema de monitoreo
4.1. Introducción
Nodo Coordinador (Coordinator): Es un FFD (Full Function Device); quiere decir que es
capaz de realizar todas las tareas definidas por el estándar ZigBee. Este es responsable de
todo el manejo de la red. Cada red tiene exactamente un solo coordinador y ejecuta algunas
tareas como: Seleccionar los canales para ser usados por la red, iniciar la red, asignar las
direcciones que se encuentran localizadas en los nodos, permite que dispositivos entren o
no a la red.
Nodo Router: Es un FFD al igual que el coordinador, es utilizado en las topologı́as malla
y árbol para expandir la cobertura de la red. La función de un router es encontrar la mejor
ruta de destino sobre el cual se envı́a un mensaje. Tiene la capacidad de ejecutar tareas
similares a las de un coordinador excepto establecer una red.
Los dispositivos de radio frecuencia Xbee S2 son los que permiten el envı́o de mensajes
con información a través de radio frecuencia y se programan para que cumplan con uno
de los roles mencionados anteriormente.
23
Figura 8: Red de sensores inalámbricos.
Cada nodo de la imagen anterior cuenta con funcionalidades distintas y se conforman por
diferentes dispositivos. A continuación se realiza un resumen detallado:
Nodo coordinator: Encargado de recibir toda la información transmitida por cada nodo
end device en la red. Elementos que lo conforman:
• Xbee S2.
• Microcontrolador Arduino Ethernet.
• Adaptador de energı́a AC-DC.
Nodo end device: Cada end device tiene la tarea de recibir los datos de los sensores y
transmitirlos al nodo coordinador. Elementos que lo conforman:
• Xbee S2
• Microcontrolador Arduino mini pro.
• Sensores de temperatura, humedad relativa y presión atmosférica.
• Baterı́a de 6v con capacidad de 6000mAh.
24
servidor como se muestra en la Figura 9; luego será tarea de la aplicación web acceder y
mostrar estos datos a los usuarios:
Por lo tanto, el objetivo general será lograr el funcionamiento completo tanto de la red
como del aplicativo web que permita a los usuarios acceder a la información relevante en
tiempo real.
25
forman lo que se le conoce como microcontrolador, en la siguiente figura se detalla el
Arduino.
Por ser de código abierto se han desarrollado numerosas librerı́as que le permiten al Ar-
duino comunicarse con facilidad a una multitud de dispositivos que utilizan protocolos
como UART, RS-232 e I2C, extendiendo ası́ la usabilidad. Otra ventaja de esta tarjeta es
su bajo consumo, lo cual la hace efectiva para aplicaciones con baterı́as. A continuación,
se exponen algunas de sus caracterı́sticas técnicas más importantes:
Microcontrolador ATmega328
Alimentación 3.35 -12 V (modelo 3.3V) o 5 - 12 V (modelo 5V)
Voltaje de operación 3.3V o 5V (dependiendo del modelo)
Pines digitales I/O 14
PWM pines 6
UART 1
I2C 1
Entradas analógicas 6
Interrupciones Externas 2
Corriente DC por I/O 40 mA
Memoria Flash 32KB
SRAM 2 KB
EEPROM 1 KB
Velocidad Reloj 8 MHz (3.3V version) or 16 MHz (5V version)
Esta tarjeta realiza un trabajo fundamental: es el cerebro del nodo, es decir es el sistema
26
sensorial y de control. Esta tarjeta nos permite adquirir la información de los fenómenos
fı́sicos que ocurran dentro del galpón ya que recibe los datos de todos los sensores y realiza
la comunicación con el dispositivo RF XBee. Además, estará encargado del control de la
hibernación en los nodos para mejorar el rendimiento de la red en términos energéticos, y
por último cuenta con una memoria no volátil que permite guardar información a pesar
de ser desconectado de una fuente de alimentación.
Estos sensores son estrictamente calibrados en los laboratorios de la empresa que los pro-
duce, los coeficientes de calibración se almacenan como programas en la memoria OTP del
sensor [3], por lo que asegura una alta calidad y una fiabilidad a lo largo del tiempo, ya que
contiene un microcontrolador de 8 bits integrado. El protocolo de comunicación es a través
de un único hilo (protocolo 1-wire), por lo tanto, hace que la integración de este sensor en
27
Figura 11: DTH22 sensor de humedad y temperatura. [18]
el proyecto sea rápida y sencilla. Además, presenta un tamaño reducido, un bajo consumo
y la capacidad de transmitir la señal hasta 20 metros de distancia. Otra ventaja de este
tipo de sensores es que proporciona una salida digital frente algunos sensores análogos
como el lm335 donde las fluctuaciones de voltaje pueden alterar la lectura de datos.
Como se observa en elCuadro 4 la humedad relativa ideal durante el desarrollo del ave
en un ciclo de engorde varı́a entre 50 y 70 por ciento; por lo tanto, técnicamente los dos
sensores están en condiciones ideales para el proyecto ya que el DTH11 tiene la capacidad
de medir entre 20 % y 90 % y el DTH22 de 0 % a 100 %, y aunque por el precio convendrı́a
utilizar el DTH11 se decide utilizar el DTH22 por proveer mayor precisión en las medidas
tanto de temperatura como de humedad relativa. En la siguiente sección se explica por
qué se toma la decisión de utilizar la variable adicional que mide este sensor que es la
temperatura.
Como se mencionó en el marco teórico, la presión no tiene un efecto directo sobre el desem-
peño de las aves y su salud. Sin embargo, los galpones herméticamente sellados requieren
28
una diferencia de presión entre el interior del galpón y el exterior de 15 a 30 Pascales.
Por lo tanto, el sistema dispondrá de la medida de presión al interior del galpón. En la
siguiente tabla observaremos la gráfica óptima de temperatura a medida que las aves se
desarrollan:
29
DTH22 es que permite monitorear dos variables al tiempo, humedad relativa y temperatura
permitiendo ahorrar dinero y espacio en la placa del circuito. El sensor de presión BMP180
que se encargará de adquirir la presión atmosférica se basa en la tecnologı́a piezo-resistiva
con robustez EMC o con compatibilidad electromagnética; es decir, tiene capacidad para
trabajar adecuadamente en ambientes donde se produce efectos de interferencia[19]. El
BMP180 de alta precisión y linealidad, promete estabilidad a largo plazo. Este sensor
es compatible con un voltaje DC entre 1,8V y 3.6V. Se ha diseñado para ser conectado
directamente a un microcontrolador a través del protocolo I2C[23]. Lo más interesante de
este tipo de sensores es que tiene una biblioteca gratuita para utilizarse con Arduino lo
que facilita su uso. En la siguiente imagen se puede apreciar el sensor, el cual cuenta con
medidas de 2cm x 2,3cm x 0,093cm de ancho, largo y alto respectivamente.
Hasta ahora se han considerado los sensores y el dispositivo Arduino que se encarga de
obtener las medidas y además realizar el control de las funciones del nodo end device.
Los datos que se adquieren con el Arduino serán transmitidos inalámbricamente a un
dispositivo central donde exista conexión a internet y de esta manera se logre enviar la
información a la base de datos. El dispositivo que se encargará de la transmisión de los
datos será el módulo XBee S2. El módulo XBee S2 es un dispositivo que brinda un medio de
comunicación inalámbrica para la interconexión y comunicación entre dispositivos. Estos
módulos utilizan el protocolo de red llamado IEEE 802.15.4 para crear redes punto a
multipunto, redes punto a punto y redes tipo malla. En la Figura 13 se puede observar el
módulo XBee S2.
Cada módulo tiene una única dirección de 64 bits llamada MAC; de esta manera, es posible
identificarlo del resto de dispositivos. La dirección está formada por la concatenación de
30
Figura 13: Módulo de radio frecuencia XBee S2 [22]
Para su configuración Digi international la compañı́a que produce los XBee ofrece un
software que permite interactuar con los módulos mediante una interfaz; en la Figura 14
se presenta el entorno de la aplicación. Esta aplicación incluye herramientas que hacen
muy sencillo configurar y probar los módulos XBee.
Figura 14: Interfaz grafica para la configuración de parametros en los modulos XBee
31
Especificaciones XBee S2
Desempeño Desempeño
Rango con obstáculos 40 metros
Rango lı́nea de vista 120 metros
Potencia de transmisión 2mW (+3dBm)
Ratio de transmisión 250k bps
Ratio puerto serial 1200 - 2300400 bps
Sensibilidad receptora 95dBm
Requerimientos de alimentación Requerimientos de alimentación
Voltaje Alimentación 2,8V -3,4V
Corriente operación(Transmitiendo) 40mA con 3,3V
Corriente operación(Recibiendo) 40mA con 3,3V
Corriente en hibernación < 1uA
General General
Frecuencia de operación ISM 2.4 GHz
Temperatura de operación -40 a 80◦ C
Opciones de antenas Integrada larga, Chip, RPSMA
Redes y seguridad Redes y seguridad
Topologı́as soportadas Punto a punto, punto a multipunto, redes pares y malla
Número de canales 16 canales de secuencia directa
Opciones de direccionamiento PAN ID, Cluster ID, EndPoints(Opcional)
32
En este modo AT básicamente la comunicación funciona como un remplazo de una comuni-
cación serial fı́sica a través del aire. Como el modo AT es tan limitado ya que solo permite
la comunicación entre dos dispositivos será necesario programar los módulos XBee’s que
formarán la red del proyecto en modo API.
En el modo API los datos enviados están estructurados en una trama la cual contiene
el mensaje e información adicional como la calidad de la señal. Esto permite realizar
comunicaciones complejas entre dispositivos.
• Frame Data: Esta parte de la trama contiene la información recibida o la información que
requiere ser enviada. En la siguiente gráfica se puede observar que la estructura del frame
depende del Frame Type, el cual determina el tipo de API e indica cómo la información
está organizada en el campo Data.
• Checksum: Ayuda a comprobar la integridad de los datos mandados. Las tramas enviadas
por puerto serial con checksum incorrecto nunca serán procesadas por los módulos y serán
ignoradas.
33
Los módulos programados en este modo enviarán tramas que contendrán el estatus del
paquete, como también la dirección de la fuente y el payload de información; todo esto se
encontrará en el Frame data según la estructura especificada dentro del modo API. Por lo
tanto, entre las facilidades que ofrece este modo se resaltan las siguientes:
4.2.5. Alimentación
Los nodos end device tienen como objetivo medir y transmitir 3 variables: temperatura,
humedad y presión atmosférica. Además, deben contar con una unidad de control y ad-
quisición, que permita el procesamiento de las señales y control del estado de hibernación
con el propósito de prolongar la duración de la baterı́a y ası́ realizar el cumplimiento de la
34
medición de las variables durante al menos un ciclo de engorde del proceso avı́cola. Esta
unidad de control es el microcontrolador y en el caso de los nodos end device será un Ar-
duino Mini Pro, el cual estara encargado de adquirir los datos de los sensores y controlar el
estado Activo/Dormido del XBee S2. Además de encargarse de la configuración del estado
del XBee, también realiza la organización de la estructura de datos que serán transmitidos
por el XBee.
35
4.3.1. Arduino Ethernet
Al igual que el Arduino Mini Pro este dispositivo se basa en el microcontrolador ATme-
ga328, aunque cuenta con funciones adicionales; una de ellas y principal para el proyecto
es la conexión a internet.
Microcontrolador ATmega328
Voltaje 5V
Voltaje de alimentación 7-12V
Voltaje máximo de entrada 6-20V
Entradas Digitales 14 (4 para PWM)
Memoria Flash 32 KB (ATmega328)
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Velocidad del reloj 16 MHz
Entradas Análogas 6
Corriente DC por pin I/O 40 mA
Corriente DC por pin de 3.3V 50 mA
Este dispositivo se utilizará para formar el nodo Coordinador ya que le añade habilidades
para que el nodo tenga acceso a Internet y de esta manera entregar los datos de toda la
red al servidor donde se encuentra la base de datos. Las caracterı́sticas técnicas de este
Arduino se muestran en el cuadro número tres.
Otra manera de alimentación conocida es PoE ( Power Over Ethernet ); esto le permite
al arduino conectarse a internet a través de un cable UTP pero además de esto, también
alimentarse a través del mismo cable, aunque el modem debe ser especial para entregar la
corriente necesaria a través del UTP. Por facilidad, este será alimentado con un adaptador
AC-DC de celular y el Arduino ethernet alimentará el XBee S2 que tendrá el rol de
Coordinador.
36
4.3.2. Diagrama Nodo Coordinador
El hardware del nodo central siempre debe estar conectado a una fuente por su importancia
en la red, ya que siempre deberá estar recibiendo información de los demás nodos en la
red. La unidad de control también pertenece a la familia Arduino aunque la diferencia
que fortalece a esta unidad de control para este proyecto en especı́fico es su adaptador de
conexión ethernet; con este tenemos acceso a internet si lo conectamos a una red, todo esto
con el objetivo de recibir la información y luego enviarla a la base de datos a través del
protocolo HTTP. En la figura 19 se observa el hardware completo del nodo coordinador.
37
4.4. Firmware
El entorno de desarrollo de Arduino permite escribir rutinas que serán guardadas y ejecu-
tadas en los microcontroladores de la familia Arduino.
El sketch de la figura 20 es donde se escriben las rutinas que se cargarán en los microcon-
troladores, cada sketch cuenta con dos métodos principales setup() y loop(). El método
38
setup() es la porción de código donde se definen las variables globales, configuración de pi-
nes, parámetros para alguna conexión, etc. La ejecución del método setup() solo se realiza
una vez al encenderse la tarjeta; en cambio, el método loop() corre indefinidamente todas
las rutinas que se encuentren dentro de esta llave. El sketch también permite a los usuarios
crear sus propios métodos por fuera de estas llaves. Normalmente, en la parte superior se
importan las bibliotecas necesarias en caso tal de necesitarse alguna funcionabilidad extra.
Para añadir una librerı́a en Arduino basta con colocar #include y luego la librerı́a que se
desee como los ejemplos a continuación:
Las anteriores librerı́as son necesarias para programar el Arduino el cual controlará las
tareas realizadas por el nodo end device. Este nodo tendrá como tarea recibir y transmitir
los datos de los sensores hacia el nodo coordinador. Para que el Nodo End Device ejecute
las tareas necesarias se debe crear una secuencia de tareas en el método loop() mencionado
anteriormente y este deberá correr indefinidamente. Las tareas diseñadas para que los Nodo
End Device ejecutaran se pueden observar en la siguiente figura:
El sketch que ejecutan los Nodos End Device al encenderse comienzan verificando el estado
de los sensores. Si los sensores se encuentran conectados y activos para medir, el sketch
corre una función para tomar las medidas, de los 3 sensores; en caso de no ser posible la
toma de las medidas, el nodo no enviara nada, por lo que se deberá realizar una verificación
en la conexión de los sensores. En caso de terminar la medición, los datos son guardados
en un arreglo de caracteres llamado data. Luego se crea un objeto de tipo ZBTxRequest
que recibe como parámetros la dirección, el arreglo data y el tamaño del frame data. Al
momento de realizar la instancia de este objeto se creará el paquete que entiende el módulo
XBee S2 para transmitirlo.
39
Figura 21: Tareas realizadas por el Nodo End Device, programadas y controladas por el
Arduino Mini Pro.
ZigBee; el cual, una confirmación de recepción de un mensaje podrı́a tardarse 500ms luego
de enviar un mensaje. La tarea de la unidad de control del Arduino será despertar al
Arduino completamente cuando se cumplan los 10 minutos para comenzar nuevamente el
ciclo del Nodo End Device.
El objetivo de activar el modo Sleep en el Nodo End Device es reducir el consumo al máxi-
mo, ya que en este estado la mayorı́a de procesos dentro del Arduino dejan de funcionar.
Cabe resaltar que a través de un pin se controla también la configuración del estado del
XBee. El Arduino en este estado solo deja en funcionamiento algunos componentes vitales
y utiliza el Watchdog para despertar transcurridos 10 minutos.
Los mensajes transmitidos por los módulos Xbee S2 en el Nodo End Device hacia el otro
módulo conectado en el Nodo Coordinador están compuestos de la siguiente manera:
40
- Checksum: 0x A4
P90510T2660H5970N1G1
El anterior mensaje en código ASCII es un ejemplo de mensaje que transmite los nodos end
device; el mensaje está estructurado de manera que cada letra identifica una variable donde
P,T,H significan presión, temperatura y humedad respectivamente. Además el mensaje
también contiene desde qué nodo y galpón fue enviado el mensaje; por eso, al final del
mensaje aparece N1G1.
Los valores que aparecen en el código ASCII están multiplicados por 100 esto con el objetivo
de enviar números enteros. Cuando los datos son recibidos por el nodo coordinador se
vuelven a dividir para recuperar los valores originales; por lo tanto, si el anterior mensaje
es transmitido, el mensaje real del mensaje que verı́a un usuario serı́a:
El coordinador siempre está escuchando y debe estar despierto siempre. Cuando este nodo
recibe la información, el Arduino ethernet realiza una lectura de los datos que llegaron al
XBee S2. Inmediatamente procede a verificar la conexión a Internet; si tiene conexión a
Internet envı́a los datos a través del protocolo HTTP a la base de datos. Luego, es tarea
del aplicativo web mostrar la información a los usuarios. En la Figura 22 se puede detallar
el ciclo que funciona en el nodo coordinador.
41
Figura 22: Tareas realizadas por el Nodo Coordinador programadas y controladas por el
Arduino
Como se mencionó anteriormente, los dispositivos XBee tienen dos modos de transmisión
AT mode y API mode. Para la respectiva configuración de este parámetro es necesario
utilizar el software XCTU, que permite modificar el firmware de cada uno de los módulos.
Ver figura 23.
Los módulos fueron configurados bajo el firmware ZigBee version 21A7 y bajo el modo API,
el cual permite que los nodos realicen comunicaciones de un punto a múltiples objetivos.
Además, trae consigo ventajas como permitir crear redes complejas, donde los dispositivos
dentro de ella podrán conocer de donde provienen los mensajes, conocer la potencia de la
señal recibida y finalmente, si el consumo de energı́a es una necesidad, este modo permite
que los dispositivos End Device entren en ciclos de hibernación. Junto con lo anterior, se
estableció el rol para cada uno de los dispositivos: Coordinador o End Device.
El siguiente paso es la configuración de parámetros de la red para cada uno de los módulos.
La comunicación entre estos dispositivos se da gracias a su dirección MAC, es única y
viene configurada por defecto y es visible en el software XCTU; sin embargo, para que los
dispositivos XBee’s formen la red automáticamente en el encendido, es necesario configurar
los siguientes parámetros:
42
Figura 23: Actualización del firmare para un nodo Coordinador en modo API
• Nombre del módulo (Node Identifier), es una cadena de caracteres la cual se utiliza para
diferenciar cada módulo dentro de la red.
• PAN ID, es el identificador de la red, todos los módulos deben tener el mismo PAN ID
para lograr comunicarse dentro de ella.
• DH y DL, es la dirección MAC del dispositivo donde se desea enviar el mensaje; en este
proyecto en todos los módulos ira la dirección MAC del coordinador.
El protocolo ZigBee, es utilizado por los dispositivos XBee para la transmisión de infor-
mación. ZigBee soporta las topologı́as mencionadas en el numeral 3.5.1. La topologı́a de
43
Figura 24: Parametros para la configuración de la comunicación entre los módulos
El rango máximo de transmisión que proveen estos dispositivos es de 120 metros en lı́nea
de vista es decir es posible la comunicación con otro siempre y cuando no se encuentren
obstáculos entre ellos; en caso contrario, su alcance máximo es de 40 metros. ZigBee es
flexible, como en algunas situaciones de necesitar expandir el rango de la red, es posible
adicionar Nodos Router a cambio de transformar la topologı́a en tipo árbol (Tree) y que
la red energéticamente sea menos eficiente porque los Nodos Router al igual que el Nodo
Coordinador no podrı́an entrar en estado Sleep, porque estarı́an encargados de transmitir
la información del Nodo End Device al Nodo Coordinador. Cabe resaltar que en el mercado
ya existen módulos con un rango de transmisión de 1200 metros en lı́nea de vista; por lo
tanto, ya la distancia no es un problema para esta aplicación.
El uso de la comunicación inalámbrica hoy en dı́a representa una ventaja, pero también
abre la posibilidad de que otros tengan la opción de husmear los datos, o incluso enviar
paquetes a la red para influenciar de alguna manera el proyecto inalámbrico. Por esta
razón la seguridad y los métodos de encriptación en las redes inalámbricas son un aspecto
importante. Afortunadamente los módulos XBee tienen la forma de encriptar los datos de
manera fácil y automática, para ello es necesario habilitar el parámetro EE(Encryption
Enable) en 1 esto hace que los mensajes sean enviados con encriptación previniendo que
otros puedan leer los mensajes además de proteger que otros inserten mensajes dentro de la
red. Lo anterior es posible gracias a la utilización de la llave secreta (Secret Key) llamada
44
encryption key (KY); todos los módulos deben conocer esta llave para permitir el envı́o
y la recepción de los paquetes. Esta llave debe ser configurada en el módulo coordinador
colocando el valor en el parámetro KY.
4.5. Software
Microsoft SQL Server es un sistema de manejo de bases de datos del modelo relacional,
desarrollado por Microsoft. SQL Server utiliza Transact-SQL como lenguaje de desarrollo
para manipular y recuperar los datos, crear tablas, crear procedimiento y definir relaciones
entre ellas.[7]
45
4.5.2. Base de datos
Para el desarrollo de esta base de datos se utilizó la herramienta de Microsoft SQL Ser-
ver Express, que es un sistema de manejo de bases de datos gratuita y que cuenta con
un conjunto de caracterı́sticas limitadas en comparación con su versión paga, pero es lo
suficientemente completa como para el desarrollo de la aplicación propuesta.
A continuación se muestran las tablas creadas en la base de datos usando SQL Server
Express. En las siguientes imágenes se muestra el nombre de la tabla, las columnas de las
tablas, los tipos de datos de cada columna y algunas propiedades.
En la tabla cliente se almacenan los usuarios que tienen acceso a la aplicación web y
en donde se especifica qué privilegios tiene como usuario. Figura 26
46
4.5.2.2. Tabla Datos .
Tabla en la que se almacenan las estadı́sticas generales de los galpones. En esta tabla
están las temperaturas, presiones y humedades promedios en el galpón. Figura 28
47
Figura 28: Tabla EstadisticaGalpon de la base de datos
Tabla en la que se almacenan las estadı́sticas por nodo en cada galpón. En esta tabla
están las temperaturas, presiones y humedades promedio por nodo en el galpón. Figura 29
48
4.5.2.5. Tabla Lotes .
Tabla en la que se almacena el historial de todos los lotes producidos en cada galpón.
Figura 31
49
Figura 31: Tabla RegistroLotes de la base de datos
Tabla en la que se almacenan las alarmas cuando las temperaturas de los nodos no se
encuentran en los rangos de la temperatura ideal definida. Figura 32.
50
mados CargarVariables, CargarAvesMuertas, EstadisticaGeneral y EstadisticaPorNodo.
Estos procedimiento almacenados son funciones con un conjunto de comandos SQL que
pueden almacenarse en el servidor de la base de datos y ejecutarse haciendo una invo-
cación al procedimiento deseado. Los procedimientos almacenados son de gran utilidad y
mejoran el rendimiento ya que se necesita enviar menos información entre el servidor y el
cliente para ejecutar un conjunto de comandos SQL. En la siguiente tabla se resume la
funcionalidad de cada procedimiento.
Porcedimiento Descripción
CargarAvesMuertas(Aves, Galpon) Procedimiento que agrega
un número de aves muer-
tas al acumulado actual de
aves muertas en determi-
nado galpón
CargarVariables(Galpon,IdNodo,Temp,Humedad,Presion) Procedimiento que carga
las variables de tempe-
ratura, humedad y pre-
sión de un nodo especı́fi-
co en determinado galpón.
Se usará en la aplicación
de consola que lee los da-
tos del nodo coordinador y
los carga a la base de da-
tos.
EstadisticaGeneral (Galpon) Procedimiento que calcula
la temperatura, humedad
y presión promedio duran-
te el dia, tomando las me-
diciones de todos los nodos
en el galpón, y los agrega
en la tabla EstadisticaGal-
pon.
EstadisticaPorNodo(Galpon) Procedimiento que calcu-
la la temperatura, hume-
dad y presión promedio
por nodo en un galpón da-
do.
51
El modelo del sistema hasta este momento se representa en la Figura. El modelo estará
compuesto por la red de sensores inalámbricos descrita en la sección 4.1 y 4.2 de este
documento y la base de datos descrita en esta sección. La imagen muestra el flujo de la
información en el sistema que va desde los datos tomados por los Nodos dispositivos finales
de la red en el galpón y llegan al Nodo coordinador inalámbricamente usando protocolo
Zigbee. Posteriormente, el nodo coordinador los transmite al servidor local por medio de
una conexión ethernet. En el servidor local, una Web API que se describe en la sección
4.3.2, lee los datos en la URL y los carga a la base de datos en la tabla deseada.
Figura 33: Diagrama del sistema entre la base de datos y la red de sensores inalámbricos
4.5.3. ASP.NET
ASP.NET Web Forms es parte del framework para el desarrollo de aplicaciones web de
ASP.NET y es uno de los 4 modelos de programación disponibles para realizar aplicaciones
52
web de contenido dinámico junto con ASP.NET MVC, ASP.NET WebPages y ASP.NET
Single Page.
Los Web Forms son páginas a las que los usuarios pueden acceder usando un navegador
web. Estas páginas pueden ser escritas usando una combinación de HTML, código del lado
del cliente como JavaScript o Python y código del lado del servidor como C#. Cuando un
usuario solicita una página, esta es compilada y ejecutada en el servidor por el framework,
el cual genera el contenido HTML y entrega al cliente para que lo pueda visualizar en
un navegador web. Como caracterı́stica principal de este modelo de programación se tiene
que cada página tiene asociado código del lado del cliente en un archivo .aspx y código del
lado del servidor en un archivo aspx.cs
ASP.NET MVC es parte del framework para el desarrollo de aplicaciones web de ASP.NET.
Está basado en el modelo arquitectónico de programación MVC que separa una aplicación
en tres componentes principales: el modelo, la vista y el controlador. El modelo ASP.NET
MVC proporciona una alternativa al modelo de formularios Web Forms de ASP.NET para
crear aplicaciones web.
El modelo MVC es útil para crear aplicaciones que separan los diferentes aspectos de
la aplicación (Lógica de entrada, lógica de negocios y la interfaz de usuario). El modelo
especifica dónde se encuentra cada tipo de lógica en la aplicación. La lógica de la interfaz
de usuario pertenece a la vista, la lógica de entrada al controlador y la lógica de negocios
pertenece al modelo.
Para acceder a una aplicación que usa el framework ASP.NET MVC se escribe una URL
en el navegador de la forma www.miaplicacion.com/Controlador/Vista/Paramatros. Esta
URL llega al servidor y es atendida por el Controlador que se encarga de realizar las
consultas a los modelos (Bases de datos) y entregarle la información a las vistas. Las
vistas toman los datos del controlador y genera código HTML para entregarlo al cliente y
que lo pueda visualizar en un navegador. Además, es posible realizar aplicaciones que no
posean vistas y sólo contengan el Modelo y el controlador siendo útil para ser Web APIs.
53
4.5.4. Web API
La web API es la aplicación web que servirá para comunicar el nodo coordinador de la red
con la base de datos. La web API tomará la información que se le envı́e por medio de una
URL y usará un procedimiento almacenado para cargar las variables de los galpones en
la base de datos. Esta web API se creó usando el modelo ASP.NET MVC en el que todas
las peticiones hechas al servidor son atendidas por el respectivo controlador. Para el caso
de la Web API que se creó, esta sólo cuenta con un controlador que toma los datos y los
agrega a la tabla Datos usando el procedimiento almacenado CargarVariables descrito en
la sección 4.3.1.
La Web API será usada principalmente por el nodo coordinador de la red que contará con
una conexión ethernet. El nodo coordinador deberá tomar los datos de Id Nodo, Galpón,
Temperatura, Presión y Humedad que envı́a cada nodo en el galpón y crear una URL de la
forma 192.168.1.100/CargarVariables/Cargar/IdNodo/Galpon/Temperatura/Humedad/
Presion y acceder a ella. La web API desarrollada con el Framework de ASP.NET MVC
sabrá que a esta petición debe atender el controlador CargarVariables y ejecutar el método
Cargar con las variables que se adjuntan en la URL.
54
de datos como funciones nativas de C#.
La aplicación web está conformada en su totalidad por 8 páginas web, cada una con código
que se interpreta en el navegador del cliente (archivos terminados en .aspx) y código que se
interpreta en el lado del servidor (archivos terminados en aspx.cs ). Las páginas son Index,
AcercaDe, Contactenos, Inicio, MonitoreoDiario, IniciarLote, AdmUsuarios y RegAlarmas.
A continuación se describe la funcionalidad de cada una de las páginas.
La página de inicio de la aplicación web permite que los usuarios registrados puedan
acceder y ver la información del proceso que se muestran en las diferentes páginas de la
aplicación web. Además de permitir el ingreso a la aplicación, también es posible acceder
a otras páginas que no requieren que el usuario se encuentre registrado, como la página de
Acerca de y Contáctenos que se describen más adelante en las secciones 4.3.3.2 y 4.3.3.3
4.5.5.2. Acerca de .
55
Figura 35: Página Acerca de de la aplicación web
4.5.5.3. Contáctenos .
56
4.5.5.4. Monitoreo Diario .
La página web tiene tres medidores con los datos de temperatura presión y humedad al
interior del galpón, estos medidores se actualizan cada 5 minutos con datos tomados por
los nodos de la red de sensores inalámbricos al interior del galpón.
57
en la gráfica también se muestran los valores de temperatura mı́nima y máxima para que
se pueda observar gráficamente en que momento la temperatura se está saliendo del rango
ideal y poder actuar rápidamente para corregirla.
La página de Iniciar Lote muestra información acerca de los lotes que se encuentran en
producción actualmente en los galpones, permitiendo ver en una tabla su fecha de inicio,
fecha final, la cantidad de aves del lote, el galpón en el que se encuentra y el número de
nodos que se encuentran en el interior del galpón. Además también permite cambiar los
datos de sus registros o agregar nuevos registros.
En esta página es en donde se agrega los registros con la informacı́on de los lotes de pro-
ducción nuevos. Para el registro de un lote nuevo se debe ingresar los campos de lote,
galpón, número de nodos, número de aves, fecha de inicio y fecha final y oprimir el botón
de update. La información que se agregue o modifique en esta página se actualizará en la
base de datos y servirá cómo base para asociar los datos que tomen los nodos al interior
del galpón con determinado lote.
58
Figura 39: Página Iniciar Lote de la aplicación web
La página de Administrar Usuarios muestra información acerca de los usuarios que tienen
acceso a la aplicación y de sus permisos en la aplicación. En esta página se puede editar
los datos de cada usuario registrado o incluso eliminar. La información que se muestra en
esta página es tomada directamente desde la base de datos y se actualiza en tiempo real
con las modificaciones que se hagan en ella. La principal funcionalidad de esta página es la
de agregar nuevos usuarios que puedan usar la aplicación llenando los campos solicitados
de Usuario, Nombre, Apellidos, Cargo y tipo de usuario.
59
Figura 40: Página Administrar Usuarios de la aplicación web
4.5.5.8. Alarmas .
La página de Alarmas muestra a través de registros de una tabla las veces en las que
la temperatura en cada uno de los nodos del galpón se ha salido del rango de la tempera-
tura ideal. En esta tabla se indica cual debe ser la temperatura ideal, cual es la temperatura
que causó la alarma, el nodo y el galpón. De esta manera se busca que el avicultor pueda
actuar lo más rápido posible y corregir la temperatura.
60
5. Resultados
El nodo coordinador recibe la información entregada por toda la red de sensores y a través
del cable UTP ( Cable azul) se conecta a internet para actualizar la base de datos. Por lo
tanto este nodo solo necesitará un puerto con conexión a internet para cumplir con todas
sus funcionalidades. En la siguiente figura se puede observar el nodo coordinado compuesto
por el Arduino Ethernet, cable UTP y el módulo XBee S2:
61
Figura 43: Nodo ZigBee Coordinador
El nodo end device es el encargado de monitorear los fenómenos ocurridos dentro de los
galpones y transmitir los datos al nodo coordinador, en la siguiente imagen se muestra el
nodo completamente construido dentro de la caja de protección contra humedad o polvo
que se pueda presentar dentro de los galpones.
62
Figura 44: Nodo ZigBee End Device
Por fuera de la caja en la parte superior se encuentran los sensores, al interior se protege
el circuito donde están el microcontrolador Arduino Mini Pro y el módulo XBee S2 pero
programado para cumplir el rol de nodo Zigbee End device.
Para el direccionamiento de paquetes en este tipo de red, la tecnologı́a XBee cuenta con
una salida rápida: enrutamiento estático. Los módulos de comunicación XBee cuentan con
una dirección MAC única ver la figura 45, la cual es utilizada en el código para enviar la
63
información. En este caso puntual los nodos end device direccionan los datos tomados por
sus respectivos sensores hacia el coordinador. El protocolo ZigBee junto a la tecnologı́a
XBee, se encarga de que los paquetes de información tomados desde el nodo que obtuvo
los datos se dirijan hacia el coordinador, si existiera en este caso routers es posible que el
protocolo utilice también el enrutamiento en caso de fallar un camino punto a punto.
Tradicionalmente los galpones avı́colas tienen forma rectangular y dependiendo del tamaño
y las necesidades se pueden añadir los nodos necesarios para una correcta medida de las
variables dentro del galpón.
Con la información adquirida se genera una base de datos de lo que sucede internamente
y con esta información se pueden realizar controles para que las aves se desarrollen en el
ambiente más adecuado. Por lo tanto, una posible distribución de los nodos dentro de la
red suponiendo que tuviéramos n galpones y n nodos podrı́a ser como la que observamos
en la figura 46.
Se debe resaltar que dependiendo del tamaño de la granja avı́cola podrı́a ser necesario
utilizar más routers para transmitir la información hasta el nodo coordinador donde la
información se cargará en una base de datos y se visualizará a través de una aplicación web.
64
Figura 46: Prototipo de la distribución de nodos dentro de la red de sensores; E=End
device, R= Router, C= Coordinador.
El prototipo planteado no hará uso de routers sólo se implementarán 4 nodos (End Device)
que se encargarán de realizar el monitoreo y realizar la transmisión al nodo coordinador. De
la misma manera, dependiendo del tamaño de un galpón podrı́a ser diferente la distribución
y la cantidad de nodos que deberán ser colocados. La distribución planteada con el número
de nodos del proyecto se puede observar en la Figura 47:
Figura 47: Cantidad de nodos: 5, representados en 4 nodos sensores (end device) y 1 nodo
coordinador (coordinator); Topologı́a: Estrella (Star).
65
5.4. Prueba RSSI
Para saber la distancia real a la que se puede ubicar los dispositivos, a pesar de que en la
hoja técnica de los módulos describe que tienen un alcance de 120 metros en lı́nea de vista
y en un ambiente de interferencia posiblemente 40 metros, es necesario hacer pruebas de
indicadores de potencia de la señal recibida (RSSI por las siglas del inglés Received Signal
Strength Indicator ) también la hoja técnica nos da a conocer que la sensibilidad de los
módulos es de -95dBm.
La herramienta XCTU con la cual se programan los módulos permite realizar este tipo
de pruebas, la cual en el software se denomina range test. Por lo tanto, se decide realizar
pruebas a ciertas distancias para ver qué tanto se pierde la intensidad de la señal y qué
tanto puede afectar el envio de datos este fenómeno. La primera prueba se realizó al
interior de una casa donde se presentaban bastantes obstáculos y se ubicaron dos módulos
separados por 30 metros de distancia. El escenario se puede apreciar mejor en la Figura
49; luego de esto, se realizó el range test y el resultado de esta prueba es mostrado en la
Figura 48.
El resultado de esta prueba fue satisfactoria ya que, a pesar de haber obstáculos, la in-
tensidad de la señal fue buena. Incluso era posible alejar más los dispositivos. Se puede
apreciar en esta prueba que, de 100 paquetes enviados, se recibieron 100 en el coordinador.
66
Además de esto, la potencia de la señal recibida por el módulo remoto en este caso el End
device fue de -58dBm, este resultado es traducido en que la potencia de la señal fue idónea
y la tasa de transferencia de datos estable.
La segunda prueba fue realizada al aire libre en la que se presentaban obstáculos entre
los módulos. El propósito de esta prueba era comprobar que exceder el lı́mite de los 40
metros junto obstáculos en relación con la hoja técnica de los XBee’s se perderı́an algunos
paquetes. Los obstáculos eran vehı́culos que pasaban a través de ellos; la distancia entre
los nodos se fue aumentando paulatinamente entre 60 y 90 metros, en donde se recibieron
solo 74 paquetes de 100 enviados. Se considera que está perdida de información fue dada
67
por el lugar donde se realizaron las pruebas ya que habı́a un alto tráfico de vehı́culos lo
que afectó el experimento y que la distancia a la que se realizó este experimento está por
encima del rango recomendado en la hoja técnica. A pesar de lo anterior la intensidad de
la señal fue de -79dBm que se encuentra por encima de la sensibilidad de los nodos que es
de -95dBm. Se muestra el resultado en la figura 50.
La última prueba fue a la distancia máxima de transmisión de los módulos a 120 metros,
pero en este caso no hubo interferencias. La última intensidad de la señal registrada por
el range test en el módulo transmisor fue de -86dBm y aunque esta intensidad no es
recomendada ya que podrı́an ocurrir cortes de comunicación y perdidas de datos, todavı́a
se encuentra por debajo de la sensibilidad de los módulos. Además de lo anterior, se puede
decir que la transmisión de paquetes fue satisfactoria ya que se logró transmitir el 94 % de
los paquetes enviados. En la siguiente gráfica podemos observar el comportamiento de la
intensidad de la señal entre los dispositivos.
68
Figura 51: Prueba 3 distancia entre módulos 120 metros.
En este apartado se plantean dos casos de pruebas de seguridad; el primero serı́a clonar la
información del coordinador, es decir que en una zona adyacente existieran dos coordina-
dores con la misma PAN ID, pero afortunadamente con o sin encriptación de datos esto es
prácticamente imposible de realizar ya que el protocolo garantiza una única PAN ID por
red y es imposible que existan dos coordinadores en la misma red. Por lo tanto, de esta
forma serı́a imposible husmear la información por parte de terceros.
69
El segundo caso es el planteado a continuación y es la posibilidad de interferir en la
red si no existiera la encriptación de datos y la configuración del parámetro configurado
KY (Encryption Key) como resultado cualquier nodo nuevo que desee ingresar a la red
deberá contar previamente con el parámetro. La prueba realizada se trata de intentar
conectar dos nodos End Device uno con el KY configurado y otro sin este parámetro
configurado, el resultado es el siguiente solo permitiéndole al dispositivo con la MAC:
13A2000 40E3DDA96 (Figura 52 en la parte derecha) conectarse al coordinador. Esto
debido a que se habı́a configurado previamente con la clave de la red; por lo tanto, si
la red tiene configurado este parámetro, si un tercero no conoce el valor de la clave no
podrá conectarse. En la siguiente imagen se observa que solo un end device se conecta al
coordinador:
Figura 52: Prueba seguridad 1 intentan conectarse dos módulos uno con la clave y el otro
sin la clave
70
Figura 53: Prueba seguridad 2 intentan conectarse los módulos con la clave configurada.
Para garantizar que el sistema funcionará a lo largo del desarrollo de las aves se debe
realizar un cálculo teórico de la baterı́a que dará soporte a cada nodo. El número de dı́as
del proceso de desarrollo de las aves es en promedio de 45 dı́as; por lo tanto, se debe
garantizar que la red de sensores como mı́nimo funcione durante este periodo.
71
La tabla anterior indica teóricamente cuánto consumirá cada nodo al momento de estar
activo o durmiendo. Los nodos de la red propuesta la mayor parte del tiempo estarán en
el modo durmiendo ya que solo se encenderán cada 10 minutos durante 20 segundos para
reconectarse a la red, tomar las medidas, enviarlas y regresar al modo dormir a excepción
del coordinador. La representación de este comportamiento en el tiempo se expone en la
siguiente gráfica donde cada 600 segundos el estado del sistema estará en activo. En la
gráfica se puede ver el consumo en estado activo del nodo e individualmente por cada
dispositivo que conforma el nodo. Es importante conocer que este consumo es teórico por
lo tanto podrı́a llegar a ser mayor o menor en la práctica lo que más adelante analizaremos.
1
RT
idc = T 0 i dt (1)
(NnD ∗tnD )+(SdA ∗tdA )+(AA ∗tA )+(SbA ∗tbA )+(XxA ∗txA )
idc = T (2)
72
Donde:
• NnD ∗ tnD es el consumo de todo el nodo en estado dormido multiplicado por el tiempo
en este estado.
• SdA ∗ tdA es el consumo del sensor DTH22 en estado activo multiplicado por el tiempo
en este estado.
• AA ∗ tA es el consumo del Arduino en estado activo multiplicado por el tiempo en este
estado.
• SbA ∗ tbA es el consumo del sensor BMP180 en estado activo multiplicado por el tiempo
en este estado.
• XxA ∗ txA es el consumo del módulo XBee S2 en estado activo multiplicado por el tiempo
en este estado.
(4,2∗600)+(0,5∗20)+(20∗20)+(0,032∗20)+(40∗20)
idc = 620
idc = 6, 017mA
Capacidad máxima
T iempo de descarga = Consumo eléctrico
Capacidad = 6480mAh
73
Por lo tanto, se debe utilizar como mı́nimo una baterı́a con la capacidad de 6480 mAh.
Como el cálculo realizado anteriormente fue teórico, más adelante se realizará un cálculo
práctico donde se espera reducir el tiempo en que el nodo mantiene activo para lograr mayor
eficiencia, de esta manera plantear el uso de una baterı́a con la capacidad de 6000mAh.
Anteriormente se hizo un cálculo teórico de cuánto podrı́an consumir los nodos en los
estados posibles los cuales son activo o sleep(dormido). En esa parte se planteó que los
nodos duraban 20 segundos encendidos cada 10 minutos y en esos 20 segundos los nodos
debı́an realizar las mediciones y la transmisión de los datos.
Lograr reducir el consumo de energı́a es fundamental para que el sistema sea autónomo
durante el tiempo en que se desarrollan las aves y no sea necesario realizar intervenciones
por agotamiento de la baterı́a; por lo tanto, en la práctica se redujo el tiempo de muestreo
y transmisión porque no era necesario que el nodo permaneciera despierto 20 segundos sino
con aproximadamente 5 segundos el nodo end device era capaz de recolectar y transmitir
la información al nodo coordinador. En la siguiente gráfica podemos ver la diferencia de
consumo de corriente teorı́ca y real, donde se puede verificar que el tiempo en que man-
tiene encendido el nodo son solo 5 segundos a comparación con lo que se habı́a planteado
teóricamente.
74
Cabe mencionar que la reducción del consumo no solo es posible por disminuir el tiempo
en que se mantiene encendido el nodo, sino que el modo sleep nos permite prolongar y
ahorrar la carga de la baterı́a. La corriente teórica calculada resulto en:
iteorica = 6, 017mA
Capacidad = 6480mAh
Figura 56: Medida de corriente al encender el nodo End Device con el XBee en modo Sleep
El anterior consumo es por activar el Arduino e iniciar la toma de medidas de las variables;
luego de esto se enciende el XBee y se transmiten los datos. Esto causa un consumo de
corriente de 60 mA durante aproximadamente 2 segundos, en la siguiente imagen se puede
observar este dato medido en el multı́metro:
75
Figura 57: Medida de corriente transcurridos 3 segundos depues de encender el nodo End
Device con el XBee encendido
Por lo tanto, podemos realizar el cálculo del consumo de corriente cı́clico que se presenta
en los nodos end device.
(3,4∗600)+(20,3∗3)+(60∗2)
ireal = 605
ireal = 3, 67mA
Aunque este consumo supondrı́a utilizar una baterı́a con la capacidad de 3963mAh para
soportar la entrega de datos durante 45 dı́as, se intentó reducir aún más el consumo. La
forma en que se realizó esta reducción fue removiendo el LED del Arduino (Led Power
Arduino) que indica cuándo se encuentra encendido el Arduino.
Luego de remover este led, el consumo de la corriente del nodo mientras se encuentra en
estado Sleep el consumo se redujo a 0.3 mA, lo que resultará en una mejora de la eficiencia
energética en la red. En la siguiente imagen vemos la medición con el multı́metro del nodo
en este estado.
76
Figura 58: Medida del consumo de corriente del nodo en estado Sleep.
(0,3∗600)+(20,3∗3)+(60∗2)
ireal = 605
ireal = 0, 6mA
Esto quiere decir que si se utiliza una baterı́a de 6000mAh tendrı́a una duración de:
Capacidad máxima
T iempo de descarga = Consumo eléctrico
Reemplazando:
6000mAh
T iempo de descarga = 0,6mA
Se obtiene:
77
T iempo de descarga = 10000h
El resultado anterior indica que la baterı́a durarı́a 13.8 meses continuamente. Esto quiere
decir que el sistema es capaz de soportar 9 ciclos de engorde de las aves antes de presentar
problemas con la baterı́a. Un ciclo de engorde se encuentra entre los 45 dias y 65 dias de
duración aproximadamente.
El comportamiento esperado es que cada nodo, que tiene grabado en su memoria interna
el galpón al que pertenecen y su identificador único, envı́en las mediciones al nodo coor-
dinador, por medio de protocolo Zig Bee, y éste a su vez por medio de protocolo http
consume un servicio web para cargar los datos en la respectiva tabla de la base de datos.
Para verificar que los datos que se están cargando a la base de datos corresponden a la
medición del nodo se conectó el nodo coordinador a un PC en el que se muestran los datos
recibidos antes de ser enviados por el módulo de radiofrecuencia XBee. A continuación
se muestran las gráficas con los datos recibidos por el coordinador y los datos una vez
cargados en la base de datos.
78
Figura 59: Variables recibidas en el nodo coordinador por los nodos end device.
79
Figura 60: Variables cargadas en la base de datos mediante el nodo coordinador.
Una vez las medidas tomadas por los nodos han sido recolectadas y almacenadas en la
base de datos se pueden observar mediante la aplicación web desarrollada la cual presenta
a los usuarios de manera inmediata la información clave que necesitan durante el proceso
de crianza. La aplicación web cuenta con distintas secciones en las que los usuarios pueden
navegar para encontrar la información que necesiten en determinado momento.
La misma información puede ser consultada también mediante un dispositivo móvil, como
un smartphone o tablet, que se encuentre conectado a la red en la que se encuentre el
servidor. Al igual que la versión web para escritorio, mediante la versión móvil es posible
80
navegar para cada una de las pantallas diseñadas con información del proceso de la crianza
de pollos, para de esta manera poder realizar un monitoreo remoto cuando no se cuente
con un computador. Figura 62
81
6. Conclusiones
El desempeño de los nodos fue bueno cuando estos se encontraban separados a una
distancia de 120 metros, aunque se recomienda que la distancia máxima a la que se
encuentren los nodos sea de 105 metros ya que a pesar de que exista comunicación la
potencia de la señal recibida era de -86dBm y no es recomendable por que se pueden
presentar interrupciones en la comunicación.
Los nodos miden las tres variables deseadas satisfactoriamente, las transmite a su
nodo coordinador y son cargadas en la base de datos mediante el consumo de un
servicio web creado. La base de datos se encarga de almacenar todos estos regis-
tros indicando además la fecha y hora de la medición para poder ser visualizados
correctamente en la aplicación web.
82
el proceso de crianza del pollo pueden monitorizar remotamente el comportamiento
de las variables que afectan el rendimiento del proceso.
Con el crecimiento que están teniendo las tecnologı́as que permiten realizar monito-
reos inteligentes a través de tecnologı́as IoT o como en este caso a través de transmi-
sión de radio frecuencia, es importante incluir temas en seguridad de la información
ya que cada vez son sistemas más abiertos y expuestos que podrı́an permitir el acceso
a terceros.
83
7. Trabajo futuro
Diseñar y crear una placa de monitoreo estándar modular que permita a los usuarios
utilizar el sistema para satisfacer diferentes necesidades de la industria.
Agregar una mayor cantidad de módulos con diferentes roles en la red de esta forma
extender la red permitiendo crear redes más complejas con diferente comportamiento.
84
Referencias
[1] J. Blakely and G. Simpson, ”La importancia económmica del manejo de la ventilación:
la perspectiva estadounidense”, ROSS, Agosto 2007
[2] Adobe, .Aspectos básicos de las aplicaciones Web”, [En lı́nea], Disponible en:
https://helpx.adobe.com/es/dreamweaver/using/web-applications.html, [Último ac-
ceso: Julio 17 2016]
[3] PHP, ”¿Qué es PHP?”, PHP Group, [En lı́nea], Disponible en:
http://us3.php.net/manual/es/intro-whatis.php ,[Último acceso: Junio 20 2016]
[4] National Instruments, “What is a wireless sensor network: Overview”. Abril, 2012. [En
lı́nea]. Disponible en: http://www.ni.com/white-paper/7142/en/ Consulta: Febrero
20 de 2015.
[6] Microsoft, ”Introduction to C#”, Microsoft Corporation, [En lı́nea], Disponible en:
https://msdn.microsoft.com/es-co/library/kx37x362.aspx , [Último acceso: Julio 10
2016]
[7] Microsoft, ”Microsoft SQL Server”, Microsoft Corporation, [En lı́nea], Dis-
ponible en: https://www.microsoft.com/es-es/server-cloud/products/sql-server-
editions/overview.aspx , [Último acceso: Mayo 12 2016]
[9] FEDEGAN,”Consumo aparente per cápita anual”, 2015, [En lı́nea], Disponible en:
http://www.fedegan.org.co/estadisticas/consumo-0 , [Último acceso: 29 Enero 2016]
[10] World Wide Web Consortium, ”HTML”, W3C, [En lı́nea], Disponible en:
https://www.w3.org/html/ , [Último acceso: 15 de Febrero 2016]
[11] World Wide Web Consortium, ”What is CSS?”, W3C, [En lı́nea], Disponible en:
https://www.w3.org/Style/CSS/ , [Último acceso: Mayo 20 de 2016]
85
[12] J. O. Donald, Aviagen Inc, ”Manejo del ambiente en el galpón
del pollo de engorde”, 2009, [En lı́nea], Disponible en: http :
//es.aviagen.com/assets/T echC enter/BBF oreignL anguageD ocs/SpanishT echDocs
/Aviagen − M anejo − Ambiente − Galpn − P ollo − Engorde − 2009.pdf
[14] M. Rey, ”Aplicación de los conceptos de ventilación”, Febrero 2012, [En lı́nea], Dis-
ponible en: http://seleccionesavicolas.com/pdf-files/2012/2/6527-aplicacion-de-los-
conceptos-de-ventilacion.pdf , [Último acceso: Enero 2016]
[15] R. Sanchez & O. Rueda, 2010, Ïmplementación de la red de sensores inalámbricos para
la monitorización de variables fı́sicas en un galpon avı́cola”, Universidad Industrial
de Santander, Bucaramanga, Colombia.
[18] Datasheet humidity sensor DTH22, [En lı́nea], Disponible en: http :
//www.electroschematics.com/11293/am2302 − dht22 − datasheet/
[20] Molisch, A. F., Balakrishnan, K., Chong, C. C., Emami, S., Fort, A., Karedal, J., ...
& Siwiak, K. (2004). IEEE 802.15. 4a channel model-final report. IEEE P802, 15(04),
0662.
[21] IEEE, Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifica-
tions for Low-Rate Wireless Personal Area Networks(WPANs), 2006.
86
[23] Sensortec, B. (2013). Data sheet BMP180 Digital pressure sensor. Np: Bosch Sensor-
tec.
[24] Yinbiao, S., Lee, K., Lanctot, P., Jianbin, F., Hao, H., Chow, B., & Desbenoit, J.
P. (2014). Internet of things: wireless sensor networks. White Paper, International
Electrotechnical Commission, http://www. iec. ch..
87