desarrollo de una aplicaciÓn para la …

50
DESARROLLO DE UNA APLICACIÓN PARA LA VISUALIZACIÓN DE MAPAS DE TEMPERATURA Y HUMEDAD UTILIZANDO UNA RED DE SENSORES INALÁMBRICOS (WSN) EN UN CULTIVO DE FLORES Sergio Camilo Martínez León Asesor: Mauricio Guerrero Co-Asesor: Diego Méndez Chaves Tesis presentada a la Universidad de los Andes como requisito para optar por el título de Ingeniería Electrónica Enero de 2010

Upload: others

Post on 13-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UNA APLICACIÓN PARA LA …

DESARROLLO DE UNA APLICACIÓN PARA LA VISUALIZACIÓN DE MAPAS DE

TEMPERATURA Y HUMEDAD UTILIZANDO UNA RED DE SENSORES

INALÁMBRICOS (WSN) EN UN CULTIVO DE FLORES

Sergio Camilo Martínez León

Asesor: Mauricio Guerrero

Co-Asesor: Diego Méndez Chaves

Tesis presentada a la Universidad de los Andes como requisito para optar por el título de

Ingeniería Electrónica

Enero de 2010

Page 2: DESARROLLO DE UNA APLICACIÓN PARA LA …

2

Agradezco a mis asesores por

sus consejos y realimentación . A Katherine

por su apoyo y valiosa ayuda.

A mi hermanito por ayudarme y a todos

los que me ayudaron en este proyecto

Page 3: DESARROLLO DE UNA APLICACIÓN PARA LA …

3

Índice General

1. INTRODUCCIÓN ............................................................................................................................. 8

2. DESCRIPCIÓN DE LA PROBLEMÁTICA ......................................................................................... 9

3. MARCO TEÓRICO Y TRABAJOS RELACIONADOS ........................................................................ 10

4. DEFINICIÓN Y ESPECIFICACIÓN DE LOS ELEMENTOS DE LA RED ............................................ 12

4.1 NODO SENSOR ..................................................................................................................................... 12

4.2 NODO GATEWAY ................................................................................................................................. 12

4.3 SERVIDOR ........................................................................................................................................... 13

5. DESARROLLO DEL DISEÑO DE LA RED ....................................................................................... 14

5.1 MÓDULO CC2431 ............................................................................................................................... 14

5.1.1 Periféricos .............................................................................................................................. 15

5.1.2 Radio ....................................................................................................................................... 16

5.1.3 Ubicación Geográfica ............................................................................................................ 16

5.1.4 Consumo ................................................................................................................................. 17

5.2 SELECCIÓN DEL SISTEMA OPERATIVO ................................................................................................... 17

5.2.1 TinyOS ..................................................................................................................................... 18

5.2.2 RetOS ....................................................................................................................................... 18

5.2.3 ZStack y TIMAC ...................................................................................................................... 19

5.2.4 Remo TI ................................................................................................................................... 20

5.2.5 SimpliciTI ................................................................................................................................ 20

5.2.5 Otros ........................................................................................................................................ 22

5.2.6 Selección del sistema operativo .......................................................................................... 22

5.3 CONTROL DE TOPOLOGÍA .................................................................................................................... 22

5.3.1 Formación de la red .............................................................................................................. 23

5.3.2 Optimización del árbol generado ....................................................................................... 25

5.3.3 Data aggregation .................................................................................................................. 27

5.3.4 Estado Bajo consumo ............................................................................................................ 27

5.3.5 Mantenimiento de la red ...................................................................................................... 27

5.4 SENSOR DE TEMPERATURA Y HUMEDAD ............................................................................................... 28

5.5 INTERFAZ VISUAL ................................................................................................................................ 29

6. IMPLEMENTACIÓN DE LA RED .................................................................................................... 30

6.1 IMPLEMENTACIÓN HARDWARE ............................................................................................................ 30

6.2 IMPLEMENTACIÓN SOFTWARE ............................................................................................................. 31

6.2.1 Modificaciones al protocolo SimpliciTI .............................................................................. 31

6.2.2 Topología de la Red ............................................................................................................... 33

6.2.3 Recolección y Visualización de la Información ................................................................. 37

6.2.4 Mantenimiento de la red ...................................................................................................... 39

7. VALIDACIÓN DE LA RED ............................................................................................................... 40

7.1 VISUALIZACIÓN DE LA RED WSN ......................................................................................................... 40

7.1.1 Conexión en Malla de los Nodos .......................................................................................... 40

7.1.2 Verificación y Corrección del árbol Generado .................................................................. 41

Page 4: DESARROLLO DE UNA APLICACIÓN PARA LA …

4

7.1.3 Estado de la Batería y Notificación al Gateway ................................................................ 42

7.2 VISUALIZACIÓN DE DATOS EN UN INVERNADERO ................................................................................... 43

8. TRABAJO FUTURO ........................................................................................................................ 46

9. CONCLUSIONES.............................................................................................................................. 47

10. REFERENCIAS .............................................................................................................................. 48

Page 5: DESARROLLO DE UNA APLICACIÓN PARA LA …

5

Índice de Figuras

Fig. 1 Planteamiento del problema ..................................................................................................... 9

Fig. 2 Bloques de un nodo sensor .................................................................................................... 10

Fig. 3 SmartRF04E .............................................................................................................................. 14

Fig. 4 SOC en PCB.............................................................................................................................. 15

Fig. 5 Topología de una red Zigbee[15] ............................................................................................. 19

Fig. 6 Topología en SimpliciTI [19] ..................................................................................................... 20

Fig. 7 Arquitectura de SimpliciTI [20] ................................................................................................ 21

Fig. 8 Topología de la red .................................................................................................................. 23

Fig. 9 Consumo de Corriente vs Potencia de transmisión ................................................................. 24

Fig. 10 Consumo de potencia vs Potencia de transmisión ................................................................ 24

Fig. 11 Tiempo de vida de la red para diferentes protocolos [27] .................................................... 27

Fig. 12 Circuito impreso para interfaz hardware sensor sht11 ......................................................... 30

Fig. 13 Circuito impreso para interfaz cc2431 y sensor .................................................................... 30

Fig. 14 Circuito impreso con sensor y cc2431 ................................................................................... 30

Fig. 15 Comunicación punto a punto y en estrella ............................................................................ 31

Fig. 16 Comunicación con todos los nodos ....................................................................................... 31

Fig. 17 Workspace del protocolo simpliciTI....................................................................................... 32

Fig. 18 Conexión de un nuevo nodo .................................................................................................. 33

Fig. 19 Conexión de un nuevo nodo .................................................................................................. 34

Fig. 20 Comando agregar un nuevo nodo a la red ............................................................................ 34

Fig. 21 Comando para avisar al Gateway de un nuevo nodo ............................................................ 35

Fig. 22Comando TREP [27] ................................................................................................................ 35

Fig. 23 Diagrama de flujo para enviar el comando TREP .................................................................. 36

Fig. 24 Candidatos a padre y Nst de nodos ....................................................................................... 36

Fig. 25 Comando para cambio de padre [27] .................................................................................... 37

Fig. 26 Comando de cambio de padre. ............................................................................................. 37

Fig. 27 Visualización de la información ............................................................................................. 38

Fig. 28 Comando recolección temperatura y humedad .................................................................... 38

Fig. 29Entrar a estado bajo consumo [36] ....................................................................................... 38

Fig. 30 Comando de temperatura y humedad de un nodo sin hijos. ................................................ 39

Fig. 31 Envió de datos utilizando data aggregation .......................................................................... 39

Fig. 32 Mensajes periódicos de batería ............................................................................................. 39

Fig. 33Comando de mantenimiento.................................................................................................. 40

Fig. 34 Comando de mantenimiento enviado al nodo padre ........................................................... 40

Fig. 35 Visualización de la red ........................................................................................................... 41

Fig. 36 Árbol balanceado ................................................................................................................... 42

Fig. 37 Nodo 8 con nivel de batería bajo. .......................................................................................... 43

Fig. 38 Nodo 8 desconectado. ........................................................................................................... 43

Fig. 39 Nodo sensor tomando datos. ................................................................................................ 44

Page 6: DESARROLLO DE UNA APLICACIÓN PARA LA …

6

Fig. 40 Temperatura medida por tres nodos .................................................................................... 44

Fig. 41 Humedad medida por tres nodos .......................................................................................... 44

Page 7: DESARROLLO DE UNA APLICACIÓN PARA LA …

7

Índice de Tablas

TABLA I. Especificaciones de los Nodos…………………………………………………………………………………..17

TABLA II. Especificaciones de los Sensores………………………………………………………………………………28

Page 8: DESARROLLO DE UNA APLICACIÓN PARA LA …

8

1. Introducción

Una Red de sensores inalámbricos, WSN (Wireless Sensor Network) consiste en dispositivos

electrónicos, nodos o motes que se comunican entre sí inalámbricamente formando una red. El

elemento básico de la red son nodos los cuales están compuestos por sensores para medir

variables de interés, un microprocesador para procesar la información y electrónica de

comunicaciones para transmitir inalámbricamente a través de la red. Además de la adquisición de

