Anda di halaman 1dari 93

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

ANDRÉS JULIÁN OSORIO BETANCUR


CARLOS ANDRÉS GONZALEZ SALCEDO

PONTIFICIA UNIVERSIDAD JAVERIANA CALI

FACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA ELECTRÓNICA

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

ANDRÉS JULIÁN OSORIO BETANCUR


CARLOS ANDRÉS GONZALEZ SALCEDO

Proyecto de grado

Director: CARLOS ANDRÉS GIRALDO CASTAÑEDA

PONTIFICIA UNIVERSIDAD JAVERIANA CALI

FACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA ELECTRÓNICA

CALI

2017
Tabla de Contenidos

1. Resumen 5

2. Introducción 6

2.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3. Marco teórico 10

3.1. Avicultura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Estrés térmico en las aves . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3. Temperatura, presión y humedad relativa ideales en la crianza de pollos . . 11

3.3.1. Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.2. Humedad Relativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3.3. Presión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.4. Ventilación de los galpones . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.4.1. Ventilación natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.4.2. Ventilación forzada con extractores . . . . . . . . . . . . . . . . . . . 14

3.4.2.1. Ventilación mı́nima . . . . . . . . . . . . . . . . . . . . . . 14

3.4.2.2. Ventilación de transición . . . . . . . . . . . . . . . . . . . 14

3.4.2.3. Ventilación de túnel . . . . . . . . . . . . . . . . . . . . . . 14

3.5. Efecto del ambiente en la productividad de los pollos de engorde . . . . . . 15

1
3.6. Redes de sensores inalámbricos en el monitoreo de microclimas . . . . . . . 16

3.7. Red de sensores inalámbricos . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.7.1. Topologı́as de Red WSN . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.7.2. Componentes de un nodo WSN . . . . . . . . . . . . . . . . . . . . . 18

3.8. Estándar IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.9. ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.10. Aplicaciones web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4. Diseño e implementación del sistema de monitoreo 23

4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2. Hardware End Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.1. Arduino Mini Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.2. Sensor de humedad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.3. Sensor de temperatura y presión . . . . . . . . . . . . . . . . . . . . 28

4.2.4. Modulo RF XBee S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2.5. Alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.2.6. Diagrama Nodo End Device . . . . . . . . . . . . . . . . . . . . . . . 34

4.3. Hardware Coordinador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.3.1. Arduino Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3.2. Diagrama Nodo Coordinador . . . . . . . . . . . . . . . . . . . . . . 37

4.4. Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4.1. Arduino firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4.2. XBee firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4.3. Implementación de la red . . . . . . . . . . . . . . . . . . . . . . . . 42

2
4.4.4. Topologı́a de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.4.5. Seguridad de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.5. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.5.1. Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.5.2. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.5.2.1. Tabla cliente . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.5.2.2. Tabla Datos . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.5.2.3. Tabla EstadisticaGalpon . . . . . . . . . . . . . . . . . . . 47

4.5.2.4. Tabla EstadisticaNodo . . . . . . . . . . . . . . . . . . . . 48

4.5.2.5. Tabla Lotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.5.2.6. Tabla RegistroLotes . . . . . . . . . . . . . . . . . . . . . . 49

4.5.2.7. Tabla RegistroAlarmas . . . . . . . . . . . . . . . . . . . . 50

4.5.3. ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5.3.1. ASP.NET Web Froms . . . . . . . . . . . . . . . . . . . . . 52

4.5.3.2. ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . 53

4.5.4. Web API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.5.5. Aplicación web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.5.5.1. Página de inicio . . . . . . . . . . . . . . . . . . . . . . . . 55

4.5.5.2. Acerca de . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.5.5.3. Contáctenos . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.5.5.4. Monitoreo Diario . . . . . . . . . . . . . . . . . . . . . . . . 57

4.5.5.5. Historial Diario . . . . . . . . . . . . . . . . . . . . . . . . 57

4.5.5.6. Iniciar Lote . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.5.5.7. Administrar Usuarios . . . . . . . . . . . . . . . . . . . . . 59

3
4.5.5.8. Alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5. Resultados 61

5.1. Diagrama fı́sico de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2. Diagrama lógico de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.3. Distribución nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.4. Prueba RSSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.5. Seguridad de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.6. Consumo de energı́a nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.6.1. Consumo teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.6.2. Consumo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.7. Prueba de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

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

2.1. Planteamiento del problema

El proceso de crianza de pollos de engorde consiste en albergar miles de pollos en estruc-


turas grandes techadas llamadas galpones hasta que se desarrollen completamente para su
posterior procesamiento. Estos galpones proporcionan a las aves las condiciones óptimas
ambientales y de bioseguridad para que sobrevivan el tiempo necesario hasta que lleguen a
su peso ideal. Sin embargo, debido a las variaciones de la temperatura durante el dı́a y en
las diferentes estaciones, se hace necesario ventilar, enfriar e incluso calentar a la parvada
para que se siga una curva de temperatura establecida a lo largo de la vida del ave en el
galpón.

Con los constantes avances en el campo de la genética se ha logrado elevar el ritmo de


crecimiento y el rendimiento carnal del pollo. Sin embargo, esta carne adicional que se
produce tiene como consecuencia que el ave sea más sensible a la temperaturas. Las altas
y bajas temperaturas hacen que las aves sufran de estrés térmico y que su rendimiento se
vea notablemente reducido.

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.

El objetivo de este proyecto es desarrollar un prototipo de una red de sensores inalámbricos


que permita recolectar los datos de temperatura, presión y humedad relativa para alimentar
una base de datos y de esta manera poder mostrarlos al usuario usando una aplicación
web. La aplicación web será capaz de permitir el acceso a distintos tipos de usuario y de
mostrar información a cada uno de ellos dependiendo de los privilegios de cada usuario.

6
2.2. Objetivos

2.2.1. Objetivo General

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.

2.2.2. Objetivos Especı́ficos

Diseñar e implementar la red de sensores inalámbricos conformada por 5 nodos que


