Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16695.pdf · 6 Parte I: INTRODUCCIÓN A...

113

Transcript of Índice general - 148.206.53.84148.206.53.84/tesiuami/UAMI16695.pdf · 6 Parte I: INTRODUCCIÓN A...

2

Índice general

ÍNDICE GENERAL.................................................................................................................................... 2

RESUMEN .................................................................................................................................................. 5

PARTE I: INTRODUCCIÓN A LAS REDES DE SENSORES CABLEADAS Y NO CABLEADAS. 6

I.1 Concepto de red ................................................................................................................................................ 6

1.2 Definición: redes de sensores........................................................................................................................... 7

1.3 Origen y evolución de las redes de sensores .................................................................................................... 8

I.2 REDES DE SENSORES CABLEADAS (ALAMBRADAS) ........................................................... 9

I.3 REDES DE INALÁMBRICAS DE SENSORES ............................................................................. 11

3.1 Aplicaciones de las redes de sensores inalámbricas ...................................................................................... 12

3.2 Características de las redes de sensores inalámbricas ................................................................................... 14

3.3 Ventajas del uso de redes de sensores inalámbricas ..................................................................................... 18

3.4 Desventajas del uso de las redes de sensores inalámbricas ........................................................................... 18

3.5 Arquitectura de red de sensores inalámbricos .............................................................................................. 18

3.6 Topologías ..................................................................................................................................................... 22

3.7 Sensores, características principales y su clasificación .................................................................................. 23

3.8 Encaminamiento ........................................................................................................................................... 32

3.9 Tecnología de sensores inalámbricos básicos ................................................................................................ 34

3.10 Sistemas Operativos para WSN .................................................................................................................... 39

3

3.11 Lenguajes de programación......................................................................................................................... 48

3.12 Estándares IEEE ........................................................................................................................................... 49

PARTE II: REDES DE SENSORES INALAMBRICAS CON DISPOSITIVOS WASPMOTES .... 51

II.1 INTRODUCCIÓN ............................................................................................................................ 51

II.2 DISPOSITIVO WASPMOTE ........................................................................................................ 52

II.3 HARDWARE.................................................................................................................................... 53

II.3.1 Especificaciones de los dispositivos Waspmote........................................................................................... 54

II.3.2 Diagrama de bloques .................................................................................................................................. 56

II.3.3 Interfaz I/O ................................................................................................................................................ 57

II.3.3.1 Terminales analógicas y digitales ............................................................................................................ 59

II.3.3.2 Modulación por ancho de pulso (PWM) .................................................................................................. 60

II.3.3.3 Comunicación serial (UART) .................................................................................................................... 61

II.3.3.4 Comunicación I2C .................................................................................................................................... 61

II.3.3.5 Comunicación SPI .................................................................................................................................... 62

II.3.3.6 Comunicación USB .................................................................................................................................. 62

II.3.3.7 Real Time Clock - RTC ............................................................................................................................... 62

II.3.3.8 Indicadores LED ....................................................................................................................................... 63

II.3.3.9 Interruptores (jumpers) ........................................................................................................................... 64

II.4 ARQUITECTURA Y SISTEMA ..................................................................................................... 65

II.4.1 Temporizadores o timers............................................................................................................................ 66

II.4.2 Watchdog ................................................................................................................................................... 67

II.4.3 Reloj de tiempo real o RTC ......................................................................................................................... 67

II.5 INTERRUPCIONES ....................................................................................................................... 68

4

II.6 SENSORES ...................................................................................................................................... 70

II.6.1 Detección de nivel crítico de la batería ....................................................................................................... 70

II.6.2 Acelerómetro ............................................................................................................................................. 72

II.6.3 Integración de nuevos sensores .................................................................................................................. 74

II.6.4 Placas de sensores ..................................................................................................................................... 76

II.6.5 Alimentación .............................................................................................................................................. 76

II.7 802.15.4/ZIGBEE.......................................................................................................................... 77

II.7.1 XBee-802.15.4 ............................................................................................................................................ 79

II.8 WASPMOTE GATEWAY .............................................................................................................. 80

II.9 RSSI ................................................................................................................................................................ 83

II.10 X-CTU ............................................................................................................................................. 86

II.11 FUENTES DE ALIMENTACIÓN ............................................................................................... 90

II.12 ENTORNO DE TRABAJO IDE .................................................................................................. 93

II.13 CONFIGURACIÓN DE LOS MÓDULOS XBEE ....................................................................... 95

II.14 PROCEDIMIENTO PARA CARGAR UN CÓDIGO ................................................................ 98

II.14.1 IDE- Waspmote ........................................................................................................................................ 98

CONCLUSIONES .................................................................................................................................................. 110

3.13 REFERENCIAS ............................................................................................................................................. 112

5

RESUMEN Las redes de sensores son un campo de estudio actualmente en auge y que evoluciona rápidamente debido al gran interés suscitado. Son un concepto nuevo dentro de la adquisición y tratamiento de datos. Está relacionado con el paradigma de los agentes inteligentes en busca del “entorno inteligente”, con muy diversas aplicaciones tales como automatización de las instalaciones industriales, comerciales, agrícolas, residenciales y de transporte.

Observando la tendencia seguida por las tecnologías de la información y de las comunicaciones, podemos constatar una constante evolución hacia dispositivos embebidos, cada vez más pequeños y de menor consumo, dotados con una potencia significativa de procesamiento, mayor capacidad de almacenamiento y facilidad para las comunicaciones.

De forma simultánea, la tecnología de sensores ha evolucionado siguiendo estas mismas tendencias. Ésta asimila características de los sistemas embebidos hasta el punto de proporcionar dispositivos que difícilmente pueden diferenciarse de los nodos computacionales, incorporando capacidades cognitivas y de comunicación con las que llegan a establecer verdaderas redes semánticas de información.

Con base en estos avances tecnológicos, las características de las redes han ido variando, pasando de estar compuestas por un número limitado de nodos conectados de forma cableada a un equipo central, a ser mecanismos distribuidos, más pequeños, baratos, de menor consumo energético, capaces tanto de procesar información localmente como de transferirla de forma inalámbrica.

6

Parte I: INTRODUCCIÓN A LAS REDES DE

SENSORES CABLEADAS Y NO CABLEADAS

Desde los años noventa, las redes han mejorado la forma en que personas pueden intercambiar información y coordinar procesos. Los sensores posibilitan la medición del entorno que nos rodea, capturando datos y enviándolos para su procesamiento.

Este documento se centrará en el uso de las redes de sensores para aplicaciones de monitorización del medio ambiente, considerando humedad, temperatura y luminosidad.

En el presente trabajo revisaremos las principales características de las redes de sensores, su arquitectura y profundizaremos en las aplicaciones relacionadas con el medio ambiente. Después de esta breve introducción, veremos la definición de las redes de sensores y las características de las redes de sensores alambradas y de las redes de sensores no alambradas (o inalámbricas).

I.1 Concepto de red

Una red de comunicaciones está formada por un conjunto de dispositivos, también llamados nodos, que se conectan a través de un medio de transmisión. Los nodos de una red pueden ser cualquier dispositivo que permita enviar o recibir información.

7

1.2 Definición: redes de sensores Las redes de sensores están conformadas por grupos de nodos con ciertas capacidades de detección (medición) y comunicación. Dichos nodos poseen la capacidad de reaccionar y coordinarse ante acontecimientos y fenómenos en un entorno específico. El entorno puede ser el mundo físico, un sistema biológico, o un sistema de información en el marco tecnológico. Las redes de sensores son vistas como una tecnología importante, la cual en los próximos años se podría desplegar en una gran cantidad de aplicaciones. Hay cuatro componentes básicos en una red de sensores:

1. Sensores. Se encargan de la detección de información en el medio y la convierten en señales eléctricas.

2. Nodos. Son los encargados de captar los datos del sensor y enviar la información a una estación base mediante el uso de dispositivos transceptores (transmisor/receptor).

3. Puerta de enlace (Gateway). Es un elemento muy importante

para la interconexión entre la red de sensores y una red de datos (TCP/IP). Su función es traducir la información del protocolo utilizado en una red al protocolo usado en la red de destino.

4. Estaciones base o destinos finales (nodos sink). Puede haber

uno o varios de estos elementos en una red de sensores. Su función es recolectar los datos para enviarlos a una computadora central o sistema embebido.

5. Red inalámbrica. Ésta se puede basar en algunos de los

siguientes estándares: Wi-Fi 802.11, Wi-Fi 802.11b, Bluetooth 802.15.1. Sin embargo, principalmente está basada en el estándar 802.15.4, también conocido como ZigBee.

8

1.3 Origen y evolución de las redes de sensores

La evolución de las redes de sensores en el ámbito tecnológico tiene su origen en el ámbito militar. La primera de estas redes fue desarrollada e implementada por los Estados Unidos durante la Guerra Fría, el nombre de esta red era SOSUS (Sound Surveillance System), fue utilizada para la detección de submarinos mediante el despliegue de sensores acústicos en el fondo del mar. Un tiempo más tarde se incorporó el sistema SURTASS (Surveillance Towed Array Sensor System) y finalmente ambos terminaron formando parte del IUSS (Integrated Undersea Surveillance System), integrándose en la red mundial de sensores de ese tipo. Las primeras redes de sensores para fines militares no satisfacían algunos requisitos de gran importancia para este tipo de redes, tales como la autonomía y el tamaño, lo cual motivó la evolución de las redes de sensores. 1.3.1 Evolución En la década de los años noventa, DARPA (Defense Advanced Research Projects Agency), lanzó un programa enfocado en las redes de sensores llamado SensIt (Sensor Information Technology). Con la implementación de esta red de sensores, se pretendía mejorar aspectos relacionados con la velocidad de adaptación en ambientes cambiantes, además de verificar que la recolección de datos por los sensores fuera fiable. Es a final de los años noventa cuando los sensores empiezan a tener una mayor relevancia en el ámbito civil, ya que disminuyen su tamaño e incrementan su autonomía. En este esfuerzo de comercialización vale la pena destacar el trabajo realizado por la compañía Moog Crossbow fundada en 1995. Éste es un

9

proveedor de bajo costo en tecnología de sensores inteligentes para programas militares y diversas operaciones. Comercializa sensores de tamaño reducido y de operación a base de pilas que les hacen tener una autonomía razonable. La evolución también ha cambiado la arquitectura y diseño de las redes de sensores. Inicialmente estaban formadas por un pequeño número de nodos conectados por cable a una estación central de procesamiento de datos. Hoy en día, las investigaciones se centran en redes de sensores distribuidas con cierto alcance y comunicadas inalámbricamente. Los sensores permiten estar mucho más cerca de un fenómeno físico de estado desconocido. Se requieren muchos sensores para evitar obstáculos físicos que obstruyan o corten la línea de comunicación. Muchas veces el medio a monitorizarse no posee una infraestructura, ni para el suministro de energía, ni para la comunicación, es por eso que estos nodos funcionan con pequeñas fuentes de energía y se comunican por medio de canales inalámbricos, dando lugar a las redes de sensores inalámbricas (Wireless Sensor Networks).

I.2 Redes de sensores cableadas (alambradas) Las redes de sensores cableadas o alambradas no son nuevas y sus funciones incluyen medir niveles de temperatura, líquido, humedad etc. Muchos sensores instalados ya sea en fábricas o automóviles, por ejemplo, tienen su propia red que se conecta con una computadora o una caja de controles a través de un cable y, al detectar una anomalía, envían un aviso a la caja de controles. La diferencia entre los sensores que todos conocemos y la nueva generación de redes de sensores sin cables (inalámbricas), es que estas últimas son capaces de poner en marcha una acción de acuerdo a la información que vayan registrando y no están limitadas por un cable fijo. La comunicación de las redes alambradas se realiza a través de cables de datos, generalmente en Ethernet o cables con hilos conductores (CAT5), los cuales conectan computadoras y otros dispositivos para formar redes.

10

Las redes alambradas son mejores cuando se necesita mover grandes cantidades de datos a altas velocidades. 2.1 Ventajas de una red cableada

Dentro de las ventajas al implantar redes de sensores alambradas se encuentran las siguientes:

• Los costos son relativamente bajos en comparación con los de las redes inalámbricas.

• Ofrecen el máximo rendimiento posible. • Brindan mayor velocidad debido a que utilizan cable de Ethernet

estándar (hasta 100 Mbps).

2.2 Desventajas de una red cableada

Entre las desventajas que presentan las redes alambradas están las siguientes:

• El costo de instalación es un problema muy común en este tipo de tecnología, el estudio previo a la instalación, las canaletas, conectores, cables y otros factores no mencionados, suman costos muy elevados en algunas ocasiones.

• El acceso físico es uno de los problemas más comunes dentro de las redes alambradas. Por ejemplo, para llegar a ciertos lugares dentro de una empresa, es muy complicado el paso de los cables a través de las paredes de concreto u otros obstáculos.

• Dificultad y expectativas de expansión es otro de los problemas más comunes, ya que cuando pensamos tener un numero definido de nodos en una oficina, la mayoría del tiempo hay necesidades de instalación de nuevos nodos y podría ya no haber espacio en los conmutadores instalados.

11

2.3 Velocidades de una red cableada

Existen diferentes estándares. Los más comunes son:

- GigaE es una ampliación del estándar Ethernet con una capacidad de transmisión de 1 gigabit por segundo

- 1000BASE-X con un estándar 802.3z - 10 Gigabit Ethernet, con una tasa de transferencia de 10,000

megabits/segundo (10 veces mayor a GigaE) - IEEE 802.3ba Este estándar da un paso más en las velocidades

de Ethernet, dando lugar a dos velocidades: 1.- 40 Gbps. 2.- 100 Gbps.

- 100 BaseX o Fast Ethernet permite velocidades de transferencia de 100 Mbits sobre cables de pares trenzados.

I.3 Redes de inalámbricas de sensores

Como se mencionó anteriormente, las redes alambradas de sensores ofrecen muchas ventajas, pero requieren de cables para interconectar dispositivos. Éstos conducen a altos costos de instalación y mantenimiento, además introducen posibles puntos de falla, por ejemplo, la alta tasa de fallos en los conectores. Por esta razón, las tecnologías inalámbricas han logrado un éxito enorme en la industria en los últimos años. Además, a nivel sensor ofrecen ventajas como la alta resolución, medición en muchos lugares al mismo tiempo, apoyo a la movilidad de equipos, añaden redundancia y se aprovecha la tecnología de sistemas Micro-Electro-Mecánicos MEMS (Micro-Electro-Mechanical Systems). Una red de sensores inalámbricos (WSN) es una red inalámbrica que consiste en dispositivos distribuidos en el espacio a cubrir utilizando sensores autónomos para monitorizar condiciones físicas o ambientales. Un sistema WSN incorpora un gateway que provee conectividad entre él y una red cableada. El protocolo inalámbrico que se seleccione depende en los requerimientos de la aplicación. Algunos de los estándares disponibles incluyen radios de 2.4 GHz basados en los estándares IEEE 802.15.4 o

12

IEEE 802.11 (Wi-Fi) o radios propietarios, los cuales son regularmente de 900 MHz [8]. Las redes de sensores inalámbricos son uno de los campos con más investigación, en la actualidad. La comunicación inalámbrica es un área de la electrónica de gran interés. Las redes inalámbricas ofrecen ventajas debido a su bajo costo de instalación, así como de mantenimiento. En cuanto a la infraestructura requerida, podemos darnos cuenta de que se reducen los costos por cableado así como los requerimientos de espacio, a diferencia de las redes cableadas. Otro factor importante es el bajo consumo de energía en los pequeños módulos inalámbricos y el alcance de cobertura de grandes espacios ya sea que estemos hablando de metros o hasta de kilómetros. Las redes de sensores inalámbricas por su flexibilidad en espacio y posible movilidad suponen más aplicaciones que las redes de sensores cableadas. Es por esto que nuestro proyecto se centra en las redes WSN. Hoy en día se utilizan las redes de sensores inalámbricas en algunas áreas como lo son la industria, la agricultura, la ciudad, los bosques etc. Podemos mencionar también la aplicación de redes de sensores en estructuras inteligentes y la automatización de las mismas. El uso de redes WSN no sólo es para hacer más cómoda la vida de las personas, sino también para crear entornos seguros y predecir siniestros o catástrofes naturales monitorizando el medio ambiente o condiciones de algún ecosistema en particular.

3.1 Aplicaciones de las redes de sensores inalámbricas