datos los nodos transmiten información procedente de otros nodos realizando la función de

enrutamiento. Además existen nodos encargados de recolectar toda la información que proveen

todos los nodos de la red, también llamados Gateway [1].

Las aplicaciones de los nodos sensores empezaron en el campo militar, pero se han expandido al

campo industrial, agrícola, control de procesos, inteligencia artificial, medicina y monitoreo de

animales entre otras. Esta tecnología ha sido posible debido a la reducción de costos en

tecnologías de comunicaciones y microelectrónica haciendo factible la construcción de una

cantidad significativa de nodos sensores de bajo costo, con la ventaja de ubicación aleatoria y

cobertura de grandes terrenos, por otro lado si uno de los sensores falla, el sistema continua en

funcionamiento debido al autocontrol de conexión que debe tener la red [1]. Como desventaja se

puede mencionar que al comunicarse los nodos inalámbricamente se presentan interferencias en

que pueden distorsionar la señal y obtener la lectura equivocada o no recibir el mensaje.

La implementación de una red de sensores inalámbricos (WSN) en un cultivo de flores está

motivada por la automatización del proceso de recolección de datos de temperatura y humedad y

por la continuación con la línea de investigación en WSN creada en el departamento de Ingeniería

Electrónica entre los grupos de investigación CMUA (Centro de Microelectrónica) y el GEST (Grupo

de Electrónica y Telecomunicaciones).

En este documento se presenta el problema de implementar una cadena de medición,

transmisión y visualización de temperatura y humedad utilizando una red de sensores WSN en un

cultivo de flores, así como los pasos que se deben seguir para resolverlo. A continuación se explica

el desarrollo de la solución, argumentando la elección de los distintos componentes, entre los que

se encuentra el sistema operativo, los sensores, la topología y la visualización. Por último se

presentan los resultados obtenidos y las pruebas realizadas para validar el correcto

funcionamiento de la red así como la adquisición y visualización de datos de temperatura y

humedad.

Page 9: DESARROLLO DE UNA APLICACIÓN PARA LA …

9

2. Descripción de la Problemática

Los cultivos de flores generalmente ocupan terrenos de varias hectáreas y están compuestos por

invernaderos o bloques, la variabilidad de la temperatura en los invernaderos determina el tiempo

para floración en los cultivos de flores y temperaturas variables y excesivamente altas o bajas

significa variación en los tiempos de floración [2]. Para monitorear la temperatura generalmente

los cultivos tienen sensores en algunos o todos los bloques, pero tomar datos manualmente de

cada uno de los sensores es tedioso y toma un tiempo considerable, además no proporciona la

información actualizada para determinado momento sino la información en un período previo.

Una solución a este problema es utilizar una red de sensores WSN con la cual es posible tener

acceso a los datos de temperatura y humedad en tiempo real. Estas redes están compuestas por

dispositivos que tienen un sensor incorporado en cada nodo y permiten realizar monitoreo de las

variables ambientales requeridas. Utilizando la red de sensores se puede tener acceso a los datos

de temperatura y humedad de todo el cultivo de forma inmediata, actualizándola en el intervalo

requerido por el usuario. La tasa de actualización debe ser variable debido a que hay temporadas

del año en que se presentan temperaturas extremas. Durante la noche pueden llegar a estar por

debajo de 0 C° en la sabana de Bogotá y quemar la cosecha, por este motivo es necesario tener un

seguimiento constante de la temperatura para tomar decisiones en el momento oportuno;

mientras que cuando la temperatura está por encima de 0 C° no es necesario tener información

constante de temperatura y humedad. Por lo tanto es decisión del usuario la tasa de muestreo

que se debe utilizar de acuerdo a la temporada. El esquema general de una red WSN dentro del

cultivo se muestra en la figura 1.

Fig. 1 Planteamiento del problema

Por lo tanto analizando los trabajos realizados previamente en la universidad, se propone utilizar

los módulos CC2431 debido a la disponibilidad y documentación realizada sobre estos módulos.

Investigando el control de topología óptimo se implementara en un cultivo de flores una red WSN

para medir temperatura y humedad relativa. Además se propone implementar la interfaz

adecuada para recolectar, procesar y visualizar los datos obtenidos.

Page 10: DESARROLLO DE UNA APLICACIÓN PARA LA …

10

3. MARCO TEÓRICO Y TRABAJOS RELACIONADOS

Las redes inalámbricas están compuestas por nodos sensores que recolectan información según la

aplicación en la que se encuentran y la transmiten a otros nodos (enrutadores) que permiten el

flujo de la información hasta el final de la red donde se encuentra el Gateway, el cual es un

dispositivo externo que es parte de la red, y se encarga de la autenticación de cada nodo, el

procesamiento de los mensajes enviados y recibidos y de administrar la red y su topología. Un

nodo sensor está compuesto por tres bloques principales (figura 3) compuestos por el bloque de

sensores los cuales pueden ser externos o internos, un microprocesador diseñado para consumir

baja potencia, memoria flash , y el bloque de transmisión el cual puede estar en el mismo chip [1].

Fig. 2 Bloques de un nodo sensor

Como punto de partida del presente proyecto se tienen algunos proyectos relacionados con redes

inalámbricas, realizados anteriormente en la Universidad de los Andes siguiendo la línea de

investigación en WSN.

El trabajo realizado por Diego Méndez Chaves [3] es una investigación completa sobre los

conceptos básicos de redes WSN, sistemas operativos y plataformas hardware ya existentes, por

lo cual se adquiere conocimiento sobre el estado del arte en redes de sensores inalámbricos. Al

término del proyecto se realiza una selección del sistema operativo que mayor funcionalidad

presenta para la realización flexible de prototipos. El contenido del trabajo de Diego Méndez

Chaves es de gran importancia dado que es una fuente primaria de información actualizada sobre

las redes inalámbricas y permite tener claros los aspectos requeridos en el diseño de aplicaciones

sobre las mismas.

El trabajo desarrollado por Carlos Eduardo Silva Martínez [4] es un conjunto de pruebas para

protocolos de redes inalámbricas a través del cual se realizó una comparación, por medio de

simulación, de algoritmos de enrutamiento para verificar el desempeño de cada uno de ellos

frente al consumo de energía según la cantidad de nodos de la ruta óptima y el escenario de

operación. Este aspecto es esencial en el desarrollo de la aplicación dentro del cultivo de flores

dado que cada nodo opera por extensos períodos de tiempo con su batería independiente y es

deseable no realizar cambios de pilas muy frecuentemente.

Page 11: DESARROLLO DE UNA APLICACIÓN PARA LA …

11

En la tesis de Maestría Control de Topologías y Enrutamiento en Redes Inalámbricas de Sensores

(WSN) [5] se realizó una investigación en algoritmos de control de topología, la selección y

modificación del algoritmo de control de topología y enrutamiento Directed Local Spaning

Subgraph para aumentar la capacidad y el tiempo de vida de la red. También muestra

simulaciones del algoritmo modificado, mostrando las ventajas de este en comparación con el

algoritmo original.

El trabajo desarrollado por Santiago Bock García [6] consistió en implementar el sistema operativo

TinyOS sobre el módulo CC 2431. Como conclusiones importantes de este trabajo, se encontró

que el SoC es un dispositivo muy completo y con herramientas suficientes para su uso en la

creación de redes inalámbricas. Por otro lado, el sistema operativo TinyOS fue implementado

exitosamente sobre el módulo mostrando una serie de ventajas y desventajas, que serán útiles al

momento de comparar dicho sistema operativo con otros para la aplicación en el cultivo de flores.

Page 12: DESARROLLO DE UNA APLICACIÓN PARA LA …

12

4. DEFINICIÓN Y ESPECIFICACIÓN DE LOS ELEMENTOS DE LA RED

Para automatizar la medición de temperatura y humedad en un cultivo de flores se propone

utilizar una red WSN ubicando un nodo sensor por cada bloque o invernadero, porque cada

bloque tiene distinto tamaño y por lo tanto la temperatura varía en cada uno de ellos. Debido a

que la temperatura no cambia abruptamente y no se necesitan de acciones inmediatas en rangos

de temperatura ambiente, la información no debe ser actualizada constantemente por lo cual el

tiempo de actualización normalmente esta entre los 20 a 40 minutos. Por otro lado en condiciones

de temperaturas extremas ya sea por debajo de cero grados se necesitan tomar decisiones rápidas

con base en la información disponible y por lo tanto se necesitan tasas de actualización más altas.

Por lo tanto las especificaciones que deben tener los módulos sensor y el dispositivo de

visualización son los siguientes.

4.1 Nodo Sensor

El nodo sensor debe cumplir algunos aspectos importantes que permitan obtener datos

con alto grado de exactitud y precisión, las tres principales son:

Rango de Temperatura: La operación del sensor es a temperatura ambiente por lo

tanto los rangos recomendados están entre -10 a 40C°.

Rango de Humedad Relativa: Dado que la humedad esta en porcentaje, el rango

de operación será de 0 a 100% de humedad.

Consumo de batería: El consumo es un aspecto crítico dado que la red WSN se