permita transmitir a un nodo coordinador las señales de los sensores de temperatura,
presión y humedad.

Diseñar e implementar un programa en el microcontrolador para cada nodo de la


red que permita la adquisición de las señales de los sensores y controle el momento
en que se debe enviar las mediciones por medio del módulo de radiofrecuencia.

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.

Diseñar y desarrollar la interfaz gráfica de la aplicación web que permita visualizar la


información de la temperatura durante el proceso de crianza de los pollos, compararla
con la temperatura ideal, mostrar un registro de alarmas y además restringir el acceso
a usuarios no registrados.

Desarrollar e implementar en lenguaje del lado del servidor la interación entre la


aplicación web y la información de la red de sensores inalámbricos en la base de
datos.

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.

Figura 1: Consumo aparente per cápita de carnes. FEDEGAN[9]

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.

Sin embargo, no es el caso actual, ya que la mayorı́a de galpones se encuentran construidos


primitivamente haciendo imposible la creación de microclimas controlados al interior de
éstos. De esta manera las aves se encuentran a merced del clima en el exterior del galpón
1
http://www.minuto30.com/colombia-busca-multiplicar-por-diez-sus-exportaciones-de-carne-bovina-y-
pollo/432928/

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.

El factor más importante en la crianza de pollos es la ventilación. Manipular la ventilación


es indispensable para controlar las variables que afectan el rendimiento y la salud de
las aves, como la temperatura y calidad de aire. Estudios realizados en Estados Unidos
acerca de los beneficios de una correcta ventilación han dado como resultado que si no se
implementa una correcta ventilación, las aves pueden tener una diferencia en el peso final
de 160 gramos por cada dos horas al dı́a que no se ventilen bien con respecto al peso final
de una parvada correctamente ventilada.[1]

Actualmente, en Colombia, la producción de pollos de engorde es de 1.424.000 toneladas,


con un peso promedio de cada pollo de 2,1 Kilos y con una mortalidad de 6 %[8]. Si se
asume que solo dos horas al dı́a las aves no tienen una correcta ventilación durante su
proceso de engorde, habrı́a una pérdida potencial de 108.000 toneladas de carne de pollo
al año en Colombia.

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.

3.2. Estrés térmico en las aves

La temperatura y la humedad relativa funcionan en conjunto para determinar el confort


térmico del ave. Los pollos de engorde poseen una zona térmica de confort que permite al
ave lograr el máximo rendimiento, velocidad de crecimiento óptima y uniforme y buena
eficiencia alimenticia con rendimiento en carne, además de proporcionar al ave un ambiente
seguro.

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]

En la figura 2 se observa un cuadro en el que se compara la cantidad de energı́a que


consumen las aves contra la energı́a necesaria para su mantenimiento. Como se puede
apreciar, existen dos zonas en las que la energı́a necesaria para que el ave se sienta bien
excede la energı́a que logran consumir. Al gastar toda su energı́a tratando de regular su
temperatura no podrá transformar su alimento en carne y por lo tanto no logrará crecer
de la manera más óptima.

Figura 2: Zona de temperatura para rendimiento óptimo[12]

3.3. Temperatura, presión y humedad relativa ideales en la crianza de


pollos

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.

Dı́as de edad Temperatura Humedad relativa


1 31-32◦ C 50 %
7 29-30◦ C 52 %
14 27-28◦ C 55 %
21 24-26◦ C 60 %
28 21-23◦ C 65 %
35 19-21◦ C 67 %
42 18-20◦ C 70 %

Cuadro 1: Temperatura ideal[12]

3.3.2. Humedad Relativa

La temperatura y la humedad relativa funcionan juntas para determinar el confort de


las aves. Algunos avicultores utilizan una regla empı́rica para determinar si las aves se
encuentran en su zona de confort en la que la suma de la temperatura en grados fahrenheit
y la humedad relativa no puede superar el número 160. Sin embargo en una regla más
general lo que se recomienda es que la humedad relativa entre el 50 % y el 70 %.[13]

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.

3.4. Ventilación de los galpones

La ventilación es uno de los factores más importantes en el proceso de crianza y engorde


de pollos. Con ésta es posible manipular variables que afectan el desarrollo y la salud del
ave del galpón logrando ası́ un proceso más eficiente. Existen dos tipos de ventilación, la
ventilación Natural y la ventilación forzada con extractores.[13]

3.4.1. Ventilación natural

La ventilación natural se refiere a galpones abiertos en los laterales, normalmente con


cortinas. Este tipo de ventilación implica permitir que las corrientes de convección (viento
o brisas) soplen aire dentro del galpón. En términos generales este tipo de ventilación se
maneja mejor y es viable solo cuando las condiciones ambientales externas son similares a
las que se desea tener en el interior de los galpones.

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]

3.4.2.1. Ventilación mı́nima .


Debido a que en las primeras semanas de vida de las aves en el galpón no es necesario
enfriarlas, se utiliza la ventilación mı́nima, que tiene como finalidad proporcionar las condi-
ciones ambientales seguras. El propósito de la ventilación mı́nima es introducir justamente
la cantidad suficiente de aire fresco para sacar el exceso de humedad y vapores de amonı́aco
sin lograr enfriar las aves.

La ventilación mı́nima se logra activando extractores que se encargan de crear un vacı́o


parcial adecuado al interior del galpón. Este vacı́o parcial permite controlar la velocidad a
la que ingresa el aire fresco por las entradas de aire distribuidas homogéneamente, logrando
ası́ un flujo de aire uniforme a lo largo del galpón. De esta manera se logra que se renueve
la totalidad del aire y evita la creación de zonas de aire muerto.[14]

3.4.2.2. Ventilación de transición .


La ventilación de transición consiste básicamente en utilizar la ventilación mı́nima depen-
diendo de la temperatura y no de un temporizador. Lo anterior significa que siempre que
los sensores de temperatura prevalezcan sobre el reloj de ventilación mı́nima, estará fun-
cionando el sistema de ventilación mı́nima en modo de ventilación de transición. Esto se
debe principalmente porque a medida que las aves crecen, su temperatura de confort baja;
por lo tanto, se hace necesario ventilarlas con aire fresco cuando tengan calor y ventilarlas
cuando lo indique el temporizador para renovar el aire.[14]

