desarrollo de una aplicaciÓn para la …
TRANSCRIPT
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
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
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
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
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
6
Fig. 40 Temperatura medida por tres nodos .................................................................................... 44
Fig. 41 Humedad medida por tres nodos .......................................................................................... 44
7
Índice de Tablas
TABLA I. Especificaciones de los Nodos…………………………………………………………………………………..17
TABLA II. Especificaciones de los Sensores………………………………………………………………………………28
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.
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.
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.
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.
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
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
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
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.
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
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
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]
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]
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.
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.
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.
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 :
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
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
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.
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.
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].
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.
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
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.
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.
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
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.
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]
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
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.
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.
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.
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
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.
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.
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.
44
Fig. 39 Nodo sensor tomando datos.
Fig. 40 Temperatura medida por tres nodos
Fig. 41 Humedad medida por tres nodos
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.
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.
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.
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)
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.
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.