está utilizando para evitar recolectar la información manualmente y cambiar pilas

frecuentemente no solucionaría el problema. El consumo de energía debe

optimizarse para mayor duración de las baterías.

Cantidad de nodos: El número de nodos debe ser el mínimo posible pero

abarcando cada lote hasta completar todo el invernadero.

4.2 Nodo Gateway

Es el encargado de inicializar la red, y de enviar y recibir los mensajes de toda la red.

Además debe establecer comunicación con el servidor, pero no depender de este para el

Page 13: DESARROLLO DE UNA APLICACIÓN PARA LA …

13

correcto funcionamiento de la red. Debe estar encendido todo el tiempo aunque no esté

conectado con el servidor, y recibir la información ambiental de toda la red.

4.3 Servidor

La etapa de visualización debe ser amigable con el usuario, debido a que la importancia

para el usuario final es solamente observar la temperatura y humedad dentro del cultivo y

reflejar el estado de la red para observar y analizar el comportamiento de la misma. Un

requerimiento central para la plataforma en la cual se desarrolla la aplicación es la

implementación de comunicación serial, ya que debe haber comunicación entre la

aplicación y el Gateway. La mejor alternativa teniendo en cuenta los requerimientos de la

aplicación es realizar una interfaz en java en la cual se implementen los siguientes

requerimientos:

Agregar un nuevo nodo

Agregar los vecinos de cada nodo

Almacenamiento de la información

Visualizar el árbol que se genera y sus modificaciones

Visualizar la temperatura y humedad de todos los sensores

Ingresar el periodo de actualización de los sensores

Ingresar la variación de temperatura y humedad permitidas antes de actualizar la

información

Page 14: DESARROLLO DE UNA APLICACIÓN PARA LA …

14

5. DESARROLLO DEL DISEÑO DE LA RED

El desarrollo del diseño consistió de cuatro etapas consecutivas a través de las cuales se determinó

si el modulo seleccionado era adecuado para ser utilizado como nodo de la red dentro del cultivo.

A partir de lo anterior se prosiguió con el sistema operativo a implementar en los nodos y la

selección del sensor, para finalmente realizar un control de topología que permitiera el

cumplimiento de los requerimientos iniciales de la aplicación.

5.1 Módulo cc2431

El módulo sensor seleccionado es el cc2431 el cual es un system on a chip, diseñado para construir

redes inalámbricas con aplicaciones Zigbee, utiliza un Transceiver basado en el CC2420, opera en

la frecuencia de 2.4 GHz con protocolo IEEE 802.15.4 y un micro controlador 8051 mejorado. El

cc2431 es idéntico al cc2430 excepto en la adición de un sistema de localización en hardware con

el cual se pueden localizar nodos basado en la posición de otros nodos llamados de referencia. El

sistema cuenta con un oscilador de 32 MHz el cual es necesario para el funcionamiento del radio,

memoria flash de 128 KB y 8KB de memoria RAM [7]. El nodo que se conecta al computador se

muestra en la figura 3 y provee un puerto USB para programación de los nodos, puerto serial

RS232 y pantalla LCD., mientras que los nodos que van en campo son los que se muestran en la

figura 4. Los aspectos más importantes del sistema son presentados a continuación.

Fig. 3 SmartRF04E

Page 15: DESARROLLO DE UNA APLICACIÓN PARA LA …

15

Fig. 4 SOC en PCB

5.1.1 Periféricos

El cc2431 cuenta con diversos periféricos como el ADC, Power Managment, reloj, memoria flash, 3

timers, puertos I/O, control DMA, sleep timer, watch timer, sistema de localización y USART. Los

periféricos más importantes para este proyecto son:

Power Managment: Tiene el control del consumo del sistema, los puertos I/O , el

radio, los conversores, el radio y demás periféricos.

Puertos I/O: Son puertos de propósito general, el módulo cuenta con tres puertos, el

puerto 1 y 2 son de 8 bits, mientras que el 3 es de 5 bits, todos los puertos son

direccionados por byte o por bit y cada uno puede ser configurado como puerto de

propósito general o como periférico.

El módulo cuenta con dos USART los cuales proveen comunicación serial en modo

asíncrono o UART y en modo SPI o síncrono. En este proyecto se utiliza la UART como

medio de comunicación con la aplicación de visualización, que en este caso está

montada sobre un computador, por lo tanto la configuración de la UART es primordial.

Timers: Elcc2431 cuenta con cuatro timers, de los cuales dos son de ocho bits, uno es

de 24 bits y el último es de 16 bits. Provee servicios de contador, comparador y

funciones PWM.

Sleep Timer: Es utilizado para generar una interrupción con la cual el modulo puede

salir de estado de bajo consumo.

Page 16: DESARROLLO DE UNA APLICACIÓN PARA LA …

16

5.1.2 Radio

La transmisión y recepción de mensajes, esta implementada siguiendo el protocolo IEEE 802.15.4

en el cual se especifica la capa física (PHY) y el control de acceso al medio (MAC). Estas

especificaciones están dadas para dispositivos con baja rata de transmisión, portables y en

movimiento con batería limitada. [8]

En sus aspectos generales el mensaje a transmitir es modulado por O-QPSK( Off set quadrature

phase shift keying), y en la recepción es amplificada y de modulada la señal, la cual es filtrada y

amplificada para finalmente ser digitalizada. Los demás procesos como ganancia automática, filtro

de canal y sincronización son realizadas digitalmente.

La información contenida en cada frame que se va a enviar debe estar compuesta por:

Encabezado de sincronización: Contiene un preámbulo con 4 bytes con valor 0x00 y el principio del delimitador del frame.

Longitud del frame: Contiene la longitud total del frame sin incluirse.

Control de frame: Contiene la dirección del destino y la fuente, si pide “acknowledge” y si contiene seguridad.

Mensaje: Contiene la información a mandar.

Frame Check Sequence: El cual es un código detector de errores.

5.1.3 Ubicación Geográfica

Una gran ventaja de los nodos cc2431 con respecto a los cc2430 como ya se mencionó

anteriormente es la implementación de un servicio de localización por hardware, este sistema es

implementado con nodos de referencia los cuales deben ser mínimo 3 y máximo 16, estos mandan

al nodo con ubicación desconocida su posición y RSSI (Received Signal Strength Indicator), las

coordenadas son guardadas en un vector * x0,y0, x1,y1,…,x15,y15+, aunque no haya 16 nodos de

referencia se deben poner las coordenadas restantes en 0.

Después de obtener todos los datos mencionados anteriormente se deben guardar en un vector

los siguientes datos en el siguiente orden: *A, N, Xmin, Xdelta, Ymin, Ydelta, rssi0, rssi1, …, rssi15+.

El parámetro A el cual está definido como el valor absoluto de la potencia promedio en dBm

recibida a 1 metro del transmisor asumiendo transmisión unidireccional, un valor típico es de -

40dbm. El parámetro N define la rata a la cual la potencia de la señal decae a medida que aumenta

la distancia del transmisor, el decaimiento es proporcional a d-n donde d es la distancia entre el

transmisor y el receptor. Este valor es entero, y utilizando una tabla disponible en [7] se escribe un

valor entre [0,31]. Para calcular estos dos valores se utiliza el RSSI, y graficando RSSI vs

log(distancia) se obtiene A como el intercepto con el eje Y y N como la pendiente. Así mismo se

pueden establecer límites para la búsqueda incluyendo Xmin,Xmax,Ymin,Ymax. Con estos valores

se puede reducir el error, la máxima área que puede ser cubierta son 63.5m * 63.5m, por lo tanto

Page 17: DESARROLLO DE UNA APLICACIÓN PARA LA …

17

X y Y deben estar en este intervalo. Después de guardar estos parámetros y escribiendo los

registros adecuados se obtiene el valor LOCX y LOCY estos valores tienen un off set el cual se quita

con la siguiente formula X = (XLOCX - xmin +1) % (xdelta+ 1) + xmin y lo mismo para Y.

5.1.4 Consumo

La duración de la batería es uno de los aspectos más críticos en una red WSN, debido a que todos

los nodos están alimentados por dos baterías AA. Con el objetivo de aumentar la vida de los

nodos, se debe reducir al máximo el consumo durante los periodos en los cuales no se están

transmitiendo mensajes, por tal motivo el cc2431 presta el servicio de bajo consumo. Como se

muestra en la tabla I. la mayor parte del consumo está dada por la transmisión y recepción de

información. El problema está en la recepción, debido a que el modulo debe estar en modo de

recepción para estar “escuchando” los demás nodos, para resolver este problema una vez la red

sea establecida cada nodo sensor debe entrar en bajo consumo y solamente activarse en un

intervalo de tiempo en el cual todos los nodos transmiten información hacia el Gateway.

TABLA I. Especificaciones de los Nodos

Reloj 32 MHZ 10.5 mA

Transmisión 26.9 mA

Recepción 26.7 mA

Power Mode 1 190 uA

Power Mode 2 0.5 uA

Power Mode 3 0.3 uA

Consumo

El módulo CC2431 cumple con los requerimientos básicos, y además provee una solución