3.4.2.3. Ventilación de túnel .


El objetivo de la ventilación de túnel es mantener a las aves confortables en climas cálidos
o muy cálidos utilizando el efecto de enfriamiento del flujo del aire a gran velocidad. Este

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]

3.5. Efecto del ambiente en la productividad de los pollos de engorde

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.

Figura 3: Costo de una temperatura equivocada[12]

3.6. Redes de sensores inalámbricos en el monitoreo de microclimas

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.

Por otra parte, en un proyecto más dirigido a la avicultura, Muhammad Ammad-Uddin,


Muhammad Ayaz, El-Hadi Aggoune y Muhammad Sajjad del centro de investigación de
redes de sensores y sistemas celulares de la Universidad de Tabuk en Arabia Saudita,
realizaron en su artı́culo WSN: A complete solution for poultry farming, una propuesta
de un sistema de monitoreo usando una red de sensores inalámbricos, en la que cada ave
se equipa con varios sensores como humedad, temperatura y composición del aire. Estos
sensores están enviando constantemente la información del ave, permitiendo ası́ monitorear
y prevenir las condiciones peligrosas que puedan causar que las aves se enfermen.

3.7. Red de sensores inalámbricos

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.

3.7.1. Topologı́as de Red WSN

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.

3.7.2. Componentes de un nodo WSN

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.

Para extender la vida de la baterı́a, periódicamente un nodo WSN se enciende y transmite


datos alimentándose del radio y posteriormente apagándose para conservar energı́a. La
tecnologı́a de radio WSN debe ser eficiente en la transmisión de una señal y permitir al
sistema regresar al modo sleep con un uso mı́nimo de energı́a. Esto significa que el pro-
cesador involucrado debe ser capaz de despertar, encenderse y volver a sleep de manera
eficiente.

Figura 6: Componentes de un nodo sensor WSN[4]

19
3.8. Estándar IEEE 802.15.4

802.15.4 es un estándar creado por la IEEE para la comunicación inalámbrica. A diferencia


de los estándares anteriormente mencionados creados por la IEEE con un alto ancho de
banda para la comunicación WIFI y WMAN, el 802.15.4 fue desarrollado para proveer una
baja transmisión de datos, conectividad simple y aplicación con una larga duración de la
baterı́a en mente. El estándar 802.15.4 especifica las frecuencias donde puede ocurrir la
transmisión de datos las cuales son las bandas 868-868.8MHz, la 902-928 MHz o la 2,400-
2,4835 GHz. Técnicamente cualquiera de las bandas mencionadas puede ser utilizada por
cualquier dispositivo del estándar 802.15.4, la banda más popular es 2,4GHz, tanto como
la banda regularmente abierta en la mayorı́a de paı́ses del mundo. La banda 868MHz está
especificada primeramente para el uso europeo, mientras que la 902-928MHz solo puede
ser utilizada en los Estados Unidos, Canadá y otros pocos paı́ses y territorios que aceptan
las regulaciones de la FCC (Comisión Federal de Comunicaciones).[20]

3.9. ZigBee

Es un estándar inalámbrico global abierto, desarrollado para satisfacer las necesidades


únicas de bajo costo y bajo consumo en redes M2M (’máquina a máquina’) es un concepto
genérico que se refiere al intercambio de información entre dos máquinas remotas. Fue
diseñado para proveer una solución de fácil uso de datos inalámbricos caracterizado por su
alta seguridad y confiabilidad. En comparación con 802.15.4 básico, ZigBee tiene mayor
latencia, menor ancho de banda, que utiliza el estándar 802.15.4 como base, adicionando
funcionalidades de ruteo y redes. Dado que el protocolo ZigBee utiliza el estándar 802.15.4
para definir las capas PHY (Fı́sica) y MAC (Control de acceso al medio), la frecuencia, el
ancho de banda de señal y las técnicas de modulación son idénticos.

ZigBee es una especificación de un conjunto de protocolos de las capas de alto nivel de


comunicaciones inalámbricas, que permiten radiodifusión digital de bajo consumo en redes
de área personal (PAN). Este estándar se caracteriza por tener una de las tasas de transmi-
sión más bajas (40Kbps-250Kbps), lo que permite disminuir el consumo de potencia en los
dispositivos que lo implementan [21]. Para la transmisión de datos utiliza tres frecuencias
de trabajo: 868 MHz, 915 MHz y 2,4 GHz.

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.

3.10. Aplicaciones web

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]

Para la creación de páginas web de contenido dinámico es necesario dividir la programación


de la aplicación web en dos. La primera parte es programación del lado del cliente que es
la que se encarga de interpretar la información de la página y mostrarla al cliente de una
manera más entendible. La segunda parte es la programación del lado del servidor que es
la encargada de generar el código de las páginas de una manera dinámica dependiendo de
una petición hecha desde el cliente.

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

La red de sensores planteada realiza la transmisión de los datos de temperatura, humedad


relativa y presión a través del protocolo Zigbee, el cual soporta tres tipos de nodos llamados
End device, Router y Coordinador. Las capacidades de los diferentes tipos de nodos son:

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.

Nodo End Device: Es un RFD (Reduced-Function Device) y opera dentro de un conjunto


limitado de la capa MAC IEEE 802.15.4, lo que le permite consumir menos energı́a. Se
puede conectar a sus “padres” que pueden ser Router o Coordinador. También opera en
modo sleep; esto le permite solo consumir energı́a en la transmisión de información.

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.

Dependiendo de las necesidades del proyecto podrán realizarse múltiples distribuciones y


utilizar diferentes roles dentro de una red. En este proyecto se utilizan solo dos tipos de
nodos los cuales son End Device y Coordinador; lo anterior con el objetivo que la red logre
la máxima eficiencia posible, ya que como se definió en las capacidades de los diferentes
tipos de nodos, los End device pueden entrar en modo sleep, lo que quiere decir que estos
pueden entrar en un estado de hibernación donde reducen su consumo de energı́a al mı́nimo
posible. En la Figura 8 se puede ver una posible distribución la cual solo utiliza dos tipos
de nodos como en este proyecto, donde C= Coordinator y E= End Device:

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.