Las redes de sensores han sido utilizadas en una amplia gama de aplicaciones, tales como sistemas de detección de amenazas nucleares y radiación, sensores de armas para barcos, aplicaciones biomédicas, sensores de hábitat y monitorización sísmica. Investigaciones recientes se han centrado en redes de sensores biológicos y químicos para aplicaciones de seguridad nacional, pretendiéndose extender estos estudios para aplicaciones de consumo.

13

Actualmente existen aplicaciones para detección militar, seguridad física, control de tráfico aéreo, vigilancia del tráfico, vigilancia por video, automatización industrial y de manufactura, control de procesos, robótica distribuida, sensores meteorológicos, monitorización y vigilancia del medio ambiente, monitorización de fronteras y creación de estructuras de vigilancia. Algunas aplicaciones en diversos campos son las siguientes:

� Militares

• Monitorización de fuerzas enemigas • Orientación • Evaluación de daños en batalla • Detección de ataque químico, biológico y nuclear

� Medio ambiente

• Detección de incendios forestales • Agricultura de precisión • Detección de inundaciones • Monitorización del clima • Monitorización de humedad

� Salud

• Monitorización remota de datos fisiológicos • Seguimiento y monitorización de pacientes y médicos dentro

de un hospital • Administración de fármacos • Asistencia a ancianos

� Hogar • Domótica • Ambiente instrumentado • Lectura automática de medidores • Sensores de movimiento

14

� Comerciales

• Control ambiental de edificios industriales y de oficinas • Control de inventarios • Seguimiento y detección de vehículos • Vigilancia de flujo de tráfico

De esta manera, diversas ramas de la ciencia tales como química, física, acústica y procesamiento de imágenes pueden ser utilizadas para el estudio de ecosistemas, los cuales pueden incluir parámetros como la temperatura, luminosidad y humedad. Asimismo, las redes de sensores suelen apoyar la computación en red. Algunas redes de sensores utilizan los llamados nodos, mientras que otros utilizan arquitecturas de procesamiento jerárquicas. Los nodos son los responsables del procesamiento de los datos a nivel local, en donde se realizan cálculos básicos para posteriormente transmitir sólo un subconjunto o los datos parcialmente procesados. Por otro lado, en una arquitectura de procesamiento jerárquico, el proceso se lleva a cabo en niveles consecutivos, esto hasta que la información alcance un punto de toma de decisiones o administrativa. Estos dispositivos microsensores, pueden ser desplegados en la tierra, en el aire, bajo el agua, incluso en el interior o exterior del cuerpo humano, en vehículos, dentro de edificios, casas, e incluso en locales equipados con tecnología llamada Smart spaces [2].

3.2 Características de las redes de sensores inalámbricas

Para que las WSN sean totalmente confiables y seguras, se deben cumplir con ciertas características, principalmente deben ser capaces de superar una serie de retos y obstáculos. Existen desafíos y limitaciones en las redes de sensores que deben ser resueltos y tomados en cuenta, esto para obtener un óptimo funcionamiento de la red, algunas características para lograr este óptimo funcionamiento son las mencionadas en las secciones siguientes.

15

3.2.1 Restricciones de hardware.

Un sensor puede ser insertado en un módulo de un tamaño en el orden de centímetros. Éste está compuesto principalmente por tres unidades:

• Una unidad de potencia (baterías o celdas solares). • Una unidad de detección (sensores y convertidores analógico-

digitales). • Una unidad transceptora (conexión del nodo a la red).

Además, existen componentes opcionales los cuales incluyen un sistema para determinar la localización, un generador de energía, un control de actuador y otros elementos dependientes de la aplicación. 3.2.2 Consumo de energía

El tiempo de vida de un nodo sensor, depende mucho de la batería. En muchos casos, el nodo sensor inalámbrico tiene una fuente de poder limitado (1.2V, 500mAh), mientras que la carga de la batería podría ser limitada o imposible de ser cargada por completo. Comúnmente, los nodos sensores utilizan como fuente de poder dos pilas alcalinas “doble A” o bien una batería de Litio “Li-AA”. Así, con una fuente de poder como las mencionadas anteriormente, si un nodo sensor detecta un evento local, éste realizará el procesamiento de datos y los transmitirá en bruto o procesados y el consumo de energía será distribuido en tres dominios: Detección, comunicación y procesamiento de datos. En el área de comunicaciones, en una red multisalto, un nodo puede desempeñar una doble función de recopilación de datos, procesamiento y retransmisión de los mismos, pero esto requerirá de un consumo de energía adicional. 3.2.3 Costo de un nodo

Como se había mencionado antes, una red de sensores se compone de un amplio conjunto de nodos de sensores. Por ello se toma en cuenta el costo

16

de un nodo de manera individual, así como también el costo por mayoreo, buscando mantener costos bajos y buena calidad. 3.2.4 Medio ambiente

Se espera que las redes de sensores se desplieguen en un medio ambiente abierto, con nodos dispersados de manera geográfica en puntos estratégicos. En estos entornos muy difícilmente un ser humano puede estar tomando medidas, ya sea por niveles tóxicos altos o altas temperaturas.

3.2.5 Canales de transmisión

Las redes de sensores operan en un ancho de banda y rendimiento limitados, así como con un medio de comunicación inalámbrico multisalto. En estos enlaces de comunicación inalámbrica operan algunos equipos con tecnologías infrarroja óptica. Algunos dispositivos de baja potencia utilizan un canal único de radio frecuencia funcionando cerca de los 916MHz, otros sistemas utilizan un sensor compatible con un receptor Bluetooth a 2.4GHz, y otros más utilizan tecnología IEEE 802.11b a 2.4 GHz (como el dispositivo de la figura 1), también pueden utilizar 802.11a a 5.0 GHz o tal vez la banda 802.15.4, como el mostrado en la figura 2 para uso internacional.

Figura 1. Sensor de temperatura con tecnología 802.11b

Figura

3.2.6 Densidad y conectividad de

La implementación y gestión dlimitado requiere técnicas especialesobtiene al desplegar en un campo cproximidad, su densidad puede ser tan altapor metro cúbico.

17

Sensor de temperatura con tecnología 802.11b

Figura 2. Sensor con tecnología 802.15

y conectividad de red

mplementación y gestión de un gran número de nodos en un ambiente requiere técnicas especiales. Un ejemplo de este tipo de redes se

obtiene al desplegar en un campo cientos de miles de sensores de u densidad puede ser tan alta como alrededor de 27 nodos

Sensor de temperatura con tecnología 802.11b

dos en un ambiente Un ejemplo de este tipo de redes se

ientos de miles de sensores de rededor de 27 nodos

18

3.3 Ventajas del uso de redes de sensores inalámbricas Las ventajas debido a la ausencia de cables puede ser conveniente para explotar las redes de sensores en varios campos, y muchos esfuerzos se han hecho en este sentido. Como ejemplos de algunas ventajas de las redes de sensores no cableadas, podemos mencionar las siguientes:

• Tiempo de vida • Cobertura • Costos y facilidad de instalación • Tiempo de respuesta • Bajo consumo de potencia • Precisión y frecuencia de las mediciones • Seguridad (campo en desarrollo)

3.4 Desventajas del uso de las redes de sensores inalámbricas

Las redes de sensores inalámbricas presentan restricciones, por mencionar algunas tenemos:

• Energía • Capacidad de cómputo • Memoria • Las redes desatendidas (sin intervención humana) pueden

presentar una alta probabilidad de fallo, lo cual se desea aminorar con la monitorización de éstas

.

3.5 Arquitectura de red de sensores inalámbricos En una clasificación preliminar de la arquitectura de redes inalámbricas de sensores se pueden distinguir dos tipos de redes: a) de infraestructura, y b) las llamadas ad-hoc (ver figura 3).

19

Figura 3. a) Infraestructura y b) arquitectura ad-hoc de WSN.

3.5.1 Infraestructura

Las redes inalámbricas extienden, habitualmente, en lugar de reemplazar las redes cableadas, y se conocen con el nombre de redes con infraestructura. Una jerarquía de área amplia y área local cableada de redes, se utiliza como una red troncal. El cable troncal se conecta a nodos conmutadores especiales llamados Estaciones Base. Dentro de las redes con infraestructura, la tecnología inalámbrica da acceso desde y hacia el nodo, produciéndose un enlace entre las estaciones base y los nodos, compartiendo el ancho de banda y el canal inalámbrico.

3.5.2 Ad-hoc

Las redes ad-hoc, son redes inalámbricas multisalto, en las que un conjunto de nodos cooperan para mantener la conectividad de la red. Esta arquitectura de red bajo demanda está completamente libre de cables. Se caracterizan por su topología dinámica e impredecible que se desarrolla al azar y no posee el soporte de una infraestructura. Los nodos móviles

20

cambian periódicamente de topología, esta información se utiliza para actualizar el encaminamiento. Refiriéndose a la pila de protocolos, el tradicional modelo ISO/OSI se modifica como se muestra en la figura 4. La principal diferencia es la presencia de bloques "verticales" cuya finalidad es la gestión de unidades de energía, la localización y la sincronización.

Figura 4. Pila de protocolos, del tradicional modelo ISO/OSI, modificado.

La capa física es responsable de la selección de frecuencias, la modulación y la codificación de datos. Se sabe que las comunicaciones de larga distancia no son eficientes en términos de consumo de energía y de la complejidad de su implementación, esto sugiere la adopción de transceptores de corto alcance. La mayoría de las soluciones comerciales disponibles usa técnicas de dispersión del espectro, y las tasas de datos que ofrecen, están en el orden de 0.1 a 1Mbps. La banda ocupada es la ISM (Industrial, Scientific and Medical). El consumo de energía es del orden de 10 mW para la transmisión / recepción, y se reduce a menos de 1 mW en modo de espera. La capa de enlace de datos es responsable de la multicanalización de flujos de datos, los datos de detección de tramas, control de acceso al medio (MAC), y el control de errores.

21

Desde la MAC se controla enlace logrado hasta el alcance de transmisión, el cual tiene un gran impacto en el consumo total de energía, y por lo tanto, en el tiempo de vida de un nodo. El espacio libre es un medio compartido y debe ser asignado a bastantes nodos, la MAC decide cuándo los nodos en competencia pueden tener acceso al canal de radio y trata de garantizar que no existan interferencias con las transmisiones de otros nodos. Existen dos enfoques principales de acceso al medio: los de contención por el canal y los que se basan en la asignación de canal. El primer enfoque permite dejar el trato de las colisiones a los nodos, para contender por el recurso. En el segundo enfoque, la asignación de canal regula los accesos, por lo general hay un nodo en particular que difunde la información de cuándo y por cuánto tiempo cada nodo controlado puede tener acceso al medio compartido. Los protocolos basados en la asignación de canal son los más eficientes, a costa de la reducción de flexibilidad. Por el contrario, los basados en disputa tienden al colapso cuando la carga se aproxima a la capacidad del canal y derrochan energía en reposo, (cuando el nodo está sin uso, sólo escuchando). Una clasificación general se puede hacer de acuerdo a:

• El número de canales de RF utilizados • El grado de organización de los nodos • La forma en que un nodo es notificado de un paquete entrante

En la capa de red, los datos de ruteo son facilitados por las capas superiores, desde la fuente hasta el destino. De una manera más formal, las fuentes son las entidades que proporcionan datos y mediciones, mientras que los destinos son los nodos en los que es necesaria la información (destinos finales o nodos sink). En la arquitectura de un solo salto, la información va desde las fuentes a los destinos que están directamente comunicados entre sí por un enlace de radio. Mientras que en la arquitectura multisalto de los nodos pueden recibir y reenviar información que no está destinada a ellos en particular, sino que va dirigida a otro nodo de la red, hasta alcanzar el destino final.

22

3.6 Topologías Por otro lado, los nodos de una WSN están típicamente organizados en uno de tres tipos de topologías de red. Topología de estrella, topología de árbol, y las redes tipo malla tal y como se muestra en la figura 5.

Figura 5. Topologías de red WSN comunes

3.6.1 Topología estrella

El uso de la topología estrella depende de la cantidad y la frecuencia de los datos que se transmitirán, la distancia de transmisión, los requisitos de la vida para la batería, la movilidad y el nivel de carga en el nodo central. Una topología en estrella es un sistema de un solo salto en el que un nodo en particular, el Gateway, llama y gestiona las comunicaciones de todos los demás nodos, y éstos se comunican sólo con él. Es una especie de estructura maestro-esclavo, donde el coordinador actúa también como un puente hacia otras redes. Es una solución eficiente desde el punto de vista del aprovechamiento de la energía, que asegura una larga vida a la red, incluso si se cae un nodo. Estas topologías sólo pueden manejar un pequeño número de nodos en un área pequeña.

23

3.6.2 Topología árbol

La topología de árbol, aprovecha la baja potencia y simplicidad de la topología estrella, así como el mayor alcance y la naturaleza de auto-reparación de una red tipo malla. Los nodos se organizan en una topología estrella alrededor de enrutadores o repetidores que a su vez, se organizan en una red tipo malla. Sin embargo, la latencia puede ser un problema.

.

3.6.3 Topología malla

La topología de malla se utiliza en sistemas multisalto en los que todos los nodos son idénticos y pueden comunicarse entre sí. Aquí el nodo coordinador o la estación base no son estrictamente necesarios. El sistema de malla multisalto permite un alcance de operación más grande que una topología estrella, pero con mayor consumo de energía y mayor latencia. De hecho, los nodos tienen un pesado ciclo de trabajo ya que la necesidad de "escuchar" los mensajes, los cambios en la red y la latencia se relaciona con el número de "saltos" entre las fuentes y los destinos

3.7 Sensores, características principales y su clasificación

Los datos de entrada y de realimentación de los sistemas de control se introducen mediante unos dispositivos electrónicos, llamados sensores. Su función principal es traducir la información que les llega del exterior en un impulso eléctrico, normalmente digital, éste puede ser analizado y procesado por la unidad de control del sistema. En la figura 6 se muestra el diagrama a bloques de un sistema con un sensor inteligente.

24

Figura 6. Sistema con un sensor inteligente

En la figura 7 se muestra un diagrama a bloques de un típico sensor inteligente más a fondo

Figura 7. Diagrama a bloques de un sensor en general

El consumo de energía de estos dispositivos inteligentes es una cuestión muy importante que debe ser tomada en cuenta en el diseño de cualquier sensor. En la mayoría de los casos, los circuitos y antenas de comunicación son los principales elementos que consumen energía.

25

3.7.1 Características de los sensores inteligentes

Una clasificación muy general de los sensores puede ser la siguiente:

Figura 8. Clasificación de los principales sensores activos y pasivos.

En este trabajo, nos enfocaremos más en el segundo nivel de integración, en el cual se incluyen los sensores inteligentes. En nuestro caso de estudio esto corresponde a los sensores Waspmotes [2]. 3.7.2 Sensores inteligentes

No existe un consenso generalizado en relación con la definición de sensor inteligente. En numerosas ocasiones, la salida del circuito acondicionador debe ser modificada para llevar a cabo una o más de las siguientes tareas:

a) Corregir no linealidades. b) Verificar el correcto funcionamiento del elemento sensor y del circuito

acondicionador asociado. c) Transmitir la información a distancia.

26

Para ello, es de gran utilidad añadir al sistema sensor de la figura 9 un procesador electrónico que ejecuta un algoritmo de corrección o diagnóstico, o verifica el funcionamiento, o se comunica con otros procesadores. Cuando dicho conjunto se realiza en un solo circuito integrado monolítico o híbrido, se tiene un sensor con capacidad de procesamiento de información al que se suele denominar "Sensor Inteligente" (Smart Sensor).

Figura 9. Diagrama a bloques de un sensor inteligente

Por ello, aunque no existe un consenso general en la definición de sensor inteligente, se admite que un sensor inteligente tiene capacidad para realizar la mayoría de las siguientes funciones:

• Cálculos numéricos. • Comunicación en red (no una simple conexión punto a punto). • Auto-calibración y auto-diagnóstico. • Múltiples medidas con identificación del sensor.

3.7.3 Clasificación de los sensores según la variable física medida

Como se mencionó anteriormente, existen diferentes tipos dcontinuación mostramos una clasificación según la variable física que se desea medir o detectar. De acuerdo a la clasificación de los sensores según el tipo de variable física medida tenemos sensores de presión, de temperatura, de humedad, de fuerza, de aceleración, de velocidad, de caudal, de presencia o posde objetos, de nivel de sóde químicos, entre muchos otros más.algunos de éstos.