hardware como lo es el sistema de localización. Sin embargo a este módulo le faltan protocolos de

comunicación muy utilizados como TWI y SPI.

5.2 Selección del Sistema Operativo

La elección del sistema operativo es fundamental para el adecuado desarrollo del proyecto,

debido a que es la herramienta para implementar todos los requerimientos de la aplicación.

Debido a que se escogió el módulo cc2430 por la disponibilidad del mismo, el sistema operativo

Page 18: DESARROLLO DE UNA APLICACIÓN PARA LA …

18

debe ser compatible, fácilmente portable y modificable. Entre los sistemas operativos más

reconocidos se encuentran:

5.2.1 TinyOS

Es uno de los sistemas operativos más utilizados y con extensa documentación, este sistema

operativo fue implementado en los módulos cc2431 por [6], por este motivo inicialmente fue el

sistema escogido para realizar la aplicación. Sin embargo se deben analizar las ventajas y

desventajas que este sistema ofrece. El lenguaje utilizado es NesC [9] el cual es una extensión del

lenguaje C, lo cual exige al programador aprender otro tipo de lenguaje. Este tipo de lenguaje es

utilizado porque los programas están construidos utilizando componentes los cuales se entrelazan

para formar el programa, cada uno de los componentes implementa tareas concurrentes y provee

o utiliza interfaces las cuales son utilizadas para comunicarse entre los distintos componentes [10]

[11].

La ventaja de este sistema operativo es que debido a su programación es bastante utilizado en

sistemas de bajo consumo, además fue portado anteriormente en los mismos nodos. Como

desventaja se puede mencionar la necesidad de familiarizarse con otro tipo de lenguaje, la

dificultad en la programación de los nodos debido a que el código debe ser compilado en Linux,

además se debe utilizar un script para que sea portado en la plataforma 8051, y finalmente se

programa el código utilizando IAR Embedded en Windows.

Otro aspecto importante es que la versión portada por [6] fue TinyOS 1.1 y al momento de este

proyecto la versión es 2.1 por lo tanto como se menciona en [12], se presentan dificultades

parecidas a la versión 1.x y algunas nuevas En conclusión TinyOS es una buena alternativa por los

servicios que presta, pero al no estar soportado oficialmente en el cc2430, no se pueden usar las

versiones más recientes sin embargo para los nodos que son soportados es una buena alternativa.

5.2.2 RetOS

Es un sistema operativo desarrollado en la universidad de Yonsei, el cual provee ejecución de

tareas paralelas (Multithreaded programing interface), reconfiguración dinámica y expansión del

Kernel [13]. Como desventajas, no está soportado oficialmente en arquitectura 8051, solamente

en Tmote Sky y Shimmer. Este sistema fue portado en el cc2430 por investigadores de la misma

universidad, pero no hay documentación sobre como adecuarlo para funcionar sobre la

arquitectura 8051. [14]

Page 19: DESARROLLO DE UNA APLICACIÓN PARA LA …

19

5.2.3 ZStack y TIMAC

Debido a que Chipcon pertenece a TI, y los distintos sistemas operativos están diseñados para

otros módulos como Telos y Mica, TI ha desarrollado cuatro protocolos de comunicación

compatibles con sus dispositivos, Zstack es la implementación del protocolo Zigbee en el cual se

define un coordinador, un “router” y un End device como se muestra en la figura 5.

Fig. 5 Topología de una red Zigbee[15]

Como se puede observar en la figura hay un coordinador el cual crea y configura la red. El router

tiene 3 funciones, permite a otros dispositivos entrar a la red, maneja el paso de mensajes entre

múltiples dispositivos y administración la comunicación con los end device conectados a él [15].

Como ventajas de Zstack se puede mencionar que está escrito en lenguaje C, genera la red y

escoge el mejor camino para llegar a cada uno de los nodos basado en link costs los cuales son

calculados a partir de la RSSI. Una gran desventaja es que el código utilizado no es libre, hay partes

del código que no están disponibles para el usuario como lo mencionan en la licencia, y debe ser

utilizado solamente en dispositivos fabricados por TI o pedir autorización a TI para utilizarlo en

otros sistemas. Aunque haya limitaciones en la utilización del código, este es un buen candidato a

utilizar, sin embargo cuando fue programado en los cc2431 las aplicaciones no corrían,

investigando porque no funcionaban se descubrió que hay distintas versiones de hardware para

los cc2431,los módulos adquiridos por la universidad son incompatibles con Zstack, por lo cual

tuvo que ser descartado.

TIMAC por otro lado es una versión simplificada de Zstack, la comunicación es solamente punto a

punto o en estrella, no tiene ningún tipo de licencia por su utilización, pero al igual que Zstack

cuando se realizaron pruebas no funciono debido a la versión del dispositivo. [16]

Page 20: DESARROLLO DE UNA APLICACIÓN PARA LA …

20

5.2.4 Remo TI

Es un protocolo basado en TIMAC, soporta programación remota, el cual es utilizado en nodos

CC2530. Trabaja con el sistema operativo OSAL (OS Abstraction Layer) al igual que Zstack y TIMAC.

[17]

5.2.5 SimpliciTI

Este protocolo está pensado para redes pequeñas de no más de 100 nodos debido a su

simplicidad. Solamente se pueden formar dos tipos de red la cual es punto a punto o en estrella.

Hay definidos 3 tipos lógicos de nodos, el Acces point o coordinador el cual crea y configura la red,

el Range Extender el cual amplia el rango del coordinador reenviando los mensajes que le llegan y

el End device. En la figura 6 se muestra la topología. [18]

Fig. 6 Topología en SimpliciTI [19]

Como se puede ver en la figura 4 existe un coordinador el cual está conectado con dos Range

extenders los cuales simplemente replican los mensajes que van del End device al coordinador, y

no forman activa de la red, por lo tanto se amplifica el rango del Access point siempre en topología

estrella ya que todos los nodos se comunican directamente con él.

La arquitectura de SimpliciTI consta de 3 capas que se muestran en la figura 7 y se describen a

continuación.

Page 21: DESARROLLO DE UNA APLICACIÓN PARA LA …

21

Fig. 7 Arquitectura de SimpliciTI [20]

SimpliciTI no sigue el modelo OSI ya que no se implementa la capa física(PHY) debido a que al

radio llegan las señales y este entrega los frames, por lo tanto esta operación es realizada

directamente por el radio o MRFI( Minimal RF Interface) , que como se ve es la capa inferior de la

arquitectura. La siguiente capa se llama NWK y en esta capa se definen cada uno de los

componentes que conforman un frame y se implementan las funciones de enviar y recibir

mensajes. La última capa es la de aplicación y es la que debe ser modificada por el usuario. El

programa implementa cuatro aplicaciones, la más importante es Link con la cual se pueden

establecer conexiones entre los nodos para enviar y recibir mensajes. Estas conexiones son

guardadas en un arreglo, para poder escoger a que nodo se le quiere mandar mensajes [20].

Las ventajas de este protocolo son: El hecho de tener un código bastante sencillo y corto, por otro

lado es fácilmente modificable debido a su sencillez, esta soportado para la plataforma cc2430 y

está escrito en lenguaje C. Como desventaja se puede mencionar que la topología de red al ser

bastante de sencilla, tiene una ruta predefinida para el tráfico, y si alguno de los nodos falla la

conexión con el Access point se pierde sobre todo si es uno de los Range extenders, todos los end

device conectados fallarían.

Otra desventaja es que debido a que no existe un sistema operativo como tal, no hay tareas

definidas para realizar cada uno de los procesos, esto es un problema porque tener un planeador

para ejecutar las tareas hace que sea más sencilla la ejecución de los distintos procesos, también

es más complicado ejecutar procesos que tengan cierto nivel de complejidad. Sin embargo existe

el manejo de interrupciones, ya que el cc2430 las provee, se utilizan para recibir mensajes de

aplicaciones o de conexiones. Este protocolo también se implementó en los nodos para probar su

funcionamiento, al realizar las pruebas se presentó el mismo error de los anteriores protocolos de

TI, sin embargo con modificaciones en el código se resolvió el problema, lo cual no sucedió con

Zstack ni TIMAC.

Page 22: DESARROLLO DE UNA APLICACIÓN PARA LA …

22

5.2.5 Otros

Existen otros sistemas operativos para redes WSN como SOS, el cual fue utilizado en la tesis de

maestría Desarrollo de una Plataforma para Prototipaje Flexible para Aplicaciones WSN [3]. Otros

como Contiki, Mantis, BTnut, SOS y Nano-RK. No son explicados debido a que no están soportados

en la plataforma 8051.

5.2.6 Selección del sistema operativo

El protocolo elegido fue simpliciTI aunque no es un sistema operativo dado que no implementa

tareas, no es necesario porque la aplicación solamente requiere enviar periódicamente datos de

temperatura y humedad. Además se escogió debido a la simplicidad del código el cual puede ser

modificado, la facilidad de programación de los nodos ya que solamente se necesita utilizar IAR

Embedded Workbench, la libertad de utilizar el código sin licencia y el lenguaje de programación