El propósito de la red de sensores inalámbrica es recolectar datos y alimentar una base


de datos para que luego la aplicación web pueda mostrar esta información a los diferentes
usuarios. Para ello, el Coordinador tendrá que tener acceso a internet y cuando reciba
los datos de todos los nodos, este a través del protocolo HTTP cargará la información al

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:

Figura 9: Diagrama general

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.

4.2. Hardware End Device

A continuación, en los siguientes numerales de esta sección, se descibirán más detallada-


mente los elementos que componen cada uno de los nodos end device del sistema propuesto.
Para cada elemento se mencionará su funcionalidad, caracterı́sticas técnicas, y utilidad en
el sistema.

4.2.1. Arduino Mini Pro

Es un microcontrolador basado en el chip ATmega328P [17]. Existen dos versiones en


el mercado. Una se alimenta a 3,3V y su procesador funciona a 8MHz; En el prototipo
planteado se utilizó la versión alimentada a 5V y el procesador funciona a 16MHz. se
seleccionó esta versión ya que algunos componentes del nodo funcionan a 5V, de esta
manera utilizamos el regulador con salida a 5V y entrada entre 5V – 12V del Arduino,
logrando ası́ facilitar la implementación.

El microcontrolador es un circuito integrado que en su interior contiene una unidad central


de procesamiento (CPU), unidades de memoria (RAM y ROM), puertos de entrada, salida
y periféricos. Estas partes están interconectadas dentro del microcontrolador, y en conjunto

25
forman lo que se le conoce como microcontrolador, en la siguiente figura se detalla el
Arduino.

Figura 10: Arduino Mini Pro [17]

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)

Cuadro 2: Especificaciones técnicas Arduino Pro Mini [17]

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.

4.2.2. Sensor de humedad

Al momento de realizar la investigación se buscó dispositivos con afinidad al microcontro-


lador Arduino de tal manera que se pudiera realizar fácilmente la comunicación entre estos
dispositivos. En el mercado se encontraron dos sensores de humedad que se ajustaban al
proyecto, en la siguiente tabla podemos ver sus caracterı́sticas:

Parámetro DTH11 DTH22


Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc
Señal de Salida Digital Digital
Rango de medida Temperatura De 0 a 50◦ C De -40◦ C a 80◦ C
Precisión Temperatura ±2◦ C ±0.5◦ C
Resolución Temperatura 0.1◦ C 0.1◦ C
Rango de medida Humedad De 20 % a 90 % RH De 0 a 100 % RH
Precisión Humedad 4 % RH 2 % RH
Resolución Humedad 1 %RH 0.1 %RH
Tiempo de respuesta 1s 2s
Tamaño 12 x 15.5 x 5.5mm 14 x 18 x 5.5mm
Costo $6.000 $15.000

Cuadro 3: Especificaciones técnicas sensores de humedad relativa y temperatura.

El ciclo de operación es menor en el DTH11 que en el DTH22; sin embargo, el DTH22


tiene rangos de medida más amplios y mayor resolución, a cambio de ser un poco más
costoso. En la Figura 11 se muestra el sensor seleccionado.

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.

Dı́as de edad Humedad Relativa Ideal %


1 50
7 52
14 55
21 60
28 65
35 67
42 70

Cuadro 4: Humedad relativa ideal en un ciclo de engorde de las aves.

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.

4.2.3. Sensor de temperatura y presión

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:

Dı́as de edad Temperatura Ideal


1 31-32◦ C
7 29-30◦ C
14 27-28◦ C
21 24-26◦ C
28 21-23◦ C
35 19-21◦ C
42 18-20◦ C

Cuadro 5: Temperatura ideal en un ciclo de engorde de las aves.[12]

En el mercado existen un sin número de sensores de temperatura rápidos de acoplar con


los microcontroladores; en este caso, se encontró el sensor BMP180 que tenı́a la capacidad
de medir con alta precisión la presión y como funcionalidad extra, medir la temperatura.
Sin embargo, el sensor de humedad seleccionado anteriormente también cuenta con la
capacidad de medir temperatura; cabe resaltar que todos los sensores encontrados cumplen
los requisitos para la medición de la temperatura aunque, como se puede analizar en la
siguiente tabla, el sensor de temperatura digital con que cuenta el DTH22 tiene mejor
resolución y precisión al medir esta variable, por lo que se consideró mejor utilizar el sensor
BMP180 para las mediciones de presión atmosférica y el sensor DTH22 para adquirir los
datos de temperatura:

Parámetro BMP 180 DS18B20 DTH22


Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 5V 5V
Presión 300 - 1100 hPa No aplica No aplica
Temperatura De -40 a 80◦ C De -50◦ C a 125◦ C De -40◦ C a 80◦ C
Resolución Temperatura 2◦ C 0.5◦ C 0.1◦ C
Resolución Presión 0.03 hPa No aplica No aplica
Costo $6.000 $15.000 $15.000

Cuadro 6: Cracteristicas tecnicas de los sensores de presión y temperatura

A pesar de que el sensor DS18B20 cuenta con la capacidad de medir la temperatura en el


rango requerido y con mejor resolución en comparación con el DTH22, la gran ventaja del

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.

Figura 12: Sensor de presión y temperatura BOCH [23]

4.2.4. Modulo RF XBee S2

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.

La tabla a continuación muestra las especificaciones técnicas:

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]

los parámetros SH (Serial Number High) y SL (Serial Number Low).

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

Cada módulo conectado al computador se visualiza al lado izquierdo de la interfaz. Al


seleccionar alguno de los radios en la interfaz, se puede acceder a la configuración, la
cual se observa al lado derecho. Para realizar algún cambio basta con modificar cualquier

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)

Cuadro 7: Especificaciones tecnicas Módulo XBee S2