� Sensores de contacto Empleados para la detección del final de un recorrido o para la posición límite de componentes mecánicos. Por ejemplo: puerta o ventana que se abracciona para detener el motor.

� Sensores ópticos Estos sensores se basan en el aprovechamiento de la interacción entre la luz y la materia para deteUna mejora de los dispositivos sensores, comprende la utilización de la fibra óptica como elemento de

27

Clasificación de los sensores según la variable física medida

anteriormente, existen diferentes tipos de sensores, a continuación mostramos una clasificación según la variable física que se

icación de los sensores según el tipo de variable física medida tenemos sensores de presión, de temperatura, de humedad, de fuerza, de aceleración, de velocidad, de caudal, de presencia o posde objetos, de nivel de sólidos o líquidos, de desplazamiento de objetos, de químicos, entre muchos otros más. A continuación se describen

Sensores de contacto

Empleados para la detección del final de un recorrido o para la posición límite de componentes mecánicos. Por ejemplo:

o ventana que se abre automáticamente, el sensor se acciona para detener el motor.

Figura 10. Sensor de contacto.

Sensores ópticos

Estos sensores se basan en el aprovechamiento de la interacción entre la luz y la materia para determinar las propiedades de éUna mejora de los dispositivos sensores, comprende la utilización

fibra óptica como elemento de transmisión de la luz.

Clasificación de los sensores según la variable física medida

e sensores, a continuación mostramos una clasificación según la variable física que se

icación de los sensores según el tipo de variable física medida tenemos sensores de presión, de temperatura, de humedad, de fuerza, de aceleración, de velocidad, de caudal, de presencia o posición

to de objetos, A continuación se describen

Empleados para la detección del final de un recorrido o para la posición límite de componentes mecánicos. Por ejemplo: Para una

automáticamente, el sensor se

Estos sensores se basan en el aprovechamiento de la interacción propiedades de ésta.

Una mejora de los dispositivos sensores, comprende la utilización transmisión de la luz.

Figura 11. Diagrama a bloques de un sistema

� Sensores térmicos Los sensores térmicos o de temperatura son dispositivos que utilizan un transductortemperatura en cambios de señales procesados por un equipo eléctrico o electrónico.

Existen tres tipos de sensores

• Termistores.comportamiento de que ésta varía en función de la temperatura. Existen dos tipos de termistores el tipo NTC y el tipo PTC. En los NTC al aumentar la temperatque en los PTC al aumentar la temperatura, aumenta la resistencia.

• RTD. RTD (de temperatura que se basa en la variación de la resistencia de un conductor con la empleados como RTD, algunos importantes son platino, cobre, níquel y molibdeno.

• Los termopares.

están formados por dos metales. Emedida cuyo principio de funcionamiento estermoeléctrico

1 Transductor.- (De trans- y el lat. ductor

como la presión, la temperatura, la dilatación, la humedad , 2Efecto termoeléctrico.- Es la conversión directa de la diferencia de temperatura a

28

. Diagrama a bloques de un sistema óptico.

Sensores térmicos

Los sensores térmicos o de temperatura son dispositivos que utilizan un transductor1 que transforma los cambios de temperatura en cambios de señales eléctricas, éprocesados por un equipo eléctrico o electrónico.

Existen tres tipos de sensores de temperatura:

Termistores. Principalmente basados en el comportamiento de resistencia de los semiconductores, ya

varía en función de la temperatura. Existen dos tipos de termistores el tipo NTC y el tipo PTC. En los NTC al aumentar la temperatura, disminuye la resistencia, mientras que en los PTC al aumentar la temperatura, aumenta la resistencia.

RTD (Resistence temperature detector) es un sensor de temperatura que se basa en la variación de la resistencia de un conductor con la temperatura. Existen metales empleados como RTD, algunos importantes son platino, cobre, níquel y molibdeno.

Los termopares. Llamados también termocoplestán formados por dos metales. Es un instrumento de

cuyo principio de funcionamiento estermoeléctrico2.

ductor, -oris, que lleva). Dispositivo que transforma el efecto de una causa física,

como la presión, la temperatura, la dilatación, la humedad , etc.., en otro tipo de señal, normalmente eléctrica.

s la conversión directa de la diferencia de temperatura a voltaje eléctrico y viceversa.

Los sensores térmicos o de temperatura son dispositivos que los cambios de

eléctricas, éstos son

sados en el de los semiconductores, ya

varía en función de la temperatura. Existen dos tipos de termistores el tipo NTC y el tipo PTC. En los NTC al

ura, disminuye la resistencia, mientras que en los PTC al aumentar la temperatura, aumenta la

) es un sensor de temperatura que se basa en la variación de la resistencia

temperatura. Existen metales empleados como RTD, algunos importantes son platino,

Llamados también termocople ya que s un instrumento de

cuyo principio de funcionamiento es el efecto

, que lleva). Dispositivo que transforma el efecto de una causa física,

etc.., en otro tipo de señal, normalmente eléctrica.

eléctrico y viceversa.

29

Figura 12. Sensor de Temperatura

De este modo, el sensor de temperatura suele estar formado por el elemento sensor, de cualquiera de los tipos anteriores, la carcasa que lo envuelve y la cual está rellena de un material muy conductor, esto para que los cambios se transmitan de manera rápida al elemento sensor y al cable que se conectará al equipo electrónico.

� Sensores de humedad

Estos sensores están basados en el hecho de que el agua no es un material aislante como el aire, ya que si posee electrolitos en disolución, tiene una significativa conductividad eléctrica. Existen varios tipos de sensores de humedad, los cuales se clasifican de acuerdo al principio físico que siguen para la realización de la misma. Tipos de sensores de humedad: mecánicos, los basados en sales higroscópicas, por conductividad, capacitivos, infrarrojos y resistivos. Mecánicos: aprovechan los cambios de dimensiones que sufren ciertos tipos de materiales en presencia de la humedad. Como por ejemplo: fibras orgánicas o sintéticas, el cabello humano.

Basados en sales higroscópicas: deducen el valor de la humedad en el ambiente a partir de una molécula cristalina que tiene mucha afinidad con la ab Por conductividad: una corriente. Yasegún la medida de corriente se deduce el valor de la humedad. Capacitivos: se basan sencillamecapacitancia eléctricahumedad. Infrarrojos: éstos disponen de 2 fuentes infrarrojas que lo que hacen es absorber parte de la radiación que contiene el vapor de agua. Resistivos: aplican un principiodecir, cuanta más cantidad de agua hay en la muestra, más alta es la conductividad de la tierra.

Figura 13

� Sensores magnéticos Este tipo de sensprovocan los imanes o las corrientes eléctricas. El principal es el llamado interruptor Reed; consiste en un par de de materiales ferromagnéticos

30

Basados en sales higroscópicas: deducen el valor de la humedad en el ambiente a partir de una molécula cristalina que tiene mucha afinidad con la absorción de agua.

Por conductividad: A través de unas rejillas de oro se hace una corriente. Ya que el agua es buena conductora de corrienteegún la medida de corriente se deduce el valor de la humedad.

Capacitivos: se basan sencillamente en el cambio de la eléctrica que sufre un condensador en presencia de

stos disponen de 2 fuentes infrarrojas que lo que hacen es absorber parte de la radiación que contiene el vapor de

Resistivos: aplican un principio de conductividad de la tierra. Es decir, cuanta más cantidad de agua hay en la muestra, más alta es la conductividad de la tierra.

Figura 13. Sensores de humedad

Sensores magnéticos

Este tipo de sensores detecta los campos magnéticos que provocan los imanes o las corrientes eléctricas. El principal es el llamado interruptor Reed; consiste en un par de láminasde materiales ferromagnéticos metidos en el interior de una

Basados en sales higroscópicas: deducen el valor de la humedad en el ambiente a partir de una molécula cristalina que tiene mucha

se hace circular que el agua es buena conductora de corriente,

egún la medida de corriente se deduce el valor de la humedad.

cambio de la que sufre un condensador en presencia de

stos disponen de 2 fuentes infrarrojas que lo que hacen es absorber parte de la radiación que contiene el vapor de

de conductividad de la tierra. Es decir, cuanta más cantidad de agua hay en la muestra, más alta

es detecta los campos magnéticos que provocan los imanes o las corrientes eléctricas. El principal es el

láminas metálicas metidos en el interior de una

cápsula que se atraen en cerrando el circuito.

Figura 14

El interruptor Reed no necesita ser empujado físicamente por algún elemento sino que puede detectar la proximidad sin contacto directo. Esto es muy útil cuando interesa contacto físico, por ejemplo para detectar el nivel de agua de un depósito sin riesgo de cortocircuitos.

� Sensores de infrarrojo

Es un dispositivo electrónicoelectromagnética infrarrojaTodos los cuerposresulta invisible para nuestroselectrónicos, ya que se encuentran edebajo de la luz visible

Figura 15. Sensor de infrarrojo

El símbolo de los diodos de infrarrojos semejantes al de los componentes que representan la luz que reciben15). Recordemos que las flechas salen del elemento cuando éste emite luz o radiación infrarroja y entran en radiación.

31

psula que se atraen en presencia de un campo magnético, cerrando el circuito.

Figura 14. Sensor magnético

El interruptor Reed no necesita ser empujado físicamente por

elemento sino que puede detectar la proximidad sin contacto directo. Esto es muy útil cuando interesa contacto físico, por ejemplo para detectar el nivel de agua de un depósito sin riesgo de cortocircuitos.

Sensores de infrarrojo

vo electrónico capaz de medir lainfrarroja de los cuerpos en su campo de visión

Todos los cuerpos reflejan una cierta cantidad de radiaciónresulta invisible para nuestros ojos pero no para estos aparatos electrónicos, ya que se encuentran en el rango del espectro justo por

luz visible.