es C en el cual se tiene conocimiento previo.

5.3 Control de Topología

El enrutamiento de los datos en la red es uno de los aspectos más importantes ya que debe

garantizar consumo mínimo de energía y desgaste uniforme de todos los nodos, para aumentar la

vida útil de los mismos. Los algoritmos para el control de topología están divididos en tres clases

dependiendo la estructura de la red [1].

Redes Planas: Todos los nodos tienen el mismo rol dentro de la red utilizando múltiples saltos

para comunicarse con un nodo central al cual llega toda la información.

Redes jerárquicas: En este tipo de redes generalmente se tiene gran cantidad de nodos, tiene

ventajas en términos de escalabilidad ya que los nodos con mayor cantidad de energía son los

seleccionados para recibir información de sus vecinos y enviarla con destino del Gateway.

Mientras que los nodos con baja energía solamente tienen la función de recolectar

información del medio ambiente.

Enrutamiento con base en localización: En este tipo de redes se conoce la localización y

distancia entre cada uno de los nodos, con base en esto se implementan algoritmos de

enrutamiento.

Page 23: DESARROLLO DE UNA APLICACIÓN PARA LA …

23

La red se establece como una red plana, dentro de la cual todos los nodos tienen la misma función

porque la densidad de nodos es baja, por lo cual los algoritmos de redes jerárquicas no son

adecuados y dado que tampoco se cuenta con un sistema de localización no se utiliza el

enrutamiento con base en localización.

5.3.1 Formación de la red

Debido a que el Gateway es el encargado de recolectar la información de temperatura y humedad

de todos los nodos, también es quien debe construir la red para recolectar dicha información. Por

lo tanto se forma una red tipo árbol como la que se muestra en la figura 8 en la cual aunque todos

los nodos tienen conexión con sus nodos vecinos, solamente pueden enviar información al

Gateway a través de un nodo que será su padre, ya que si se enviara a través de más nodos se

pueden formar anillos y la información nunca llegaría al Gateway.

Fig. 8 Topología de la red

Como la información de todos los nodos debe llegar al Gateway, existen distintos métodos para

escoger el camino mínimo de enrutamiento dependiendo de la función de costo. Típicamente los

protocolos utilizan el mínimo número de saltos o la mínima potencia de transmisión necesaria

para escoger su padre [1].

En este caso el costo está determinado por el número de saltos para llegar al Gateway porque en

la figura 9 se puede observar que para una potencia de transmisión de 0dbm un nodo consume 32

mA, y para la mínima potencia de transmisión el valor de corriente esta alrededor de 17 mA [21],

por lo tanto el consumo mínimo de corriente siempre será por el camino directo y no a través de

múltiples saltos como se concluye también se concluye en [22] donde se describe el consumo de

potencia del transmisor como :

Page 24: DESARROLLO DE UNA APLICACIÓN PARA LA …

24

Donde PT’0 es la potencia que consume el micro controlador y los circuitos del radio, mientras que

PpA es la potencia necesaria para amplificar la señal a transmitir. La potencia necesaria para

amplificar la señal PpA se relaciona con la potencia de transmisión por medio de (2)

Donde es la eficiencia y Ptx es la potencia de transmisión. Por lo tanto para hallar la potencia que

consume el modulo para transmitir a distintos valores de potencia se utiliza (3) donde Ptx es la

potencia de transmisión, C y β son parámetros que se encuentran en [22] para el cc2430. En la

figura 10 se grafica la potencia que consume el nodo para diferentes valores de potencia de

transmisión y se confirma que el camino directo a máxima potencia es más económico que utilizar

múltiples saltos.

Fig. 9 Consumo de Corriente vs Potencia de transmisión

Fig. 10 Consumo de potencia vs Potencia de transmisión

Page 25: DESARROLLO DE UNA APLICACIÓN PARA LA …

25

5.3.2 Optimización del árbol generado

Existen dos tipos de nodos en la red, los nodos en la periferia o leaf nodes los cuales solamente

cumplen la función de medición, y los nodos que transportan la información hacia el Gateway, los

cuales entre más cerca están a éste reciben mayor cantidad de tráfico y por lo tanto se desgastan

más, causando la posible desconexión de la red, por otro lado si hay ciertos nodos con mayor

carga que otros el tiempo de vida de la red será aún menor [23]. Para alargar la vida de la red se

implementan los siguientes mecanismos:

Load Balancing for Efficient Routing in Wireless Sensor Networks [24]

En este algoritmo después que cada nodo define el camino al Gateway con menor número de

saltos, se intercambia información sobre el buffer disponible de cada nodo y por lo tanto se

propone un algoritmo de control de congestión en una red WSN donde puede haber múltiples

caminos para llegar al Gateway.

Maximum Lifetime Tree Construction for Wireless Sensor Networks[25]

En este algoritmo la función de costo está basada en la energía disponible de cada nodo y el costo

energético de transmitir a otros nodos. La ventaja de este tipo de algoritmos es que todos los

nodos se desgastan uniformemente debido a que se cambia de camino cuando un nodo está

desgastándose. El problema de este algoritmo es determinar la energía de los nodos, ya que

solamente se puede medir el voltaje de las baterías, este voltaje es constante, pero empieza a

decaer abruptamente cuando la carga se va a terminar por lo tanto no da una medida valida del

desgaste de los nodos.

A Dynamic Query-tree Energy Balancing Protocol for Sensor Networks[26]

Se utiliza una red jerárquica donde es seleccionado un nodo cabeza del cluster, cada nodo está

asociado con un costo entre 0 y 1 dependiendo del estado de su batería. El costo aumenta si la

batería del nodo baja, por lo tanto los demás nodos intentan utilizar nodos con bajo costo. Cuando

se inicializa el árbol todos los nodos envían un comando con el costo de utilizar su camino, y por lo

tanto cada nodo escoge el camino con mayor cantidad de energía. Se presenta el mismo problema

para medir la energía del algoritmo anterior.

Gathering-Load-Balanced Tree Protocol for Wireless Sensor Networks (LBTP) [27]

Este algoritmo busca que cada nodo tenga a lo más un hijo de diferencia en cada una de sus

ramas, esto con el fin de balancear el tráfico que circula a través de los nodos. La ventaja de este

protocolo con respecto a otros que utilizan el consumo de energía como parámetro es que no

espera que ciertos nodos estén desgastados para modificar el árbol, sino que desde el inicio se

Page 26: DESARROLLO DE UNA APLICACIÓN PARA LA …

26

ejecuta el algoritmo para balancear el árbol por lo cual todos los nodos se van a gastar

uniformemente.

El algoritmo es distribuido ya que cada nodo evalúa si el subárbol del cual es padre esta

balanceado con la ecuación 4.

(4)

Donde, es el hijo del nodo i, es el número de nodos que se conectan al Gateway a

través de . es el nodo con mayor nst y el nodo con menor nst de los hijos del nodo i.

Si la relación de la ecuación 1 se cumple es un árbol balanceado, sino tratar de encontrar un nieto

AGC de los hijos de el cual pueda acercar LBFI a 1 lo cual significa que AGC debe tener a

como padre., entonces el nodo i padre de informa a AGC que su nuevo padre será , y

LBFI será:

(5)

Por lo cual LBFI se acerca más a uno, los pasos de la ecuación 4 y 5 se hacen repetidamente hasta

que se balancea el árbol por completo.

Selección del algoritmo de control de topología

El algoritmo de optimización elegido es Gathering-Load-Balanced Tree Protocol for Wireless

Sensor Networks porque no es necesario saber la energía del nodo constantemente, balancea el

tráfico por todos los nodos y a partir de la figura 11 se concluye que el protocolo aumenta el

tiempo de vida de la red con respecto a un árbol sin balancear cuando el número de nodos es

menor a 100, por lo tanto este protocolo es ideal para redes con baja cantidad de nodos.

Page 27: DESARROLLO DE UNA APLICACIÓN PARA LA …

27

Fig. 11 Tiempo de vida de la red para diferentes protocolos [27]

5.3.3 Data aggregation

Es un método en el que se agregan los datos de diferentes nodos [28] en un mismo mensaje, para

reducir el número de mensajes enviados al Gateway y el over-head de mandar un mensaje. El

desempeño de este esquema se puede observar en las siguientes medidas:

Consumo de energía: Disminuye considerablemente debido al ahorro de re enviar

mensajes de nodos que están a más de un salto del Gateway.

Latencia: Aumenta debido a la necesidad de cada nodo de esperar por los mensajes de

todos los hijos, para poder enviar un solo mensaje al padre.

5.3.4 Estado Bajo consumo

Debido a que la mayor parte del tiempo los nodos van a estar esperando realizar la siguiente

medición para ahorrar energía utilizando el modo de bajo consumo que provee el cc2431 como se

muestra en la tabla I. Los nodos se inducen al modo de bajo consumo del cual solo puede salir

mediante una interrupción externa o el sleep timer [7].

5.3.5 Mantenimiento de la red

Debido a que los nodos se van desgastando con el tiempo debe haber un mecanismo con el cual se

pueda alertar a los nodos vecinos y al Gateway que un nodo se le está terminando la batería, para