atributo de la lista de parámetros donde la mayorı́a de ellos son modificables. Uno de


los atributos esenciales en la configuración de los módulos es el modo de operación, el
cual se puede configurar en el software y los dos modos de operación que soportan estos
dispositivos son el modo AT y el modo API.

En el modo AT no es necesario formar una trama; solo se pueden realizar comunicaciones


punto a punto: cualquier dato que llegue al pin Tx del módulo será transmitido inme-
diatamente a la dirección destino guardada en la memoria y podrá ser vista a través del
pin Rx del módulo receptor. La siguiente imagen muestra la estructura de un comando AT.

Figura 15: Estructura comandos AT tomado de [22]

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.

A diferencia al modo AT, en este modo se puede realizar la comunicación a distintos


dispositivos sin tener que re configurar cada vez que cambie el receptor; adicionalmente,
en este modo sı́ es posible conocer qué nodo de la red es la fuente del mensaje, caso
contrario del modo AT.

En la siguiente Figura se puede detallar la estructura de la trama que se debe tener en


cuenta al querer realizar un envı́o de información en modo API.

Figura 16: Estructura de la trama en modo API fuente [22]

• Start Delimiter: Es el primer byte de la trama e indica el inicio de la trama. El valor


hexadecimal del frame siempre es 0x7E el cual permite detectar fácilmente una nueva
entrada si se está recibiendo datos de algún módulo.

• Length: Especifica el número total de bytes incluidos en la frame data.

• 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:

• Transmitir información a múltiples destinos, sin necesidad de entrar al modo de coman-


dos.

• Recibir el estatus de fallo o éxito por cada paquete transmitido.

• Identificar la dirección de la fuente en cada paquete RF recibido.

4.2.5. Alimentación

La fuente de los nodos es de vital importancia ya que garantizará la recolección de infor-


mación y la transmisión de los datos por parte de los nodos end device durante al menos
un ciclo de engorde. Para ello hemos seleccionado una baterı́a de 6V con una capacidad
de 6000mAh.

Figura 17: Bateria DC, 6V de 6000mAh.

4.2.6. Diagrama Nodo End Device

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.

Figura 18: Diagrama hardware de los nodos End Device.

En la figura 18 se puede observar el diagrama hardware completo que compone a los


nodos End Device, donde es posible detallar la forma como interactúan los dispositivos
del sistema con la unidad de control. Básicamente, la unidad de control recibe los datos
monitoreados, los cuales son temperatura, humedad y presión. La unidad de control y
el XBee se comunican a través del protocolo UART(Universal Asynchronous Receiver-
Transmitter) y la unidad de control, a través de otro pin, efectúa la configuración del
estado Activo/Dormido del XBee. El protocolo de comunicación utilizado por el XBee
para transmitir la información a través de radiofrecuencia es ZigBee.

4.3. Hardware Coordinador

A continuación, en los siguientes numerales de esta sección, se descibirán más detallada-


mente los elementos que componen el nodo coordinador del sistema propuesto. Para cada
elemento se mencionará su funcionalidad, caracterı́sticas técnicas, y utilidad en el sistema.

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

Cuadro 8: Especificaciones técnicas Arduino Ethernet.

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.

La alimentación de este dispositivo es muy sencilla, ya que a través de un adaptador AC-


DC con voltaje de salida de 5V se puede alimentar; esto quiere decir que, con cualquier
cargador de celular, ya se cuenta con una fuente para este dispositivo.

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 nodo Coordinador es único en la red y es el encargado de recibir toda la información


de la red entregada por cada end device. Esta información será requerida por los usuarios
que visiten la aplicación web, por lo que es necesario que estos datos se mantengan en una
base de datos. Por esta razón se seleccionó un Arduino Ethernet para que fuera la unidad
de procesamiento del nodo Coordinador. Con este dispositivo tendremos la posibilidad de
que el nodo coordinador sea capaz de alimentar la base de datos.

Este nodo se conforma de 2 elementos principales: el Arduino ethernet y un módulo RF


XBee S2. La alimentación este nodo debe ser una fuente ininterrumpida por lo que se
conectará a través de un adaptador AC-DC.

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.

Figura 19: Diagrama hardware del nodo central

37
4.4. Firmware

Lo que se mencionó anteriormente constituye todo el sistema fı́sico y electrónico de los


nodos. En esta parte se tratará el firmware, el cual hace referencia a los programas internos
de los componentes, especı́ficamente del módulo Xbee y el Arduino.

4.4.1. Arduino firmware

El entorno de desarrollo de Arduino permite escribir rutinas que serán guardadas y ejecu-
tadas en los microcontroladores de la familia Arduino.

Figura 20: Sketch 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:

# include JeeLib.h : Librerı́a para el control de estados de hibernación del Arduino.


# include XBee.h: Librerı́a que facilita la creación de paquetes para su correcto envı́o.
# include SoftwareSerial.h : Librerı́a que permite añadir un puerto serial al Arduino.
# include SFEBMP180.h : Librerı́a que facilita el uso del sensor BMP180.
# include Wire.h: Librerı́a para la comunicación One Wire.
# include dht.h: Librerı́a que facilita el uso y acceso a las mediciones del sensor de humedad
y temperatura DTH22.

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.

La dirección que recibe como parámetro el objeto ZBTxRequest es de 64 bits la cual es


0X0000000000000000 y es utilizada para que cualquier nodo se comunique con el Nodo
Coordinador. Al enviarse los datos se deben esperar unos 500 milisegundos para que el
nodo entre en modo Sleep(Dormido). El tiempo anterior está especificado por el protocolo

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:

- Start delimiter: 0x7E


- Length: 00 22 (34)
- Frame type: 10 (Transmit Request)
- Frame ID: 01 (1)
- 64-bit destination address: 00 00 00 00 00 00 00 00
- 16-bit destination address: 0x FF FE
- Broadcast Radius: 00 (0)
- Options: 0x00
- RF Data: 50 39 30 35 31 30 2E 54 32 36 36 30 2E 48 35 39 37 30 4E 34 47 31