. Sensor de infrarrojo y su símbolo (fototransistor

diodos de infrarrojos y el de los fototransistores componentes normales; pero se añaden las flechas

que representan la luz que reciben (como se puede apreciar en la figura . Recordemos que las flechas salen del elemento cuando éste emite luz

y entran en él cuándo el elemento recibe dicha

presencia de un campo magnético,

El interruptor Reed no necesita ser empujado físicamente por elemento sino que puede detectar la proximidad sin

contacto directo. Esto es muy útil cuando interesa evitar el contacto físico, por ejemplo para detectar el nivel de agua de un

capaz de medir la radiación campo de visión.

radiación, ésta pero no para estos aparatos

n el rango del espectro justo por

fototransistor)

los fototransistores son añaden las flechas

o se puede apreciar en la figura . Recordemos que las flechas salen del elemento cuando éste emite luz

el elemento recibe dicha

32

3.8 Encaminamiento

Los nodos no tienen conocimiento de la topología de la red, deben descubrirla. La idea básica para descubrir la topología de la red es que un nuevo nodo, al aparecer en una red, anuncia su presencia y escucha los anuncios difundidos de sus vecinos. El nodo se informa acerca de los nuevos nodos a su alcance y de la manera de encaminar mensajes a través de ellos. A su vez, puede anunciar al resto de nodos que pueden ser accedidos desde él. Transcurrido un tiempo, cada nodo sabrá qué nodos tiene alrededor y una o más formas de alcanzarlos.

Los algoritmos de enrutamiento en redes de sensores inalámbricas tienen que cumplir los siguientes requerimientos:

• Mantener una tabla de enrutamiento razonablemente pequeña. • Elegir la mejor ruta para un destino dado (ya sea la más rápida, más

confiable, de mayor capacidad o la de menor costo). • Mantener la tabla regularmente para actualizar la salida de nodos, su

cambio de posición o su aparición. • Requerir una pequeña cantidad de mensajes y tiempo para

converger.

3.8.1 Modelos de encaminamiento

Existen varios tipos de protocolos de encaminamiento:

� Protocolo de Difusión directa (modelo de un salto)

Éste es el modelo más simple y representa la comunicación directa. Todos los nodos en la red transmiten a la estación base. Es un modelo caro en términos de consumo energético, así como inviable porque los nodos

33

tienen un rango de transmisión limitado. Sus transmisiones no pueden siempre alcanzar la estación base ya que tienen una distancia máxima de transmisión, por ello la comunicación directa no es una buena solución para las redes inalámbricas.

� Modelo multisalto (multihops)

En este modelo, un nodo transmite a la estación base reenviando sus datos a uno de sus vecinos, el cual está más próximo a la estación base, a la vez que éste enviará a otro nodo más próximo hasta que llegue al nodo base. Entonces la información viaja de la fuente al destino salto a salto desde un nodo a otro hasta que llega al destino. En vista de las limitaciones de los sensores, es una aproximación viable. Un gran número de protocolos utilizan este modelo.

� Modelo esquemático basado en grupos o cúmulos (clusters)

Algunos protocolos usan técnicas de optimización para mejorar la eficiencia del modelo anterior. Una de ellas es la agregación de datos usada en todos los protocolos de encaminamiento basados en grupos. Una aproximación esquemática rompe la red en capas de grupos. Los nodos se agruparán en grupos con una cabeza, la responsable de encaminar desde ese grupo a las cabezas de otros grupos o la estación base. Los datos viajan desde un grupo de capa inferior a uno de capa superior. Teóricamente, la latencia en este modelo es mucho menor que en la de multisalto. El crear grupos provee una capacidad inherente de optimización en las cabezas de grupo. Por tanto, este modelo será mejor que los anteriores para redes con gran cantidad de nodos en un espacio amplio (del orden de miles de sensores y cientos de metros de distancia).

� Protocolos centrados en el dato (datacentric)

Si tenemos un número enorme de sensores, es difícil identificar de qué sensor queremos obtener un dato. Un enfoque de solución es que todos los sensores envíen los datos que tengan. Esto causa un gran despilfarro de energía. En este tipo de protocolo, se solicita el dato de una zona y se espera a que se le remita. Los nodos de la zona negocian entre ellos la

34

información más válida, por ejemplo el valor promedio de las lecturas o el valor mayor o menor. Sólo éste es enviado, con el consecuente ahorro de energía.

� Protocolo basado en localización

Se explota la posición de los sensores para encaminar los datos en la red.

3.9 Tecnología de sensores inalámbricos básicos

Nos centramos en la propia tecnología de nodos de sensores, incluyendo una taxonomía que clasifica los dispositivos en familias, tales como sensores de gran tamaño (por ejemplo, sensores de radar), microsensores (sensores diminutos), nano sensores, sensores de etiquetas de lectura y otros. Como ya se ha señalado, las redes inalámbricas de sensores se caracterizan por el hecho de que operan en entornos con recursos limitados, a su vez, este hecho impone pautas de diseño y limitaciones estrictas sobre la WSN. Para este fin, nos dirigimos a la funcionalidad y los componentes del sensor, incluyendo la unidad de detección y accionamiento, unidad de procesamiento, unidad de comunicación, unidad de potencia, y otras unidades dependientes de una aplicación. En segundo lugar, consideramos fundamental la creación de redes y las cuestiones topológicas. Sobre la base de la introducción incluida en ella, Por último, nos fijamos en algunas de las tendencias actuales de la investigación en la tecnología de sensores.

Los términos nodo sensor, nodo inalámbrico (WN del inglés wireless node), Smart Dust, Mote y COTS (commercial off-the-shelf) mote son empleados como sinónimos en la industria; los términos más generales utilizados aquí son nodo sensor y WN.

35

Figura 16. Tecnología en sensores a través del tiempo

3.9.1 Tecnología en nodos sensores

Los nodos sensores tienen capacidad de comunicación inalámbrica y un poco de lógica para el procesamiento de señales, la gestión de topología (siempre y cuando sea aplicable), y la manipulación de transmisión (incluida la codificación digital) y posiblemente cifrado o reenvío para corrección de errores. La figura 14 muestra la evolución de la tecnología de sensores en los últimos años. Las WSN que combinan la detección física de parámetros como la temperatura, la luz o eventos sísmicos con capacidades de computación se esperan convertirse en omnipresentes en el futuro.

El éxito del desarrollo de sensores miniaturizados robustos de bajo costo y equipos de detección (como los espectrómetros de masa y cromatógrafos) será de gran beneficio. El diseño de estos sistemas está siendo alentado por los organismos de investigación de Estados Unidos (por ejemplo, la National Science Fundation). Algunas aplicaciones de sensores también son compatibles con las compras de dinero electrónico en las ubicaciones de punto de venta, tales como las máquinas de refrescos, quioscos, gasolineras, y las cajas registradoras.

A nivel de diseño, una WSN se encuentra en la confluencia de la investigación en disciplinas tales como el procesamiento de base de datos de consulta, creación de redes, algoritmos y sistemas distribuidos. La funcionalidad básica de un WN generalmente depende de la aplicación, pero los siguientes requisitos son típicos:

36

1. Determinar el valor de un parámetro en un lugar determinado. Por ejemplo, en un entorno, uno podría necesitar saber la temperatura, la presión atmosférica, la cantidad de luz del sol, y la humedad relativa. Este ejemplo muestra que un WN dado puede estar conectado a diferentes tipos de sensores, cada uno con una frecuencia de muestreo diferente e intervalo de valores permitidos.

2. Detectar la presencia de eventos de interés y estimar los parámetros de los acontecimientos. Por ejemplo, en una WSN orientada a la monitorización de tráfico, se podría requerir detectar un flujo vehicular en un crucero estimando su velocidad y la dirección.

3. Clasificar un objeto que ha sido detectado. Por ejemplo, en la WSN mencionada anteriormente ¿el vehículo en cuestión es una camioneta o un autobús?

4. Seguimiento de un objeto. Por ejemplo, en una WSN militar, el seguimiento de un tanque enemigo, ya que se mueve a través de la zona geográfica cubierta por la red.

Naturalmente, los datos recogidos deben ser transmitidos a la apropiada entidad de consumo de datos de una manera oportuna. En muchos casos, hay requisitos de tiempo real o casi en tiempo real, por ejemplo, la detección de un intruso debe ser comunicada a la policía en el tiempo real, de modo que la acción correspondiente se pueda tomar con prontitud.

Los sensores son dispositivos activos o pasivos. Los sensores pasivos en forma de un solo elemento incluyen, entre otros, la interpretación sísmica, acústica, cepa, humedad y dispositivos de medición de temperatura. Los sensores pasivos en forma de matriz incluyen variables ópticas (luz visible, infrarrojo 1 mm, infrarrojos 10 mm) y dispositivos de medición bioquímica. Las matrices son grupos geométricamente regulares de WN (por ejemplo, un arreglo de red topográfico). Los sensores pasivos suelen ser dispositivos de bajo consumo. Los sensores activos incluyen el radar y el sonar, los cuales tienden a ser sistemas de alta energía.

El método de detección incluye, pero no se limita a, principios basados en una propiedad mecánica, química, térmica, eléctrica, cromatográfica, magnética, biológica, fluídica, óptica, ultrasónica, y detección de masas.

37

Las WN pueden estar expuestos a entornos hostiles; el entorno puede incluir altas temperaturas, niveles altos de vibración o ruido, o productos químicos corrosivos. Los WN se pueden incorporar en sistemas robóticos móviles y podrían ser parte integral de los sistemas de fabricación.

Los sensores embebidos se refieren a la incorporación sinérgica de microsensores en las estructuras o ambientes. Los sensores embebidos permiten la detección espacial y temporalmente densa de control del sistema bajo consideración (por ejemplo, un entorno, un edificio y un campo de batalla). En sistemas biológicos, los sensores en sí mismos no deben afectar al sistema u organismo adversamente. La tecnología para la detección y control incluye sensores de campo eléctrico y magnético, sensores de frecuencia de ondas de radio; sensores ópticos, sensores electro-ópticos y de infrarrojos, radares, rayos láser, sensores de ubicación y navegación, sensores sísmicos y de onda de presión, sensores de parámetros ambientales (por ejemplo, viento, humedad y calor) y sensores bioquímicos orientados a la seguridad nacional. Parámetros del sensor típicos incluyen:

- La medición física. Algunos ejemplos incluyen magnetómetros de dos ejes, la luz y la intensidad de la radiación ultravioleta (foto resistor), los niveles de radiación, la radio y microondas; humedad, temperatura (termistor), la presión atmosférica, la niebla y el polvo; sonido y la acústica; acelerómetros de dos ejes, onda de choque, sísmica, físicas la presión y el movimiento, vídeo e imagen (visible o infrarroja), y la ubicación (GPS) y mediciones de locomoción.

- Mediciones químicas y biológicas. Los ejemplos incluyen la presencia o concentración de una sustancia o agente a niveles de concentración especificados (hay no menos de 50 agentes biológicos de interés).

- Detección de eventos. Ejemplos incluyen la determinación de la ocurrencia de eventos humanos o naturales y de eventos informáticos.

38

Se necesitan pequeños sensores de bajo costo, robustos, confiables y sensibles, para la implementación de redes sensoriales prácticas y económicas.

Aunque un gran número de valores de medida son de interés para aplicaciones WSN, existen sensores disponibles comercialmente para muchos de estos valores de medida. Una excepción destacable es que una amplia gama de sensores químicos apropiados aún no se encuentra ampliamente disponible.

Los nodos de sensores vienen en una variedad de configuraciones de hardware: desde los nodos conectados a una LAN y unidos a fuentes de alimentación permanentes, a los nodos de comunicación inalámbrica alimentados por baterías pequeñas. La tendencia es hacia la integración a gran escala (VLSI), optoelectrónica integrada y la nanotecnología, en particular, se está trabajando en el ámbito bioquímico.

El objetivo de las investigaciones recientes y la ingeniería es construir WN y nodos avanzados a escalas de milímetro cúbico (mm3). Nodos desarrollados en el década de 2000 fueron del orden de una pulgada cúbica (esto es aproximadamente 16.387 mm3).

En 2007, los investigadores esperaban tener nodos de 1 mm3 capaces de operar en una red funcional.

3.9.2 Hardware y software

En cuanto al diseño de WN, por lo general tiene que soportar las siguientes funciones:

Funcionalidad de nodo intrínseca, procesamiento de señales, incluyendo procesamiento de señales digitales (p. ej. cálculo de FFT / DCT), la compresión, la corrección de errores, el cifrado; el control y el manejo de actuadores; agrupamiento (clustering); auto ensamblaje; la comunicación, la gestión de la conectividad, enrutamiento y reenvío. Para soportar esta funcionalidad, los componentes de hardware de un WN incluyen la unidad

39

de detección y accionamiento (de un solo elemento o matriz), la unidad de procesamiento, la unidad de comunicación, la unidad de potencia, y otras unidades dependientes de la aplicación.

Los siguientes son los problemas importantes en nodos de sensores: tipo de sensor, el consumo de energía del sensor, el entorno operativo, capacidades computacionales y de detección, la capacidad de procesamiento de señales, conectividad, telemetría y control de dispositivos remotos. Es evidente que la arquitectura de los nodos de sensores, el alcance y su complejidad depende de la aplicación.

3.10 Sistemas Operativos para WSN

3.10.1 TinyOS

El sistema operativo TinyOS [4], es un reducido núcleo multitarea, útil para pequeños dispositivos, tales como los nodos. Es un sistema operativo “event driven”, esto quiere decir que funciona a partir de eventos producidos que llamarán a funciones. Ha sido desarrollado para redes de sensores con recursos limitados. El entorno de desarrollo de TinyOS soporta directamente la programación de diferentes microprocesadores y permite programar cada tipo con un único identificador para diferenciarlo, o lo que es lo mismo se puede compilar en diferentes plataformas cambiando el atributo.

El sistema TinyOS, sus librerías y aplicaciones, está escrito en nesC, una versión de C que fue diseñada para programar sistemas embebidos. En nesC, los programas están compuestos por componentes que se enlazan para formar un programa completo.

Los componentes se enlazan a través de sus interfaces. Estas interfaces son bidireccionales y especifican un conjunto de funciones que están implementadas ya sea por los proveedores o bien por los que las utilizan. NesC esperará que el código que va a ser generado cree un programa con

40

un ejecutable que contenga todos los elementos del mismo, así como los manejadores de las interrupciones de programas de más alto nivel.

TinyOS tiene las siguientes características:

- Núcleo pequeño (huella del ejecutable del SO) de 400bytes entre código y datos

- Arquitectura basada en componentes

- Capas de abstracción bien establecidas, limitadas claramente a nivel de interfaces, a la vez que se pueden representar los componentes automáticamente a través de diagramas

- Amplios recursos para elaborar aplicaciones

- Adaptado a los recursos limitados de los nodos: energía, procesamiento, almacenamiento y ancho de banda

- Operaciones divididas en fases (Splitphase)

- Dirigido por eventos (Event Driven): reacciona ante sensores y mensajes

- Concurrencia de tareas y basado en eventos

- Implementación en nesC

- Las interfaces realizan servicios,

- Interfaces bidireccionales, con comandos y eventos

- Los comandos los implementa el proveedor

- Los eventos son implementados por el usuario

- Un módulo implementa una interfaz

- Los componentes proveen y usan interfaces (representado en el código por las etiquetas “provide and use”)

- Una configuración enlaza las interfaces internas y externas (wire)

41

- Una aplicación consiste en una configuración de alto nivel y todos los módulos asociados

3.10.2 Mate

Está diseñado para trabajar en la parte superior de TinyOS como uno de sus componentes. Es un intérprete de código byte que tiene como objetivo hacer a TinyOS accesible a los programadores inexpertos y habilitar la programación rápida y eficiente de una red de sensores entero. Mate también proporciona un entorno de ejecución, que es útil para la UC-Berkeley mote, ya que en este sistema no hay un mecanismo de protección de hardware. En mate [4], un código de programa se compone de cápsulas. Cada cápsula tiene 24 instrucciones, y la longitud de cada instrucción es de 1 byte. Las cápsulas contienen el tipo y la información de versión, lo que hace que la inyección de código sea fácil.

Mate implementa un protocolo beaconless (BLESS) de encaminamiento ad-hoc, así como la capacidad de implementar nuevos protocolos de enrutamiento. A través de la inyección de código hop-by-hop Mate puede programar toda la red.

Las cápsulas se clasifican en cuatro categorías: Para enviar mensajes, para recibir mensajes, el temporizador y el subprograma. Un evento puede accionar Mate. Se puede utilizar no sólo como una plataforma de la máquina virtual para el desarrollo de aplicaciones, sino también como una herramienta para gestionar y controlar toda la red de sensores.

3.10.3 MagnetOS

Es un sistema operativo distribuido adaptativo diseñado específicamente para la adaptación de aplicación y conservación de la energía. Otros sistemas operativos no proveen un mecanismo de adaptación de la red o políticas para aplicación a utilizar eficazmente los recursos de nodo

42

subyacente. La carga de la creación de mecanismos de adaptación (en su caso) se encuentra en la propia aplicación. La carga de la creación de mecanismos de adaptación (en su caso) se encuentra en la propia aplicación. Este enfoque no suele ser eficiente en energía. Los objetivos

de MagnetOS [4] son para adaptarse a los recursos que subyacen y sus cambios en una manera estable, para ser eficiente con respecto a la conservación de la energía, para proporcionar abstracción general para las aplicaciones, y para ser escalable para grandes redes.

MagnetOS es sólo una imagen del sistema (SSI) o una unificada máquina virtual Java que incluye los componentes estáticos y dinámicos. Los componentes estáticos reescriben la aplicación en el nivel byte del código y agrega las instrucciones necesarias en la semántica de las aplicaciones originales.

Los componentes dinámicos se utilizan para monitorización de aplicaciones, creación de objetos, la invocación y la migración. La abstracción SSI ofrece una mayor libertad en la colocación de objetos y simplifica el desarrollo de aplicaciones. MagnetOS proporciona una interfaz para programadores para la colocación de objetos explícitos y anulación de las decisiones de colocación automática de objetos. Este sistema operativo también proporciona dos algoritmos en línea power-Aware (NetPull y NetCenter) para su uso en el movimiento de los componentes de aplicación en toda la red con el fin de reducir el consumo de energía y prolongar la vida de la red. Netpull funciona salto a salto en la capa física, y NetCenter ejecuta saltos múltiples a nivel de red. La diferencia entre el tradicional enrutamiento ad hoc y NetPull (NetCenter) es que los extremos de la comunicación de encaminamiento ad hoc son fijos, mientras que NetPull trata de mover los extremos de la comunicación con el fin de ahorrar energía.

43

3.10.4 Mantis

El mantis [4] es un sistema operativo embebido multiproceso, que con su hardware de una placa en general permite una implementación flexible y rápida de las aplicaciones.

Con el objetivo principal de facilitar las tareas a los programadores, MANTIS utiliza capas clásicas de estructura multiproceso y un lenguaje de programación estándar.

La estructura de capas contiene multiproceso, la programación preventiva con el tiempo cortando, la sincronización de I / O a través de la exclusión mutua, una pila de protocolos de red y controladores de dispositivos. El kernel común de MANTIS realiza estas funciones en menos de 500 bytes de RAM. MANTIS utiliza C estándar para implementar el kernel y API.

En la implementación actual de mantis, el tamaño de RAM asignada a cada nuevo subproceso es fija. La tabla de subprocesos almacenada en una estructura de datos global tiene una capacidad para cada elemento, cada uno de los cuales es de 10 octetos y se utiliza para almacenar información relacionada con el subproceso. El planificador se activa sólo por interrupciones del temporizador de hardware para llevar a cabo el cambio de contexto. En MANTIS, otras interrupciones son manejadas por los controladores de dispositivos.

La pila de protocolos de red en MANTIS tiene cuatro capas: aplicación, red, MAC y física. MANTIS implementa éstos como uno o más subprocesos a nivel de usuario, lo que permitiría un equilibrio entre la flexibilidad y el rendimiento. La pila de red se realiza con una API estándar entre las capas. MANTIS implementa las inundaciones como un protocolo de enrutamiento y un protocolo simple de parar y esperar por el flujo y control de congestión. El tamaño total de código del kernel, el planificador, y la pila de red es menor de 500 bytes y 14 kbytes de flash. MANTIS es compatible con determinadas funcionalidades avanzadas, como un entorno de creación de prototipos multimodal para probar aplicaciones de

44

redes de sensores, reprogramación dinámica de actualización basada en binario, y un control remoto servidor de shell y comandos que permiten al usuario acceder e inspeccionar el nodo de sensor la memoria y el estado.

3.10.5 Nut/OS

Es un pequeño sistema operativo para aplicaciones en tiempo real, que trabaja con CPU de 8 bits.

Tiene las siguientes funciones:

• Multihilo • Mecanismos de sincronización • Administración de memoria dinámica • Temporizadores asíncronos • Puertos serie de entrada/salida

Está diseñado para procesadores con los siguientes recursos:

• 0.5 kbytes RAM • 8 kbytes ROM • velocidad de 1 MIPS CPU

3.10.6 Contiki

El Sistema Operativo contiki [7], es de libre distribución para usar en un limitado tipo de computadoras, desde los 8 bits a sistemas embebidos en microcontroladores, incluidas nodos de redes inalámbricas.

45

3.10.7 CORMOS

(Communication Oriented Runtime System for Sensor Networks)

Cormos [7], es un sistema operativo específico para redes de sensores inalámbricas como su nombre lo indica.

3.10.8 eCos

(embedded Configurable operating system) [7] Es un sistema operativo gratuito, de tiempo real, diseñado para aplicaciones y sistemas embebidos que sólo necesitan un proceso. Se pueden configurar muchas opciones y puede ser personalizado para cumplir cualquier requisito, ofreciendo la mejor ejecución en tiempo real y minimizando las necesidades de hardware.

3.10.9 EYES OS

Se define como un entorno para escritorio basado en Web, permite monitorizar y acceder a un sistema remoto mediante un sencillo buscador. El sistema operativo para redes inalámbricas de sensores debe ser muy pequeño en términos de requisitos de memoria y de codificación, debe poder disfrutar de la conciencia, y debe ser capaz de distribución y reconfiguración. Utiliza un modelo Event Driven (controlado por eventos) y el mecanismo de trabajo para lograr estos objetivos. Funciona en una simple secuencia de la siguiente manera: realizar un cálculo, devolver un valor, y entrar en el modo de reposo.

La tarea puede programarse utilizando FIFO, y se activa por eventos de una manera sin bloqueo. EYES OS [7][4] define una interfaz de programación de aplicaciones (API) a nivel local y para las componentes de la red.

El componente de información local proporciona funciones como el acceso a los datos del sensor de nodos, la disponibilidad de recursos y su estado, y el establecimiento de parámetros o variables en los nodos sensores. El

46

componente de red proporciona funciones para transmitir y recibir datos y para recuperar información de la red. En resumen, EYES OS realiza dos grupos de funciones: las que pueden ser ejecutadas en el arranque para cargar módulo de software, y las que pueden proporcionar información de localización del nodo.

EYES OS también proporciona un mecanismo de distribución de código eficaz con los siguientes objetivos:

(1) para actualizar el código en el nodo sensor, incluyendo el sistema operativo, (2) para ser resistente en caso de pérdida de paquetes durante la actualización, (3) para utilizar el menor número de comunicaciones y los recursos locales como sea posible, y (4) para detener la aplicación durante un corto período cuando se actualiza. El procedimiento para distribuir el código es realizado en cuatro pasos: inicialización, creación del código imagen, la verificación, y la carga. Hay tres opciones para la actualización del código que se ejecuta: partición de la memoria, un enfoque en dos fases, y construido en EEPROM, que es utilizado por EYES OS.

3.10.10 TKernel [7]

Es un sistema operativo que acepta las aplicaciones como imágenes de ejecutables en instrucciones básicas. Por ello, no importará si está escrito en C++ o lenguaje ensamblador.

3.10.11 LiteOS [7]

Sistema operativo desarrollado en principio para calculadoras, pero que ha sido también utilizado para redes de sensores.

47

3.10.12 FreeRTOS [7]

Usado típicamente para aplicaciones integradas, tiene las siguientes características:

• No utiliza mucha memoria • Cualquier evento en el soporte físico puede hacer que se

ejecute una tarea • Multiarquitectura (puertos de código para otro tipo de UCP) • Muchos tienen tiempos de respuesta predecibles para eventos

electrónicos

3.10.13 Sen OS [7]

Es una máquina de estados finitos (FSM) basado en el sistema operativo. Tiene tres componentes:

1. Un kernel que contiene un secuenciador de estados y una cola de eventos. El estado secuenciador espera una entrada de la cola de eventos (una cola FIFO).

2. Una tabla de transición de estado que guarda la información de estado de transición y la función de devolución correspondientes. Cada tabla de transición de estados define una aplicación. Sen OS soporta múltiples aplicaciones de forma simultánea.

3. Una biblioteca de devolución de llamada de las funciones de llamada. Un evento de entrada se pone en cola de la cola de eventos. El primer evento en la cola de eventos está programado, lo que desencadena una transición de estado y de manera correspondiente, invoca las funciones asociadas.

El kernel y la biblioteca de devolución de llamada están construidos estáticamente y se almacenan en la memoria flash ROM de un nodo sensor, mientras que la tabla de transición de estados se puede cargar o

48

modificar en tiempo de ejecución ya que es dependiente de la aplicación. Como ya se dijo, Sen OS se basa en una máquina finita de estados, puede realizar fácilmente concurrencia y reconfiguración. También se puede extender a la gestión de la red.

3.11 Lenguajes de programación

La programación de sensores es complicada, entre otras dificultades está la limitada capacidad de cálculo y la cantidad de recursos. Así como en los sistemas informáticos tradicionales, encontramos entornos de programación prácticos y eficientes para depurar código.

Podemos encontrar lenguajes como:

� nesC: lenguaje que utilizamos para nuestros nodos, y que está directamente relacionado con TinyOS.

� Protothreads: específicamente diseñado para la programación concurrente, provee hilos de dos bytes como base de funcionamiento.

� SNACK: facilita el diseño de componentes para redes de sensores inalámbricas, sobre todo cuando la información o cálculo a manejar es muy voluminoso. Es un buen sustituto de nesC para crear librerías de alto nivel a combinar con las aplicaciones más eficientes.

� c@t: iniciales que significan computación en un punto del espacio en el tiempo (Computation at a point in space (@) Time).

� DCL: Lenguaje de composición distribuído (Distributed Compositional Language).

� galsC: diseñado para ser usado en TinyGALS, es un lenguaje programado mediante el modelo orientado a tarea, fácil de depurar, permite concurrencia y es compatible con los módulos nesc de TinyOS.

� SQTL (Sensor Query and Tasking Language): como su nombre indica es una interesante herramienta para realizar consultas sobre redes de nodos.

49

3.12 Estándares IEEE

Los estándares consisten en una recopilación de especificaciones que regulan la realización de procesos para garantizar la interoperabilidad de diversos productos. En el entorno de las comunicaciones inalámbricas podemos mencionar algunos como:

• Bluetooth (IEE802.15.1): Permite comunicaciones de radio de 720kbps (1Mbps de capacidad nominal) en radios de cobertura en entre 10 y 100 metros con un consumo de corriente de 40 mA. Los datos son sincronizados entre computadoras, teléfonos móviles y otros periféricos tales como impresoras y PDA.

• Wimax (IEEE802.16): Permite trabajar a una tasa de transmisión de 70 Mbps en radios de cobertura de hasta 48 kilómetros a frecuencias de 2.5 y 3.5 GHz.

• Wifi (IEEE802.11): Permite transmitir datos de entre 11 Mbps (IEEE802.11b) y 54 Mbps(IEEE802.11g) y opera en la bandas de radio de 2.4GHz.

• IEEE802.15.4: Permite transmisiones de datos de entre 20 a 250 kbps en radios de cobertura de entre 10 y 75 metros soporta bandas de radio de 2400 – 2483.5 MHz (utilizado en todo el mundo) empleando 16 canales. También es compatible en las bandas de 868-868.8 MHz (Europa) y 902-928 MHz (Norte América), hasta diez canales (2003) extendidos a treinta (2006). Las principales características de este estándar son: • Flexibilidad en la red debido a la facilidad de integración en la red mostrada por sus dispositivos ya que cada nodo puede iniciar su participación en la red, y el intercambio de información se realiza sin demasiado esfuerzo de instalación. • Bajo coste, debido al uso de componentes de coste reducido. • Bajo consumo de energía: se trata de uno de los objetivos primordiales de este estándar ya que al tratarse del uso de

50

dispositivos inalámbricos, deberemos utilizar baterías y conseguir un consumo mínimo para evitar de reponer las baterías de manera frecuente. Para ello utilizamos una potencia de transmisión y un radio de alcance limitados (10 y 75 metros) y además utilizando unos ciclos de trabajos bastante bajos del orden de un 0.5%. Por ejemplo, en caso de que utilicemos una batería de una capacidad de 750 mAh en un rango de 10 metros, con un consumo de 10 mA de corriente en estado activo, nuestra batería podría alcanzar una duración de dos años si el ciclo de trabajo es inferior a 0.5%.

Estándar Wi-Fi 802.11g Wi-Fi 802.11b Bluetooth 802.15.1

Zigbee 802.15.4

Aplicación principal

WLAN WLAN WPAN Control y monitorización

Memoria necesaria 1MB+ 1MB+ 250KB+ 4KB-32KB Vida batería (días) 0.5-5 0.5-5 1-7 100-1000+

Tamaño red 32 nodos 32 nodos 7 255/65,000 Velocidad 54 Mbps 11 Mbps 720 kbps 20-250 kbps

Alcance (metros) 100 100 10(v1.1) 1-100 Parámetros más

importantes Velocidad y flexibilidad

Velocidad y Flexibilidad

Coste y perfiles de aplicación

Fiabilidad, bajo consumo y muy

bajo coste

Tabla 1. Comparación de normas

51

Parte II: REDES DE SENSORES

INALAMBRICAS CON DISPOSITIVOS WASPMOTES II.1 Introducción

Las redes de sensores inalámbricas están formadas por una serie de nodos que son capaces de medir parámetros de importante relevancia, esto mediante sensores que trabajan en conjunto para enviar la información. Los dispositivos Waspmote, son equipos de comunicación que han sido diseñados para implementarse en redes de sensores basados en un microprocesador de bajo consumo, a este mismo se le pueden incorporar módulos a través de sus entradas analógicas y digitales.

Las redes de sensores inalámbricas permiten monitorizar cualquier entorno por mas inaccesible que parezca. Todo esto se logra mediante la distribución de los nodos de sensores en el terreno que se desee monitorizar.

Estos dispositivos, se comunican mediante tecnología XBee, la cual puede controlar la recepción de información desde otros nodos de sensores.

El presente proyecto consiste en la implementación de una red de sensores inalámbricos y la caracterización de sensores para la medición de algunos parámetros, tales como temperatura, humedad, luminosidad y posicionamiento del sensor mediante el uso del acelerómetro. Se ha dividido en dos partes, en la primera parte de este proyecto se trabajó en la investigación de las bases teóricas de los sensores, abarcando los tipos de sensores alámbricos e inalámbricos, así como el tipo de conectividad usado en cada uno de ellos.

En esta segunda parte del proyecto, nos enfocamos más en los equipos Waspmote, su estructura, sus protocolos de comunicación y módulos que lo conforman para expandir su funcionamiento.

52

II.2 Dispositivo Waspmote

En este proyecto se trabajó con dispositivos Waspmote. Éstos son fabricados y distribuidos por la empresa española Libelium. Esta empresa diseña y fabrica tecnología de hardware para la implementación de redes de sensores inalámbricas y sus productos están especialmente orientados a desarrolladores.

Figura 17. Dispositivo Waspmote

Trabaja con diferentes protocolos de bajo consumo (ZigBee, 802.15.4, Bluetooth, GPS, Wifi) y varias frecuencias (2.4GHz, 868MHz, 900MHz) con la capacidad de establecer enlaces de hasta 12 Km.

Cuenta con un modo de hibernación con consumo de 0.7µA lo que permite ahorrar batería cuando no está transmitiendo información.

Este dispositivo dispone de más de 50 sensores entre los que se pueden mencionar: Temperatura, humedad, luminosidad o radiación etc., y también cuenta con un entorno de desarrollo (IDE) de código abierto (librerías + compilador), lo que facilita trabajar con la plataforma.

El propósito principal de este dispositivo consiste en facilitar la configuración de redes de sensores, para su uso en diferentes escenarios,

53

como una red de sensores para cultivos, o una red de sensores para monitorización de un edificio o lugar público.

II.3 Hardware

Waspmote se basa en una arquitectura modular. La idea es integrar únicamente los módulos que necesitemos en cada dispositivo a fin de cambiarlos y ampliarlos según las necesidades.

Los módulos disponibles para integrar en Waspmote se clasifican en:

- Módulos ZigBee /802.15.4 (2.4GHz, 868MHz, 900MHz). Baja y alta potencia.

- Módulo GSM - GPRS/3G (Quadband: 850MHz / 900MHz / 1800MHz / 1900MHz).

- Módulo GPS. - Módulos sensoriales (placas de sensores).

- Módulo de almacenamiento: SD memory card.

Figura 18. Hardware del Waspmote

54

II.3.1 Especificaciones de los dispositivos Waspmote

El dispositivo Waspmote cuenta con las siguientes características:

� Microcontrolador: ATmega 1281 � Frecuencia: 8 MHz � SRAM: 8 KBytes � EEPROM: 4KBytes � FLASH:128 KBytes � SD CARD: 2 GBytes � Peso: 20 g � Dimensiones: 73.5 x 51 x 13 mm � Intervalo de temperatura: [-20°C, +65°C] � Reloj: real time clock (RTC) de 32 kHz � Consumo según el modo de operación:

ON: 15 mA Sleep: 55 µA Deep sleep: 55 µA Hibernation: 0.7 µA

� Funcionamiento sin recarga: 1 año

� Entradas/salidas:

7 Analógicas (I), 8 Digitales (I/O), 1PWM 2 UART, 1 I2C, 1 USB

� Características Eléctricas:

Valores de funcionamiento:

--Tensión de batería mínima de funcionamiento 3.3 V --Tensión de batería máxima de funcionamiento 4.2V --Tensión de carga USB 5 V --Tensión de carga placa solar 6 - 12 V --Corriente de carga de batería por USB 100 mA (max) --Corriente de carga de batería por placa solar 280 mA (max)

55

--Tensión de pila de botón 3V

Valores máximos absolutos:

--Tensión en cualquier terminal [-0.5 V, +3.8 V] --Corriente máxima por cualquier pin I/O digital 40 mA --Tensión de alimentación USB 7V --Tensión de alimentación placa solar 18V

--Tensión de batería cargada 4.2 V

Sensores integrados en la placa: Temperatura (+/-): -40°C, +85°C. Precisión: 0,2 5°C Acelerómetro: ±2g (1024LSB/g)/ ±6g (340LSB/g) Funcionamiento modo normal: 50Hz / 100Hz / 400Hz / 1000Hz

Figura 19. Waspmote vista superior.

56

Figura 20. Waspmote vista inferior.

II.3.2 Diagrama de bloques

Figura 21. Señales de datos

57

Señales de alimentación.

Figura 22. Diagrama a bloques de las señales de alimentación

II.3.3 Interfaz I/O

Waspmote puede comunicarse con otros dispositivos externos mediante los diferentes puertos de entrada/salida que posee. Los dispositivos con los que Waspmote se puede comunicar pueden ser cualquier sensor, componente o módulo electrónico siempre y cuando se respeten las especificaciones requeridas por cada puerto.

Figura 23. Sensor I/O e interfaz I2C

58

Conector de sensores:

Figura 24. Puertos analógicos y digitales.

Conector I2C – UART conectores

Figura 25. Conexión transmisión I2C y UART

59

II.3.3.1 Terminales analógicas y digitales

Waspmote dispone de 7 entradas analógicas accesibles en el conector de sensores. Cada una de las entradas está conectada directamente al microcontrolador. El microcontrolador utiliza un conversor analógico-digital (ADC) de aproximaciones sucesivas de 10 bits. El valor de tensión de referencia para las entradas es de 0V (GND). El valor máximo de tensión de entrada es de 3.3V que corresponde con la tensión de alimentación general del microcontrolador.

Para obtener el valor de las entradas se utiliza la función “analogRead (entrada analógica)” el parámetro de entrada de la función será el nombre de la entrada que queremos leer “ANALOG1, ANALOG2...”. El valor obtenido de esta función será un número entero entre 0 y 1023, 0 corresponde a 0 V y 1023 a 3.3 V.

Las terminales de entrada analógicas pueden utilizarse también como de entrada / salida digitales. Si queremos usar estas terminales como digitales tenemos que tener en cuenta la siguiente lista de correspondencias en sus nombres:

Figura 26. Configuración de terminales

60

El Waspmote posee 8 termianles digitales que pueden ser configuradas como entradas o salidas en función de las necesidades de la aplicación. Los valores de tensión correspondientes a los diferentes valores digitales serían:

--0V para el 0 lógico. --3.3V para el 1 lógico.

Las instrucciones para el control de las terminales digitales son:

{ pinMode(DIGITAL3,INPUT); val=digitalRead(DIGITAL3); pinMode(DIGITAL3,OUTPUT); digitalWrite(DIGITAL3,LOW); }

II.3.3.2 Modulación por ancho de pulso (PWM)

La terminal DIGITAL1 además puede usarse como salida PWM (Pulse Width Modulation) con el cual se puede “simular” una señal analógica. En realidad es una onda cuadrada entre 0 V y 3.3 V en la que se puede cambiar la proporción de tiempo en que la señal está en alto (su ciclo de trabajo) de 0% a 100%, simulando una tensión de 0V (0%) a 3.3V (100%). La resolución es de 8 bits por lo que podemos configurar hasta 255 valores intermedios entre 0-100%. La instrucción para controlar la salida PWM es analogWrite(DIGITAL1, value); donde value es el valor analógico (0-255).

{ analogWrite(DIGITAL1,127); }

61

II.3.3.3 Comunicación serial (UART)

En Waspmote existen 6 puertos serie:

Una de las UART del microcontrolador está conectada simultáneamente al módulo de comunicación XBee y al puerto USB. La otra UART del microcontrolador está conectada a un multiplexor de cuatro canales, pudiendo seleccionar desde el código cuál de las cuatro nuevas UART queremos conectar a la UART del microcontrolador. Estas cuatro nuevas UART están conectadas de la siguiente manera. Una está conectada a la placa GPRS/3G, otra al GPS y las otras dos quedan accesibles al usuario en el conector I2C – UART auxiliares.

La configuración del multiplexor se lleva a cabo mediante las siguientes instrucciones:

{ setMuxAux1(); setMuxAux2(); setMuxGPS(); setMuxGPRS(); }

II.3.3.4 Comunicación I2C

En Waspmote también utiliza el bus de comunicación I2C, donde se conectan en paralelo tres dispositivos: el acelerómetro, el reloj de tiempo real o RTC (descrito en una sección posterior) y el potenciómetro que configura el nivel de umbral (threshold) de alarma por batería baja. En todos los casos el microcontrolador actúa como maestro (master) mientras que el resto de los dispositivos conectados al bus actúan como esclavos (slave).

62

II.3.3.5 Comunicación SPI

El puerto SPI (Serial Peripheral Interface) del microcontrolador se utiliza para la comunicación de éste con la tarjeta micro SD (SanDisk). Todas las operaciones de uso del bus son realizadas por la librería específica de forma transparente.

II.3.3.6 Comunicación USB

La comunicación USB (Universal Serial Bus) se utiliza en el Waspmote para la comunicación con una computadora o dispositivo compatible. Esta comunicación permite la carga del programa al microcontrolador y la comunicación de datos durante la ejecución del programa.

Para la comunicación USB se utiliza una de las UART (Universal Asynchronous Receiver-Transmitter) del microcontrolador y de la conversión al estándar USB se encarga el FT232RL. De esta forma en la computadora tendremos un nuevo puerto de comunicación serie listo para comunicarse con Waspmote.

II.3.3.7 Real Time Clock - RTC

Waspmote tiene integrado un reloj de tiempo real (Real Time Clock - RTC), el cual le mantiene informado del momento temporal en el que se encuentra.

Toda la programación y control del RTC se hace a través del bus I2C (Inter-Integrated Circuit).

Alarmas:

Podemos programar alarmas en el RTC especificando día/hora/minuto/segundo. Lo que nos permite tener un control total acerca de cuándo queremos que se despierte el nodo para captar valores y realizar las acciones programadas con ellos. Esto nos permite tener al Waspmote funcionando en los modos de máximo ahorro energético (Deep

63

Sleep & Hibernate) y hacer que se despierte justo en el momento que nos interese.

II.3.3.8 Indicadores LED

Figura 27. Ubicación de los LED

• LED indicador de carga de batería.

El LED de color rojo indica que en el Waspmote hay conectada una batería que está siendo cargada, la carga se puede hacer mediante un cable mini USB o bien mediante una placa solar conectada al Waspmote. Una vez que la batería está totalmente cargada, el LED se apaga automáticamente.

• LED 0 ( LED programable) LED indicador verde conectado al microcontrolador totalmente programable por el usuario desde el código del programa. Además el LED 0 indica cuando Waspmote se reestablece, emitiendo un parpadeo cada vez que se lleva a cabo un restablecimiento en la placa.

64

• LED 1 (LED programable) LED indicador rojo conectado al microcontrolador totalmente programable por el usuario desde el código del programa.

• LED indicador USB Power LED verde que indica cuando el Waspmote está conectado a un puerto USB compatible ya sea para carga de batería o bien para programación. Cuando el LED está encendido indica que el cable USB está conectado correctamente, al quitar el cable USB el LED se apagará automáticamente.

• Indicadores LED de RSSI Se incluyen 3 indicadores LED para conocer visualmente el valor del RSSI (Received Signal Strength Indicator) de las tramas ZigBee/802.15.4. Estos LED indican la intensidad de la señal del último paquete recibido.

II.3.3.9 Interruptores (jumpers)

La tarjeta Waspmote dispone de tres interruptores para activar/desactivar ciertas funcionalidades, en la figura inferior se puede apreciar la localización de éstos.

Figura 28. Interruptores de programación

65

• Interruptor de habilitación de programación La programación de la placa sólo es posible si este interruptor está cerrado a través del puente correspondiente.

• Interruptor de habilitación del indicador RSSI Si el puente correspondiente está colocado, está habilitada la función de indicación por LED de RSSI.

• Interruptor de habilitación de modo Hibernate Si el puente correspondiente no está colocado, deshabilitamos la programación de Waspmote. El modo de funcionamiento Hibernate requiere quitar este puente durante el comienzo del programa por primera vez.

II.4 Arquitectura y sistema

Conceptos

La arquitectura de Waspmote se basa en el microcontrolador ATMEGA 1281 de Atmel. Esta unidad de procesado arranca ejecutando el binario denominado “bootloader” que se encarga de cargar en memoria parte de los programas y librerías compiladas y almacenadas previamente en la memoria FLASH, con la finalidad de que el programa principal que se ha creado pueda finalmente comenzar su ejecución.

Cuando se conecta Waspmote y se inicia el bootloader, existe un tiempo de espera (62.5ms) antes de comenzar con la primera instrucción, tiempo que es utilizado para iniciar la actualización de los programas que se encuentran cargados en el caso de que estuviéramos cargando nuevos programas compilados. Si en ese tiempo se recibe un nuevo programa a través del USB, se procederá a cargarlo en la memoria FLASH (128 KBytes) sustituyendo los programas que existieran. Por el contrario, si no se recibe un nuevo programa, se iniciará el último programa almacenado en memoria.

66

Una vez que tenemos un programa cargado en el microcontrolador, el funcionamiento de Waspmote se basa en el código que se ha cargado. La estructura de los códigos se divide en 2 partes fundamentales: una parte denominada setup y otra parte llamada loop. Ambas partes del código tienen un comportamiento secuencial, ejecutándose las instrucciones en el orden establecido.

La parte llamada setup es la primera parte del código que se ejecuta, haciéndolo sólo una vez al iniciar el código. En esta parte es recomendable incluir la inicialización de los módulos que se vayan a utilizar, así como parte del código que sólo interesa que se ejecute al iniciarse Waspmote.

La parte denominada loop es un bucle que se ejecuta continuamente, formando un bucle infinito. Debido al comportamiento de esta parte del código es recomendable la utilización de las interrupciones para realizar acciones con el Waspmote.

II.4.1 Temporizadores o timers

El Waspmote utiliza un oscilador de cuarzo que trabaja a una frecuencia de 8MHz como reloj del sistema. De esta forma, cada 125ns el microcontrolador ejecuta una instrucción de bajo nivel (lenguaje máquina). Hay que tener en cuenta que cada línea de código C++ de un programa compilado para Waspmote engloba varias de instrucciones de lenguaje máquina.

Waspmote es un dispositivo preparado para trabajar en condiciones adversas en cuanto a términos de ruido y contaminación electromagnética, por ello, de cara a asegurar una comunicación estable en todo momento con los distintos módulos conectados por línea serie a las UART (XBee, GPRS/3G, USB) se ha establecido una velocidad máxima de transmisión de 38,400bps para XBee, GPRS/3G y USB y de 4,800 para el GPS, de forma que la tasa de éxito en los bits recibidos sea del orden del 100%.

67

II.4.2 Watchdog

El microcontrolador Atmega 1281 tiene un reloj Watchdog interno mejorado (Enhanced Watchdog Timer – WDT). El WDT se encarga de contar de forma precisa ciclos de reloj generados por un oscilador de 128kHz. El WDT genera una señal de interrupción cuando el contador alcanza el valor establecido. Esta señal de interrupción se puede utilizar para despertar al microcontrolador de un estado de Sleep o para generar una alarma interna cuando está en funcionamiento normal, algo muy útil cuando se desarrollan programas con interrupciones temporales.

El WDT permite despertar al microcontrolador del estado Sleep de bajo consumo generando una interrupción. Por ello, se utiliza este reloj a modo de alarma temporal asociado al modo Sleep del microcontrolador. Esto permite controlar intervalos de tiempo muy pequeños y de forma muy precisa, estos intervalos son: 16ms, 32ms, 64ms, 128ms, 256ms, 500ms, 1s, 2s, 4s, 8s. Para intervalos mayores a 8s (modo Deep Sleep) se usa el RTC.

II.4.3 Reloj de tiempo real o RTC

El Waspmote dispone de un reloj en tiempo real (RTC) a 32kHz (32.768Hz) que permite establecer una base de tiempo absoluta para la utilización del dispositivo.

Podemos programar alarmas en el RTC especificando día/hora/minuto/segundo. Lo que nos permite tener un control total acerca de cuándo queremos que se despierte el mote para captar valores y realizar las acciones programadas con ellos. Esto nos permite tener al Waspmote funcionando en los modos de máximo ahorro energético (Deep Sleep & Hibernate) y hacer que se despierte justo en el momento que nos interese.

Además de alarmas relativas, se pueden programar alarmas periódicas de forma que dándole una medida temporal él reprograme su alarma automáticamente cada vez que ésta se active.

68

El RTC permite despertar al microcontrolador del estado de bajo consumo generando una interrupción. Por ello, se ha asociado al modo DeepSleep & Hibernate del microcontrolador, permitiendo poner a dormir el microcontrolador activando una alarma en el RTC para poder despertarlo. Los intervalos pueden ir desde los 8s en modo Deep Sleep, hasta minutos, horas o incluso días en Hibernate.

II.5 Interrupciones

Las interrupciones son señales recibidas por el microcontrolador que le indican que debe abandonar la tarea que está realizando para atender un evento que acaba de suceder. El control de interrupciones libera al microcontrolador de tener que estar encuestando en todo momento a los sensores y que sean éstos los que avisen al Waspmote cuando se alcanza un determinado valor de umbral (threshold).

Figura 29. Diagrama de flujo de hibernación

69

El Waspmote está creado para trabajar con 2 tipos de interrupciones: síncronas y asíncronas.

• Interrupciones síncronas: Son las que programamos mediante los temporizadores (timers). Nos permiten programar cuándo queremos que “salten”. Existen de 2 tipos de alarmas por temporizador: periódicas y relativas.

--Alarmas periódicas son las que especificamos un momento concreto en el tiempo futuro, ejemplo: “Alarma programada para cada día 4 del mes a las 00:01 y 11 segundos”. Éstas están controladas por el RTC.

--Alarmas relativas se programan teniendo en cuenta el momento actual, p. ej.: “Alarma programada para activarse dentro de 5 minutos y 10 segundos”. Se controlan mediante el RTC y el Watchdog interno del microcontrolador.

• Interrupciones asíncronas: Son las que no sabemos cuándo se van a producir porque no están programadas. Tipos:

� Sensores: Se pueden programar las placas de sensores para que cuando un sensor pasa de un determinado umbral se dispare una alarma.

� Batería baja: Waspmote tiene un circuito que controla en todo momento el nivel de batería que le queda. Cuando sobrepasamos un determinado límite se genera una alarma que permite avisar al centro de control que uno de los motes se está quedando sin batería. El nivel de batería crítico variará dependiendo del tipo de módulos que lleve el Waspmote, así como de la aplicación final. Por ello, se permite definir este umbral de forma dinámica mediante la programación de un potenciómetro digital por parte del microcontrolador.

� Acelerómetro: Podemos programar el acelerómetro que tiene integrado Waspmote para que determinados eventos tales como una caída o un cambio de dirección generen una interrupción.

� Módulo GPRS/3G: la recepción de una llamada, de un SMS o de datos genera una interrupción.

70

II.6 Sensores

Los sensores se conectan al Waspmote principalmente mediante las entradas analógicas y digitales de que el microprocesador dispone. Libelium ha desarrollado varias placas de integración de sensores que facilitan la conexión de los mismos con la unidad de procesado (incluida una placa genérica -protoboard sensorial- que posibilita la conexión de cualquier sensor por parte de los desarrolladores). Cada una de estas placas de sensores tiene destinados varias terminales para manejar la generación y captura de las interrupciones. Se dispone de una terminal que va conectada a RXD1, ya que las interrupciones se generan en nivel alto, y de otra terminal que se utiliza para la monitorización.

Figura 30. Inicialización UART

II.6.1 Detección de nivel crítico de la batería

El Waspmote dispone de un detector de nivel de carga crítica en la batería, éste genera una interrupción cuando el voltaje de la batería baja a menos de un umbral establecido. Esto se fundamenta en el hecho de que las baterías tienen una caída de voltaje que se acentúa conforme disminuye la carga. Por ello, una disminución en el voltaje suministrado corresponde a una variación en la carga restante.

71

Este umbral se puede configurar de forma dinámica en el Waspmote puesto que es controlado por un potenciómetro digital (digipot). El rango de valores de este umbral puede ser configurado desde los 3.4V hasta los 2.95V.

Figura 31. Relación de valores de la resistencia digital y el umbral en volts

El valor del digipot para cambiar de umbral puede ser modificado en tiempo real en el mismo código del programa que ejecuta Waspmote.

Figura 32. Diagrama a bloques del digipot

72

II.6.2 Acelerómetro

El Waspmote tiene integrado el sensor de aceleración LIS3LV02DL de STMicroelectronics que informa al mote de las variaciones de aceleración sufridas en cada uno de los 3 ejes (X, Y, Z).

La integración de este sensor permite la medición de la aceleración en los 3 ejes (X, Y, Z), estableciendo 2 tipos de eventos: caída libre (Free Fall) y detección de cambio de dirección (Direction Detection Change). De esta forma, se pueden realizar acciones como despertar al mote cuando se produce una caída libre o un cambio de dirección y realizar la acción asignada a tal efecto.

Figura 33. Localización del acelerómetro

73

El LIS3LV02DL se define como un acelerómetro lineal de 3 ejes el cual nos permite tomar las medidas del sensor a través de la interfaz I2C. El acelerómetro tiene una resolución de 12 bits (4096 posibles valores) y comprende 2 rangos de medición ±2g y ±6g.

En caso de utilizar el primer rango ±2g, la precisión de la lectura sería de 4096/4g = 1024 LSb/g

En el caso de usar el rango mayor de los ±6g la precisión del sistema sería de 4096/12g = 340LSb/g

Otro de los parámetros que podemos ajustar es la tasa de actualización del acelerómetro, es decir, cada cuando queremos que sus registros internos se actualicen. Esto requiere distintos anchos de banda para transferir datos del sensor. A mayor tasa de actualización mayor consumo; pero también mayor precisión y obtención de datos más reales.

Por defecto, el acelerómetro se actualiza 40 veces por segundo (40Hz), pero se puede configurar para aumentar esta tasa a 160, 640 o incluso 2560 veces por segundo (2560Hz). En este último caso estaríamos obteniendo un valor cada 0.39ms.

Para la mayoría de las aplicaciones la tasa de 40Hz es suficiente para detectar cualquier tipo de cambio o interrupción programada. Sin embargo, dado que el Waspmote está pensado para la realización de aplicaciones móviles que puedan requerir máxima precisión y obtención de datos en tiempo real, se posibilita la utilización de anchos de banda mayores. Para ello se han definido funciones específicas dentro de las librerías de programación.

74

Figura 34. Ejes del acelerómetro

Este acelerómetro dispone de un auto-test para la integridad de las medidas tomadas, pudiendo descartar las medidas en los momentos en que no son válidas. Su rango de temperatura de funcionamiento está comprendido entre los -40ºC y los +85ºC.

El acelerómetro se comunica con el microcontrolador a través de la interfaz I2C. Las terminales que se utilizan para esta tarea son SCL y SDA, además de usar la terminal RDY para generar las interrupciones.

El acelerómetro dispone de 2 clases de eventos que pueden generar una interrupción: caída libre y cambio de dirección.

II.6.3 Integración de nuevos sensores

El Waspmote se ha diseñado con el propósito de facilitar la integración de manera sencilla tanto de sensores (inputs) como de actuadores (outputs) que permitan extender el ya de por sí amplio abanico de respuestas del mote. Éstos se conectan a la placa a través de los conectores de 2x11 y 1x12 pines de los que dispone, que permiten la comunicación de 16 señales de entrada y salida digitales, de las cuales 7 pueden utilizarse como entradas analógicas y 1 como señal de salida PWM (Pulse Width Modulation), además de línea de tierra, alimentaciones de 3.3V y 5V, 2 conexiones a entradas y salidas de comunicación serie (UART) seleccionables, conexión a las dos líneas del bus de interconexión de integrados [Inter-Integrated Circuit bus] (I2C) SCL y SDA, y conexión a entradas para interrupción a nivel alto y a nivel bajo. La gestión de las dos líneas de alimentación de la placa de sensores se lleva a cabo mediante dos interruptores de estado sólido que permiten el

75

paso de una intensidad de hasta 200mA de manera continua y cuyo control se puede programar utilizando las funciones incluidas en la librería WaspPWR. Los valores de tensión de entrada y salida tanto para pines digitales como analógicos estarán comprendidos entre 0V y 3.3V, encontrándose el cero lógico (‘0’) en valores inferiores a 0.5V y el uno lógico (‘1’) en valores superiores a 2.30V. Para la lectura de las señales analógicas, el microprocesador dispone de un conversor analógico-digital de 10 bits que permite una resolución de 3mV. El Waspmote también incorpora 1 terminal de salida PWM de 8 bits de resolución para generación de señales analógicas. Puede encontrar información sobre las librerías e instrucciones utilizadas para la lectura y escritura en estas terminales en el manual del API.

El Waspmote incluye 2 terminales de interrupción, una a nivel bajo (TXD1) y otra a nivel alto (RXD1) que ofrecen una alternativa a la lectura de sensores por encuesta, permitiendo despertar al microprocesador cuando se produce un evento (como puede ser la superación de un determinado umbral en un comparador). Esto genera un cambio en la señal digital conectada a una de las terminales anteriores, facilitando la lectura del sensor sólo en los instantes en que ocurre un suceso de interés.

Esta opción es especialmente recomendable para sensores de bajo consumo que pueden permanecer activos durante largos periodos de tiempo. La lectura por encuesta (encendido y lectura de los sensores después de un tiempo determinado de manera cíclica) es más adecuada para aquellos que, presentando un mayor consumo también, no requieran una monitorización que genere una señal de alarma. La lectura de los sensores puede generar tres tipos de respuesta: almacenamiento de la información recogida (en la tarjeta SD), transmisión inalámbrica de los datos (a través de una señal de radiofrecuencia mediante el módulo XBee o a través de la red de comunicaciones móviles mediante el módulo GPRS/3G) o actuación de manera automática, a través de un actuador controlado mediante las señales de salida del microprocesador de manera directa o a través de un interruptor o un relevador.

76

II.6.4 Placas de sensores

La integración de aquellos sensores que requieren algún tipo de etapa de adaptación electrónica o procesado de señal previo a su lectura por parte del microprocesador se realiza a través de las diferentes placas sensoriales de las que dispone. La conexión entre éstas y el mote se realiza terminal a terminal mediante los dos conectores de 2x11 y 1x12. Actualmente, el Waspmote dispone de ocho placas de integración; pero en nuestro caso solo disponemos de una:

Figura 35. Tarjeta sensor de eventos

II.6.5 Alimentación

En el conector de sensores también se dispone de varias terminales de alimentación, en concreto tenemos GND, SENSOR POWER, 5V SENSOR POWER y GPS POWER.

77

• SENSOR POWER: tensión de alimentación de 3.3V (200 mA máximo) que es controlada desde el código de ejecución de el Waspmote.

• 5V SENSOR POWER: tensión de alimentación de 5V (200 mA máximo) que es controlada desde el código de ejecución del Waspmote.

• GPS POWER: tensión de alimentación de 3.3V (200 mA máximo) que es controlada desde el código de ejecución del Waspmote. Esta tensión también alimenta el módulo GPS, por lo tanto podría haber problemas con dicho módulo si estamos usando esta salida para otros usos.

II.7 802.15.4/ZigBee

Waspmote integra los módulos XBee de Digi para comunicación en bandas de frecuencia libre ISMB (Industrial Scientific Medical Band).

Estos módulos se comunican con el microcontrolador utilizando la UART_0 a una velocidad de 38,400bps.

Existen 7 posibles módulos XBee distribuidos por Libelium para su integración con el Waspmote.

Tabla 2. Protocolos de comunicación

78

Se han elegido estos módulos por su alta sensibilidad en recepción y potencia de transmisión, así como por apegarse a los estándares 802.15.4 (modelo XBee-802.15.4) y ZigBee-Pro v2007 (modelo XBee-ZB).

Los módulos XBee integrados en Waspmote incorporan conectores de antena RPSMA. Ventajas:

- Una arquitectura modular, que nos permite añadir las siguientes funcionalidades: Aumento de la memoria de almacenamiento mediante tarjeta microSD. Comunicación Bluetooth. Comunicación Wi-Fi. Comunicación GPRS. GPS.

- Gran cantidad de información en la red, foro propio. - Código de libre distribución - Portable - Poco consumo, alta duración de batería - Comparte muchas instrucciones y gran parte de las características

con un producto muy extendido, el Arduino.

79

II.7.1 XBee-802.15.4

Figura 36. Características del módulo XBee pro y normal

La frecuencia utilizada es la banda libre de 2,4GHz, utilizando 16 canales con un ancho de banda de 5MHz por canal.

Figura 37. Frecuencia y ancho de banda por canal usada por un Waspmote

Los módulos XBee 802.15.4 cumplen con el estándar IEEE 802.15.4, que define el nivel físico y el nivel de enlace (capa MAC). Los módulos XBee añaden ciertas funcionalidades a las aportadas por el estándar, tales como:

80

• Descubrimiento de nodos: Se agrega información a las cabeceras de los paquetes de tal modo que se puedan descubrir otros nodos en la misma red. Se permite enviar un mensaje de descubrimiento de nodos, de tal forma que el resto de los nodos de la red responderán indicando sus datos (Node Identifier, @MAC, @16 bits, RSSI).

• Detección de paquetes duplicados: Esta función no está establecida por el estándar, pero es añadida por el módulo XBee.

Software Utilizado

• Waspmote IDE. Es el entorno de programación para los dispositivos waspmote, aquí se incluyen las librerías y se trabaja con ellas, se trabaja con lenguaje derivado del lenguaje C en una interfaz java.

• X-CTU. Es un programa con el cual se configuran los módulos XBee, posee una terminal con el cual se pueden mandar y recibir datos mediante el puerto en el cual se encuentra conectado el XBee

II.8 Waspmote Gateway

La puerta de enlace o Waspmote Gateway permite obtener los datos que circulan por la red sensorial en un PC o dispositivo con un puerto USB estándar. El Waspmote Gateway actúa como un “puente de datos o puerta de acceso” entre la red sensorial y el equipo receptor. Este equipo receptor se encargará de almacenar o utilizar los datos recibidos en función de las necesidades de la aplicación en concreto.

81

Figura 38. Puerta de enlace (Gateway)

El gateway ofrece un conector USB A de tipo “plug” luego el dispositivo receptor ha de tener un conector USB A de tipo “receptacle”.

Una vez que el gateway está correctamente instalado, en el equipo receptor aparece un nuevo puerto serie de comunicación conectado directamente a la UART del módulo XBee, que nos permitirá comunicar directamente el XBee con el dispositivo, pudiendo tanto recibir los paquetes de datos de la red sensorial así como modificar y/o consultar los parámetros de configuración del XBee.

Otra funcionalidad importante a destacar es la posibilidad de actualizar o cambiar el firmware del módulo XBee.

82

Figura 39. Conexión de la puerta de enlace en un pc

Indicadores LED de la puerta de enlace

En el Gateway se cuenta con los siguientes cuatro indicadores LED:

- LED de alimentación USB: Indica que la placa está alimentada mediante el puerto USB

- LED RX: Indica que la placa está recibiendo datos desde el puerto USB.

- LED TX: Indica que la placa está enviando datos al puerto USB - LED configurable de I/O

El LED configurable, conectado al pin I/O 5 del XBee, se puede configurar ya sea como salida digital del XBee o como indicador de asociación del XBee a la red sensorial.

Pulsadores

- Reset: Permite reestablecer el módulo XBee. - I/O - 0: Pulsador conectado al pin I/O 0 del XBee. - I/O -1: Pulsador conectado al pin I/O 1 del XBee. - RTS - I/O – 6: Pulsador conectado al pin I/O 6 del XBee.

83

Todos los pulsadores funcionan de forma que al ser presionados conectan cada una de sus líneas de datos correspondiente con GND. Ninguno de ellos dispone de resistencia de pull-up por lo que es posible que sea necesario activar alguna de las resistencias de pull-up internas del XBee, según el uso que se quiera conseguir de ellos.

II.9 RSSI

El parámetro RSSI (Received Signal Strength Indicator) indica la intensidad de la señal del último paquete recibido. Los módulos XBee proporcionan esta información en todas sus variantes de protocolo y frecuencia.

Una de las funcionalidades más comunes del uso del RSSI es la creación de sistemas de localización en interiores mediante triangulación de la señal.

En el Waspmote podemos obtener este valor simplemente ejecutando la función:

Figura 40. Localización de los LED de la puerta de

enlace

84

{ xbee.getRSSI(); }

Reconocimiento visual de la calidad de la señal RSSI:

Se han incluido 3 LED para conocer visualmente el RSSI. Estos LED indican la calidad de la señal del último paquete recibido. Por defecto este sistema de visualización está desconectado para evitar un consumo innecesario. Por ello, inicialmente hay que conectar un puente de forma que quede conectada esta parte del circuito con el módulo XBee.

Figura 41. Módulo RSSI

Tabla 3. Configuración de los LED del RSSI

85

En un segundo paso hay que ejecutar la función XBee.setRSSIOutput() que establece el tiempo que se mantienen estos LEDs encendidos. Este tiempo puede variar desde 0 (desactivados) hasta que se reciba otro paquete (FF).

{ xbee.setRSSItime(0xFF); xbee.getRSSItime(); }

Figura 42. Diagrama a bloques del XBee

Tablas de consumos

Waspmote ON 9mA Sleep 62µA Deep Sleep 62µA Hibernate 0.7µA

Tabla 4. Consumo de energía de la tarjeta Waspmote

86

XBee ON SLEEP OFF

(Waspmote switches)

SENDING RECEIVING

XBee 802.15.4

50.36mA 0.1mA 0µA 49.56mA 50.26mA

XBee 802.15.4

PRO

56.68mA 0.12mA 0µA 187.58mA 57.08mA

XBee ZigBee

37.38mA 0.23mA 0µA 37.98mA 37.68mA

XBee ZigBee PRO

45.56mA 0.71mA 0µA 105mA 50.46mA

XBee 868 60.82mA -- 0µA 160mA 73mA XBee 900 64.93mA 0.93mA 0µA 77mA 66mA XBee XSC 48.85mA 0.48mA 0µA 48.35mA 110mA

Tabla 5. Consumo de energía de la tarjeta XBee

RSSI(LEDs): 7.6mA

Acelerómetro

Sleep 0.08mA

Hibernate 0.65mA

OFF ~0µA

Tabla 6. Consumo de energía del acelerómetro

II.10 X-CTU

El software X-CTU permite configurar los módulos XBee de manera más natural, fácil y rápida. El ejecutable se puede encontrar en la página oficial de XBee (www.digi.com).

87

Selección de pestañas

PC Settings: Permite al usuario seleccionar el puerto COM y configurar ese puerto para adaptarse a la configuración realizada sobre el módulo XBEE.

El botón Test/Query (Prueba/Consulta) se utiliza para probar el puerto COM seleccionado y las configuraciones de la PC. Si las configuraciones y el puerto COM son correctos, recibiremos una respuesta similar a la que se muestra.

Figura 43. Configuración inicial del XCTU

88

Range Test: Permite a un cliente para realizar una serie de pruebas entre dos módulos. En esta pestaña es posible enviar una cadena de datos de cualquier tipo, esto para probar el alcance de la señal. Se generan datos automáticamente y se envían por medio del módulo de tal forma que permite verificar la recepción de datos correctos y los incorrectos. A partir de esta estadística se determina el alcance de la señal.

Figura 44. Prueba de alcance

Terminal: Permite acceder o no a los puertos COM de la computadora, mediante un programa de emulación de terminal. Esta pestaña también permite la posibilidad de acceder al firmware de los módulos utilizando comandos AT.

La porción en blanco de esta pestaña es donde la mayoría de las comunicaciones de información se producirán, mientras el X_CTU sea usado como un emulador de terminal. Al ejecutarlo el texto en azul es lo que se ha escrito y será enviado hacia el módulo XBee. Esto mediante el

89

puerto serial, mientras que el texto en rojo es la entrada de datos (respuesta) desde el módulo XBee mediante el puerto serial.

Figura 45. Terminal del XCTU

Modem Configuration : Permite la posibilidad de programar las configuraciones del firmware de los módulos a través de una interfaz gráfica de usuario. Esta pestaña también permite a los usuarios cambiar las versiones de firmware.

La pestaña Modem Configuration tiene cuatro funciones básicas:

1. Proveer una interfaz gráfica de usuario con el firmware del módulo XBee.

2. Leer y escribir el firmware del microcontrolador interno del XBee. 3. Descargar archivos de actualización del firmware, ya sea desde

Internet o desde un archivo comprimido. 4. Guardar o leer el perfil de un modem.

90

Figura 46. Ventana de configuración del modem

II.11 Fuentes de alimentación

• Batería

La batería incluida con el Waspmote es una batería de iones de litio (Li-Ion) de tensión nominal 3.7V. En lo referente a la capacidad de la batería existen varias posibilidades: 1150mA, 2300mA y 6600mA Li-Ion recargables y 13000mAH no recargable.

91

El Waspmote dispone de un circuito de control y protección que se encarga de que la corriente de carga de batería sea la adecuada en todo momento.

Figura 47. Conector de la batería

• Conexión de la batería

En la imagen se puede ver la ubicación del conector de la batería. El tipo de conector empleado evita que se conecte de forma incorrecta en cable correspondiente (a no ser que forcemos el conector).

92

Figura 48. Diagrama de conexión de la batería

• USB

Figura 49. Localización del conector USB

Las tres fuentes de alimentación del Waspmote desde el USB son:

--Conexión USB a PC --Conexión USB a 220V --Conexión USB a Conector de Vehículo

93

• La tensión de carga a través del USB ha de ser 5V.

• La corriente máxima de carga a través de USB es de 100mA.

• El conector mini USB ha de ser estándar mini USB modelo B.

Figura 50. Formas de conectar la tarjeta Waspmote

II.12 Entorno de trabajo IDE

A fin de desarrollar aplicaciones con el Waspmote el primer paso es instalar el IDE (Integrated Development Environment). Este IDE se puede encontrar en la página http://www.libelium.com/development/waspmote

El IDE que se va a utilizar es el compilador de la plataforma Arduino, siguiendo el mismo estilo de librerías y funcionamiento. Es importante usar la versión que se encuentra en la web de Waspmote y no otras versiones

94

del IDE de Arduino. La razón es que la versión disponible en la web de Libelium es la que ha sido debidamente probada con la cual se asegura un funcionamiento óptimo.

El IDE-Waspmote incluye todas las librerías del API necesarias para compilar los programas.

El archivo que contiene el compilador y las librerías se llama “Waspmote-environment-Vxx.zip” (xx corresponde al nombre de la versión). Este archivo contiene una carpeta con el compilador Waspmote, que debe extraerse en la ruta deseada. Las librerías de Waspmote están integradas en esta carpeta, estando disponibles al ejecutar el compilador.

Para actualizar a futuras versiones de las librerías, se debe modificar la carpeta “WaspV10” dentro de la carpeta ‘hardware/cores’ que se encuentra dentro de la carpeta anteriormente descomprimida.

Windows

El Waspmote se puede programar utilizando el sistema operativo Windows. A continuación se explica el proceso a seguir para instalar Arduino en una compuatdora con Windows XP SP3.

1.- Descargando Waspmote

El primer paso es descargar el archivo que contiene el entorno y las librerías. Este archivo se puede encontrar en:

http://www.libelium.com/development/waspmote

2.- Instalando Waspmote

El siguiente paso es descomprimir el archivo descargado en la carpeta elegida. En esta carpeta se encuentran los drivers que serán necesarios en el siguiente paso para instalar el USB y el conversor FTDI.

3.- Conectando una placa Waspmote

Al conectar una placa Waspmote mediante el conector mini-USB, aparecerá un mensaje de ‘Nuevo dispositivo encontrado’. Se abrirá una ventana para la instalación de dicho dispositivo.

95

A continuación debemos seleccionar la ruta en donde se encuentran los controladores para el conversor FTDI. Estos controladores se encuentran en la carpeta donde hemos descomprimido Waspmote.

Se procederá a la instalación de los controladores del conversor FTDI, mostrando un siguiente mensaje cuando se haya finalizado la misma.

Una vez finalizada esta instalación, aparecerá un mensaje de un ‘Nuevo dispositivo encontrado’ referente al USB. Se debe seguir el mismo proceso que hemos llevado a cabo para el conversor FTDI, seleccionando las mismas opciones en todas las ventanas. La ruta para los drivers es la misma que la especificada anteriormente.

Una vez finalizada esta instalación, aparecerá un mensaje indicando la correcta instalación del USB.

Una vez instalados correctamente ambos dispositivos, aparecerá en el ‘Administrador de dispositivos’ el puerto en el que se ha conectado la placa Waspmote.

II.13 Configuración de los módulos XBee

Como se había mencionado, antes de comenzar a montar los módulos XBee tanto en la tarjeta Waspmote así como en el Gateway, es necesario configurar cada XBee según sea el caso.

Los módulos XBee que serán montados en las tarjetas Waspmote deberán tener los siguientes parámetros configurados para su correcto funcionamiento en el envío de tramas de datos al módulo XBee montado en el Gateway.

Con ayuda de X-CTU configuramos lo siguiente:

Pc Settings

- Com Port Setup

Baud [ 38400 ]

96

Flow Control [ None ]

Data bits [ 8 ]

Parity [ None ]

Stop bits [ 1 ]

- Host Setup

Enable API [ activado ]

Modem Configuration

- Networking & Security

CH [ Channel - Deberá ser el mismo en todos los XBee tanto de Gateway así como del Waspmote]

ID [PAN ID - Deberá ser el mismo número de 4 cifras en todos los XBee]

- Serial Interfacing BD [ 5 - 38400 ] AP [ 2 – API ENABLED W/PPP ]

Una vez cambiados los parámetros anteriores, seleccionamos la pestaña Modem Configuration y damos click en el botón “write”, de esta manera se modificarán internamente los valores del XBee.

Los módulos XBee que serán montados en los gateway deberán ser configurados con los siguientes parámetros:

97

Pc Settings

- Com Port Setup

Baud [ 38400 ]

Flow Control [ None ]

Data bits [ 8 ]

Parity [ None ]

Stop bits [ 1 ]

- Host Setup

Enable API [ activado ]

Modem Configuration

- Networking & Security

CH [ Channel - Deberá ser el mismo en todos los XBee tanto de Gateway así como del Waspmote]

ID [PAN ID - Deberá ser el mismo número de 4 cifras en todos los XBee]

- Serial Interfacing BD [ 5 - 38400 ] AP [ 0 – API DISABLED ]

Una vez cambiados los parámetros anteriores, seleccionamos la pestaña Modem Configuration y damos click en el botón “write” de esta manera se modificarán internamente los valores del XBee

II.14 Procedimiento para cargar un código

• Revisar el estado de la batería.• Instalación de drivers• Conectar antenas a los motes Waspmote y al Waspmote Gateway. • Conectar el Waspmote Gateway al puerto USB • Abrir el monitor de puerto serie que hemos elegido para recibir las

tramas (conectarse al puerto USB 38400 bps, 8bits por trama

• Conectar las baterías a los motes Waspmote.• Encender los motes Waspmote poniendo el switch en posición ON.• Si el código utiliza otros módulos,

Waspmote todos los dispositivos a utilizarse (Xcomunicación, etc.).

Figura

II.14.1 IDE- Waspmote

Para utilizar el compilador IDE ejecutable que se llama Waspmote, que se encuentra en la carpeta donde hemos instalado el compilador.

98

edimiento para cargar un código

Revisar el estado de la batería. drivers / software en la computadora.

Conectar antenas a los motes Waspmote y al Waspmote Gateway. Conectar el Waspmote Gateway al puerto USB de la computadoraAbrir el monitor de puerto serie que hemos elegido para recibir las tramas (conectarse al puerto USB correspondiente con los datos:

por trama, 1 bit de stop, sin paridad). Conectar las baterías a los motes Waspmote.

motes Waspmote poniendo el switch en posición ON.Si el código utiliza otros módulos, a continuación, desconect

aspmote todos los dispositivos a utilizarse (XBee, módulos de comunicación, etc.).

51. Botón de encendido/apagado

Waspmote

Para utilizar el compilador IDE - Waspmote debemos ejecutar el script ejecutable que se llama Waspmote, que se encuentra en la carpeta donde hemos instalado el compilador.

Conectar antenas a los motes Waspmote y al Waspmote Gateway. de la computadora.

Abrir el monitor de puerto serie que hemos elegido para recibir las correspondiente con los datos:

motes Waspmote poniendo el switch en posición ON. a continuación, desconecte del

ee, módulos de

Waspmote debemos ejecutar el script ejecutable que se llama Waspmote, que se encuentra en la carpeta donde

99

Waspmote se divide en 4 partes fundamentales que se pueden ver en la siguiente figura.

Figura 52. Ventana del entorno IDE

- La primera parte es el menú donde se permite la configuración de parámetros generales como el puerto serie seleccionado.

- La segunda parte es un menú de botones que permiten compilar, abrir, guardar o cargar en la placa el código seleccionado.

- La tercera parte contiene el código principal que se cargará en el Waspmote y la cuarta parte nos muestra los posibles errores de compilación o carga, así como los mensajes de éxito si el proceso se lleva a cabo satisfactoriamente.

El panel de botones del IDE - Waspmote permite realizar ciertas funciones como abrir un código previamente guardado, crear uno nuevo o cargar el código en la placa. En la siguiente figura se puede ver el panel y las funciones de cada botón.

100

Figura 53. Botones de ejecución del IDE

Una vez que se ha abierto correctamente el programa debemos cambiar la configuración para que se carguen correctamente los programas en el Waspmote.

En la pestaña ‘Tools/Board’ se debe seleccionar la placa Waspmote. Para ello debemos seleccionar la opción ‘waspmote-api-v.024’.

En la pestaña ‘Tools/Serial Port’ se debe seleccionar el USB en el que se ha conectado el Waspmote a la computadora.

Figura

Una vez que tenemos configurados estos 2 parámetrosun programa en el Waspmote. Para explicar el proceso vamos a hacerlo con el programa que hemos realizado para codatos desde Waspmote por medio de X

101

54. Configuración del entorno IDE

Una vez que tenemos configurados estos 2 parámetros, podemos cargar Waspmote. Para explicar el proceso vamos a hacerlo

el programa que hemos realizado para comenzar a enviar desde Waspmote por medio de XBee con protocolo 802.15.4

podemos cargar Waspmote. Para explicar el proceso vamos a hacerlo

menzar a enviar tramas de ee con protocolo 802.15.4.

102

El código realizado es el que se muestra a continuación: /* Proyecto Terminal 2 Martinez De La Cruz Miguel Angel Cruz Torres Omar */ packetXBee* paq_sent; int8_t state=0; long previous=0; char aux[200]; char* macHigh=" "; char* macLow=" "; #define key_access "LIBELIUM" uint8_t direccion[8]={0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF}; void setup(){ // Store key access in EEPROM for(int i=0;i<8;i++){ Utils.writeEEPROM(i+107,key_access[i]); } RTC.ON(); ACC.ON(); XBee.setMode(XBEE_ON); XBee.begin(9600); delay(1000); XBee.print("+++"); delay(2000); XBee.println("ATBD5,AP2,WR,CN");

103

delay(150); XBee.setMode(XBEE_OFF); XBee.close(); Utils.setLED(LED0, LED_ON); Utils.setLED(LED1, LED_ON); delay(5000); Utils.setLED(LED0, LED_OFF); Utils.setLED(LED1, LED_OFF); for (int i=0;i<24;i++){ Utils.blinkLEDs(125); } // Inicia la libreria XBee 802.15.4 xbee802.init(XBEE_802_15_4,FREQ2_4G,NORMAL); // Activamos Xbee xbee802.ON(); // Obtenemos el valor de la MAC del Xbee delay(500); int counter = 0; while(xbee802.getOwnMac()==1&&counter<4){ xbee802.getOwnMac(); counter++; } Utils.hex2str(xbee802.sourceMacHigh,macHigh,4);// Convierte el valor hexadecimal (xbee802.sourceMacHigh) a una cadena (macHigh) de 4 digitos Utils.hex2str(xbee802.sourceMacLow,macLow,4);// Convierte el valor hexadecimal (xbee802.sourceMacHigh) a una cadena (macHigh) de 4 digitos } void loop(){

104

RTC.ON(); float temperature = RTC.getTemperature(); char temp[6]; Utils.float2String(temperature, temp, 2);// Convierte el valor flotante (temperature) a una cadena (temp) (con 2 decimales) sprintf(aux,"-mac:%s%s -x:%d,y:%d,z:%d -temp:%s -bat: %d%c%c% ",macHigh,macLow,ACC.getX(),ACC.getY(),ACC.getZ(),temp,PWR.getBatteryLevel(),'%','\n \n'); paq_sent=(packetXBee*) calloc(1,sizeof(packetXBee)); paq_sent->mode=BROADCAST; paq_sent->MY_known=0; paq_sent->packetID=0x52; paq_sent->opt=0; xbee802.hops=0; xbee802.setOriginParams(paq_sent,MAC_TYPE); xbee802.setDestinationParams(paq_sent, direccion, aux, MAC_TYPE, DATA_ABSOLUTE); xbee802.sendXBee(paq_sent); free(paq_sent); paq_sent = NULL; delay(1000); } El siguiente paso es configurar la carpeta donde vamos a guardar los programas realizados. En Waspmote esta carpeta se llama ‘sketchbook’ y se puede configurar accediendo a la pestaña ‘File/Preferences’. Al seleccionar esta pestaña se abrirá una nueva ventana donde indicaremos la localización del sketchbook. Una vez indicada la ruta de la carpeta sketchbook debemos guardar el programa de prueba que hemos descargado en dicha carpeta.

105

Debemos cerrar Waspmote para que los cambios y el nuevo programa que hemos guardado en la carpeta del sketchbook se reflejen en Waspmote.

Volvemos a ejecutar Waspmote y abrimos el programa de prueba realizado, dando click en el botón ‘Open’.

Seleccionamos el archivo ‘wasp_start_program_full_802_v1_2.pde’ en la ruta donde lo hayamos descomprimido y lo abrimos.

El siguiente paso es cargar el programa en el Waspmote. Para ello debemos tener conectado el Waspmote mediante el USB a la computadora y seleccionar el botón ‘upload’. Al dar click en este botón, se empezará a compilar el programa. Cuando el programa se ha compilado correctamente aparece un mensaje en la parte inferior de la ventana indicando este suceso. Si por el contrario se produce algún fallo, aparecerán mensajes de color rojo indicando los fallos en el código. Cuando se ha terminado de compilar, se procede a cargar el código en Waspmote.

Cuando el programa se haya cargado correctamente, aparece un mensaje en la ventana de Waspmote indicando ‘Done Uploading’. Si por el contrario se produce algún problema durante la carga aparecerán mensajes de color rojo indicando los fallos durante la carga. *Nota 1: El módulo XBee debe estar desconectado antes de cargar un programa en Waspmote.

Figura 55

Una vez cargado el código en la tarjeta Waspmote lo apagamos y desconectamos el cable USB802.15.4 que anteriormente había sido configurado para la tarjeta Waspmote.

Encendemos la tarjeta y esperamos que el microcontrolador comience a correr el programa.

Ahora montamos el módulo XGateway y conectamos el Gateway al puerto USB de la computadora.

106

55. Aviso de carga exitosa del código

Una vez cargado el código en la tarjeta Waspmote lo apagamos y desconectamos el cable USB. A continuación conectamos el módulo X802.15.4 que anteriormente había sido configurado para la tarjeta

Encendemos la tarjeta y esperamos que el microcontrolador comience a

Ahora montamos el módulo XBee configurado en este caso para el conectamos el Gateway al puerto USB de la computadora.

Una vez cargado el código en la tarjeta Waspmote lo apagamos y el módulo XBee

802.15.4 que anteriormente había sido configurado para la tarjeta

Encendemos la tarjeta y esperamos que el microcontrolador comience a

ee configurado en este caso para el conectamos el Gateway al puerto USB de la computadora.

107

Dentro del IDE seleccionamos el icono de Serial Monitor con Baud Rate de 38400. Si todo está bien, en la terminal se desplegará la siguiente pantalla.

Figura 56. Datos recibidos de las tarjetas waspmotes

En el serial monitor podemos ver cómo se despliegan los datos enviados por la tarjeta Waspmote, enseguida describimos los datos desplegados columna por columna.

108

Figura 57. Contenido de los datos desplegados

En la primera columna (blanca) se muestra el identificador asociado a cada tarjeta, esto con el fin de poder distinguir los datos enviados desde cada tarjeta al gateway.

En la segunda columna (rojo)se muestra la dirección mac de cada tarjeta XBee montada en las tarjetas Waspmote, la dirección MAC es una forma más de poder identificar de qué tarjeta estamos obteniendo los datos deseados.

En la tercera columna se muestran los datos relacionados al acelerómetro, donde se tienen los ejes X, Y y Z.

En la cuarta columna (verde) está contenido el valor relacionado a la temperatura del medio en el que se encuentra ubicada la tarjeta. Es

109

importante mencionar que independiente a la tarjeta de eventos que se puede montar al Waspmote para poder colocar y medir temperatura, la propia tarjeta Waspmote trae un sensor de temperatura incorporado.

En la quinta columna se muestra el valor de carga de la batería en cada tarjeta, este valor está en dado en porcentaje (%) no en volts.

Para cada tarjeta Waspmote se desplegará una línea de datos como la que se muestra en la imagen anterior, en la ventana del serial monitor se mostrarán de manera ordenada estos datos.

110

CONCLUSIONES

En el transcurso de la investigación y elaboración de este proyecto, nos dimos cuenta del gran avance que han tenido las comunicaciones alámbricas e inalámbricas en el ámbito laboral y día a día en la vida cotidiana. Las redes de sensores inalámbricas han sido de gran ayuda en el campo tecnológico, ya que estas redes se acomodan perfectamente a los requerimientos para un estudio de monitorización en diferentes campos laborales, ya sea en campo abierto, en la ciudad, en edificios, hogares, campos de cultivo, por mencionar algunos.

Una de las mayores ventajas de las tarjetas que hemos utilizado en este proyecto es el gran alcance que pueden llegar a tener en cuanto a aplicaciones en la vida diaria y en diferentes ámbitos, además de que estamos hablando de tecnología que nos ahorra mucho trabajo de infraestructura y consumo de energía. Estas tarjetas son capaces de estar trabajando hasta un año completo sin necesidad de estar recargando la batería.

La empresa Libelium nos ofrece una amplia variedad de herramientas para el desarrollo de aplicaciones según nuestras propias necesidades. Si bien no es tan sencillo comenzar a envolverse en el ambiente de programación, una vez que se comprende el entorno es más sencillo comenzar a desarrollar aplicaciones en las tarjetas.

En este proyecto se llevó a cabo la implementación de una red de sensores inalámbricos con equipos Waspmotes y se logró alcanzar el principal objetivo que era lograr hacer funcionar correctamente las tarjetas, es decir:

Se deseaba poder comunicar las tarjetas XBee en primera instancia para poder tener la certeza de que funcionaban y así realizar el envió y recepción de datos.

111

Se deseaba monitorizar la temperatura en un medio cualquiera y este dato así como datos del acelerómetro enviarlos a través de las tarjetas inalámbricas XBee a un receptor Gateway.

Creemos que si se desea seguir trabajando con la tarjetas el presente trabajo es una muy buena referencia para comenzar en el tema y así tener una noción de qué es lo que se va a usar y cómo se debe usar.

112

3.13 REFERENCIAS

[1]. Andreas F. Molisch, “Wireless Communications,” 2nd. Ed: John Wiley & Sons, 2011, ISBN: 978-0-470-74187-0 [2]. Libelium, ”Waspmote Datasheet,” Junio 2013.[Online] . Disponible: http://www.libelium.com/development/waspmote/documentation/

[3]. Holger Karl, Andreas Willig, “Protocols and Arquitectures for Wireless Sensor Network” . Ed: John Wiley, ISBN-13 978-0-470-09510-2 (HB) ISBN-10 0-470-09510-5 (HB)

[4]. Kazem Sohraby, Daniel Minoli, Taieb Znati,”Wireless Sensor Network”, Ed: John Wiley, 2007, ISBN 978-0-471-74300-2

[5]. Scribd, http://es.scribd.com/doc/111028643/6/Ventajas-y-Desventajas-en-

WSN

[6].EsLaRed,http://www.eslared.net/walcs/walc2010/material/track1/Introduccion%20a%20WSN.pdf

[7]. redescontent, http://redescontent.blogspot.mx/2012/07/redes-de-sensores-inalambricos-wsn.html

[8]. National instruments, http://www.ni.com/white-paper/7142/es/

[9]. Libelium,“Waspmote Quickstar Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[10]. Libelium,“Waspmote Quickstar Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[11]. Libelium,“Zigbee Networking Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[12]. Libelium,“Zigbee Tutoorial” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[13]. Libelium,“Programming Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[14]. Libelium,“IDE Use Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

113

[15]. Libelium,“Accelerometer Programming Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/

[16]. Libelium,“RTC Programming Guide” .[Online] Disponible: http://www.libelium.com/development/waspmote/documentation/