esto se monitorea el nivel de la batería y periódicamente debe informar a sus vecinos si el voltaje

de las baterías es menor a cierto valor VT todos los vecinos deben dejar de utilizarlo y encontrar

otro camino para enviar la información.

Page 28: DESARROLLO DE UNA APLICACIÓN PARA LA …

28

5.4 Sensor de Temperatura y humedad

La elección de los sensores de temperatura y humedad es fundamental en el proyecto debido a

que es la información que el usuario final requiere. La elección del sensor debe estar orientada al

consumo debido a la importancia ya mencionada en reducirlo. Debido a que se quiere medir

temperatura y humedad se deben analizar si se requieren dos sensores diferentes o uno con el

cual se obtengan ambos datos. En la tabla II se muestra una caracterización general de los

sensores elegidos durante la primera etapa del proyecto:

TABLA II. Especificaciones de los Sensores

Los sensores se dividen en dos grandes clases, análogos y digitales, además de uno de capacitancia

variable. La ventaja de los sensores análogos [29] [30] es el precio y el fondo de escala, mientras

que la gran desventaja es que todos consumen entre 400 uA y 5mA y todos requieren voltaje de

alimentación mayor a 3 V, por lo cual no es viable utilizarlos ya que para el cc2430 se utilizan 2

baterías doble A. Esto sin tomar en cuenta que se debe tener un circuito de acondicionamiento lo

cual aumenta el consumo de corriente y los costos a la hora de fabricar un PCB, Por otro lado los

digitales consumen poca corriente, tienen modo stand by, pero son más costosos, sin embargo la

fabricación del PCB es más sencilla debido a que no se necesita circuito de acondicionamiento ni

de apagado [31] [32] [33] [34].

Page 29: DESARROLLO DE UNA APLICACIÓN PARA LA …

29

Después de analizar las especificaciones, se evalúan los siguientes sensores: sensor chipcap, SHT11

y HS2000D. El sensor chipcap es descartado debido a que el voltaje de alimentación debe ser

mayor a 3,3V y la alimentación de los nodos es de 3 voltios y va disminuyendo debido a que las

baterías se van descargando. El sensor seleccionado es el SHT11 sobre el HS2000D por su menor

costo.

5.5 Interfaz Visual

Dadas las características que debe tener el servidor, la aplicación debe ser realizada en un lenguaje

que permita la visualización de la información y facilite la interacción con el usuario. Por tanto se

utiliza Java con el programa ECLIPSE debido a los conocimientos previos en esta herramienta. Para

implementar la comunicación con el Gateway se utiliza RxTx [35]. Es una librería la cual provee la

interfaz de comunicación serial y paralela. Dado que hay un sensor por cada bloque para informar

la temperatura y humedad de cada módulo, al lado de cada nodo se presenta la información y con

colores que corresponden a la temperatura deseada se muestra gráficamente el mapa de

temperatura de cada invernadero.

Page 30: DESARROLLO DE UNA APLICACIÓN PARA LA …

30

6. IMPLEMENTACIÓN DE LA RED

6.1 Implementación Hardware

El sensor de temperatura y humedad debe tener una interfaz de comunicación con el módulo

cc2431. El sensor SHT11 emplea comunicación bidireccional con una línea para reloj y otra para

datos, para conectar físicamente el sensor SHT11 con el módulo cc2431 se fabrica una tarjeta

para el sensor como se muestra en la figura12.

Para integrar el sensor y el módulo cc2431 se propone realizar una tarjeta en la cual se conecta el

sensor con uno de los puertos del micro controlador como se muestra en la figura 13. En la tarjeta

se implementa la interfaz con el sensor de temperatura, un led para verificar el correcto

funcionamiento del hardware, y los pines de programación. El tamaño de la tarjeta se redujo a 5

cm* 8 cm y se muestra en la figura 14 junto con la tarjeta del sensor.

Fig. 12 Circuito impreso para interfaz hardware sensor sht11

Fig. 13 Circuito impreso para interfaz cc2431 y sensor

Fig. 14 Circuito impreso con sensor y cc2431

Page 31: DESARROLLO DE UNA APLICACIÓN PARA LA …

31

6.2 Implementación Software

6.2.1 Modificaciones al protocolo SimpliciTI

Debido a que la topología básica del protocolo elegido solamente se soporta comunicación punto

a punto y tipo estrella como se muestra en la figura 15, se busca generalizar la comunicación,

permitiendo que todos los nodos se puedan conectar y comunicar con todos, para así poder

establecer cuál es la mejor configuración dependiendo de la topología elegida.

Fig. 15 Comunicación punto a punto y en estrella

Fig. 16 Comunicación con todos los nodos

Como se puede ver en la figura 16, en la nueva configuración cada nodo se conecta con todos los

nodos a su alcance, y ninguno de los nodos tiene un estado especifico exceptuando al gate way el

cual siempre debe mantener su estado lógico, debido a que es el que transmite la información al

computador. Con esta nueva configuración se puede establecer la topología deseada, por lo tanto

el protocolo no está restringido a mantener los mismos caminos, sino que puede cambiar

dinámicamente.

Para establecer comunicación entre todos los nodos se utiliza el Acces Point ya que tal como está

definido en simpliciTI tiene conexión con todos los nodos End device que están a su alcance. Por lo

tanto se reemplazan los End device por nodos programados como Acces Point y se elimina la

restricción que tienen para comunicarse entre ellos.

Page 32: DESARROLLO DE UNA APLICACIÓN PARA LA …

32

6.2.1.1 Principales funciones modificadas

En la figura 17 se muestran las carpetas utilizadas por el protocolo simpliciTI organizadas en tres

carpetas. En la primera están los componentes o capas del protocolo, la primera carpeta es bsp(

board Support package) en la cual se incluyen los periféricos como los botones y los leds. Además

se incluyó soporte para los timers, sleep timer, LCD [36], el ADC [37], UART [38], e interacción con

el sensor [31]. En las otras carpetas se encuentra la implementación de la capa MRFI, la capa

NWK y NWK APPLICATIONS. En [20] están especificadas cada una de las capas del protocolo.

En la segunda carpeta peer applications se implementa la aplicación del usuario en la cual se

encuentra la inicialización de la aplicación, así mismo se define la configuración del Acces point y el

Gateway. En la tercera carpeta Output, se encuentran los archivos generados.

Fig. 17 Workspace del protocolo simpliciTI

La primera modificación del protocolo para permitir que un nodo se conecte con todos los nodos

en su rango de alcance, es enviar un mensaje broadcast utilizando la función nwk_sendAdrress()

definido en nwk_api.h en la carpeta nwk. Las modificaciones implementadas para recibir el

mensaje de broadcast y realizar una nueva conexión se hacen en la carpeta nwk en el archivo

nwk_frame.c en las funciones que se muestran en la figura 18. La función LinkTo() es la misma

definida originalmente por el protocolo simpliciTI con la diferencia que se incluye la dirección de

destino.

En el nodo receptor de una petición de conexión, el nodo procesa una nueva conexión con la

función nwk_processLink(), la cual es modificada para permitir conexión entre dos Acces point

distintos, esta función se encuentra en nwk_link.c.

Page 33: DESARROLLO DE UNA APLICACIÓN PARA LA …

33

El nodo Gateway está definido idéntico al Accespoint, pero además incluye implementación de la

UART para comunicarse con una aplicación externa a través del puerto serial y configuración del

LCD incorporado en el SMARTRF 04.

El archivo que incluye las modificaciones del protocolo y la documentación de la implementación

de distintos periféricos se entrega al asesor para trabajos posteriores con el cc2431.

nwk_sendAdress()

MRFI_RxCompleteISR()

Nodos vecinos reciben mensaje de conexión.

dispatchFrame(frameInfo_t)

Es un mensaje de link

linkTo()

Si

Fig. 18 Conexión de un nuevo nodo

6.2.2 Topología de la Red

Para implementar los servicios descritos en la sección 5.3 se utiliza el servicio de mensajes de

simpliciTI, en el cual se pueden enviar hasta 21 bytes de información, dado que el protocolo es

orientado a conexión se debe enviar a cada nodo un mensaje por separado. A continuación se

presentan los servicios implementados y el contenido de los mensajes utilizados.

6.2.2.1 Formación del árbol

Page 34: DESARROLLO DE UNA APLICACIÓN PARA LA …

34

Dado que toda la información es recolectada por el sink, periódicamente, debe ser el sink quien

genere el árbol. Por lo tanto cuando este se conecta con sus nodos vecinos envía un mensaje

avisándoles que están a un paso de él, todos los nodos que reciben este mensaje lo reenvían a sus

vecinos informándoles a cuantos saltos están del Gateway. Para evitar re enviar la misma

información cada vez que un nodo reciba el mensaje de cada vecino, se inicializa un timer y a

medida que llegan mensajes se escoge como camino al Gateway el vecino con menor número de

pasos. Cuando el timer genera la interrupción se manda un mensaje por el nodo elegido como

camino al Gateway avisando la entrada de un nuevo nodo, y al resto de los vecinos se envía el