40
- Checksum: 0x A4

Un ejemplo de lo que se transmite en el frame de RF Data de la trama anterior en código


ASCII es el siguiente:

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:

• Presión: 905,10 hPa.


• Temperatura: 26,60 C ◦ .
• Humedad: 59,70 %.

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

4.4.2. XBee firmware

4.4.3. Implementación de la red

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.

• Scan Channels, corresponde al parámetro intervalo de canales por el cual el coordinador


hará un barrido para disponer y dar uso de uno que posea la frecuencia menos ocupada y
con mejor disponibilidad para la transmisión de los datos. Por lo general, este parámetro
viene en hexadecimal con el valor FFFF, es decir, 65535 canales, en este caso dejamos este
valor por defecto. Esto se debe a que las redes WLAN por ejemplo WIFI funciona bajo la
misma frecuencia, por lo tanto, se deberá encontrar un canal RF usable y sin interferencias;
con el valor FFFF configurado, se permite al coordinador buscar un canallibre dentro de
la banda 2.4Ghz.

La siguiente imagen es un ejemplo de la configuración de los parámetros explicados pre-


viamente, esto se realiza también a través del software XCTU:

4.4.4. Topologı́a de red

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

red a utilizar en el proyecto es la estrella (Star), su gran ventaja es la eficiencia energética


ya que la mayorı́a de dispositivos de la red pueden mantenerse en estado Sleep y la única
limitante encontrada en esta topologı́a es el rango de transmisión y estarı́a limitada a la
distancia máxima de transmisión de los XBee.

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.

4.4.5. Seguridad de la red

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.

Figura 25: Parámetros para la configuración de la seguridad en la red

Como se puede observar en la anterior Figura, la variable KY se le dio un valor A0.


Este valor debe ser guardado en algún lugar ya que el software XCTU luego de haber
configurado este parámetro no hace posible la lectura del mismo; por lo tanto, será tarea
del desarrollador de la red recordar y programar los otros módulos de la red con esta misma
llave de encriptación. Luego de realizar la configuración previamente mencionada, la red
es técnicamente segura ya que cualquier nodo que intente ingresar deberá contar primero
con este tipo de contraseña, esta clave puede contar con hasta 32 sı́mbolos hexadecimales.

4.5. Software

En esta sección se describirán las herramientas, los componentes y el desarrollo de los


elementos que conforman el software del sistema propuesto. El software del sistema desa-
rrollado está conformado por la base de datos, la web API o servicios web y la aplicación
web.

4.5.1. Microsoft SQL Server

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

La base de datos se encargará de almacenar la información de las variables de los galpones


tomadas por los nodos y de la cual se alimentará la aplicación web. Además en esta base
de datos también se almacenará información necesaria para el correcto funcionamiento de
la aplicación web, los usuarios que tienen acceso a la aplicación y qué privilegios tienen en
ésta. La base de datos será de tipo dinámico ya que permitirá la actualización, edición y
eliminación 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.

4.5.2.1. Tabla cliente .

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

Figura 26: Tabla Cliente de la base de datos

46
4.5.2.2. Tabla Datos .

Tabla en la que se almacenan las variables de temperatura, presión y humedad relati-


va tomadas por los nodos de la red inalámbrica de sensores al interior de los galpones.
Figura 27

Figura 27: Tabla Datos de la base de datos

4.5.2.3. Tabla EstadisticaGalpon .

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

4.5.2.4. Tabla EstadisticaNodo .

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

Figura 29: Tabla EstadisticaNodo de la base de datos

48
4.5.2.5. Tabla Lotes .

Tabla en la que se almacenan los lotes que se encuentran actualmente en producción


en cada galpón. Figura 30

Figura 30: Tabla Lotes de la base de datos

4.5.2.6. Tabla RegistroLotes .

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

4.5.2.7. Tabla RegistroAlarmas .

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.

Figura 32: Tabla Registro de Alarmas

En esta base de datos también se encuentran cuatro procedimientos almacenados lla-

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.

Cuadro 9: Tabla con los procedimiento almacenados creador para la aplicación

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 es un framework para aplicaciones web desarrollado y comercializado por Mi-


crosoft. Es usado por programadores y diseñadores para construir sitios web dinámicos,
aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del
.NET Framework, y es la tecnologı́a sucesora de la tecnologı́a Active Server Pages (ASP).
ASP.NET está construido sobre el Common Language Runtime, permitiendo a los pro-
gramadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET
Framework[5]

4.5.3.1. ASP.NET Web Froms .

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

4.5.3.2. ASP.NET MVC .

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.

4.5.5. Aplicación web

La aplicación web se encargará de interactuar con los usuarios y, dependiendo de sus


privilegios, podrá ver o no ciertas páginas. La aplicación web se desarrolló usando el
framework de ASP.NET Web Forms que permite crear páginas web de contenido dinámico
usando controles de una manera similar a crear aplicaciones para windows.

La aplicación web se nombró SISMO-RT que es la abreviatura para SIStema de MOnitoreo


- Real Time. Esta aplicación está dividida en dos partes principalmente: la parte gráfica,
que interactúa con el usuario final mediante la interpretación de HTML, CSS y código
JavaScript en el navegador, y la parte lógica; que prepara la información que se va a
mostrar en las páginas de la aplicación, interactúa con la base de datos y atiende a los
eventos y peticiones que se presenten en el cliente mediante código en C#.

En la interacción de la aplicación web con la base de datos se utilizó Entity Framework, el


cual crea la conexión con la base de datos de SQL Server y convierte las tablas de la base
de datos en clases para que se pueda acceder a cada uno de los registros de esas tablas.
Además, también permite que se puedan usar los procedimientos almacenados en la base

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.

4.5.5.1. Página de inicio .

Figura 34: Página de inicio de la aplicación web

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 .

La página de Acerca de en la aplicación muestra un pequeño texto en el que dice lo que


es la aplicación, para qué sirve y cómo funciona todo el sistema de manera muy general
con el propósito de informar a los usuarios de las capacidades de la aplicación.

55
Figura 35: Página Acerca de de la aplicación web

4.5.5.3. Contáctenos .

La página de Contactenos de la aplicación web permite que los usuarios se comuniquen


con nosotros ya sea para reportar errores en la aplicación o para tener más información
del sistema y de su aplicación en otras industrias diferentes a la avicultura.

Figura 36: Página Contáctenos de la aplicación web

56
4.5.5.4. Monitoreo Diario .

La página de Monitoreo Diario muestra información acerca del comportamiento de las


variables de temperatura, humedad relativa y presión por galpón en tiempo real. Además,
también permite conocer datos del lote actual en determinado galpón, cómo el número
del lote, los dı́as que llevan las aves en el proceso, la fecha en la que termina el proceso,
el número de aves con las que inició el proceso, el número de aves muertas y el número
actual de aves. También me permite reportar las aves muertas durante el proceso con el
fin de poder realizar análisis de productividad.

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.

Figura 37: Página Monitoreo diario de la aplicación web

4.5.5.5. Historial Diario .

La página de Historial Diario muestra el comportamiento de la variable temperatura a


lo largo del dı́a en cada nodo de cada galpón mediante un gráfico con una linea que sigue
los valores de temperatura obtenidos por los nodos sensores al interior del galpón. Además

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.

Figura 38: Página Historial diario de la aplicación web

4.5.5.6. Iniciar Lote .

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

4.5.5.7. Administrar Usuarios .

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.

Figura 41: Página Alarmas de la aplicación web

60
5. Resultados

5.1. Diagrama fı́sico de la red

La red implementada está formada por 5 dispositivos de comunicación inalámbrica Zig-


Bee, utilizando módulos de referencia XBee S2, los cuales facilitan la construcción de la
topologı́a estrella, sin embargo, la red puede ser dinámica, capaz de convertirse en árbol
o tipo malla, esto dependerá del tipo y la cantidad de nodos que se encuentren en la red.
Lo anterior se debe a caracterı́sticas propias de los módulos.

Figura 42: Diagrama fı́sico de la red

En el diagrama fı́sico de la red se puede observar que la topologı́a estrella consiste en


conexiones punto a punto de todos los nodos End Device hacia el nodo Coordinador,
además que en la estructura ideal de la red no existen Routers aunque la red los soporta.

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.

5.2. Diagrama lógico de la red

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.

Figura 45: Diagrama lógico de la red

5.3. Distribución nodos

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.

Figura 48: Prueba 1 distancia entre módulos aproximadamente 30 metros.

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.

Figura 49: Escenario 1 prueba de transmisión con interferencia de obstáculos y 30 metros


de distancia entre dispositivos.

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.

Figura 50: Prueba 2 distancia entre modulos entre 60 y 90 metros.

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.

5.5. Seguridad de la red

En el caso de la seguridad, como se mencionó anteriormente en el ı́tem 5.4.4, por ser un


sistema de comunicación a través del aire podrı́a existir la posibilidad de una intercepción
de los mensajes, ó incluso inyectar con información inválida la base de datos del proyecto.
Se conoce que el protocolo ZigBee en el encriptado de datos no oculta el PAN ID como
tampoco la dirección fı́sica MAC de los módulos, aunque la información que se envı́a entre
módulos se encontrará encriptada sı́ la configuración en los modulos xbee es correcta. Esto
no quiere decir que es totalmente seguro, ya que existen equipos para descifrar encriptación
de datos. Por ende, los grandes esfuerzos para evitar que algo o alguien husmee los datos
no siempre funcionará ya que siempre encontrarán la manera de corromper un sistema,
pero sı́ se puede hacer un poco más seguro.

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

Luego se procedió a realizar el mismo procedimiento de configuración con el dispositivo


MAC: 13A200 40D86D5A lo que posibilitó la entrada del nodo a la red y la posible interfe-
rencia de datos y poder enviar datos hacia el coordinador. Todo lo anterior, gracias a que
previamente se configura el parámetro KY; por lo tanto esto funciona de manera correcta.
Si un nodo intruso intentara recibir datos o infectar nuestra aplicación previamente debe
conocer el parámetro KY, cabe resaltar que no es una tarea fácil conocer este dato ya
que este parámetro puede llegar a ser de 32 hexadecimales. Por lo tanto, esta herramienta
ahorra dolores de cabeza ya que sólo con la configuración de ciertos parámetros ya se podrá
realizar automáticamente la encriptación de información y que no se le permita ingresar
a la red cualquier tipo de nodo adyacente a la red. En la siguiente figura se observan los
dos nodos conectados en la red porque tienen configurada la clave KY:

70
Figura 53: Prueba seguridad 2 intentan conectarse los módulos con la clave configurada.

5.6. Consumo de energı́a nodos

5.6.1. Consumo teórico

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.

Consumo teórico por equipo:

Equipo Estado Dormido Estado Despierto


Sensor DTH22 humedad y temperatura 100 uA 0,5 mA
Sensor Presión BMP180 3 uA 32 uA
Arduino mini pro 4 mA 20 mA
XBee S2 5 uA 40 mA

Consumo teórico por nodo:

Equipo Estado Consumo corriente (Amperios)


Nodo sensor completo Activo 60.5 mA
Nodo sensor completo Durmiendo (Sleep) 4.2 mA

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.

Figura 54: Consumo de corriente teórico

Este comportamiento es cı́clico por lo tanto se puede hallar un equivalente de la corriente


DC en el tiempo, se debe realizar una integral de la corriente consumida por un periodo,
y dividirla por el tiempo total del periodo:

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

Normalmente la capacidad de las baterı́as se encuentra denotada por miliamperios hora


(mAh), es decir la máxima carga eléctrica que es capaz de almacenar la baterı́a. Por lo
tanto, entre mayor sea este valor más tardara la baterı́a en descargarse dependiendo del
consumo. El tiempo de descarga de una baterı́a está dada por:

Capacidad máxima
T iempo de descarga = Consumo eléctrico

Se debe despejar la capacidad máxima para encontrar que baterı́a aproximadamente se