número de saltos que están del Gateway. En la figura 19 se muestra el proceso de conexión de un

nuevo nodo.

Fig. 19 Conexión de un nuevo nodo

El comando que envía el Gateway para iniciar la red y posteriormente los demás nodos de la red a

un nuevo nodo que se conecte es el siguiente:

Fig. 20 Comando agregar un nuevo nodo a la red

Si un nodo X envía el comando 2 a un nodo Y, el comando es el encabezado utilizado para

diferenciar los distintos mensajes que se envían, el campo de saltos al Gateway es el número de

saltos que el nodo Y esta del Gateway utilizando el nodo X como padre. El ID del padre se utiliza

para saber si el padre del nodo Y es el mismo del nodo X. Y el campo de número de hijos es

utilizado para que el nodo Y se conecte al nodo con menos hijos cuando el número de saltos al

Gateway es el mismo.

Page 35: DESARROLLO DE UNA APLICACIÓN PARA LA …

35

El comando que envía el nuevo nodo Y a su padre X cuando pasa el tiempo T es el que se muestra

en la figura 21, a los demás vecinos le envía el comando de la figura 20 para alertarlos sobre su

nuevo padre y a cuantos pasos están del Gateway utilizando el nodo Y.

Fig. 21 Comando para avisar al Gateway de un nuevo nodo

Este comando es utilizado para poder visualizar la red en el dispositivo de visualización, incluye el

ID del padre para observar el árbol que se genera, además se incluye el ID del nuevo nodo porque

si el padre del nodo no es el Gateway el mensaje debe ser reenviado hasta llegar al Gateway.

6.2.2.2 Balancear el árbol

Después que un nuevo nodo selecciona su padre balancea su árbol según la sección 5.3.2 y sigue

el diagrama de la figura 23 . Para actualizar sus padres y hermanos sigue las ecuaciones 6 o 7.

El comando de la figura 22 es el que envía a si su árbol esta balanceado.

Fig. 22Comando TREP [27]

Page 36: DESARROLLO DE UNA APLICACIÓN PARA LA …

36

Camino al Gateway establecido. Inicializar Timer ajuste árbol

Actualizar hijos y hermanos

Timer = T

Tengo hijos

Enviar mensaje a padre

No

Si

Llegaron mensajes de todos los hijos

Enviar mensaje a padre.

Si

No

Si

El árbol esta balanceado

Si

Balancear el arbol

No

Fig. 23 Diagrama de flujo para enviar el comando TREP

Si padre del nodo Y es el Gateway:

{ }

De lo contrario:

{ }

Fig. 24 Candidatos a padre y Nst de nodos

Page 37: DESARROLLO DE UNA APLICACIÓN PARA LA …

37

Cuando un nodo i encuentra que su sub árbol no está balanceado, como se menciona en la sección

5.3.2, el nodo 1 del a figura 24 encuentra un nieto AGC en este caso el nodo 5 que debe cambiar

de padre. El comando que manda el nodo 1 es el siguiente:

Fig. 25 Comando para cambio de padre [27]

El nodo que debe cambiar de padre informa a su padre actual sobre la desconexión y a su nuevo

padre que tiene un nuevo hijo. El comando que envía a ambos nodos es el de la figura 26. Para el

caso de la figura 24 el nodo 5 envía el mensaje a su actual padre, el nodo 2 y a su nuevo padre el

nodo 3.

Fig. 26 Comando de cambio de padre.

Solamente es necesario el comando y el ID del nodo ya que todos los nodos saben quiénes son sus

hijos, por lo tanto el padre solamente debe borrarlo de su lista, y el nuevo padre debe agregarlo a

la lista. Finalmente el nuevo padre reenvía el comando de su nuevo hijo a su padre, en este caso el

nodo 1, y este da por completado el balanceo del árbol. Si el nodo 1 tuviera padre actualizaría la

información del cambio y enviaría el comando TREP.

6.2.3 Recolección y Visualización de la Información

Después de generar y balancear el árbol se procede a ingresar en la aplicación del computador el

intervalo de actualización y la variación máxima entre dos medidas consecutivas para enviar los

datos al Gateway. La aplicación que se muestra en la figura 27 envía a través del puerto serial el

comando al Gateway y este envía el mensaje de la figura 28 a todos sus hijos, y estos lo re envían

para que el mensaje llegue a toda la red.

Para garantizar que todos los mensajes lleguen al Gateway se implementa un método sencillo de

dormir y despertar utilizando y modificando el código disponible en [36], en el cual el Gateway

manda un mensaje con el tiempo que deben dormir todos los nodos de la red. Para entrar a

estado de bajo consumo cada nodo sigue el diagrama de la figura 29.

Page 38: DESARROLLO DE UNA APLICACIÓN PARA LA …

38

Fig. 27 Visualización de la información

Fig. 28 Comando recolección temperatura y humedad

Recibe comando dormir

Escribir en registros tiempo en estado bajo

consumo

Deshabilitar el radio

Cambiar a reloj de 32 KHz

Entrar a estado bajo consumo

Fig. 29Entrar a estado bajo consumo [36]

Cuando cada nodo despierta realiza la medición de temperatura y humead si no tiene hijos envía

el comando de la figura 30 en el cual solamente incluye los dos bytes de temperatura y dos bytes

de humedad.

Page 39: DESARROLLO DE UNA APLICACIÓN PARA LA …

39

Fig. 30 Comando de temperatura y humedad de un nodo sin hijos.

Si el nodo tiene hijos espera los datos de todos sus hijos y posteriormente envía el comando de la

figura 31 utilizando data aggregation (sección 5.3.3)

Fig. 31 Envió de datos utilizando data aggregation

Cuando los datos de todos los nodos han llegado al Gateway, este vuelve mandar el comando de la

figura 28, para entrar la red en estado de bajo consumo de nuevo.

6.2.4 Mantenimiento de la red

Para implementar el mantenimiento de la red todos los nodos periódicamente deben alertar a sus

vecinos del estado de su batería como se muestra en la figura 32

Fig. 32 Mensajes periódicos de batería

Se utilizan dos tipos de mensajes para este propósito, el de la figura 33 lo utiliza cada nodo para

informar a todos sus vecinos menos a su nodo padre. Mientras que el de la figura 34 se utiliza para

informar al padre, esto con el fin de utilizar el mismo mensaje con los datos ambientales para

solamente incluir 2 bytes más de información y no un mensaje completo.

Page 40: DESARROLLO DE UNA APLICACIÓN PARA LA …

40

Fig. 33Comando de mantenimiento

Fig. 34 Comando de mantenimiento enviado al nodo padre

Cuando un nodo tiene batería menor un voltaje VT, sus vecinos lo marcan como un nodo sin

energía y lo excluyen de la lista de candidato a padre. Mientras que el nodo hijo escoge un nuevo

padre de su lista de candidatos a padre, y la siguiente vez que envié la temperatura y humedad

escoge a su nuevo padre. Cuando un padre se entera que su hijo no tiene la batería suficiente lo

borra de su lista de hijos. Para medir el nivel de la batería se utiliza [37].

7. VALIDACIÓN DE LA RED

7.1 Visualización de la Red WSN

Para comprobar la funcionalidad y correcto funcionamiento de cada uno de los nodos y de la red.

Se realizaron las distintas pruebas utilizando el programa Terminal V1.6 y la aplicación

desarrollada en Java, con el cual se pueden observar los datos que transmite el nodo Gateway a

través de la UART al computador. La configuración de la UART se hizo con base en [38].

7.1.1 Conexión en Malla de los Nodos

Page 41: DESARROLLO DE UNA APLICACIÓN PARA LA …

41

Para verificar el funcionamiento del protocolo SimpliciTI y visualizar la conexión de cada nodo con

sus vecinos cuando un nuevo nodo se conecta a la red, en la figura 35 se puede ver que se

agregaron 5 nodos. El nodo 1 es el Gateway y los arcos en color azul muestran la conexión entre

hijo y padre, mientras que los de color blanco muestran conexión con nodos vecinos. También se

puede observar que el árbol no está balanceado ya que el nodo 3 tiene como hijos a los nodos 5 y

8 mientras que el nodo 4 no tiene hijos.

Fig. 35 Visualización de la red

7.1.2 Verificación y Corrección del árbol Generado

Para verificar la operación de balanceo se utilizó la red de la figura 35 en la cual el árbol no está

balanceado. En la figura 36 se observa el árbol balanceado y la temperatura y humead de 2 de los

sensores, por lo tanto el algoritmo de balanceo si funciona.

Page 42: DESARROLLO DE UNA APLICACIÓN PARA LA …

42

Fig. 36 Árbol balanceado

7.1.3 Estado de la Batería y Notificación al Gateway

Para verificar el correcto funcionamiento de la aplicación de mantenimiento de la red se utiliza el

esquema de la figura 37 en el cual el nodo 2 reporta tener baja batería a sus vecinos, por lo tanto

el nodo 5 debe buscar un nuevo padre, y su candidato es el nodo 3. El nodo envía un mensaje al

Gateway avisando la desconexión del nodo 2 y establece al nodo 3 como su padre como se puede

ver en la figura 38.