tiene que utilizar en el proyecto teniendo en cuenta que como mı́nimo el sistema debe
durar alrededor de 45 dı́as, que en horas totales serı́an 1080.

Capacidad = T iempo de descarga ∗ Consumo eléctrico

Remplazando en la anterior ecuación la información obtenida anteriormente:

Capacidad = (6, 017mA) ∗ (1080h)

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.

5.6.2. Consumo real

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.

Figura 55: Comportamiento consumo de corriente real vs teórico

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

La capacidad teórica de la baterı́a calculada tenı́a un valor de:

Capacidad = 6480mAh

Como se observa en la figura 56 la corriente al encender el nodo son aproximadamente 20,3


mA durante al menos 3 segundos, la medida con el multı́metro se muestra a continuación:

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.

Por lo tanto, el consumo real de corriente en un nodo queda de la siguiente manera:

(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.

5.7. Prueba de funcionamiento

Para probar el correcto funcionamiento del sistema general se configuraron 3 nodos y se


distribuyeron en una construcción de 25 metros de ancho por 45 metros de largo para que
la adquisición de las variables de temperatura, presión atmosférica y humedad relativa.
cerca de la construcción se ubicó el nodo coordinador, el cual se conectó a una red WIFI
privada, en la que también se encuentra un pc portatil que se utilizó cómo servidor para
la aplicación web SMART RT, el servicio web que consume el nodo coordinador y la base
de datos.

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.

Figura 61: Aplicación web

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

Figura 62: Aplicación web desde un smartphone.

81
6. Conclusiones

Éste trabajo de grado presenta el desarrollo y el montaje de una red de sensores


inalámbricos capaz de medir las variables de temperatura, presión y humedad al
interior de los galpones de pollos almacenados en una base de datos SQL que pueden
ser consultadas y visualizadas mediante la aplicación web desarrollada usando un
dispositivo electrónico con conexión a internet.

Se evaluaron 5 sensores que permitieran el sensado de las variables de temperatura,


presión y humedad. Se realizó un proceso de selección en el cual se escogieron los
sensores que cumplian con los requerimientos de unos criterios establecidos basados
en el rango de las variables a medir, la resolución, la adquisición, conexión con arduino
y la disponibilidad. Dicho lo anterior se utilizaron los sensores BMP 180 y DTH22
que se ajustan mejor a las necesidades del sistema.

La topologı́a elegida para la red de sensores inalámbricos fue la topologı́a estrella


debido a que permite una mayor eficiencia energética debido a que los nodos end-
device la mayor parte del tiempo permanecen en estado sleep.

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.

La aplicación web funciona correctamente en computadores personales y dispositivos


móviles que se encuentren conectados a la red. Esta aplicación permite el ingreso de
los usuarios registrados y es capaz de mostrar diferentes tipos de información cómo
históricos de mediciones, alarmas o mediciones en tiempo real. La información en
esta aplicación puede ser filtrada para enfocar los datos tomados por determinado
nodo.

Esta aplicación web, en conjunto con la red de sensores inalámbricos, proporciona un


sistema valioso para los avicultores, ya que mediante éste las personas involucradas en

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

Se puede extender la funcionalidad de la aplicación web del sistema incluyendo las


pérdidas potenciales económicas causadas por el tiempo en que las aves no contaron
con la temperatura correcta.

Incluir la funcionalidad de almacenar los datos que no pudieron ser enviados en la


memoria del nodo para que puedan ser enviados en un momento posterior en el
que el receptor se encuentre disponible y los datos sean transmitidos correctamente,
eliminando de esta forma la posible pérdida de datos.

Conectar el sistema de monitoreo propuesto con un sistema de control que automáti-


camente actúe frente a los cambios de temperatura y humedad para que estas varia-
bles se encuentren en los lı́mites establecidos de la temperatura óptima.

Mejorar el desempeño energético en cada nodo calculando el sistema solar necesario


con respecto al consumo de los nodos de esta manera lograr diseñar un sistema más
autónomo que no requiera intervenciones por baja carga en la baterı́a.

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.

[5] Microsoft, ”Introduction to ASP.NET”, Microsoft Corporation, [En lı́nea], Disponible


en: https://docs.asp.net/en/latest/intro.html, [Último acceso: Mayo 30 2016]

[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]

[8] FENAVI, ”Producción público”, 19 de Septiembre 2015, [En lı́nea], Disponible


en: http://www.fenavi.org/index.php?option=com content&view=article&id=2472&
Itemid=1330 , [Último acceso: 13 Febrero 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

[13] Aviagen, ”Manual de manejo del pollo de engor-


de Ross”, Aviagen Inc, 2014, [En lı́nea], Disponible en:
http://es.aviagen.com/assets/Tech Center/BB Foreign Language Docs/Spanish Tech
Docs/RossBroilerHandbook2014-ES.pdf , [Último acceso: Enero 2016]

[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.

[16] International Electrotechnical Commission, “Internet of things: Wi-


reless Sensor Networks”, 2013, [En lı́nea], Disponible en: http :
//www.iec.ch/whitepaper/pdf /iecW P − internetof things − LR − en.pdf

[17] Arduino página oficial, [En lı́nea], Disponible en: https :


//www.arduino.cc/en/M ain/ArduinoBoardP roM ini

[18] Datasheet humidity sensor DTH22, [En lı́nea], Disponible en: http :
//www.electroschematics.com/11293/am2302 − dht22 − datasheet/

[19] López, V. M. Compatibilidad Electromagnética (EMC) Y Normalización, [En lı́nea],


Disponible en: https : //cenam.mx/dme/pdf /compatibilidad %20electromagnetica−
sep30 − 2005.pdf

[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.

[22] Manual, P. 802.15. 4 Protocol XBee /XBee-PRO


R
R OEM RF Modules. Versión 1.

xCx.[Archivo pdf en lı́nea]. Digi International Inc. Publicado 04/09/2008.[citado fe-


brero 10, 2009]. Disponible en http://www. digi. com.

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

Anda mungkin juga menyukai