Page 43: DESARROLLO DE UNA APLICACIÓN PARA LA …

43

Fig. 37 Nodo 8 con nivel de batería bajo.

Fig. 38 Nodo 8 desconectado.

7.2 Visualización de datos en un Invernadero

Para probar el funcionamiento de la red en un cultivo de flores se ubicaron tres nodos en el

invernadero más cercano a las oficinas cada uno se ubicó como se muestra en la figura 39,

mientras que el Gateway se ubicó en el segundo piso de las oficinas donde estaba ubicado el

computador para visualizar la información.

Page 44: DESARROLLO DE UNA APLICACIÓN PARA LA …

44

Fig. 39 Nodo sensor tomando datos.

Fig. 40 Temperatura medida por tres nodos

Fig. 41 Humedad medida por tres nodos

Page 45: DESARROLLO DE UNA APLICACIÓN PARA LA …

45

En las figuras 40 y 41 se observa el cambio de temperatura y humedad a lo largo de dos horas, a

partir de la gráfica se puede observar que cuando la temperatura baja la temperatura de los 3

sensores es muy cercana, la temperatura bajaba debido a que en esos intervalos de tiempo el sol

estaba cubierto por las nubes, pero al recibir el sol a través del plástico la medida de temperatura

es afectada ya que le sensor del nodo 3 llego a medir 43 C°, aunque estuvieran cubiertos para

evitar la exposición directa. Las mediciones se realizaron en un solo invernadero para analizar el

cambio de temperatura en los extremos y en el centro del mismo, se puede ver según la gráfica

que hay variaciones en los datos aunque como es de esperarse siguen la misma tendencia. Con

respecto a la humedad relativa empezó en niveles del 30 % y aumento hasta niveles del 60%

debido a que las nubes cubrieron el cielo.

Page 46: DESARROLLO DE UNA APLICACIÓN PARA LA …

46

8. TRABAJO FUTURO

Para continuar con la línea de trabajo utilizando el cc2431en redes WSN, se propone desarrollar el

sistema de localización incorporado en los módulos cc2431, desarrollar antenas de bajo consumo

paralelas a la utilizada en la comunicación, para entrar en modo activo cuando detecte tráfico,

esto con el fin de mantener los nodos en bajo consumo un mayor tiempo. Aumentar la potencia

de trasmisión del módulo utilizando el CC2591 en conjunto con el cc2431 como se describe en [39]

para mejorar el rango del alance del módulo.

Con respecto al proyecto pero falta por implementar un mecanismo de recuperación de fallas y

reconexión de los nodos para evitar la interacción humana cuando se presentan fallas en la red.

Page 47: DESARROLLO DE UNA APLICACIÓN PARA LA …

47

9. CONCLUSIONES

Se implementó satisfactoriamente una cadena de medición, transmisión y visualización de

humedad y temperatura. Se implementaron aplicaciones para bajo consumo, notificación de baja

batería en cualquier nodo de la red, data aggregation y balanceo del tráfico que circula por todos

los nodos.

Las medidas arrojadas por los sensores son acordes al compararlas con otros instrumentos de

medición confiables y se obtuvieron variaciones de hasta 3 C° del centro a un extremo del

invernadero cuando los nodos estaban expuestos al sol, aunque se cubrieron para evitar la

exposición directa.

Debe ser probado con mayor cantidad de nodos para evaluar la robustez y escalabilidad del

protocolo así como generar mapas de temperatura y humedad completos.

Page 48: DESARROLLO DE UNA APLICACIÓN PARA LA …

48

10. REFERENCIAS

[1] Al – Karaki, Jamal N. Kamal, Almahed E. “Routing techniques in wireless sensor networks: A

survey”,IEEE trans. Wireless Communications, vol. 11, pp. 6–28, Dec 2004.

[2] Monroy, N., Perez, I., & Cure, J. R. (2001). Estudio de la variabilidad en el clima y la produccion

de rosas en la Sabana de Bogota. Revista de Ingeniería , 38-43.

[3] Méndez Chaves, Diego. “Desarrollo de una Plataforma para Prototipaje Flexible de

Aplicaciones WSN”. Bogotá, Colombia,2007.

*4+Silva M, Carlos Eduardo. “Simulación de protocolos de red eficientes en energía para redes

inalámbricas de sensores”. Bogota,Colombia. 2007.

[5]Cardona, J. (2008). Control de Topologías y Enrutamiento en Redes Inalámbricas de Sensores

(WSN) . Bogota, Colombia.

[6] Bock García, Santiago.Grado. “Implementación del sistema Operativo TinyOS sobre un Nodo de

una Red Inalámbrica de Sensores”. Bogotá, Colombia, 2007.

[7] “CC2430 Datasheet”, Texas Instruments Inc, 2008

[8] IEEE Std 802.15.4™, Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer

(PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs), 2003.

[9] http://nescc.sourceforge.net

[10] www.tinyos8051wg.net

[11] www.tinyos.net

[12] Beck, N., Johnson, Ion. “Shaping TinyOS to Deal with Evolving Device Architectures:

Experiences Porting TinyOS-2.0 to the Chipcon CC2430”, University of the West England, Bristol.

[13]http://retos.yonsei.ac.kr/wiki/index.php/RETOS_Homepage.

[14] Choi, Sukwon.,Hojung,Cha., & Cho, SungChil. A soC-based Sensor Node: Evaluation of

RETOS-enabled CC2430

[15+ “Z-StackUser’s Guide For CC2430ZDK”, Texas Instruments Inc, 2007

[16]802.15.4 MAC User’s Guide For CC2430, Texas Instruments Inc, 2006

[17] http://focus.ti.com/docs/toolsw/folders/print/remoti.html

[18] “SimpliciTI Sample Application User’s Guide”, Texas Instruments Inc, 2006.

[19]http://focus.ti.com/graphics/tool/simpliciti_picture_989.jpg (Texas Instruments ,2010)

Page 49: DESARROLLO DE UNA APLICACIÓN PARA LA …

49

[20] “SimpliciTI: Simple Modular RF Network Specification”, Texas Instruments Inc., 2007

[21]Seem, Charlotte. “Programming Output Power on CC243xDesign”, Note DN020, Texas

Instruments 2007.

[22]Zhu, Jin. “On the Power Efficiency and Optimal Transmission Range of Wireless Sensor

Nodes”. Electrical and Information Engineering Technology. University of Northern Iowa.

[23]Shurgers,Curt and Srivastava,ManiB. “Energy Efficient Routing in Wireless Sensor Networks”.

Networked & Embedded System Lab(NESL), Electrical Engineering Department University of

California at Los Angeles,CA.

[24]Minho Choi. Junhyung, Kim. Sooyeol, Yang. Namkoo, Ha and Kijun, Han. “Load Balancing for

Efficient Routing in Wireless Sensor Networks”. 8 International Muitsymposiums on Computer and

Computational Sciences, 2008.

[25] Badrinath , G.S. Gupta, Phalguni and Das, Sajal K. “Maximum Lifetime Tree Construction for

Wireless Sensor Networks”, Springer Berlin / Heidelberg, 2007.

[26] H. Yang, F. Ye and B. Sikdar. “A Dynamic Query-tree Energy Balancing Protocol for Sensor

Networks”. 2004 IEEE Wireless Communications and Networking Conference.

[27]Chen, Tzung-Shin. Hua-Wen, Tsai. Chih-Ping, Chu. “Gathering-Load-Balanced Tree Protocol for

Wireless Sensor Networks”. Proceedings of the IEEE International Conference on Sensor Networks,

Ubiquitous, and Trustworthy Computing (SUTC’06).

[28] Krishnamachar, Bhaskar. Estrin, Deborah and Stephen, Wicker,. “Modelling Data-Centric

Routing in Wireless Sensor Networks”. Department of Electrical Engineering – Systems. University

of Southern California. Los Angeles, California

*29+ “LM35 Precision Centigrade Temperature Sensors”, National Instruments, 2000.

*30+ “LM335 Precision Centigrade Temperature Sensors” National Instruments, 2008.

[31] "SHT1x Humidity and Temperature Sensor Data sheet", Sensirion Company

[32] "Hs-2000dd rh & temperature sensor Data sheet”.

[33+ “ChipCap, The fully calibrated Humidity and temperature Solution”, General Electric, 2008

[34] "HIH-4000-002 Data sheet", Honey Well

[35]http://rxtx.qbang.org/wiki/index.php/Main_Page (RXTX wiki, 2010)

[36+”HAL Drivers Application Programming Interface”. Texas Instruments, Inc.San Diego, California

USA, 2009.

Page 50: DESARROLLO DE UNA APLICACIÓN PARA LA …

50

[37]Aamodt, Kjetil. “Using the ADC to Measure Supply Voltage. Design Note DN101”. Texas

Instruments, 2007.

[38+Sundet, Torgei. “Design Note DN112, Using UART in CC111xFx, CC2431x, and CC251xFx”, Texas

Instruments Inc, 2008.

[39+Charlotte, Seem and Torjus, Kallerud. “Using CC2591 Front End with CC2430”, Application

Note AN063, 2008.