Diseno de un Concentrador conCapacidades de Interoperabilidad
para Redes Inalambricas de Sensores
OSCAR JAVIER IDROBO LOPEZ
ALEJANDRO TORRES TORO
Universidad Distrital Francisco Jose de Caldas
Facultad de Ingenierıa, Ingenierıa Electronica,
Bogota, Colombia
2017
Diseno de un Concentrador conCapacidades de Interoperabilidad
para Redes Inalambricas de Sensores
OSCAR JAVIER IDROBO LOPEZ
ALEJANDRO TORRES TORO
Trabajo de grado presentado como requisito parcial para optar al tıtulo de:
Ingeniero Electronico
Director: Ing. GUSTAVO ADOLFO PUERTO LEGUIZAMON, Ph.D.
Lınea de Investigacion:
Redes de Sensores
Grupo de Investigacion:
Grupo de Radiacion Electromagnetica y Comunicaciones Opticas
Universidad Distrital Francisco Jose de Caldas
Facultad de Ingenierıa, Ingenierıa Electronica,
Bogota, Colombia
2017
Dedicatoria
A mi familia por su apoyo incondicional y
creer en mi, a mi hermano Julian por su
berraquera y pundonor, a nia por su lealtad
y companıa... Y a todas las personas que
contribuyeron en mi formacion.
Oscar Javier Idrobo Lopez
A Dios, porque nada es posible sin su volun-
tad. A mis padres y hermano, porque han
estado incondicionalmente en todas mis me-
tas propuestas (5 en 1) y siempre han creıdo
en mi. A mis amigos, porque le dan felicidad
a mi vida y la hacen mas facil. Y a todas
las personas que han hecho parte del camino.
Alejandro Torres Toro
Agradecimientos
A nuestro director Gustavo Puerto Leguizamon, por ayudarnos a cumplir con el objetivo
del proyecto, su disposicion, ensenanza y guıa...
A las familias Idrobo Lopez y Torres Toro, por el apoyo incondicional, sacrificio, disposicion
y paciencia...
A la Universidad Distrital Francisco Jose de Caldas, por la posibilidad de formacion academi-
ca que nos ofrecieron dentro y fuera de la institucion...
A todos los profesores del proyecto curricular de Ingenierıa Electronica, por el aporte en
nuestra formacion como profesionales...
A nuestros companeros de clases, por el trabajo en equipo y los momentos vividos...
Resumen
En el presente trabajo se disena y desarrolla un dispositivo con capacidades de interope-
rabilidad para dos estandares de comunicacion, utilizados en redes inalambricas de sensores.
Este, trabaja de forma autonoma frente a las caracterısticas que ofrece cada red y tiene co-
mo fin solucionar los problemas de incompatibilidad, con lo cual promete ser una iniciativa
en el ambito del Internet de las Cosas. El dispositivo lleva por nombre Concentrador IRIS
(Concentrador Interoperable para Redes Inalambricas de Sensores), es desarrollado sobre la
plataforma Raspberry Pi 3, bajo el lenguaje python e interopera los estandares wifi y ZigBee.
En el diseno del concentrador se evaluan diferentes contextos entre los cuales se destacan el
estado de la red y acceso a la informacion en forma remota dentro de una subred, convir-
tiendolo en un producto competitivo y de bajo costo en el mercado nacional e internacional,
comparado con los pocos productos que existen en el mercado con funcionalidades similares.
Palabras clave: Redes de sensores, comunicacion inalambrica, Internet de las Cosas,
concentrador, wifi, ZigBee, python.
Abstract
In this thesis is designed and developed a device with interoperability capabilities for two
communication standards used in sensor wireless networks. It works autonomously in front
of the characteristics offered by each network and its aims is to solve incompatibility issues,
which promises to be an initiative in the Internet of Things. The device’s name is Concentra-
dor IRIS (Interoperable Gateway for Wireless Sensor Networks, or in spanish, Concentrador
Interoperable para Redes Inalambricas de Sensores), is developed on a Raspberry Pi 3 plat-
form, under python language and interoperates wifi and ZigBee. In the gateway design,
different contexts were evaluated, among which stan out the network status and access to
information remotely within a subnet, making it a competitive and low-cost product in na-
tional and international market, compared with some products that exist in the market with
similar functionalities.
Keywords: Sensor networks, wireless communication, Internet of things, gateway, wifi,
ZigBee, python.
Contenido
Agradecimientos VII
Resumen IX
Lista de figuras 3
Lista de tablas 5
1 Generalidades 7
1.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Estandares de Comunicacion 11
2.1 Redes inalambricas de sensores . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Componentes de una red inalambrica de sensores . . . . . . . . . . . 11
2.2 Redes inalambricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 WPAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Consideraciones generales para sistemas interoperables en redes inalambri-
cas de sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Estandares de comunicacion inalambrica . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1.1 Caracterısticas tecnicas . . . . . . . . . . . . . . . . . . . . 14
2.3.1.2 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1.3 Versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1.4 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2.1 Caracterısticas tecnicas . . . . . . . . . . . . . . . . . . . . 24
2.3.2.2 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.2.3 Versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
xii Contenido
2.3.2.4 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3 Near Field Communication (NFC) . . . . . . . . . . . . . . . . . . . 30
2.3.3.1 Caracterısticas tecnicas . . . . . . . . . . . . . . . . . . . . 31
2.3.3.2 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.3.3 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.4 Wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.4.1 Caracterısticas tecnicas . . . . . . . . . . . . . . . . . . . . 36
2.3.4.2 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.4.3 Versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.4.4 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.5 Comparacion entre los diferentes estandares de comunicacion inalambrica 44
3 Plataformas Hardware 46
3.0.1 Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.0.2 Arduino Tian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.0.3 BeagleBone Black . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.0.4 LinkIt One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.0.5 Comparacion entre las plataformas disponibles en el mercado . . . . . 51
4 Desarrollo del Sistema de Comunicacion 53
4.1 Estandar de comunicacion y modulos. . . . . . . . . . . . . . . . . . . . . . . 53
4.1.1 Wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.1.1 Caracterısticas basicas del modulo . . . . . . . . . . . . . . 54
4.1.1.2 Modos de operacion . . . . . . . . . . . . . . . . . . . . . . 55
4.1.2 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1.2.1 Caracterısticas basicas del modulo . . . . . . . . . . . . . . 56
4.1.2.2 Modos de operacion . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Desarrollo del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Configuracion de la plataforma . . . . . . . . . . . . . . . . . . . . . 58
4.2.1.1 Punto de acceso wifi . . . . . . . . . . . . . . . . . . . . . . 59
4.2.1.2 PyQt4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.1.3 Manejo de hilos . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.1.4 Lectura de datos wifi - Sockets . . . . . . . . . . . . . . . . 60
4.2.1.5 Lectura de datos ZigBee - Puerto Serial . . . . . . . . . . . 63
4.2.1.6 Configuracion remota nodos wifi . . . . . . . . . . . . . . . 64
4.2.1.7 Configuracion remota nodos ZigBee . . . . . . . . . . . . . . 65
4.2.1.8 Informacion de red wifi . . . . . . . . . . . . . . . . . . . . . 66
4.2.1.9 Informacion de red ZigBee . . . . . . . . . . . . . . . . . . . 67
4.2.1.10 Grafica datos wifi y ZigBee . . . . . . . . . . . . . . . . . . 69
4.2.1.11 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Contenido 1
4.2.2 Configuracion modulo wifi . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.3 Configuracion modulo ZigBee . . . . . . . . . . . . . . . . . . . . . . 74
4.2.4 Framework web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2.4.1 Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2.5 Despliegue del desarrollo web . . . . . . . . . . . . . . . . . . . . . . 81
4.2.6 Estructura del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5 Protocolo de Pruebas 84
5.1 Definicion de variables a sensar . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.1 Red wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.2 Red ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2 Recoleccion de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3 Visualizacion de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.1 Aplicacion de escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 Aplicacion web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.4 Configuracion remota red de sensado . . . . . . . . . . . . . . . . . . . . . . 91
5.5 Informacion de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.6 Informacion adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.7 Caracterısticas de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . 94
6 Comparacion entre Concentrador IRIS y Plataformas existentes 95
7 Conclusiones 99
8 Trabajos Futuros 101
Lista de Acronimos 102
Bibliografıa 105
Lista de Figuras
2-1. Partes del nodo Wireless Sensor Network (WSN). [36] . . . . . . . . . . . . . 12
2-2. Stack de Protocolos Bluetooth. [1] . . . . . . . . . . . . . . . . . . . . . . . . 16
2-3. Capas implementadas por Estandar ZigBee. [3] . . . . . . . . . . . . . . . . . 20
2-4. Ejemplo perfil de aplicacion estandar ZigBee. [12] . . . . . . . . . . . . . . . 23
2-5. Arquitectura 802.11. a) Modo Infraestructura, b) Modo Ad - Hoc. [47] . . . . 36
2-6. Protocolos 802.11. [45] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3-1. Raspberry pi 3 - modelo B. [51] . . . . . . . . . . . . . . . . . . . . . . . . . 47
3-2. Arduino Tian. [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3-3. BeagleBone Black. [48] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3-4. LinkIt One. [32] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4-1. Modulo ESP-12E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4-2. Kit de desarrollo NodeMCU - ESP 12E. . . . . . . . . . . . . . . . . . . . . 55
4-3. Modulo XBee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4-4. Adaptador y Modulo XBee. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4-5. Diagrama de flujo Lectura de datos wifi. . . . . . . . . . . . . . . . . . . . . 62
4-6. Diagrama de flujo Lectura de datos ZigBee. . . . . . . . . . . . . . . . . . . 63
4-7. Diagrama de flujo Configuracion remota nodos wifi. . . . . . . . . . . . . . . 64
4-8. Diagrama de flujo Configuracion remota nodos ZigBee. . . . . . . . . . . . . 65
4-9. Diagrama de flujo Informacion de red wifi. . . . . . . . . . . . . . . . . . . . 67
4-10.Diagrama de flujo Informacion de red ZigBee. . . . . . . . . . . . . . . . . . 68
4-11.Diagrama de flujo Grafica datos. . . . . . . . . . . . . . . . . . . . . . . . . . 69
4-12.Diagrama de flujo Configuracion modulo wifi. . . . . . . . . . . . . . . . . . 73
4-13.Configuracion Nodo ZigBee - Parametros Basicos. . . . . . . . . . . . . . . . 75
4-14.Diagrama de flujo Inicio Sesion. . . . . . . . . . . . . . . . . . . . . . . . . . 78
4-15.Diagrama de flujo Visualizacion informacion de redes. . . . . . . . . . . . . . 79
4-16.Diagrama de flujo Cerrar Sesion. . . . . . . . . . . . . . . . . . . . . . . . . 79
4-17.Diagrama de flujo Actualizar Datos. . . . . . . . . . . . . . . . . . . . . . . . 80
4-18.Estructura del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4-19.Diagrama de comunicacion estandar wifi. . . . . . . . . . . . . . . . . . . . . 83
5-1. Sensor DHT11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5-2. Sensor MQ-135. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4 Lista de Figuras
5-3. Sensor SW-420. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5-4. Pagina principal concentrador IRIS. . . . . . . . . . . . . . . . . . . . . . . . 87
5-5. Visualizacion general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5-6. Visualizacion grafica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5-7. Visualizacion remota datos wifi - Aplicacion web. . . . . . . . . . . . . . . . 90
5-8. Visualizacion remota datos ZigBee - Aplicacion web. . . . . . . . . . . . . . 90
5-9. Configuracion remota nodos wifi. . . . . . . . . . . . . . . . . . . . . . . . . 91
5-10.Configuracion remota nodos ZigBee. . . . . . . . . . . . . . . . . . . . . . . . 92
5-11.Informacion de redes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5-12.Informacion de contacto aplicacion de escritorio. . . . . . . . . . . . . . . . . 93
5-13.Informacion de contacto aplicacion web. . . . . . . . . . . . . . . . . . . . . 93
Lista de Tablas
2-1. Especificaciones de dispositivos Bluetooth segun su clase. [9] . . . . . . . . . 15
2-2. Velocidad de Transmision segun su version. [10] . . . . . . . . . . . . . . . . 15
2-3. Frecuencias de operacion y velocidad de transmision estandar ZigBee. [12] . . 24
2-4. Distancia de operacion en relacion a la potencia y velocidad de transmision
estandar ZigBee. [34] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2-5. Versiones y contribuciones estandar ZigBee. [12],[3] . . . . . . . . . . . . . . 29
2-6. Comparacion entre diferentes estandares de comunicacion inalambrica. . . . 45
3-1. Tipos de Raspberry Pi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3-2. Comparacion entre diferentes plataformas. . . . . . . . . . . . . . . . . . . . 51
4-1. Relacion URL - VIEW - TEMPLATES. . . . . . . . . . . . . . . . . . . . . 80
5-1. Frecuencia, potencia y distancia soportada por concentrador IRIS. . . . . . . 94
6-1. Concentrador IRIS vs. Meshlium Xtreme. . . . . . . . . . . . . . . . . . . . . 96
6-2. Concentrador de diferentes estandares de comunicacion. . . . . . . . . . . . . 96
6-3. Escanear diferentes dispositivos. . . . . . . . . . . . . . . . . . . . . . . . . . 97
1 Generalidades
1.1. Introduccion
El mundo de las comunicaciones evoluciona cada dıa, desarrollando nuevas tecnologıas que
permiten solucionar problemas particulares de cada ambiente, la unificacion de los sistemas
de comunicacion e interoperabilidad de los estandares y protocolos, permite obtener mejoras
en procesamiento de datos y escalabilidad, ademas, de provecho en arquitectura de red actual.
Las redes inalambricas de sensores (WSN) de manera general, estan compuestas por nodos
fuentes que tienen como funcion principal capturar informacion del ambiente, por su parte,
el control de trafico y la gestion del camino que recorre la informacion para llegar a diferentes
puntos de la red, se realiza mediante un router, y al ser generalmente un sistema centralizado,
cada WSN cuenta con un concentrador, el cual permite procesar, administrar y gestionar
los datos adquiridos por los nodos fuentes. Una de las principales diferencias de las WSN
con respecto a las redes convencionales se encuentra en el consumo de energıa, capacidad de
procesamiento y memoria [44], lo cual es limitado y es una de las razones por las que surgen
tecnologıas que funcionan de diferente forma.
En el contexto de las WSNs, el concepto de interoperabilidad se ha trabajado desde el enfo-
que de gestion de datos [24], conexion [43], capa de aplicacion [37], y vinculacion con redes
TCP/IP [26], lo cual con el advenimiento del Internet de las cosas, evidencia la necesidad
de crear sistemas heterogeneos que cumplan con los requerimientos de esta nueva tendencia,
que tiene como singularidad, la vinculacion de multiples tecnologıas. Ahora bien, caracterısti-
cas como [28] distancia de operacion, velocidad de transmision, tiempo de establecimiento,
fiabilidad de la conexion, ademas de robustez ante interferencias, definen la estructura y
tecnologıa de la WSN de una aplicacion particular, razon por la cual en primera instancia
se identificaran los estandares de comunicacion de mayor uso en WSN para posteriormente
construir una plataforma que permita la implementacion del concentrador con menor costo
y alta compatibilidad.
8 1 Generalidades
1.2. Justificacion
El uso de tecnologıas inalambricas para recolectar informacion de un entorno, esta creciendo
de manera exponencial en los ultimos anos, cada vez son mas los dispositivos inalambricos
que permiten invadir en menor proporcion el ambiente a sensar, ademas, de cubrir un sector
mucho mas amplio que si se utilizara una red convencional. A la fecha, se utilizan WSN
que involucran tecnologıas como NFC, Wifi, Bluetooth, ZigBee, entre otras, que permiten de
acuerdo a la necesidad del sistema, privilegiar ciertas caracterısticas. Con base en lo anterior
y de acuerdo al contexto, una plataforma interoperable se hace participe en el desarrollo de:
Sistemas autonomos y robotica: Permitiendo adquirir informacion mediante diversas
tecnologıas en multiples entornos, para ası, crear sistemas que puedan tomar decisiones.
Sistemas de seguridad: Involucrando y unificando en un concentrador caracterısticas
como control de acceso, vigilancia y medicion de variables meteorologicas, gases, entre
otros, que permitan implementar soluciones integrales en vigilancia.
Control de trafico: Logrando implementar modelos matematicos que optimicen el trafi-
co y para lo cual, se hace uso de variables como cantidad de usuarios del transporte
publico, tiempo de llegada de vehıculos, cantidad de vehıculos en la vıa, entre otros,
por lo cual, debido a la dinamica del sistema de transporte, se implementan diversas
tecnologıas que permiten acceder a esta informacion.
Procesos industriales: Debido a que las redes industriales utilizan las WSN como medio
de adquisicion de informacion para ejecutar los procesos automatizados, en el merca-
do existen multiples opciones que permiten cada dıa optimizar los procesos mediante
nuevas formas de adquisicion de datos, por lo cual, una plataforma interoperable sera
fundamental para implementar modificaciones en el proceso y aumentar la escalabili-
dad.
Internet de las cosas: Articulando las tecnologıas que permiten adquirir los datos ne-
cesarios para controlar los dispositivos de nuestro entorno: oficina, trabajo y hogar.
De esta forma, una plataforma interoperable hace parte fundamental de las redes inalambri-
cas de sensores, ya que integra los diferentes medios que existen para adquirir informacion
y a futuro debera implementarse para aunar las tecnologıas que cada dıa emergen.
1.3 Planteamiento del problema 9
1.3. Planteamiento del problema
Los estandares y protocolos de las WSNs en su implementacion garantizan seguridad, cali-
dad y consistencia. Un estandar es especificado de tal forma que permita interoperabilidad
con otra tecnologıa o servicio, sin embargo, en algunos contextos, surge la necesidad de uti-
lizar diferentes estandares para comunicar dispositivos que tienen su propia arquitectura y
protocolo, este proceso involucra la adquisicion de nuevos dispositivos y generalmente recons-
truccion de la red de comunicacion, ademas, de aumentar los costos en hardware necesarios
para manejar cada una de las tecnologıas. En los ultimos anos se desarrolla investigacion en
el ambito de heterogeneidad e interoperabilidad de estos sistemas, [23] [35] [37] [43], buscan-
do solucionar la necesidad de compatibilidad; de acuerdo a lo anterior, se plantea la siguiente
pregunta de investigacion:
¿Como solucionar los problemas de interoperabilidad en sistemas de
comunicacion inalambrica de sensores?
De esta manera se pretende implementar una plataforma concentradora con capacidades de
interoperabilidad, que permita el acceso a multiples tecnologıas, y lo cual constituya una
ventaja para la integracion de diferentes arquitecturas de redes inalambricas de sensores.
10 1 Generalidades
1.4. Objetivos
1.4.1. Objetivo General
Implementar un dispositivo programable que permita la interoperacion de diferentes tecno-
logıas de comunicacion inalambricas de sensores
1.4.2. Objetivos Especıficos
Determinar los estandares de comunicacion inalambricos de mayor uso en redes de
sensores
Identificar posibles plataformas hardware donde se pueden implementar estos estanda-
res de comunicacion
Implementar el sistema de comunicacion en la plataforma que permita la comunicacion
unidireccional de por lo menos 2 diferentes estandares de comunicacion
Desarrollar un protocolo de pruebas que permita corroborar el funcionamiento del
dispositivo.
2 Estandares de Comunicacion
Este capıtulo no pretende ser una fuente teorica avanzada, en su lugar, tendra como finalidad
analizar y comprender el funcionamiento de los estandares de comunicacion inalambrica mas
utilizados en redes de sensores, para posteriormente hacer una comparacion y elegir los dos
estandares con los que se va a desarrollar el proyecto.
2.1. Redes inalambricas de sensores
Las redes inalambricas de sensores (WSN) estan conformadas por dispositivos autonomos
distribuidos, los cuales monitorean condiciones fısicas o ambientales por medio de sensores.
Estas redes se basan en dispositivos de bajo costo y consumo, cuyo objetivo es la adquisicion
y el tratamiento de datos para obtener informacion de su entorno, ademas, de procesar y
comunicar estos datos a traves de enlaces inalambricos hasta una central de coordinacion
o un nodo central. Tradicionalmente se usaban cables para interconectar cada uno de los
nodos, pero sus caracterısticas eran altos costos de instalacion y mantenimiento, ademas de
baja escalabilidad, es por esto que las tecnologıas inalambricas han tenido tanto exito, pues
solucionan los problemas de la tecnologıa tradicional, ofreciendo nuevas caracterısticas como
alta resolucion, medicion en muchos lugares al mismo tiempo, ofrecen apoyo a la movilidad
de equipos, anade redundancia, entre otros; una de las mayores ventajas de las WSNs es que
permiten monitorear cualquier lugar por inaccesible que parezca [4].
2.1.1. Componentes de una red inalambrica de sensores
Una red de inalambrica de sensores consiste en un numero de sensores distribuidos espacial-
mente y un centro de control. Cada sensor obtiene informacion de su entorno convirtiendo
esta informacion en senales electricas, posteriormente el nodo del sensor procesa esta infor-
macion si es necesario y la direcciona al centro de control a traves de un gateway por medio
de una red inalambrica basada en algun estandar especıfico [5].
Los nodos o tambien llamados motes, son dispositivos pequenos y autonomos que funcionan
con baterıas similares a la de los telefonos celulares, pero que permiten ser cargadas por me-
dio de paneles solares cuando se requiera. Se basan en protocolos de bajo consumo, tienen la
capacidad de comunicarse entre si, gracias a la creacion de redes malladas [6]. Su estructura
12 2 Estandares de Comunicacion
consta de un procesador, una fuente de energıa, un radio-transceptor (RF) y un elemento
sensor como se ve en la figura 2-1.
Figura 2-1: Partes del nodo WSN. [36]
Las Redes Inalambricas de Sensores incorporan un gateway que proporciona la conectividad
entre la red de sensores y una red TCP/IP, por medio de una red inalambrica que se clasifican
segun su cobertura en:
Wireless Personal Area Network (WPAN): Red Inalambrica de Area Personal
Wireless Local Area Network (WLAN): Red Inalambrica de Area Local
Wireless Metropolitan Area Network (WMAN): Red Inalambrica de Area Metropoli-
tana
Wireless Wide Area Network (WWAN): Red Inalambrica de Area Extendida
Estas redes inalambricas se basan en un estandar de comunicacion especıfico dependiendo
del tipo de red. En este proyecto se manejaran redes de area personal y local, en consecuencia
entre los estandares de comunicacion que funcionan para estas redes, estan:
ZigBee
Bluetooth
NFC
Wifi
Estandar IEEE 802.15
Estandar IEEE 802.11
2.2 Redes inalambricas 13
2.2. Redes inalambricas
Una red inalambrica es aquella comunicacion que se realiza entre dispositivos que intercam-
bian informacion utilizando el espectro electromagnetico [40]. Estas redes se pueden clasificar
segun su alcance entre redes de area personal, local, metropolitana o extendida. A continua-
cion se explica de manera resumida las redes inalambricas de interes en este proyecto.
2.2.1. WPAN
Las WPAN presentan una importante limitacion de alcance, es una red para la comunicacion
entre dispositivos que deben estar poco separados, cercanos al punto de acceso. Estas redes
son de pocos metros, generalmente, se acepta como lımite el espacio de una habitacion o
una oficina [40]. Los estandares de comunicacion en las redes WPAN estan bajo el estandar
IEEE 802.15, entre los que mas se utilizan se encuentran:
ZigBee
Bluetooth
NFC
2.2.2. WLAN
Las WLAN son redes de cobertura geografica limitada, tienen una velocidad de transmision
relativamente alta, un bajo nivel de errores y puede ser administrada de manera privada. Su
comunicacion se realiza basicamente mediante microondas. Este tipo de redes, constituye un
sistema de comunicacion de datos inalambrico flexible, se consideran una extension y/o una
alternativa a las redes LAN con cables [40]. Los estandares de comunicacion mas comunes
en las redes WLAN estan diferenciados por las variantes del estandar IEEE 802.11, en los
que se encuentra el mas utilizado, Wifi.
2.2.3. Consideraciones generales para sistemas interoperables en
redes inalambricas de sensores
Debido a la naturaleza de la investigacion, se hace pertinente mencionar caracterısticas que
subyacen y son primordiales en el funcionamiento de plataformas interoperables para las
WSNs. De las cuales se destacan las descritas por [35] y se mencionan a continuacion:
Recursos limitados en nodos fuentes (Energıa, memoria y capacidad de computo).
Escalabilidad.
Topologıa y configuracion de red dinamica, ademas, de mantenimiento de la red.
14 2 Estandares de Comunicacion
Heterogeneidad entre hardware y aplicacion.
Compatibilidad de datos.
Mecanismos de calidad de servicio (Quality of Service (QoS)).
Seguridad.
Gestion de grupos o categorizacion de tecnologıa.
Registro y notificacion de eventos.
Estas singularidades son aspectos relevantes que se tendran en cuenta a la hora de desarrollar
la plataforma y pueden ser indicadores que aseguren el adecuado funcionamiento de la WSN
a la hora de insertar en ella la plataforma interoperable.
2.3. Estandares de comunicacion inalambrica
2.3.1. Bluetooth
Bluetooth es un estandar de comunicacion inalambrica, que pertenece a la especificacion
industrial IEEE 802.15.1 para redes WPAN. Este estandar permite la comunicacion senci-
lla de voz y datos entre dispositivos fijos o moviles, mediante un enlace por RF de forma
segura. Entre sus objetivos principales se encuentran la posibilidad de crear pequenas redes
inalambricas, facilitar la sincronizacion de datos entre equipos personales como computado-
ras moviles, telefonos celulares, tablets, eliminar cables y conectores, entre otros. Bluetooth
es una tecnologıa de pequena escala y bajo costo, permite conectar entre sı todo tipo de
dispositivos electronicos situados dentro de un radio entre 1 y 10 metros (el rango se puede
ampliar hasta 100 metros, pero se presenta mayor distorsion), estos dispositivos no necesitan
estar a la vista uno del otro, ya que las senales de RF pueden atravesar paredes y obje-
tos metalicos sin problema [1]. Al operar en una banda global, este estandar asegura una
compatibilidad universal.
2.3.1.1. Caracterısticas tecnicas
Una de las caracterısticas principales con las que cuenta este estandar es su bajo consumo
de potencia, este requisito es indispensable, pues es un estandar disenado para integrarse en
equipos alimentados por baterıas, por lo tanto debe consumir poca energıa. Bluetooth tra-
baja en la banda sin licencia ISM entre 2,4 GHz y 2,48 GHz; al ser las interferencias uno de
los problemas que presentan las redes inalambricas, Bluetooth utiliza la tecnologıa de salto
de frecuencia adaptable AFH para evitarlo, esta tecnologıa comprueba si otros dispositivos
estan transmitiendo en su rango y evita las frecuencias que estan siendo utilizadas.
2.3 Estandares de comunicacion inalambrica 15
Respecto al rango de alcance que tiene Bluetooth, este depende del tipo de dispositivos que
se este utilizando, y esto, dependera de la potencia de transmision que cada uno de estos
tenga. En la tabla 2-3 se puede observar una comparacion entre las diferentes clases de
dispositivos, su potencia de transmision y su alcance aproximado.
Clase Potencia maxima
permitida (mW)
Potencia maxima
permitida (dBm)
Rango (aproximado)
Clase 1 100 20 100 mClase 2 2.5 4 10 mClase 3 1 0 1 m
Tabla 2-1: Especificaciones de dispositivos Bluetooth segun su clase. [9]
Existen diferentes versiones del estandar Bluetooth que definen la velocidad de transmision
que tiene el canal. En la tabla 2-2 se puede observar la evolucion de las versiones y su
velocidad de transmision.
Version Velocidad de transmision (Mbps)Version 1.2 1
Version 2.0 + EDR 3Version 3.0 + HS 54
Version 4.0 1
Tabla 2-2: Velocidad de Transmision segun su version. [10]
Algunas de las caracterısticas tecnicas de este estandar se presentan resumidas a continuacion
[1], [9], [46]:
Banda de frecuencia: desde 2,4 GHz hasta 2,48 GHz.
Bajo consumo energetico.
Velocidad de transferencia: Depende de la version de Bluetooth que se este utilizando,
va desde 720 kbps hasta 54 Mbps.
Utiliza modulacion GFSK.
Transmision Fulla-Duplex.
Usa duplexacion en el tiempo TDD.
Alcance: 1-100 m.
Tipos de transferencia: orientado a conexion de tipo sıncrono (voz) y no orientados a
conexion de tipo asıncrono (datos).
Potencia de transmision: Depende de la clase de dispositivo, va desde 0 dBm hasta 20
dBm.
16 2 Estandares de Comunicacion
Multiplexacion: Expansion del espectro con saltos en frecuencia (FHSS) mediante saltos
de frecuencia, hasta un maximo de 1600 saltos por segundo entre 79 frecuencias, lo que
aporta seguridad y robustez a la red.
Topologıa: Maestro-esclavo. Soporta 1 maestro y hasta 7 esclavos, esta configuracion se
conoce con el nombre de piconet y un grupo de piconets es conocido como scatternet. El
maestro caracteriza el canal de una piconet, determina el salto en frecuencia, el codigo
de acceso al canal, controla el trafico del canal y da la senal de reloj que determina
la fase en la secuencia de saltos y los tiempos, y hace que todos los dispositivos se
sincronicen con el. Sin embargo, el maestro recibe esta categorizacion por iniciar la
conexion con uno o mas esclavos, es decir, que los roles de maestro y esclavo se pueden
intercambiar, por lo tanto, cualquier dispositivo puede ser maestro o esclavo en una
piconet.
2.3.1.2. Protocolos
Para lograr una interoperabilidad entre dispositivos de diferentes fabricantes que se quieran
comunicar mediante el estandar de Bluetooth, los dispositivos deben estar implementados
sobre la misma estructura de protocolos. En la figura 2-2 se puede ver la pila de protocolos
completa que utiliza Bluetooth para comunicarse.
Figura 2-2: Stack de Protocolos Bluetooth. [1]
Hay 2 clases de protocolos en la pila de protocolos de este estandar. La primera clase de
protocolos formada por los protocolos especıficos de Bluetooth, ubicados en las capas infe-
riores del modelo OSI, y una segunda clase formada por el conjunto de protocolos adoptados
de otras especificaciones, ubicados en las capas superiores. Por lo general, las aplicaciones
no utilizan los protocolos en su totalidad, pero esta especificacion permite a los fabricantes
2.3 Estandares de comunicacion inalambrica 17
desarrollar sus propias capas de aplicacion para aumentar las capacidades de sus aplicaciones
creadas sobre la tecnologıa Bluetooth. Adicionalmente la pila de protocolos se puede dividir
en 4 capas logicas [9]:
Protocolos centrales de Bluetooth: Bluetooth Radio, Banda base, L2CAP, LMP y SDP.
Protocolos de sustitucion de cable: RFCOMM.
Protocolos de control de telefonıa: TCS BIN y AT-Commands.
Protocolos adaptados: PPP, UDP y TCP/IP, OBEX, WAP, vCard, vCal y WAE.
Los protocolos centrales de Bluetooth han sido desarrollados en su totalidad por el grupo
de interes social de Bluetooth (SIG), el cual es un grupo de companıas que trabajan juntas
para desarrollar, promover, definir y publicar las especificaciones del estandar Bluetooth pa-
ra la conexion entre dispositivos, este grupo establece un estandar con el fin de asegurar la
interoperabilidad de los equipos entre diferentes fabricantes.
Bluetooth Radio
La capa de radio es la inferior del estandar y hace parte de la capa fısica del modelo OSI, es
la encargada de definir los requisitos para la transmision o recepcion de datos en la banda
de los 2,4 - 2,48 GHz. Utiliza el metodo de FHSS y TDD, dando lugar a una frecuencia
de salto de 1600 saltos por segundo, entre 79 frecuencias de 1 MHz de ancho de banda
para darle robustez a la red, clasifica los dispositivos segun la potencia de transmision y el
rango de trabajo como se ve en la tabla 2-3, ademas, utiliza modulacion GFSK, entre otras
caracterısticas de esta capa.
Banda Base
La capa de banda base es la capa mas importante de la pila de protocolos de Bluetooth
[46], hace parte de la capa fısica del modelo OSI. Entre sus funciones esta la de controlar los
canales y enlaces fısicos, se encarga de la sincronizacion, control de flujo, control del medio,
codificacion, decodificacion, control de errores y seguridad. Esta capa soporta conexiones de
tipo sincrono (SCO) y de tipo asıncrono (ACL).
L2CAP
El protocolo de adaptacion y control de enlace logico es el encargado de adaptar los proto-
colos de capas superiores al protocolo de la capa de banda base. Entre sus funciones estan:
Proporcionar servicios orientados o no orientados a la conexion para protocolos de capas
superiores por medio de multiplexacion, proporciona QoS, descubrimiento de dispositivos,
segmentacion y reensamblado de paquetes de datos.
18 2 Estandares de Comunicacion
LMP
El protocolo de administrador de enlaces, se encarga de establecer de manera segura y
controlada los canales logicos entre dispositivos. Los mensajes de este protocolo tienen mayor
prioridad que los mensajes del usuario. Define una serie de mensajes llamados Protocol Data
Units (PDU), que controla el rol de maestro o esclavo del dispositivo [46].
SDP
Este protocolo se encarga de proporcionar a las aplicaciones cuales son los servicios que hay
disponibles en los dispositivos Bluetooth y sus respectivas caracterısticas. Este protocolo solo
informa los servicios disponibles, mas no define como se debe conectar a este.
RFCOMM
Este protocolo permite una emulacion del puerto serie RS232 sobre un canal L2CAP. Es
capaz de emular hasta 60 conexiones simultaneas entre dispositivos Bluetooth. Se tiene 2
tipos de dispositivos: Dispositivos terminales de comunicacion y dispositivos que hacen parte
de un segmento de la comunicacion [1].
TCS BIN y AT-Commands
Este protocolo proporciona el control, establecimiento y liberacion de la llamada entre dis-
positivos Bluetooth. En otras palabras, este protocolo se encarga de proveer al usuario con
servicios de telefonıa.
Los demas protocolos, se aplican a los protocolos orientados a aplicacion; lo que permite a
las diferentes aplicaciones correr sobre los protocolos centrales de Bluetooth.
2.3.1.3. Versiones
Hoy en dıa existen diferentes versiones de Bluetooth. Cada una de las nuevas versiones busca
mejorar caracterısticas tecnicas de la version inmediatamente anterior, existen alrededor de
7 diferentes versiones, algunas de las cuales ya no se usan y otras dependen de la tecnologıa
que use el dispositivo y de lo nuevo que sea este.
Las versiones mas utilizadas son: Bluetooth Core 2.1 + EDR conocida como Basic Ra-
te/Enhanced Data Rate (BR/EDR), que tiene mayor velocidad de transmision de datos;
entre sus mejores estan: facilitar que los consumidores se conectan a los dispositivos Blue-
tooth y encuentren automaticamente otros dispositivos, soporta una tasa de bits de 3Mbps,
aumenta la duracion de la baterıa en los dispositivos, proporciona mayor seguridad en la
transmision de datos y permite el uso de comunicacion NFC. Por otro lado, se encuentra la
2.3 Estandares de comunicacion inalambrica 19
version de Bluetooth con bajo consumo de energıa (BLE), conocida como Bluetooth Smart o
Bluetooth 4.0; esta version esta disenada para dispositivos que estan activos durante largos
periodos y funcionan con alguna fuente de energıa pequena, esta enfocada en la creacion
de sensores pequenos que funcionan con pequenas baterıas durante meses debido a su bajo
consumo de potencia en modo de reposo, permite la interoperabilidad entre multiples pro-
veedores y su tasa de bit es de 1 Mbps. Los grandes avances en este estandar inalambrico,
permite encontrarlo en millones de dispositivos hoy en dıa, promoviendo el desarrollo del
Internet de las cosas (IoT), alcanzando a un publico mas amplio mediante el aprovechamien-
to de un ecosistema en el que existen millones de dispositivos Bluetooth y el cual esta en
constante crecimiento [11].
2.3.1.4. Aplicaciones
Hoy en dıa existen millones de dispositivos Bluetooth, es difıcil encontrar un dispositivo que
no implemente este estandar, se puede encontrar Bluetooth en carros, telefonos, computado-
res, televisores, auriculares, consolas de juegos, tabletas, entre otros. Unas de las aplicaciones
mas populares de Bluetooth han sido los auriculares y altavoces inalambricos, que permiten
la conectividad del telefono o tablet con el carro o con cualquier otro dispositivo al que se
le pueda transmitir la musica o una simple llamada. Sin embargo, con el constante trabajo
por mejorar las caracterısticas de Bluetooth con cada una de sus nuevas versiones, se esta
ampliando cada vez mas el campo de aplicacion de este estandar, por ejemplo, con la version
de bajo consumo de energıa, se pueden crear pequenos sensores que funcionan con baterıas
diminutas durante meses o anos. Segun el Bluetooth SIG .El mercado esta limitado solo por
la imaginacion del desarrollador.”[11].
2.3.2. ZigBee
Uno de los estandares de comunicacion inalambrica mas utilizados es Zigbee, debido a que
permite disminuir el consumo de la red gestionando la energıa de sus nodos y su nivel de
operacion permite adaptarse a varias aplicaciones. Este estandar es desarrollado por Zigbee
Alliance, el cual esta conformado por un grupo de multinacionales que innovan y crean
tecnologıas en comunicaciones. Su arquitectura se basada en el modelo OSI y la componen
principalmente [21]:
Capa fısica PHY y capa de control de acceso al medio MAC, definida por el protocolo
802.15.4.
Capa de red NWK.
Capa de aplicacion APL, compuesta por una capa de interfaz APS entre la capa de
red.
20 2 Estandares de Comunicacion
Figura 2-3: Capas implementadas por Estandar ZigBee. [3]
Para su funcionamiento general, la capa fısica esta encargada de establecer los canales de
comunicacion, de acuerdo a la banda de funcionamiento y tipo de tecnologıa permite modu-
lacion, BPSK, O-QPSK o ASK, la cantidad de canales puede ser maximo de 26 a 2,4 MHz.
ademas de esto, la capa fısica permite:
Deteccion de energıa en cada canal, considerando un nivel mınimo o identificando
dispositivos que transmitan implementando el protocolo 802.15.4 . Esto permite hacer
analisis de canales libres.
Establecer y clasificar la calidad de informacion recibida mediante LQI.
La capa de acceso al medio se estudiara en detalle al describir el funcionamiento del protocolo
802.15.4, lo que resulta importante en este caso, son los servicios especiales que ofrece al
estandar y se describen a continuacion:
Generacion de tramas tipo baliza o TDMA, con ranuras de tiempo garantizada para
cada nodo de la red.
Manejo de supertramas, lo que involucra espaciado entre tramas, duracion de super-
tramas, intervalo entre balizas, entre otros parametros.
2.3 Estandares de comunicacion inalambrica 21
Vinculacion y desvinculacion de un nodo a la red, ası como generacion de una red. Este
proceso se da conservando la secuencia de solicitud–respuesta que se da con mensajes
del tipo requisito, indicacion, respuesta y confirmacion.
Habilitacion/deshabilitacion del receptor durante un periodo dado de tiempo y de esta
forma ahorrar energıa.
Diagnostico y revinculacion de nodos que se desvinculan de la red sin cumplir con un
proceso de habilitacion/deshabilitacion.
Inicializacion del dispositivo, reset y configuracion de arranque.
Barrido de canales para conocer su ocupacion y para lo cual utiliza tecnicas como:
nivel de energıa de cada canal, dispositivo a la espera de ser conectado e identificacion
de dispositivos, escuchando la respuesta a una trama baliza o mediante una solicitud
enviada por un dispositivo.
Gestionar el sincronismo con el coordinador, especialmente si se trabaja con balizas.
Establecer alguno de los 4 formatos dados para una trama MAC, estos son, trama de:
comando, baliza, datos y acknowledge.
La capa de red se encarga principalmente de:
Definir el rol del dispositivo (coordinador, enruteador/encaminador o dispositivo final).
Establecer la topologia.
Definir el mecanismo de ruteo como por el ejemplo AODV (Ad hoc On-demand Dis-
tance Vector).
Asignar direcciones a los nodos para establecer la red.
Proveer seguridad, como por ejemplo, implementando un elemento de red llamado
Trust Center [34] que permite provisionar una clave de enlace.
Los mensaje que se emiten desde esta capa puede ser del tipo unicast, donde existe un unico
destino para el mensaje, multicast, donde un grupo es destino del mensaje o broadcast, donde
todos los dispositivos del dominio de red son destino del mensaje. En cuanto a su arquitec-
tura, los dispositivos que pertenecen a una red zigbee tienen 3 roles definidos desarrollados
en [21], estos son:
Coordinador(FFD): El cual gestiona en su totalidad todos los recursos de la red.
Encaminador(FFD o RFD): El cual permite administrar y definir los caminos por don-
de viaja la informacion desde los dispositivos fuente hasta el concentrador o dispositivo
destino.
22 2 Estandares de Comunicacion
Dispositivo final o fuente (FFD O RFD): Como funcion principal adquiere los datos.
Estos dispositivos pueden ser de funcion completa FFD o funcion reducida RFD, con lo cual,
se ve limitada su operacion. En cuanto a su topologıa, debido a que su especificacion se basa
en el estandar 802.15.4, son validas las topologıas:
Estrella: Donde cada dispositivo final se comunica por medio del coordinador y/o
encaminador.
Punto a punto: Donde todos los dispositivos se comunican entre sı, de acuerdo a su
rol. De esta, se destaca su implementacion en:
• Malla: Donde todos los dispositivos se comunican con cualquier nodo de la red.
• Arbol: Donde los dispositivos se comunican directamente solo con dispositivos
que tienen el mismo encaminador o coordinador (Coordinador analogo a tronco ,
encaminador analogo a ramas y dispositivos finales analogos a hojas).
Para interoperar entre sus capas el estandar, se hace uso del concepto cliente servidor [17],
con lo cual una capa solicita servicios a su capa vecina mediante un SAP y cumpliendo con
una comunicacion que se divide en: Pedido, confirmacion , respuesta e indicacion. Por otra
parte el flujo de informacion entre capas se divide en informacion de datos e informacion de
administracion, soporte y gestion, esto se puede evidenciar en la figura 2-3, donde los datos
usan los SAP PD-SAP, MCPS-SAP, NLDE-SAP y la informacion de gestion usa los SAP,
PLME-SAP, MLME-SAP, NLME-SAP. Como se menciono, la capa de aplicacion se compone
de la subcapa APS , los objetos dispositivos zigbee ZDO y una seccion de perfil de aplicacion.
La APS brinda servicios de soporte a NWK, teniendo como responsabilidad [17]:
Descubrir dispositivos que operan cerca a este.
Enlazar dos o mas dispositivos que se relacionan por el servicio que prestan o su
necesidad.
Esta capa es necesaria debido a que relaciona los dispositivos de acuerdo a su perfil de apli-
cacion y es la que permite que los fabricantes trabajen independientemente de su desarrollo.
Ahora bien, los perfiles de aplicacion especifican el tamano y formato de los datos a transmi-
tir por los elementos o dispositivos que conforman la red, ademas, de definir una estructura
para los mensajes y las acciones o funciones que realiza el dispositivo [12]. En esa medida,
hacen uso de los siguientes conceptos:
Cluster: Grupo de atributos que comparten el mismo fin.
Endpoint: Define una funcion u objetivo de la aplicacion.
2.3 Estandares de comunicacion inalambrica 23
La figura 2-4 es un ejemplo que permite comprender los conceptos descritos anteriormente.
Figura 2-4: Ejemplo perfil de aplicacion estandar ZigBee. [12]
Los perfiles de aplicacion pueden ser del tipo publico desarrollados por la alianza ZigBee, o
privados, desarrollados por fabricantes independientes y que ocasionalmente proveen inter-
operabilidad. Por su parte los ZDO cumplen con la funcion de:
Inicializar la subcapa de soporte de aplicacion, la capa de red y los perfiles de aplicacion.
Entregar detalles de bajo nivel para los perfiles de aplicacion .
Reunir informacion de configuracion de las aplicaciones finales para determinar e im-
plementar el descubrimiento, administracion de seguridad, administracion de redes y
gestion de enlace.
24 2 Estandares de Comunicacion
2.3.2.1. Caracterısticas tecnicas
Zigbee se caracteriza por tener 3 frecuencias de operacion, las cuales de acuerdo al paıs y
aplicacion son mas convenientes, estas cuentan con las siguientes particularidades:
Banda de Frecuencia Canales Tasa de Transferencia Region Permitida2,4 MHz 16 250 Kb/s Mundo945 MHz 10 40 Kb/s America868 MHz 1 20 Kb/s Europa
Tabla 2-3: Frecuencias de operacion y velocidad de transmision estandar ZigBee. [12]
La distancia de operacion dependera como casi en cualquier WSN de la potencia de trans-
mision, ademas de estar relacionada con la velocidad de operacion, en el estandar ZigBee,
estas relaciones se dan de la siguiente forma:
Potencia (mW)/Velocidad(Kbps) 1mW 10mW 100mW28 Kbps 23 m 54 m 154 m250 Kbps 13m 29m 66m
Tabla 2-4: Distancia de operacion en relacion a la potencia y velocidad de transmision
estandar ZigBee. [34]
Zigbbe puede tener como maximo 64770 nodos en su red [34]. Para operar, el estandar
especifica caracterısticas de suma importancia en la WSN, estas son:
Bajo consumo en sus nodos, lo cual permite utilizar energıas alternativas o en su defecto
fuentes de alimentacion como baterıas.
Bajo costo de sus dispositivos en cuanto a instalacion y mantenimiento [17].
Desarrollo de perfiles de aplicacion que cumplen con la necesidad a solucionar para
utilizar una WSN.
Baja latencia para aplicaciones de comunicacion intermitente o con datos periodicos
que necesitan una comunicacion garantizada GTS.
Admite utilizar ranuras de tiempo que hacen mas eficiente la comunicacion.
Gestionar aspectos de seguridad desde la capa de red, siendo esta desarrollada en cada
nodo.
2.3.2.2. Protocolos
Hasta el momento se analizo en forma general el funcionamiento del estandar. Su aplicacion,
involucra algunos protocolos que merecen ser analizados por la finalidad del trabajo. Ası,
2.3 Estandares de comunicacion inalambrica 25
ZigBee cuenta principalmente con los siguientes protocolos:
Estandar IEEE 802.15.4 Describe la funcionalidades y requerimientos para implementar
las capa fısica y de enlace de datos en gran porcentaje de comunicaciones inalambricas, las
caracterısticas generales que ofrece de acuerdo a [38], [1],[30] son:
Desarrollado para LR-WPANs con 2 revisiones o actualizaciones.
Tasa de transmision de datos: 851 Kbps, 250 Kbps, 100 Kbps, 40 Kbps y 20 Kbps. La
cobertura de la red es inversamente proporcional a la tasa de transmision, por lo cual
se genera un compromiso cobertura-tasa de transferencia dependiendo de los requisitos
de la aplicacion.
Topologıas de red soportadas: estrella o peer-to-peer.
Tipos de direcciones: cortas de 16 bits (pensadas para ahorrar energıa) o extendidas
de 64 bits.
Tiene mecanismos de acceso al medio del tipo : CSMA-CA (Carrier Sense - Multiple
Access with Collision Avoidance) o ALOHA, este ultimo solo para UWB (Ultra Wide
Band).
Mecanismo de acceso al medio libre de contienda: GTS (Guaranteed Time Slot).
Bajo consumo de energıa.
Permite elegir el canal mas adecuado para establecer la WPAN, a partir de la deteccion
de energıa (ED).
Indicacion de calidad del enlace LQI.
Contiene 16 canales disponibles en la banda de 2450 MHz, 30 en la banda de 915 MHz,
3 en la banda de 868 MHz, 14 en la banda de 2450 MHz, haciendo uso de espectro
ensanchado de chirps solapados (CSS, Chirp Spread Spectrum) y 16 en tres bandas
UWB (500 MHz y DE 3,1 GHz a 10,6 GHz).
Protocolo con handshake o dialogo que permite mejorar la seguridad en las transferen-
cias.
Permite el uso de TDMA
Advanced Encription Standard AES [42],[39] Es un estandar utilizado para cifrado de
clave secreta o sistema de cifrado simetrico para encriptar y desencriptar los datos organiza-
dos en la misma longitud de la clave (128, 192 o 256 bits). Este estandar tiene las siguientes
particularidades:
26 2 Estandares de Comunicacion
Facil de implementar, utilizando pocos recursos computacionales y tiempo razonable
de ejecucion.
Toma como elemento de analisis el byte y realiza operaciones en el campo de Galois.
No aumenta el tamano del mensaje.
Estandar muy difundido y de alta seguridad. La seguridad depende de un variable
que comparte el emisor y el receptor, de tal forma, que la transmision de la clave
debe hacerse mediante algun medio seguro, En Zigbee se especifican 3 metodos para
acceder a la clave: preinstalacion, transporte de la clave y establecimiento de clave sin
comunicacion [17], este ultimo metodo hace uso del protocolo SKKE o establecimiento
de clave simetrica.
Por otro lado de acuerdo a la funcionalidad, ZigBee desarrolla un perfil de aplicacion que
hace las veces de estandar en la capa de aplicacion, al dıa de hoy se pueden resaltar los
siguientes [54]:
Home automation: Permite optimizar el rendimiento de la red en edificios y casas
inteligentes, cuenta con las siguientes caracterısticas:
• Auto-organizacion de la red para simplificar la instalacion y el mantenimiento.
• Prevencion de interferencia.
• Uso de los telefonos inteligentes para controlar el hogar.
• Monitorea el uso de la energıa.
• Alcance de 70m en interiores y 400m en exteriores.
• Solucion escalable con miles de dispositivos que pueden acceder a la red.
• Baterıa de larga duracion, 7 anos para dispositivos de seguridad.
• Estandar abierto.
Building Automation: Su desarrollo esta acompanado por la companıa BACnet,
lıder mundial en la automatizacion de edificios, sus caracterısticas principales son:
• Reduce el costo de integracion de los sistemas mediante el uso de puertas de
enlace.
• Los sensores se pueden mover facilmente dentro de una zona de control, para una
mejor deteccion de la temperatura, C02, niveles de luz y la humedad, entre otros.
• Reduce el uso de materiales de fabricacion caros y de alto consumo energetico,
como el cobre o plastico de aislamiento.
• Estandar abierto.
2.3 Estandares de comunicacion inalambrica 27
Retail Service: Es un nuevo estandar industrial enfocado al entorno minorista y que
brinda servicios a los compradores, mejorando la experiencia en compras, gestion de
archivos, control de empleados, entre otros. Se caracteriza por:
• Codigo de barras para aplicaciones especıficas.
• Soporte basico de voz, mensaje de texto y fotografıa.
• Implementacion de carritos de compra inteligentes.
• Multiradio.
• Reduccion de perdidas de productos en el almacen.
• Trabaja en 2,4 GHz, 915 MHz, y 868MHz.
Smart Energy: Es un estandar mundial para los dispositivos interoperables que su-
pervisan, controlan, informan y automatizan la entrega y el uso de energıa y agua.
Cuenta con las siguientes caracterısticas.
• Multiples productos, en el ambito de electricidad, gas, agua y energıa termica.
• Dispositivos con alimentacion mediante baterıa o red electrica.
• Trabaja con informacion historica (dıa anterior, dıa de hoy).
• Posibilidad de grabar tanto la generacion como el consumo.
• Maneja multiples monedas (utilizando la norma ISO 4217).
Health Care: Es un estandar global que permite gestionar en forma segura y confiable
los servicios de salud, no crıticos y de baja agudeza. Permite tratar enfermedades
cronicas, como envejecimiento, la salud en general, bienestar y fitness. Este estandar
cuenta con las siguientes caracterısticas:
• Permitir el monitoreo remoto y confiable a pacientes.
• Proporcionar capacidades de localizacion en tiempo real.
• Permite la colaboracion entre los dispositivos para la gestion de multiples enfer-
medades cronicas.
• Dispone de sensores para uso en el cuerpo.
• Optimiza la velocidad de transferencia de datos.
• Caracterısticas de soporte escalable para la seguridad de los datos y la privacidad.
• Soporte completo para perfiles de especializacion 11073 dispositivo IEEE.
• Larga vida de la baterıa, de esta forma es de bajo costo para dispositivos portatiles.
28 2 Estandares de Comunicacion
Telecom Services: Es un estandar global que permite una amplia variedad de servi-
cios de valor anadido, como por ejemplo: distribucion de informacion, juegos moviles,
servicios basados en localizacion, pagos moviles seguros, publicidad movil, zonas de
facturacion, control de acceso a oficinas y el intercambio de datos peer-to-peer. El
estandar se caracteriza por:
• Facil conexion a internet.
• Mecanismos contra interferencias y agilidad en establecimiento de canales.
• Operacion demostrada con Bluetooth y Wi-Fi.
• Enrutamiento Multi-hop, capaz de vincular un gran numero de nodos.
Remote Control: Es un estandar global para controles remotos de RF avanzada,con
menor consumo y mas faciles de usar, elimina las restricciones de lınea de vista al
tiempo que proporciona una comunicacion bidireccional. Se caracteriza por:
• Permitir navegar por el contenido de los mandos a distancia LCD.
• Menor consumo de energıa que IR.
• Respuesta mas rapida que IR.
• Permitir enviar guıas de programas, listas de valores, actualizaciones de firmware,
entre otros, a componentes remotos.
Input Device: Es un estandar global con menor consumo, innovador y facil de usar.
Optimiza la conexion de ratones, teclados, paneles tactiles y otros dispositivos de entra-
da a los ordenadores y dispositivos electronicos de consumo (CE). Tiene las siguientes
singularidades:
• Soporta comandos multi-touch y gestos.
• Mecanismo de seguridad automatico, proporcionando seguridad en transferencias
de datos.
• Operacion mediante tres canales.
• Tiene un mecanismo de seguridad mediante la generacion de claves.
Light Link: Estandar global que permite controlar de manera inalambrica: bombillas
de luz, temporizadores, controles remotos e interruptores. Tiene como singularidad:
• Facil instalacion.
• Implementar el concepto de redes de auto-organizacion.
• Evitar la interferencia.
• Acceso a internet.
2.3 Estandares de comunicacion inalambrica 29
• Uso de canales especıficos para maximizar el rendimiento y la convivencia con
otros dispositivos inalambricos en los hogares.
Vale la pena mencionar que se pueden implementar varios perfiles en un mismo dispositivo
y muchas veces comparten funcionalidades.
2.3.2.3. Versiones
ZigBee es un estandar desarrollado desde el 2002 y en su proceso de evolucion a tenido
principalmente 4 actualizaciones, que se describen a continuacion:
Version del
protocolo
Compatibilidad y comenta-
riosZigBee 2004 Primera especificacion publicada en 2005.ZigBee 2006 No compatible con ZigBee 2004.ZigBee 2007 Tiene 2 opciones de implementacion Zig-
Bee y ZigBee PRO, compatibles entre si
y ademas compatibles con ZigBee 2006.ZigBee RF4CE
(2009)
Es una version mas simple con funciones
especiales para mandos a distancia, com-
patible con la biblioteca ZigBee [13], tiene
su ultima actualizacion en ZCR 2.0. Com-
patible con la tecnologıa infrarroja de dis-
positivos convencionales.ZigBee 3.0 (Inicio de
certificacion 2015)
[13], [54]
Implementa los estandar ZigBee Green
Power, el cual brinda el servicio de ultra
baja potencia que ofrece ventajas a dis-
positivos recolectores de energıa (disposi-
tivos sin baterıas) y ZigBee RF4CE.
Tabla 2-5: Versiones y contribuciones estandar ZigBee. [12],[3]
A lo largo del tiempo, estas actualizaciones presentan mejoras en los siguientes aspectos [55]:
Control de interferencias, siendo esta ultima mejorada en el aspecto de seleccion de
canal e identificacion de una posible red.
Gestion de direccionamiento, siendo mejorada generando un sistema automatico de
direcciones para los dispositivos.
Direccionamiento por grupo de dispositivos , ası se ahorra recursos de la red.
30 2 Estandares de Comunicacion
Recoleccion de datos centralizada.
Seguridad principalmente en la capa de aplicacion.
Escalabilidad de la red, tamano del mensaje y soportes para librerıas de cluster.
Estandarizacion del servicio.
En la actualidad, ZigBee se encarga en desarrollar perfiles de aplicacion tales que cumpla con
caracterısticas particulares en el sector de la industria, el hogar, la seguridad, motorizacion,
entre otros.
Cabe resaltar que ZigBee 3.0 augura una solucion innovadora para el advenimiento del IoT
[13], debido a la gran variedad de dispositivos certificados por zigBee y a la mejora en atribu-
tos de la capa de red de la especificacion zigBee tratada hasta el momento, luego es normal,
que su implementacion aun no este consolidada.
Para nuestro estudio se hace enfasis en la especificacion ZigBee 2007 [3], que tiene su ultima
actualizacion en septiembre del 2012. Se utiliza esta version ya que es la base de las futuras
aplicaciones y cuenta con gran variedad de sensores disponibles en el mercado.
2.3.2.4. Aplicaciones
Sin lugar a dudas, ZigBee ofrece una amplia gama de aplicaciones, debido a que su estandar
se estructura de tal forma, que mediante los perfiles de aplicacion se puede cumplir con los
requisitos necesarios para una aplicacion particular. Ademas de las aplicaciones mencionadas
por los perfiles de aplicacion descritos anteriormente, ZigBee ofrece la posibilidad de:
Desarrollar las aplicaciones que implican movilidad, como por ejemplo sistemas de
transporte.
Ofrecer aplicaciones en todo lo relacionado con la domotica e Inmotica.
Contribuir con temas relacionados a la automatizacion industrial M2M, P2M O M2P.
2.3.3. NFC
La comunicacion de campo cercano (Near Field Comunication) es un estandar de comuni-
cacion inalambrica de corto alcance que permite el intercambio de datos entre dispositivos
moviles. Este estandar se comunica mediante el uso de campos electromagneticos, lo que
lo diferencia de otros estandares como Bluetooth y Wifi, utiliza los principios de la tec-
nologıa RFID, sin embargo ofrece muchos mas beneficios, como la seguridad debido a su
corto alcance, no requieren mucha potencia electrica para funcionar y se integran facilmente
en los telefonos moviles. Una de las caracterısticas mas relevantes de este estandar es su
compatibilidad con otras tecnologıas inalambricas existentes como Bluetooth y RFID [14].
2.3 Estandares de comunicacion inalambrica 31
2.3.3.1. Caracterısticas tecnicas
NFC trabaja en la banda de frecuencia libre de 13,56 MHz, transfiere datos hasta una veloci-
dad de 424 Kbps de forma bidireccional y tiene un rango de cobertura de aproximadamente
10 cm [53]. Este estandar no esta disenado para transmitir grandes cantidades de datos, por
el contrario, se enfoca en transmitir informacion de forma rapida y segura, que son sus prin-
cipales ventajas frente a otros estandares de comunicacion inalambrica, ofreciendo robustez
y confidencialidad.
Este estandar es una extension de la norma ISO/IEC -14443, el cual es un estandar inter-
nacional relacionado con tarjetas de identificacion electronicas de proximidad. NFC es una
tecnologıa estandarizada en la norma ISO/IEC 18092 y la norma ECMA 340, estos estanda-
res especifican esquemas de modulacion, codificacion, velocidades de transferencia y formato
de la trama, ademas define esquemas de inicializacion y condiciones que son necesarias para
el control de colisiones durante sus modos de comunicacion y definen el protocolo de la capa
de transporte. La interfaz de aire de NFC esta estandarizado con las normas ISO/IEC 18092
y ISO/IEC 21481, que en otras palabras son los protocolos 1 (NFCIP-2) y 2 (NFCIP-2) de
NFC [14]. Ademas, existe un grupo denominado NFC Forum, que tiene como objetivo pro-
mover el uso de este estandar garantizando la interoperabilidad entre dispositivos y servicios
[53].
Existen dos modos de funcionamiento para los dispositivos NFC [53]:
Activo: Cuando ambos dispositivos necesitan energıa para funcionar, generando un
campo electromagnetico propio, que utilizan para transmitir sus datos. Las etiquetas
activas pueden funcionar como receptor o transmisor de informacion.
Pasivo: Solo un dispositivo genera el campo electromagnetico, al cual el otro se conecta
y establece la comunicacion, el dispositivo que general el campo por lo general es el
lector. Las etiquetas que intervienen en este modo no requieren alimentacion propia,
pues la energıa la proporciona el que inicia la comunicacion, generando un campo
electromagnetico. Los dispositivos pasivos contienen informacion que otros dispositivos
pueden leer, pero este no puede leer ninguna informacion.
Esta caracterıstica de funcionar en modo activo o pasivo, hace que los dispositivos NFC
sean unicos dentro de otros estandares de comunicacion sin contacto, dependiendo de estas
funciones (enviar o recibir datos), un dispositivo NFC puede ser un Iniciador (Initiator) o un
Objetivo (Target), que son los dispositivos que inician y controlan el intercambio de infor-
macion o los que responden a los requerimientos del iniciador respectivamente. NFC utiliza
modulacion ASK con distintos ındices de modulacion, dependiendo la tasa de transmision,
que estan comprendidas entre 106 Kbps, 212 Kbps y 424 Kbps. Existen dos elementos im-
portantes en este estandar: Etiqueta, el cual es un dispositivo simple, contiene una antena y
32 2 Estandares de Comunicacion
una pequena memoria, este dispositivo es accionado por un campo magnetico y su memoria
puede ser de solo lectura, regrabable o solo se puede escribir una vez, su funcionamiento
no puede ser activo, sino solo pasivo; Lector, es un dispositivo activo que genera senales de
radio para comunicarse con las etiquetas [53].
Los dispositivos NFC tienen tres configuraciones o maneras distintas de operar:
Modo Lectura/Escritura: El dispositivo esta en capacidad de leer y escribir informacion
de cualquier otro terminal con el que se conecte. Es capaz de leer los 4 tipos de etiquetas
que especifica el NFC Forum.
Modo P2P: Dos dispositivos pueden intercambiar informacion como lo harıan otros
estandares de comunicacion como Bluetooth o Wi-Fi.
Modo emulacion de tarjeta inteligente: Un dispositivo se comporta como una etiqueta
NFC o una tarjeta sin contacto que intercambia informacion con un terminal.
Los 4 tipos de etiquetas que todo dispositivo NFC debe soportar, son [20]:
Tipo 1: Basado en ISO/IEC 14443A. Posee una capacidad de hasta 1 kbytes, lectura
y escritura y velocidades de transmision de 106 Kbps. Son etiquetas de bajo costo.
Tipo 2: Basado en ISO/IEC 14443A. Posee una capacidad de 0,5 kbytes, lectura y
escritura y velocidades de transmision de 106 Kbps. Etiquetas de bajo costo.
Tipo 3: Basado en FeliCa. Se pre configura de fabrica para tener la capacidad de ser
de lectura o escritura, la memoria es variable, el lımite es de 1 MBytes, y velocidades
de transmision de 212 Kbps. El costo es mayor que el tipo 1 y 2.
Tipo 4: Basado en ISO/IEC 14443. Se pre configura de fabrica para tener la capacidad
de ser de lectura o escritura, la memoria es variable, el lımite es de 32 kbytes, y
velocidad de comunicacion de 106 – 424 kbps la interfaz de comunicacion es compatible
con ISO/IEC 14443 Tipo A (normal) o ISO/IEC 14443 Tipo B (banking/short range).
Para establecer una comunicacion basada en NFC se necesitan 5 fases importantes, cada una
de estas tiene una funcion especıfica [52]:
Descubrimiento: Los dispositivos inician una etapa de rastreo del uno al otro y poste-
riormente su reconocimiento.
Autenticacion: Los dispositivos verifican si el otro dispositivo tiene autorizacion para
establecer la comunicacion, o se necesita algun tipo de cifrado.
Negociacion: Los dispositivos definen los parametros como: velocidad de transmision,
identificacion del dispositivo, tamano, tipo de aplicacion, accion.
2.3 Estandares de comunicacion inalambrica 33
Transferencia: Despues de tener establecida la etapa de negociacion, se inicia el inter-
cambio de datos.
Confirmacion: El dispositivo receptor confirma el establecimiento de la comunicacion
y la transferencia de datos.
El estandar NFC no ofrece por sı mismo comunicaciones seguras, ni alguna proteccion contra
los que escuchan comunicaciones que no son propias; las aplicaciones deben usar protocolos
criptograficos para establecer un canal seguro, sin embargo, estas desventajas se contrarrestan
con la distancia de operacion que usa NFC, ya que las comunicaciones solo se activan en
un rango muy limitado, lo que reduce o limita el uso de la tecnologıa sin conocimiento del
usuario. Es por esto que las caracterısticas de confianza y seguridad son innatas de este
estandar, ademas de evitar errores de comunicacion y proporcionar cierta eficacia en la
transmision de datos [14].
2.3.3.2. Protocolos
Al igual que todos los estandares de comunicacion, el funcionamiento de NFC debe basarse en
protocolos que lo estandaricen y permitan la interoperabilidad entre diferentes dispositivos.
Se definen 3 estandares por parte del NFC Forum:
NFC Data Exchange (NDEF)
NDEF es un formato de intercambio de datos, el cual permite utilizar cualquier tipo de
etiqueta para guardar y transportar diferentes tipos de datos. La especificacion NDEF define
un formato binario que encapsula el mensaje para el intercambio de datos entre dispositivos
NFC o entre dispositivos y etiquetas NFC, el mensaje consiste en una secuencia de registros
donde cada registro lleva una carga util y una cabecera, la carga util tiene un tipo de
datos especıfico de la aplicacion NFC y la cabecera especifica el tipo de dato y el tamano
del registro. Este protocolo solo especifica la estructura del formato, es el mismo tanto para
dispositivos como para etiquetas NFC, es decir que la informacion de NDEF es independiente
del tipo de dispositivos que se esten comunicando [52].
Record Type Definition (RTD)
El protocolo de Definicion de Tipo de Registro, provee las especificaciones de los registros
que se le pueden agregan a la trama NDEF para especificar el contenido de la carga util. El
NFC Forum especifica unos tipos especiales de datos [53]:
NFC texto RTD: Contiene solamente datos de texto liviano.
NFC URL RTD: Almacena una direccion web, un correo electronica o numero de
telefono en formato binario, lo cual permite acceder a recursos de internet o transportar
identificadores de recursos URL de un dispositivo a otro.
34 2 Estandares de Comunicacion
NFC Posters Inteligentes RTD: Incorpora datos como SMS, URL o numeros de telefo-
nos en etiquetas NFC o los transporta entre dispositivos.
NFC de control generico RTD: Permite enviar ordenes a otros dispositivos, ademas da
acceso a funciones o especificaciones que no pueden ser expresadas por otros RTD.
NFC firma RTD: Contiene una firma digital en la etiqueta, como metodo de seguridad.
Se pueden usar diferentes firmas para diferentes registros.
Logical Link Control Protocol (LLCP)
Este protocolo es un protocolo de nivel de capa de enlace, su objetivo es mejorar la operacion
en el modo P2P, permite que ambos dispositivos envıen y reciban datos, basandose en una
conexion bidirecional. Permite que los dispositivos intercambien datos mediante la opcion
de orientado a la conexion y a la transferencia sin conexion [53].
Ademas, como se ha venido mencionando, NFC se basa en los siguientes estandares ISO:
ISO 14443
Es un estandar internacional desarrollado para la comunicacion de tarjetas sin contacto de
identificacion electronicas y de proximidad, trabajando en la frecuencia de 13,56 MHz. Este
estandar se divide en dos tipos de tarjetas: tipo A (normal) y tipo B (banking/short range),
entre sus principales diferencias se encuentran los metodos de modulacion, codificacion de
bits y el protocolo de inicializacion de procedimientos.
Near Fiel Communication Interface and Protocol (NFCIP)-1
Este protocolo esta definido por las normas ISO/IEC 18092 y ECMA 340. Define el enlace
de RF en el que NFC trabaja (13,56 MHz), los metodos de modulacion aplicados a la
senal, velocidades de transmision, estructura de la trama, caracterısticas de seguridad. Se
encarga de controlar el flujo general del protocolo, asignando los roles (iniciador u objetivo)
correspondientes a cada dispositivos, define los modelos de comunicacion activo y pasivo
[52].
Near Fiel Communication Interface and Protocol (NFCIP)-2
Este protocolo esta definido por las normas ISO/IEC 21481 y ECMA 352. Esta encargado
de especificar el mecanismo de seleccion de los tres modos de comunicacion existente para
que no haya interferencias o perturbaciones en cualquier comunicacion existente dentro de
la frecuencia de 13,56 MHz, es decir que este protocolo provee una puerta de entrada entre
diferentes estandares de interfaz que ya existen; gracias a este protocolo, un dispositivo que
2.3 Estandares de comunicacion inalambrica 35
lo implemente, no activara su campo de RF cuando detecte un campo de radio trabajando
a esta frecuencia y que exceda un umbral especıfico [33].
Los tres modos de comunicacion que especifica este protocolo son:
Modo NFC especificado por el protocolo NFCIP-1.
Modo Proximity Coupling Device (PCD) especificado por la norma ISO/IEC 14443.
Modo Vicinity Coupling Device (VCD) especificado por la norma ISO/IEC 15693.
2.3.3.3. Aplicaciones
Gracias a las caracterısticas que posee el estandar de comunicacion inalambrico NFC, den-
tro de un mercado global, se evidencia el gran potencial que tiene este para contribuir al
desarrollo de la tecnologıa, cambiando y facilitando la forma en la que se hacen muchas de
las actividades de hoy en dıa, como realizar la compra de algun producto o servicio, obtener
y compartir informacion, realizar pagos, uso del transporte publico, manejo de identificacio-
nes, entre todos. De acuerdo al NFC Forum, las aplicaciones NFC se pueden dividir en tres
grupos [33]:
Acceso a transporte y compras de modo contactless: El transporte es el lıder hoy en dıa
en cuanto al uso del estandar NFC. Respecto al sector de compras, se pueden realizar
pagos por medio de un dispositivo NFC sin necesidad de usar una tarjeta credito.
Informacion en movimiento y descubrimiento de servicios: Los datos se almacenan en
etiquetas ubicadas en cualquier objeto a las que se pueden acceder desde cualquier
dispositivo NFC, ademas se pueden usar estos mismos dispositivos como documento
de identificacion.
Simplificar las tecnologıas de comunicacion inalambrica: NFC ofrece formas de realizar
el intercambio de datos de forma mas rapida y sencilla, ademas, gracias a este estandar,
se acelerara la adopcion de otros estandares de comunicacion moviles como Bluetooth,
Wi-Fi y ZigBee en diferentes dispositivos, facilitando el uso de esta tecnologıa para el
ser humano.
2.3.4. Wifi
Wifi pertenece a la especificacion industrial IEEE 802.11, fue el primer estandar mundial
de comunicacion inalambrica para redes WLAN desarrollado en 1997. Inicialmente, este
estandar permitıa transmisiones de 1 y 2 Mbps y operaba en la banda de 2.4 GHz, pero este
estandar esta en constante desarrollo, ya que las necesidades de los usuarios crecen constan-
temente, es por esto, que existen varios grupos de trabajo, los cuales se encargan de proponer
y definir nuevas mejoras, lo que resulta en la creacion de diferentes especificaciones basadas
36 2 Estandares de Comunicacion
en el estandar 802.11.
El estandar 802.11 define diferentes metodos y tecnologıas de transmision. Posee dos modos
de conexion, el primero y mas popular es el de conectar dispositivos a otra red como la
intranet de una empresa o Internet, este modo se muestra en la figura 2-5 (a); el otro modo
es una red ad-hoc que se muestra en la figura 2-5 (b), en este modo, un grupo de dispositivos
estan conectados de manera que pueden enviar informacion entre ellos sin tener un punto
de acceso, estas redes no son muy populares [47].
Figura 2-5: Arquitectura 802.11. a) Modo Infraestructura, b) Modo Ad - Hoc. [47]
2.3.4.1. Caracterısticas tecnicas
Las especificaciones de wifi han surgido segun el aumento de las necesidades de los clientes,
por lo tanto, dependiendo de la especificacion se tienen caracterısticas diferentes, a conti-
nuacion, se resumen las caracterısticas generales de las especificaciones mas comunes usadas
en la actualidad [22], [18],[47]:
IEEE 802.11a
Opera en la frecuencia de 5 GHz, su velocidad de transmision varia de 6 Mbps a 54 Mbps
de acuerdo al metodo de correccion de errores utilizado, alcanza una rango de 30-50 metros,
utiliza modulacion OFDM, lo que proporciona mayor velocidad y eficiencia en la transmision
evitando el efecto multitrayectoria, utiliza 54 subportadoras para la transmision, 48 para da-
tos y 4 para sincronizacion. Usa un canal con ancho de banda de 20 MHz, esta especificacion
no es compatible con la 802.11b, ya que no trabajan a la misma frecuencia.
IEEE 802.11b
Es la especificacion principal de redes inalambricas, tiene una velocidad de transmision de
11 Mbps, trabajando a una frecuencia de 2,4 GHz, su rango alcanza los 100 metros, utiliza
modulacion DSSS, usa un canal con ancho de banda de 22 MHz y maneja una potencia de
transmision de 20dBm, aunque presenta algunos inconvenientes como las interferencias y la
2.3 Estandares de comunicacion inalambrica 37
falta de QoS, tiene gran aceptacion en el mercado gracias a su bajo costo, su velocidad y su
compatibilidad.
IEEE 802.11g
Esta especificacion es compatible con la 802.11b, trabaja a la misma frecuencia de 2,4 GHz
y su velocidad de transmision aumenta a 54 Mbps, lo que permite dar servicio a 4 o 5 veces
mas de usuarios. Utiliza modulacion OFDM y alcanza un rango de 100 metros, usa un canal
con ancho de banda de 20 MHz, ademas, maneja una potencia de transmision de 15 dBm.Es
una modificacion a la capa fısica creando una extension de la capa PHY, llamada Extended
Rate PHY
IEEE 802.11n
Esta especificacion proporciona velocidades de hasta 500 Mbps, utiliza modulacion OFDM,
posee compatibilidad con todas las especificaciones anteriores a esta, trabajando tanto en la
frecuencia de 2,4GHz como en la de 5 GHz; el gran avance en esta nueva especificacion es su
tecnologıa Multiple Input – Multiple Output (MIMO), lo que permite utilizar varios canales
a la vez para la recepcion y transmision de datos utilizando varias antenas. Usa canales con
ancho de banda de 20MHz y 40MHz.
WiMAX
WiMAX es una especificacion que surge por la necesidad de generar interoperabilidad mun-
dial de tecnologıas inalambricas que utilizan el espectro microondas para su transmision,
ademas, de vincularse con relativa facilidad a redes IP, involucra aspectos del estar 802.11 y
3G, tiene como principales caracterısticas reducir costos de instalacion y extender la conec-
tividad a un rango de 50 Km [22].En cuanto a caracterısticas tecnicas opera a en la banda
de 10GHz a 66GHz con una velocidad de transferencia de 70 MHz, utilizando como tecnicas
de comunicacion OFDM y MIMO. Las caracterısticas principales del stack de protocolos se
pueden resumir de la siguiente forma:
Capa fısica: Se detallan dos tipos, una si el nodo esta en movimiento y otra si no.
Capa enlace de datos: La conforman 3 subcapas. La inferior encargada de la seguridad,
la subcapa MAC orientada a la conexion y la subcapa de convergencia especifica el
servicio que permite la adaptacion con capas superiores que varıan de acuerdo al tipo
de servicio que ofrece la red (por ejemplo IP).
Cabe mencionar que esta especificacion se relaciona el estandar 802.16a e HiperMAN.
Como estandares complementarios en 802.11 surgen:
38 2 Estandares de Comunicacion
IEEE 802.11d: Permite detectar niveles de potencia y de acuerdo a una referencia
acceder a la transmision.
IEEE 802.11e: Permite implementar en los estandares 802.11 a/b/g parametros de
QoS.
IEEE 802.11f: Permite la interoperabilidad entre puntos de acceso con diferente pro-
veedor de servicios, se conoce como IAPP.
IEEE 802.11h: Permite implementar seleccion de frecuencia dinamica DFS y control
de la potencia transmitida TPC para estandares que funcionen en la banda de 5GHz
como el 802.11n.
IEEE 802.11i: Brinda nuevos metodos de encriptacion y procedimientos de autenti-
ficacion para mejorar la seguridad en los estandares 802.11 a/b/g.
Ası mismo, las antenas transmisoras utilizadas en el estandar 802.11 deben irradiar menos
de 50 mW para aplicaciones tipo LAN. Con respecto a sus deficiencias, al utilizar la banda
ISM de 2,4 GHz se producen interferencias con telefonos inalambricos en el hogar, hornos
microondas, puertas de cochera automaticas, entre otros.
2.3.4.2. Protocolos
El estandar 802.11 define las dos capas mas bajas del modelo OSI: la capa fısica (PHY) y la
capa de enlace de datos (DLC) que se divide en Logical Link Control (LLC) y Media Access
Control (MAC) como se ve en la figura 2-6.
Figura 2-6: Protocolos 802.11. [45]
2.3 Estandares de comunicacion inalambrica 39
PHY
Esta capa es la encargada de cubrir la interfaz fısica entre los dispositivos, define el medio
fısico de transmision y la forma en que se transmite la informacion. Para el estandar wifi
se definen tres capas fısicas diferentes: Frequency Hopping Spread Spectrum (FHSS), Direct
Sequence Spread Spectrum (DSSS) y luz infrarroja.
FHSS: Consiste en transmitir parte de la informacion en una frecuencia determinada durante
un intervalo de tiempo predeterminado, generalmente de 400 ms de acuerdo a [22], para
despues cambiar de frecuencia. Utilizan 79 canales con un ancho de banda de 1 MHz, trabajan
en la banda de 2,4 GHz con una velocidad de transmision de 1, 2 o 11 Mbps y utiliza
modulacion FSK, este tipo de transmision se caracteriza por:
Almacenar el orden del salto en frecuencia en tablas, por lo cual es una transmision
sincronizada.
Su normalizacion depende del paıs en el cual se implemente.
Evita el efecto multitrayectoria conservando una distancia mınima en frecuencias.
DSSS: Es una tecnica que genera un patron de bits redundante para cada uno de los bits
que componen la senal, lo que proporcionan resistencia a las interferencias, ensanchando la
potencia de la senal. Maneja velocidades de transmision de 1 y 2 Mbps, trabaja en la banda
de frecuencia de 2,4 GHz, tiene un ancho de banda de 83,5 MHz, con 14 canales independien-
tes y utiliza modulacion BPSK y QPSK. Cabe mencionar que estas caracterısticas pueden
variar de acuerdo a la version del estandar.
La luz infrarroja utiliza el rango infrarrojo del espectro electromagnetico para transmitir
informacion por medio de ondas por el espacio libre. Esta tecnica no penetra paredes, por lo
que suele usarse en aplicaciones de muy corto alcance, ademas, proporciona un bajo ancho
de banda y es afectado por fenomenos como la luz solar. Segun [47] es una tecnica extinta
para este estandar.
Extensiones del estandar ofrecen otro tipo de tecnicas como [41]:
OFDM: Es una de las tecnicas de modulacion mas usadas en la actualidad, ya que
permite utilizar eficientemente un ancho de banda dado, este estandar se utiliza gene-
ralmente en la banda de 5GHz generando tasas de transmision como las mencionadas
anteriormente (6, 9, 12, 18, 24, 36, 48, 54 Mbps). En su desarrollo, se crean subportado-
ras equiespaciadas ortogonalmente, de tal forma que un stream de datos es distribuido
en cada subportadora, creando un sımbolo para cada una con el uso de la IFFT. Cada
subportadora utiliza las tecnicas de modulacion PSK y QAM. Al hacer esta division
40 2 Estandares de Comunicacion
del espectro, presenta baja distorsion por multitrayectoria, generando alta eficiencia
espectral.
HR-DSSS: Tambien llamada High-Rate DSSS, aumenta el rendimiento de los nodos
al aumentar la tasa de transferencia, manejando velocidades en el orden de 1Mbps,
2Mbps, 5.5Mbps y 11Mbps, para esto hace uso de la codificacion tipo CCK, gene-
rando codificacion de 4 y 8 bits, respectivamente, para las dos ultimas velocidades
mencionadas.
MAC
Esta capa controla o determina la forma en que se asigna el medio fısico a las diferentes es-
taciones de una red, en otras palabras, a quien y en que momento le toca transmitir; ademas
identifica el origen y el destino del paquete. Esta capa esta basada en el protocolo Carrier
Sense Multiple Access with Collision Avoidance (CSMA/CA), que consiste en identificar
el final de una transmision en un canal y esperar un tiempo aleatorio antes de iniciar la
transmision, lo que disminuye la posibilidad de colisiones. En redes inalambricas no se puede
usar un protocolo con deteccion de colisiones porque se necesitarıan dispositivos de radio
full duplex (transmision y recepcion al mismo tiempo en una misma frecuencia), lo cual
incrementa el costo de los equipos [22]. Al operar el protocolo CSMA/CA, permite que cada
nodo de la red trabaje bajo la modalidad de DCF (funcion de coordinacion distribuida) con
lo cual puede acceder al medio sin ningun tipo de control centralizado, en contra posicion a
esta modalidad existe PCF o funcion de coordinacion puntual, en donde el acceso al medio
es controlado por una estacion central.
Los problemas que se presentan de acuerdo al modo de funcionamiento contemplado son:
Terminal oculta: En donde, debido al area de cobertura que tiene cada nodo, si un
nodo A desea comunicarse con un nodo C y no tienen alcance entre si, deben hacer uso
de un nodo intermedio B que tiene cobertura para A y C, de tal forma que permita
la comunicacion entre ellos, sin embargo no existe forma de que A sepa cuando B
esta ocupado con C o en sentido inverso cuando C se entere de que B esta ocupado
atendiendo a A, con lo cual se producen colisiones.
Terminal expuesta: En donde, conservando el ejemplo anterior, si B desea transmitir a
C, puede suponer erroneamente que el canal esta ocupado, cuando A transmita a un
nodo que no sea B y C y ademas no este en la cobertura de estos.
Como solucion al problema de la terminal oculta, surge la deteccion de canal de manera
fısica, es decir estableciendo un nivel de potencia que indique si el canal esta ocupado y
deteccion de canal de manera virtual en donde se lleva un registro del tiempo en el cual
el canal estara ocupado. Esto se realiza implementando en cada nodo una variable NAV o
2.3 Estandares de comunicacion inalambrica 41
vector de asignacion de red. El NAV acompanado del protocolo IEEE RTS/CTS que vincula
la transmision de mensajes como:
RTS: Solicita hacer uso de canal y establecimiento de comunicacion.
CTS: Acepta uso de canal y alertando su uso o los demas nodos de su cobertura.
ACK: Finaliza la comunicacion y alerta a los demas nodos que el canal esta vacio.
Permitira solucionar completamente el problema de la terminal oculta, aunque tiene como
principal defecto ser poco util para tramas cortas y nodos que puedan comunicarse con
todos los dispositivos de la red. Ademas de las caracterısticas ya mencionadas, la capa MAC
permite solucionar necesidades imprescindibles en las redes de sensores inalambricas, como:
Confiabilidad: Permitiendo disminuir la probabilidad de ser vulneradas por senales de
interferencia mediante la fragmentacion de tramas, siendo este parametro ajustable
por cada access point y para lo cual cada nodo que envıa un K-esimo fragmento espera
la confirmacion de llegada para enviar el proximo k+1 fragmento.
Ahorro de energıa: Se puede desarrollar de dos maneras, en la primera, cada trama
enviada por un nodo al access point, cuenta con un bit que indica si el nodo entra en
estado ahorro de energıa, para verificar el trafico en este estado, el nodo verifica el mapa
del trafico que se envıa periodicamente por cada access point a cada nodo mediante
una trama baliza que ademas de esta funcion, permite anunciar la presencia del access
point a cada nodo. Generalmente esta trama baliza se envıa con un periodicidad de
100ms, lo cual es su mayor defecto; en la segunda alternativa, conocida como APSD o
Entrega Automatica de Ahorro de Energıa, cada nodo maneja el tiempo en que ahorra
energıa, ya que ahora el nodo recibira su trafico una vez le envie una trama al access
point y desee iniciar una comunicacion.
Calidad de servicio: Se puede gestionar de 2 formas, en la primera, mediante el meca-
nismo de prioridad de uso de canal, cada nodo de acuerdo a su funcion, tiene prede-
terminado el tiempo en que intentara ocupar el canal una vez reciba un ACK, existen
4 niveles de prioridad (SIFS,AIFS1,AIFS4,DIFS,EIFS) que evitan que el canal sea
ocupado en momentos donde una comunicacion sea crucial. En la segunda opcion su-
poniendo que existan nodos con diferente velocidad de transmision se puede optar por
el mecanismo TXOP u oportunidad de transmision, en donde cada nodo cuenta con
el mismo intervalo de tiempo para transmitir a diferencia del CSMA/CA que brinda-
ba un numero equivalente de tramas, ası, teniendo un nodo con mayor velocidad de
transferencia, no se ve afectado por su nodo vecino.
Por su parte, para solucionar el problema de la terminal expuesta, el estandar utiliza como
nucleo CSMA/CA, el cual es completamente funcional en grupos pequenos de nodos.
42 2 Estandares de Comunicacion
Hasta el momento, de acuerdo a las caracterısticas detalladas de la capa MAC se puede afir-
mar que de acuerdo a la topologıa y cobertura de los nodos, sera imprescindible establecer el
metodo de acceso al medio, en este caso, CSMA/CA exclusivo o con NAV, RTS/CTS y ACK.
En aspectos de seguridad, la capa MAC desarrolla dos aspectos, autentificacion y privacidad,
mediante el desarrollo de dos protocolos:
WEP: Este algoritmo de codificacion permite proteger los datos de una trama (es
decir que no protege encabezados o alguna parte de la trama), para esto hace uso de
un algoritmo de encriptacion llamado RC4 que utiliza una clave de 64-32 bits la cual
permite recepcion de los datos en cada nodo, su implementacion es veloz y simple
debido al uso de pocos recursos. Para su uso, se debera tener en cuenta la aplicacion,
ya que no es el metodo mas confiable.
WPA2: Es el descrito por la especificacion 802.11i y utiliza la estructura WPA para
su funcionamiento, permite al punto de acceso autentificar clave y usuario mediante
la administracion de una base de datos, ademas, de continuar operando con claves de
red o de divulgacion masiva como WEP. El algoritmo de cifrado se base en AES.
LLC o Protocolo IEEE 802.2
Esta capa provee mecanismos de multiplexacion que permite a los diferentes protocolos
de la familia 802.xx coexistir en una sola red, haciendo imperceptibles sus diferencias y
transportando la informacion por el mismo medio. Ademas, proporciona correccion de errores
y control de flujo. En general ofrece 3 servicios que estan orientados para recibir y contestar
servicios a las capa de red y capa MAC [27]:
Modo sin conexion no reconocida: Permite la transferencia de datos con el fin de esta-
blecer un enlace, sin generar una conexion a nivel de enlace de datos. La transferencia
de datos puede ser de punto a punto, multicast o broadcast.
Modo de conexion: Este conjunto de servicios proporciona los medios para establecer,
reiniciar y terminar las conexiones de capa de enlace de datos.
Modo sin conexion: Permite a la capa de red intercambiar unidades de datos del servicio
de enlace sin el establecimiento de una conexion de enlace de datos.
2.3.4.3. Versiones
Debido a su uso en sistemas de comunicacion masiva como internet, el estandar se ha visto
enmendado en repetidas ocasiones, y aunque se han destacado algunas caracterısticas gene-
rales de las diversas versiones, debido a la caracterıstica propia de este trabajo, se mencionara
como una de las versiones de mayor interes, el estandar IEEE 802.11ah [2].
2.3 Estandares de comunicacion inalambrica 43
IEEE 802.11ah o HaLow
Esta reciente especificacion brinda las siguientes caracterısticas :
Hasta 8.191 nodos asociados con un punto de acceso a traves de una estructura jerarqui-
ca.
Funcionamiento en la banda de 900 MHz (exentos de licencia), la cual esta menos
congestionada y garantiza un largo alcance, de hasta 1 km en zonas exteriores.
Velocidad de transferencia de al menos 100 kbps.
Topologıas de red de un salto, ademas, de transmisiones cortas y de poca frecuencia
(paquetes de 100 bytes y con ınter arribos de 30s).
Adopcion de estrategias de ahorro de energıa que permiten muy bajo consumo, solucion
rentable para los fabricantes de dispositivos de red.
Estas caracterısticas son desarrolladas principalmente para redes de sensores inalambricos y
surgen debido a que los mecanismos de energıa que provee el estandar actual es limitado, la
banda mas utilizada (2.4GHz) esta saturada, lo cual no permite un mayor alcance, ademas,
de generar altas perdidas por interferencia y la necesidad de un estandar de muy bajo costo,
que permita ser rentable para los fabricantes de dispositivos de red. Su capa PHY cuenta
con las siguientes caracterısticas:
Opera en una banda menor a 1GHz, que varıa de acuerdo al paıs.
Ancho de banda de 1, 2, 4 ,8 y 16 MHz, que dependera de su configuracion y aplicacion.
Utiliza OFDM con 32 o 64 subportadoras, equiespaciadas a 31,25 KHz, cada una
permitiendo modulaciones del tipo BPSK, QPSK 16-256 QAM.
Hace uso del sistemas MIMO para multiples usuarios y unico usuario.
Por su parte, la capa MAC de manera general cuenta con las siguientes caracterısticas:
Identificadores de asociacion o AID, con lo cual se permite dar soporte a un gran
numero de estaciones, estableciendo una jerarquıa de nodos.
Clasificacion de nodos en 2 tipos: el primero es el nodo TIM o mapa de indicacion de
trafico el cual esta siempre activo (consumiendo energıa) y se comunica permanente-
mente con el access point supervisando las tramas de senalizacion, el segundo nodo
es No-TIM el cual no se vincula directamente con el access point y en consecuencia
su estado activo se puede programar periodicamente. Cada tipo de nodo involucra
diferentes tecnicas de acceso al medio que permiten ahorrar consumo de energıa.
44 2 Estandares de Comunicacion
Formato de trama mejorada, para lo cual se acorta la longitud del encabezado reasig-
nando algunos espacios en la trama, de tal forma que se beneficie la aplicacion en redes
de sensores inalambricos.
Se elimina la transmision de ACK.
Aunque en la actualidad existen otras versiones mejoradas como 802.11ac y ad, estas van di-
rigidas para aumentar la tasa de transferencia y estan basadas principalmente en el estandar
802.11n por lo cual no se mencionan.
2.3.4.4. Aplicaciones
En el ambito de redes de sensores inalambricos existen aplicaciones que estan basadas en
tarjetas wifi que manejan algunos de los estandares mencionados, en general se destacan las
siguientes [2]:
Monitoreo de Agricultura: Para la cual se utilizan gran cantidad de puntos de medicion
y transmisiones con periodos en el orden de minutos.
Medidores Inteligentes: En este tipo de redes se visualiza el consumo de servicios publi-
cos, como lo pueden ser: electricidad, agua, gas entre otros; debido a la aplicacion,
tienen una periodicidad en la transmision de sus datos mayor a 30s.
Industria de la automatizacion: Para esta, se implementan comunicaciones del tipo
maquina a maquina M2M.
Monitoreo de Animales: Es una de las aplicaciones que evidencia la importancia del
alcance y cobertura que tenga cada nodo de la red, ya que debido a las circunstancia
de la aplicacion, la red se extiende por una gran area.
2.3.5. Comparacion entre los diferentes estandares de comunicacion
inalambrica
Una vez investigados los estandares de comunicacion mas utilizados enfocados a redes de
sensores, se construye la tabla 2-6, en la que se comparan las caracterısticas principales de
los 4 estandares estudiados.
2.3 Estandares de comunicacion inalambrica 45
Caracterısticas Bluetooth ZigBee NFC WiFiFrecuencia de Operacion 2.4 - 2.48 GHz 2.4 GHz 13,56 MHz 2,4 GHZ y 5 GHz
Velocidad de Transmision 1-54 Mbps Max. 250 Kbps 424 kbps 11, 54, 500 Mbps
Modulacion GFSK O-QPSK ASK OFDM y DSSS
Topologıas Maestro-Esclavo Estrella, punto a punto Punto a punto Infraestructura - Ad Hoc
Distancia de operacion 1-100 m 70 m interiores, 400 m exteriores ∼ 10 cm 30-100 m
Potencia de Transmision 0-20 dBm 0-20 dBm No especifica 15-20 dBm
Norma IEEE 802.15.1 IEEE 802.15.4/Alliance Zigbee ISO/IEC 18092 IEEE 802.11x
Tabla 2-6: Comparacion entre diferentes estandares de comunicacion inalambrica.
Teniendo en cuenta las consideraciones planteadas en el anteproyecto, se elige el estandar
ZigBee y Wifi. Analizando cada uno de los estandares, iniciando con bluetooth, se encontro
que su arquitectura esta disenada para satisfacer comunicaciones donde la tasa de datos sea
del orden de Mbits y el establecimiento de la comunicacion no sea concurrente, es por esto
que se utiliza en los equipos celulares, tabletas, consolas de video juegos, transferencia de
archivos de audio y texto; aunque sea ampliamente utilizado, no se encontraron aplicaciones
pertinentes en el marco de redes de sensores, por esta razon, aunque sus principales des-
ventajas (consumo de energıa y cobertura) sean mejoradas con versiones contemporaneas,
no es pertinente o primordial elegir este estandar para la realizacion del proyecto. Por su
parte, el estandar NFC, es una de las tecnologıas mas seguras, ofreciendo tiempos de cone-
xion extremadamente rapidos y siendo poco vulnerable en temas de seguridad, sin embargo,
es un estandar que no permite implementarse de forma practica con un gran volumen de
nodos, por lo cual se puede prorrogar su implementacion dentro del proyecto teniendo en
cuenta que ademas de lo mencionado, son pocas las aplicaciones en el ambito de redes de
sensores. Ahora bien, el estandar ZigBee es ampliamente utilizado en la industria y maneja
niveles de potencia de transmision y cobertura ideales en las redes de sensores, esta tecno-
logıa brinda distintos tipos de frecuencia de trabajo, ademas, de proporcionar tecnicas de
QoS, ahorro energetico y perfiles de aplicacion que pueden ajustarse a necesidades particu-
lares. El estandar wifi, debido a su popularidad, tiene multiples herramientas o desarrollos,
que permitiran robustecer la plataforma a desarrollar, aunque no sea comun su uso en redes
de sensores, existen modulos wifi que permiten su implementacion, se eligio este estandar
debido a que en sus variantes se mejoran aspectos en cuanto a cantidad de nodos en la red,
tipos de mecanismos de acceso al medio y consumo energetico, con lo cual, teniendo como
ventaja su cobertura o distancia de funcionamiento y la tasa de datos del orden de Mbits,
se perfila como una alternativa adecuada para redes de sensores.
3 Plataformas Hardware
Para la correspondiente comunicacion que se desea realizar entre las diferentes redes inalambri-
cas de sensores, se debe tener una plataforma que cumpla con las caracterısticas de un
”gateway” en la red que se desea crear. Esta plataforma permitira la recoleccion de informa-
cion que se obtenga de los sensores por parte de ambas redes, sin importar el tipo de estandar
que se utilice. Este capıtulo tiene como finalidad, analizar las caracterısticas tecnicas de las
plataformas existentes en el mercado que soportan comunicacion inalambrica, para elegir la
que se usara en el desarrollo del proyecto.
3.0.1. Raspberry Pi
La Raspberry Pi, es una tarjeta de grado industrial que viene en un formato compacto, surge
como estımulo para las escuelas y el acercamiento de las ciencias de la computacion hacia
mas personas. Esta basada en el sistema operativo GNU/Linux; este sistema operativo es de
codigo abierto, lo que representa ventajas a la hora de reprogramar la plataforma, pues se
tiene la posibilidad de descargar el codigo fuente del sistema operativo por completo y hacer
los cambios que se deseen; es en este punto donde radica el exito de la plataforma, ademas
de su precio. Puede ser programada mediante una gran variedad de lenguajes a traves de
comunicacion serial, SSH o bien un teclado y un televisor. En cuanto a software, es altamente
extensible mediante paquetes descargables [49].
Su procesador interno, basado en una arquitectura de conjunto de instrucciones conocida
como Advanced RISC Machine (ARM), hace que tenga un bajo consumo energetico, lo que
explica el por que es capaz de funcionar con una fuente de alimentacion de 5v suministrada
por el puerto USB. Sin embargo, su procesador no la hace compatible con el software de las
computadoras tradicionales.
La Raspberry Pi se encuentra disponible en dos modelos, el Modelo A y el Modelo B. Ambos
modelos comparten caracterısticas, pero existen algunas diferencias, ya que el Modelo A
sacrifica funcionalidad en razon de disminuir su costo y los requerimientos de energıa. El
Modelo A es el mas economico de las Raspberrys, consume menos energıa y tiene menos
memoria que el Modelo B, lo que podrıa ocasionar que las aplicaciones se ejecuten de manera
mas lenta, ademas, cuanta con un solo puerto, a diferencia del modelo B que trae mas
puertos [51]. Ademas de los modelos A y B, tambien existen diferentes versiones denominadas
47
revisiones. Algunas de las caracterısticas mas relevantes de los diferentes tipos de Raspberrys
se pueden apreciar en la tabla 3-1.
Caracterısticas Raspberry Pi 1
Modelo A+
Raspberry Pi 1
Modelo B+
Raspberry Pi 2
Modelo B
Raspberry Pi 3
Modelo BMemoria RAM 256MB 512MB 1GB 1GBPuertos 1 USB 4 USB 4 USB 4 USBEthernet - Sı, 10/100 Mbps Sı, 10/100 Mbps Sı, 10/100 MbpsConectividad
Inalambrica
- - - 802.11n y Bluetooth
Procesador ARM 1176JZF-S a
700MHz
ARM 1176JZF-S a
700MHz
ARMv7 a 900MHz ARMv8 a 1.2GHz
Pines I/O 40 40 40 40Alimentacion 5V/400mA 5V/500mA 5V/800mA 5V/2,5AConsumo 2w 2,5w 4w 12,5wDimensiones 66x56x14mm 85x56x17mm 85x56x17mm 85x56x17mmPrecio (USD) $20 $35 $35 $35
Tabla 3-1: Tipos de Raspberry Pi.
La tabla 3-1 muestra solo algunos de los modelos mas utilizados y completos que ofrece
Raspberry Pi Foundation. La gran popularidad que tienen esta plataforma, ha generado la
creacion de diversos accesorios o modulos que se pueden adaptar a la Raspberry Pi para
agragar funcionalidades a la plataforma base, algunos de estos accesorios son: modulos de
camaras, placas PCB para crear circuitos electronicos adicionales, placas de expansion para
aumentar los pines de salida o entrada, placas para realizar transmisiones NFC, entre otros.
En la figura 3-1 se puede observar la Rasperry Pi 3 - Modelo B.
Figura 3-1: Raspberry pi 3 - modelo B. [51]
48 3 Plataformas Hardware
3.0.2. Arduino Tian
Arduino es una companıa que ofrece una plataforma electronica de codigo abierto basado en
hardware y software facil de usar. Todas las placas Arduino son completamente de codigo
abierto, permitiendo a los usuarios crear de forma independiente, y finalmente, adaptarlos a
sus necesidades particulares. El software es de codigo abierto, y esta creciendo a traves de las
contribuciones de los usuarios en todo el mundo, es facil de usar para los principiantes, pero
lo suficientemente flexible para los usuarios avanzados. Algunas de las ventajas que ofrece
este tipo de dispositivos son: su precio en el mercado es relativamente barato, se puede eje-
cutar en diferentes plataformas como Mac, Windows y Linux, su entorno de programacion
es simple, codigo abierto y su hardware se puede ampliar o extender [7].
La mayorıa de plataformas que desarrolla este companıa, no ofrece tantas funcionalidades
como lo hace la familia de Raspberry Pi, sin embargo existe una que es comparable con
las caracterısticas de una Raspberry, se trata de la placa Arduino Tian (figura 3-2, esta
basada en el sistema operativo GNU/Linux y entre sus principales caracterısticas tecnicas
se encuentran [8]:
Procesador ARM Cortex-M0 a 500 MHz
Memoria RAM de 64 MB
Alimentacion de 5v/470mA
Consumo de energıa de 2,3w
20 pines de entrada/salida
Conectividad: Ethernet, Wi-Fi (IEEE 802.11n) y Bluetooth
1 puerto USB
Dimensiones: 68x53mm
Esta plataforma se desarrollo para ser utilizada en proyectos enfocados al IoT, proporcio-
nando una alternativa optima en tareas que no son tan exigentes. Tiene un precio de 95
dolares aproximadamente.
49
Figura 3-2: Arduino Tian. [8]
3.0.3. BeagleBone Black
BeagleBone Black es una plataforma desarrollada por Texas Instruments, de codigo abierto
y bajo costo (figura 3-3). Se desarrolla con fines educativos, para ensenar las capacidades
del software y hardware libre en los colegios. Su sistema operativo es GNU/Linux, pero es
compatible con diferentes distribuciones de Linux y sistemas operativos como Ubuntu, An-
droid o Fedora.
Las capacidades que tiene esta plataforma se pueden extender usando placas de conexion
que se conectan a los cabezales de expansion que posee la BeagleBone Board. Esta es la
ultima plataforma lanzada por la familia de placas que desarrolla Texas Instruments. Entre
sus principales caracterısticas tecnicas se encuentran [48]:
Procesador ARM Cortex-A8 a 1 GHz
Memoria RAM de 512 MB
Alimentacion 5v/210-460mA
Consumo de energıa de 1-2,3w
2 puertos USB
Conectividad: Ethernet
65 pines de entrada/salida
Dimensiones 86,36x53,34mm
50 3 Plataformas Hardware
Figura 3-3: BeagleBone Black. [48]
3.0.4. LinkIt One
LinkIt One es una plataforma desarrollada por MediaTek enfocada al IoT (figura 3-4), las
plataformas que ofrece esta compania proporcionan una amplia gama de opciones de conec-
tividad y las herramientas de desarrollo necesarias para crear diferentes tipos de dispositivos.
Utiliza un hardware similar a los ofrecidos por las tarjetas arduino.
Esta plataforma se basa en el sistema comercial sobre chip (SoC) mas pequeno del mundo,
puede crear facilmente dispositivos que se conecten a otros dispositivos inteligentes o direc-
tamente a aplicaciones y servicios en la nube, cuenta con su propio sistema operativo, el cual
permite crear aplicaciones para dispositivos LinkIt ONE que se integran con el software de
Arduino para entregar un interfaz de programacion de aplicaciones y un proceso de desarrollo
familiar. Entre sus principales caracterısticas tecnicas se encuentran [32]:
Procesador ARM7 EJ-S a 260MHz
Memoria RAM de 4MB
Conectividad: WiFi, Bluetooth, GSM, GPRS
16 pines de entrada/salida
Alimentacion 4,2v/3mA
Consumo de energıa 12,6mW
1 puerto USB
Dimensiones 83,82x53,34mm
51
Figura 3-4: LinkIt One. [32]
3.0.5. Comparacion entre las plataformas disponibles en el mercado
Posterior a la invenstigacion que se desarrollo en cuanto a las plataformas mas utilizadas en
el mercado y estudiando sus principales caracterısticas tecnicas enfocadas en las necesidades
del proyecto en curso, se construye la tabla 3-2, en la que se comparan las 4 plataformas
mas utilizadas.
Caracterısticas Raspberry Pi 3 Modelo B Arduino Tian BeagleBone Black LinkIt OneMemoria RAM 1GB 64MB 512MB 4MBPuertos 4 USB 1 USB 2 USB 1 USBConectividad Inalambrica 802.11n y Bluetooth 802.11n y Bluetooth - 802.11n y BluetoothAlimentacion 5V/2,5A 5v/470mA 5v/210-460mA 4,2v/3mAConsumo 12,5w 2,3w 1-2,3w 12,6mWDimensiones 85x56mm 68x53mm 86,36x53,34mm 83,82x53,34mmPrecio (USD) $35 $95 $50 $60
Tabla 3-2: Comparacion entre diferentes plataformas.
Debido a las necesidades del proyecto, se evaluaron caracterısticas tecnicas especıficas, que
sustentan la eleccion que se toma. En primer lugar se evaluo la capacidad en cuanto a la
memoria que posee cada plataforma, ya que de esto depende el rendimiento y la velocidad
al trabajar programas en paralelo, en este aspecto la Raspberry Pi 3 es la ganadora. Otro
aspecto de igual importancia es la cantidad de puertos USB que tienen, ya que el objetivo
del proyecto es la interoperabilidad de dos estandares de comunicacion se puede llegar a
necesitar modulos adicionales para integrar a la placa y una de las formas para hacerlo es
por medio de los puertos USB, de nuevo la Raspberry Pi 3 es superior a las demas plata-
formas con 4 puertos. En cuanto a la conectividad inalambrica, todas las placas menos la
BeagleBone Black cuentan con conectividad WiFi y Bluetooth. La alimentacion de la placa
nos da una idea del consumo de energıa por cada una de estas, lo que representa un aspecto
importante a la hora de ahorro en costos, para este aspecto la plataforma Linkit One es la
ganadora. En cuanto a las dimensiones de la placa, se espera que entre menores sean estas,
representara una ventaja al momento de la implementacion, pues se presta para ubicarla de
52 3 Plataformas Hardware
forma estrategica, en este caso, todas las plataformas tienen una dimension similar aproxi-
madamente, pero la placa de Arduino Tian es un poco mas pequena, haciendola ganadora.
Por ultimo y no menos importante, evaluamos el precio en el mercado, se obtuvo que la pla-
taforma que se encuentra a menor precio es la Raspberry pi 3, con aproximadamente 35 USD.
Despues del analisis detallado de las caracterısticas mas relevantes de cada plataforma, se
llego a la conclusion que, la plataforma que mas se acomoda a las necesidades del proyecto
y proporciona mayores beneficios, es, la Raspberry Pi 3 modelo B, la cual se elige para el
desarrollo del proyecto.
4 Desarrollo del Sistema de
Comunicacion
El siguiente capıtulo es una explicacion del desarrollo del sistema de comunicacion que in-
teropera los estandares de comunicacion inalambrica WiFi y ZigBee, sobre la Raspberry Pi
3; ademas, se mencionan las heramientas necesarias que se usaron para el correcto funciona-
miento del sistema.
4.1. Estandar de comunicacion y modulos.
Cada estandar tiene formas de comunicacion diferentes, tanto a nivel de hardware como de
software, es por esto que se realiza una explicacion de cada estandar y posteriormente se
describe la forma de interoperarlos sobre la plataforma.
4.1.1. Wifi
Para implementar el estandar de comunicacion wifi, se eligio el modulo ESP8266 (Figura
4-1), ya que es un modulo de facil adquisicion en el mercado, bajo costo y alto uso en
aplicaciones de redes de sensores. Esta familia de modulos tiene diferentes versiones, pueden
ir desde la version 01 siendo la mas basica, hasta la 12 que es una de las mas completas; se
eligio la version 12E, ya que proporciona mayor funcionalidad que las versiones anteriores y
memoria suficiente para ser programado, caracterıstica que es necesaria para el cumplimiento
de las necesidades basicas del proyecto.
Figura 4-1: Modulo ESP-12E.
54 4 Desarrollo del Sistema de Comunicacion
4.1.1.1. Caracterısticas basicas del modulo
Este modulo es uno de los chips wifi mas ıntegros en toda la industria, ya que, entre sus
caracterısticas, estan [19]:
Estandar 802.11 b/g/n
Microprocesador de 32 bits
Memoria de 32 MB
1 pin ADC de 10-bit
10 pines digitales GPIO
Topologıa de red: Estrella
Protocolos IPv4, TCP/UDP/HTTP/FTP
Soporta diversidad de antenas
WiFi 2.4 GHz
Modos de operacion: ’Station’, ’Access Point ’, ’Station + Access Point ’
Voltaje de operacion: 3.0-3.6V
Corriente de operacion: 400mA, menos de 20uA cuando se encuentra en modo dormido
Tamano 15x25mm
Precio (USD): $11
La implementacion del estandar de comunicacion wifi, contara con al menos un modulo
ESP8266 y un punto de acceso wifi. Para el correcto funcionamiento, es indispensable asegu-
rar que la alimentacion del modulo este entre 3v y 3,5V y la corriente sea la suficiente para
alimentarlo; el modulo es altamente vulnerable a excesos de voltaje.
Para la alimentacion e implementacion del modulo se utiliza el kit de desarrollo NodeMCU,
el cual se puede apreciar en la figura 4-2, este kit implementa el firmware de codigo abierto
NodeMCU, dirigido especialmente para el modulo ESP8266 version 12E (ESP - 12E) y
basado en lenguaje de programacion Lua, sin embargo, se decide trabajar con el firmware
basado en micropython, ya que ofrece las siguientes ventajas:
Adaptacion de python para microcontroladores, lo que proporciona diferentes librerıas
que se ajustan a las necesidades, ademas, permite manejar programacion orienta a
objetos y es el lenguaje de programacion que se usa para el desarrollo del proyecto.
4.1 Estandar de comunicacion y modulos. 55
Permite manejar sistema de ficheros, cargandolos directamente en la memoria del mo-
dulo.
Codigo abierto.
Figura 4-2: Kit de desarrollo NodeMCU - ESP 12E.
4.1.1.2. Modos de operacion
El modulo ESP-12E se comporta como cliente, por lo cual es configurado en modo ’Station’,
este, se conecta a un ’Access Point ’ y envıa la informacion recolectada por el sensor a una
central, en este caso la Raspberry Pi 3. Para configurar la red wifi, se tiene al menos un nodo
configurado como ’Station’ y un ’Access Point ’, ası:
Station: El modulo ESP-12E, permite crear una conexion automatica a una IP pre-
determinada al momento de encenderlo, tiene la posibilidad de configurarse en modo
dormido, permitiendo que, durante el tiempo que esta inactivo, disminuya el consumo
de energıa, ademas, se puede configurar los pines GPIO, los cuales leen la variable
sensada para enviar la informacion a una tasa determinada.
Access Point: La Raspberry Pi 3 tiene un modulo wifi incorporado, este se debe con-
figurar como punto de acceso, definiendo un nombre y contrasena de red y una IP de
servidor, a la cual se van a conectar todos los clientes que existan.
Para la programacion y configuracion de los modulos se utiliza Micropython, por otro lado,
la configuracion del punto de acceso se hace directamente sobre la Raspberry Pi 3.
4.1.2. ZigBee
La implementacion del estandar de comunicacion ZigBee se realiza por medio de los modulos
XBee S2 (Figura 4-3). Los XBee son pequenos modulos fabricados por Digi International,
56 4 Desarrollo del Sistema de Comunicacion
capaces de comunicarse de forma inalambrica unos con otros, utilizando el protocolo de red
IEEE 802.15.4 (comunmente llamado ZigBee). Existen diferentes versiones de esta familia,
entre los cuales se destacan: los Serie 1, son mas basicos y faciles de usar, ya que no necesitan
ser configurados y los Serie 2, los cuales funcionan en modo transparente o por medio de
comandos API. En la version 2B, la mejora mas evidente es la disminucion del consumo de
potencia; Otras versiones, trabajan en la banda de 900MHz y acompanados de un antena de
alta ganancia se puede obtener un mayor alcance. [16].
Figura 4-3: Modulo XBee.
Para el desarrollo del proyecto se eligio trabajar con los modulos serie 2, ya que permiten
configurar parametros del modulo, realizar una comunicacion segura mediante comandos
API y proporcionan las caracterısticas suficientes para cumplir con los objetivos del trabajo.
4.1.2.1. Caracterısticas basicas del modulo
Las caracterısticas mas relevantes del modulo XBee S2, son [16]:
Alcance ’indoor ’ entre 60 y 90m
Alcance ’outdoor ’ entre 1500 y 3200m
Voltaje de operacion: 3.0-3.4V
Corriente de operacion: 170-295mA
Frecuencia 2,4GHz
Soporta diversidad de antenas
4.1 Estandar de comunicacion y modulos. 57
Topologıas de red: Punto a punto, punto a multipunto, malla
14 Canales de secuencia directa
5 posibilidades de configuracion en modo dormido
6 pines ADC de 10-bit
8 pines digitales GPIO
Tamano 24.38x32.94mm
Precio (USD): $56
Para la implementacion del estandar de comunicacion ZigBee, es necesario contar con mıni-
mo 2 modulos XBee S2, uno de ellos sera el coordinador (unico en toda la red) y el otro sera
un router o dispositivo final (nodo de sensado).
Para su vinculacion con la raspberry Pi 3, el nodo coordinador hara uso del puerto USB,
por lo cual el modulo debe contar con un placa adaptadora y cable USB, esta adaptacion
se puede apreciar en la figura 4-4, cabe notar que tambien sera alimentado por este mismo
puerto.
Figura 4-4: Adaptador y Modulo XBee.
Los nodos se vinculan a la plataforma de acuerdo a su configuracion.
4.1.2.2. Modos de operacion
Los modulos XBee S2 tienen diferentes modos de trabajo, el modo transparente es el mas
sencillo pero a la vez el mas limitado, ya que, no permite cambiar remotamente los parametros
de configuracion del modulo, ni obtener informacion del modulo que origina la informacion,
58 4 Desarrollo del Sistema de Comunicacion
es por esto que se hace necesario configurar todos los modulos en modo API, para enviar y
recibir paquetes de datos. En la red se encontraran los siguientes tipos de nodos:
Nodo Coordinador: Sera unico en la red y tendra como funciones especificas:
• Establecer el numero de identificacion para la red (PAN ID).
• Eligır un canal de comunicacion, de acuerdo a las condiciones del medio.
• Envıa los datos recolectados a la plataforma por medio de comunicacion serial.
Nodo Router o dispositivo final: los cuales deberan:
• Registrar el mismo numero de identificacion que el nodo coordinador.
• Tener asignado como direccion de destino el nodo coordinador.
• Configurar los pines de entrada para sensar las variables respectivas.
La configuracion de cada uno de los nodos se hace mediante XCTU, es una aplicacion
gratuita, facil de usar y compatible con Windows, Linux y MacOS.
4.2. Desarrollo del Sistema
4.2.1. Configuracion de la plataforma
EL sistema operativo elegido para la Raspberry PI 3 es Raspbian, este, es una distribucion
GNU/Linux basado en Debıan y es el sistema mas aceptado en las plataformas Raspberry.
Inicialmente se implemento Ubuntu MATE recomendado por la pagina oficial de Raspberry
pero se encontraron algunos accesos restringidos en diversos ficheros y poca documentacion
en cuanto a su implementacion, ademas, no se encontraron beneficios significativos que jus-
tificaran su utilizacion. El lenguaje de programacion utilizado es Python 3, debido a que
permite desarrollar el paradigma de la programacion orientada a objetos y cuenta con una
gran variedad de librerıas utilizadas en el desarrollo del proyecto como lo es: PyQT, XBee,
Micropython y sqlite3, ademas, pone en funcionamiento aspectos relevantes para el proyecto
como: comunicacion serial, comunicacion TCP mediante sockets, implementacion de hilos,
entre otros.
Como la plataforma se va a comportar como nodo central de la red de sensores, es necesario
configurarla de tal forma que acepte conexiones de ambos estandares de comunicacion, para
esto, se configura como punto de acceso wifi, aprovechando la radio wifi que trae incorporado,
por otro lado, se debe identificar el puerto serial al cual se va a conectar el nodo coordina-
dor ZigBee, y de esta manera, aceptar comunicaciones entrantes de ambos estandares. A
continuacion, se agrupan y explican aspectos importantes que se tuvieron en cuenta para el
desarrollo y correcto funcionamiento del sistema.
4.2 Desarrollo del Sistema 59
4.2.1.1. Punto de acceso wifi
Se configura el modulo wifi que posee la Raspberry Pi 3 como punto de acceso por medio de
los paquetes hostapd y dnsmasq; hostapd permite a la plataforma usar el radio wifi incor-
porado como punto de acceso y dnsmasq es un servidor con un protocolo de configuracion
dinamica de host (DHCP), y un sistema de nombres de dominio (DNS).
Lo primero que se debe hacer es, asignarle una direccion IP estatica a la interfaz inalambrica,
en este caso se configura wlan0 con la direccion 172.21.1.1. Posterior a esto, se debe crear
un archivo de configuracion con:
Nombre de la interfaz wlan0.
Driver de acuerdo a raspberry.
Nombre a la red wifi.
Banda de trabajo, canal, contrasena y tipo de seguridad.
Path de Archivo de configuracion.
Finalmente, se debe crear el archivo de configuracion dnsmasq con la informacion configurada
para la red y habilitar el reenvıo de paquetes configurando IPv4. El paso a paso detallado
para configurar la raspberry Pi 3 como Access Point, se obtuvo de [31].
4.2.1.2. PyQt4
La interfaz grafica de usuario (GUI) del sistema, se desarrolla mediante la librerıa PyQt4,
esta, es una extension de la librerıa grafica QT para Python.
Para facilitar el uso de esta librerıa, se utilizo QT Designer, que es una herramienta QT para
el diseno y construccion de GUIs, permitiendo personalizar y cambiar de manera dinamica su
aspecto visual; esta aplicacion genera un archivo XML (eXtensible Markup Language), cuyo
contenido es el formato de dicha GUI, este archivo se puede convertir a diferentes lenguajes
de programacion, como python en este caso, por medio de la herramienta pyuic. Qt Designer
genera un archivo .ui y pyuic permite convertir este archivo a codigo de fuente python (.py),
ası:
python3 pyuic.py -o nuevo.py anterior.ui
De esta manera pyuic, lee el archivo .ui y lo convierte en un archivo especifico nuevo.py por
medio de la opcion -o.
60 4 Desarrollo del Sistema de Comunicacion
4.2.1.3. Manejo de hilos
Ya que el objetivo principal del sistema de comunicacion, es, aceptar comunicaciones de di-
ferentes estandares, es necesario que el sistema las acepte y procese de manera simultanea,
es por esto que se implementan hilos, permitiendo distribuir los recursos de la raspberry en
las diferentes actividades realizadas por la plataforma, sin que esto genere un problema para
el desarrollo del mismo.
Para la implementacion de los hilos se uso la librerıa threading, iniciando cada tarea realizada
en paralelo de la siguiente manera:
t1=threading.Thread(target=tarea1, name=’tarea1’)
t2=threading.Thread(target=tarea2, name=’tarea2’)
t1.start()
t2.start()
De esta forma, se realizan simultaneamente la tarea1 y la tarea2, que para este proyecto se
refieren a la lectura de datos de los sensores ZigBee y wifi.
4.2.1.4. Lectura de datos wifi - Sockets
Para crear una comunicacion entre los sensores wifi y el punto de acceso, se crea una cone-
xion cliente - servidor mediante la implementacion de sockets, usando la librerıa del mismo
nombre proporcionada por python.
Existen varios tipos de sockets, dependiendo del stack que se quiera trabajar, ya sea UDP o
TCP; en este proyecto, se utiliza el socket Stream que se basa en el stack TCP, este asegura
que los mensajes que son enviados conserven su orden al llegar al destino. Desde el lado de
la plataforma, se debe configurar el socket como servidor, para que acepte conexiones de
diferentes clientes. De acuerdo a lo anterior, para realizar una conexion exitosa, es necesario
tener en cuenta aspectos basicos de su configuracion, como:
Crear un objeto para trabajar con el socket:
s = socket.socket(socket.AF INET, socket.SOCK STREAM)
Indicar el puerto que va aceptar las conexiones externas con el metodo bind, el primer
parametro del metodo se puede dejar vacıo para indicar que el metodo puede utilizar cual-
quier nombre que este disponible, en el segundo, se especıfica el puerto:
s.bind((’’ ’’, puerto))
Configurar el socket como no bloqueante por medio del metodo setblocking:
4.2 Desarrollo del Sistema 61
s.setblocking(0)
Configurar el metodo listen, con la cantidad de conexiones que puede encolar el socket, antes
de empezar a rechazarlas, por ejemplo 5:
s.listen(5)
Utilizar el metodo select para que el socket acepte y maneje conexiones no bloqueantes de
diferentes clientes, este metodo se configura con 3 parametros, el primero contiene todos los
sockets de los que quiere intentar leer, el segundo todos los sockets en los que quiere intentar
escribir y el tercero aquellos sockets en los que quiere comprobar si ha existido algun error:
readable, writable, exceptional = select.select(inputs, outputs, inputs)
Crear un objeto (sc) para recibir datos del cliente, al aceptar la conexion, esta devuelve un
objeto con los datos de conexion, como IP y puerto:
sc, addr = s.accept()
Por medio del metodo setblocking, se configura el nuevo objeto como no bloqueante:
sc.setblocking(0)
Utilizar el metodo recv, para aceptar mensajes entrantes, indicando la cantidad maxima de
bytes que acepta:
data=sc.recv(1024)
Utilizar el metodo send, para enviar mensajes de respuesta al cliente:
sc.send(’Mensaje’)
Cerrar el objeto que representa el socket cliente y servidor cuando se termina la comunica-
cion:
sc.close()
s.close()
Esta configuracion, se basa en sockets no bloqueantes, caracterıstica importante para dar-
le autonomıa y robustez al sistema, permitiendo que las conexiones se realicen de manera
exitosa sin importar el momento en el que se generen, la cantidad de nodos conectados o el
estandar al que pertenecen. En la figura 4-5 se puede ver el diagrama de flujo que representa
la lectura de datos WiFi.
62 4 Desarrollo del Sistema de Comunicacion
Figura 4-5: Diagrama de flujo Lectura de datos wifi.
4.2 Desarrollo del Sistema 63
4.2.1.5. Lectura de datos ZigBee - Puerto Serial
Figura 4-6: Diagrama de flujo Lectura de datos ZigBee.
Para crear una comunicacion entre los sensores ZigBee, se implementan las librerıas serial
y XBee de Python, la primera se utiliza para identificar el nombre del puerto asociado al
nodo coordinador, el cual se encuentra conectado a la plataforma, la segunda se utiliza para
crear el objeto ZigBee, indicando el puerto serie al que esta asociado y la tasa de baudios, ası:
serial port = serial.Serial(′/dev/ttyUSBX ′, 9600)
xbee = ZigBee(serial port, callback=print data)
64 4 Desarrollo del Sistema de Comunicacion
El metodo print data es una excepcion que pertenece a la librerıa XBee, este se ejecuta cada
vez que hay un dato entrante, de esta forma el proceso de lectura de los sensores ZigBee, es
un proceso no bloqueante.
Es importante tener en cuenta, que, una vez terminada la comunicacion, es necesario detener
el objeto xbee y esperar a que se limpie o vacıe antes de volver a ser utilizado, ademas, se
debe cerrar el puerto, de la siguiente manera:
xbee.halt()
serial port.close()
En la figura 4-6 se puede ver el diagrama de flujo que representa la lectura de datos ZigBee.
4.2.1.6. Configuracion remota nodos wifi
Figura 4-7: Diagrama de flujo Configuracion remota nodos wifi.
La configuracion remota de los modulos wifi se realiza con base en el archivo de texto del
registro local alojado en la central, que contiene el tiempo de dormido de cada nodo, de
tal forma que al momento de recibir un dato sensado, la central enviara como respuesta el
tiempo que permanecera dormido. El archivo de texto se carga cada vez que se inicia la
4.2 Desarrollo del Sistema 65
aplicacion y el usuario podra modificar su informacion. En la figura 4-7 se puede ver el
diagrama de flujo que representa la configuracion remota de los nodos wifi.
4.2.1.7. Configuracion remota nodos ZigBee
Figura 4-8: Diagrama de flujo Configuracion remota nodos ZigBee.
66 4 Desarrollo del Sistema de Comunicacion
Para la configuracion remota de los nodos ZigBee, se utiliza la librerıa XBee de python, la
cual proporciona el metodo send, en el que se indica el parametro que se desea configurar,
junto con el valor y la direccion de destino del nodo, por ejemplo:
xbee.send(’remote at’,
frame id=’id de la trama’,
dest addr=’direccion del nodo’,
command=’parametro’,
parameter=’valor del parametro’)
Donde xbee representa el objeto tipo ZigBee que se debe crear con anterioridad, de esta
manera, se crean las tramas y se envıan las configuraciones a cada nodo. Para comprobar que
la configuracion se realiza con exito, el nodo XBee receptor, envıa una respuesta automatica
a la configuracion remota, de la cual se evalua el valor del ’status ’, si se obtiene 0x00, el
parametro se configuro con exito, de lo contrario, se produjo un error, y en este caso, es
necesario reenviar la trama con el parametro a configurar. En la figura 4-8 se puede ver el
diagrama de flujo que representa la configuracion remota de los nodos ZigBee.
4.2.1.8. Informacion de red wifi
En informacion de la red wifi, se identifican los nodos que se encuentran activos y estan
vinculados al concentrador. Por lo cual, se crea un socket para establecer la comunicacion y
al momento de recibir y procesar la conexion de cada nodo activo, cerrar su conexion, pues lo
que se quiere es identificar que nodos estan conectados, mas no procesar los datos sensados;
es decir, el socket se crea, se queda esperando a recibir conexiones de nodos posiblemente
activos durante un tiempo determinado y se cierra una vez identifique los nodos activos.
Posteriormente, se consulta el archivo de texto del registro local que contiene la informacion
del tiempo de dormido asociado a cada nodo, y se muestra el resultado unicamente para los
nodos activos. En la figura 4-9 se puede ver el diagrama de flujo que representa la consulta
de informacion de la red wifi.
4.2 Desarrollo del Sistema 67
Figura 4-9: Diagrama de flujo Informacion de red wifi.
4.2.1.9. Informacion de red ZigBee
La informacion de la red ZigBee, al igual que para la red wifi, corresponde a la consulta de
la informacion actual de la red. Para obtener esta informacion, se crea un objeto de tipo
ZigBee como el que se crea para la lectura de datos, pero en este caso, solo se van a procesar
las tramas que se obtienen como respuesta a la consulta de parametros, es decir, se usa el
metodo send de la librerıa XBee, para preguntar a cada nodo los parametros de interes, y el
nodo responde con una trama en la que envıa la informacion solicitada, por ejemplo:
xbee.send(’remote at’,
frame id=’id de la trama’,
dest addr=’direccion del nodo’,
options=’\x02’,
68 4 Desarrollo del Sistema de Comunicacion
command=’parametro’,
La diferencia con la trama que se crea para la configuracion del nodo, radica en el parametro
options, el cual se envıa con un valor de \x02, indicando que es una trama de consulta, y
se elimina el parametro parameter. Sin embargo, esta trama solo se envıa a los nodos que la
red detecta durante un tiempo determinado, finalmente, se muestra el resultado de los nodos
activos y sus parametros. En la figura 4-10 se puede ver el diagrama de flujo que representa
la consulta de informacion de la red ZigBee.
Figura 4-10: Diagrama de flujo Informacion de red ZigBee.
4.2 Desarrollo del Sistema 69
4.2.1.10. Grafica datos wifi y ZigBee
Figura 4-11: Diagrama de flujo Grafica datos.
Para graficar los datos sensados, se hace uso de la librerıa pyqtgraph de python, esta grafica
se realiza de manera independiente para cada nodo, el proceso de graficar los datos es el
mismo para ambas tecnologıas, asi:
70 4 Desarrollo del Sistema de Comunicacion
1. Es necesario detectar los nodos que se encuentran activos en la red, de la misma forma
que se hizo en la seccion de informacion red wifi y ZigBee, dependiendo del estandar.
2. Una vez detectados los nodos activos, se procesan los datos recibidos por todos los
nodos como se hizo en lectura de datos wifi y ZigBee, guardando los datos en la base
de datos.
3. Se grafican unicamente los datos del nodo seleccionado, esto se logra evaluando el nodo
que se desea graficar y actualizando el vector que contiene los datos recibidos.
Es importante tener en cuenta, que los procesos de graficar datos se hace en paralelo para
cada tecnologıa, usando la librerıa threading de python, lo que permite observar la grafica
de las dos tecnologıas al mismo tiempo.
En la figura 4-11 se puede ver el diagrama de flujo que representa el proceso para graficar
los datos sensados, este diagrama es el mismo para ambas tecnologıas, la diferencia radica
en la forma de detectar los nodos y en la lectura de datos.
4.2.1.11. SQL
El manejo de las bases de datos, se hace mediante SQL. Este es un lenguaje de consulta
estructurada que da acceso a un sistema de gestion de base de datos y permite realizar dife-
rentes operaciones en estas, esta disenado para manejar los datos que hay en un sistema de
bases de datos.
El sistema de gestion de bases de datos permite el almacenamiento, modificacion y extraccion
de la informacion en una base de datos, ademas de proporcionar herramientas para anadir,
borrar, modificar y analizar los datos por medio de un lenguaje estructurado como lo es
sql; el sistema de gestion utilizado en este proyecto es la version 3 de SQLite. Este sistema,
a diferencia de los sistemas convencionales que actuan como procesos independientes del
programa con el que se comunican, se enlaza con el programa y pasa a ser parte integral
del mismo, lo que reduce la latencia en el acceso a las bases de datos, ya que, al realizar
las llamadas a funciones, resulta ser mas eficiente que la comunicacion entre procesos. La
version 3 de SQLite, proporciona un tamano de hasta 2 Terabytes y permite la inclusion de
campos tipo BLOB (Binary Large Objects), lo cual permite el almacenamiento de datos de
gran tamano que cambian de forma dinamica.
El almacenamiento de los datos se hace por separado para cada tecnologıa, es decir, se crean
dos bases de datos, esto, con el fin de evitar conflictos al momento de recibir dos datos
de diferente tecnologıa al mismo tiempo, eliminando la posibilidad de perder alguno de los
4.2 Desarrollo del Sistema 71
dos datos, ademas, permite consultar libremente cada base de datos en cualquier punto del
proceso.
4.2.2. Configuracion modulo wifi
La configuracion de los modulos wifi se realiza mediante Micropython, de esta manera, se
podra disenar la logica de los modulos por medio de instrucciones desarrolladas en python.
Los modulos wifi funcionaran en modo ’station’, para esto, es necesario indicarles a que ’Ac-
ces Point ’ se van a conectar utilizando la librerıa network, de la siguiente manera:
sta if = network.WLAN(network.STA IF)
sta if.active(True)
sta if.connect(’nombre de la red’, ’contrase~na’)
Inicialmente se crea el objeto de tipo ’station’, luego se activa la interfaz y por ultimo se
conecta a la red wifi, indicando el nombre de la red y la contrasena. Esta configuracion se
realiza una sola vez, ya que el modulo se conectara de forma automatica a la misma red cada
vez que se inicie. Posteriormente, se realiza la configuracion de la conexion TCP por medio
de la librerıa socket, de la siguiente manera:
s=socket.socket()
s.connect(’direccion ip’,puerto)
Para esto se crea un objeto de tipo socket, indicando la direccion y el puerto del servidor
con el cual se establecera una conexion.
Es importante tener en cuenta algunas condiciones de funcionamiento del modulo para cum-
plir con la caracterıstica fundamental en una red inalambrica de sensores, el ahorro de energıa;
esto se logra configurando el tiempo de dormido durante el cual el modulo disminuira el con-
sumo de corriente. Para esto, el modulo ofrece 3 opciones de configuracion en modo de
dormido:
Modo Modem-Sleep: El consumo de corriente es de 15mA, y es permitido solo con el
modulo configurado como nodo station, en este modo el modulo permanecera conectado
a la red wifi y al recibir informacion desde el servidor, se despertara automaticamente,
la diferencia con los otros dos modos, radica en que este mantiene el reloj del sistema
encendido.
Modo Ligth-Sleep: El consumo de corriente es de 0,4mA, el funcionamiento de este
modo es similar al modem-sleep, la diferencia esta en que el modulo apaga el reloj del
72 4 Desarrollo del Sistema de Comunicacion
sistema y suspende la CPU interna, resultando en un consumo menor de energıa.
Modo Deep-Sleep: El consumo de corriente es de aproximadamente 20uA, en este modo
el modulo desactiva la conexion wifi y la conexion de datos, solamente el RTC (Real
Time Clock) sigue funcionando, lo que permite que se pueda despertar periodicamente
disminuyendo considerablemente el consumo de energıa.
Teniendo claro los modos de funcionamiento, se decide trabajar con el modo Deep-Sleep,
ya que ofrece el maximo ahorro posible de energıa mientras el modulo no envıa informacion
a la central, ademas de establecer la conexion con la central solo para enviar informacion,
disminuyendo el trafico en la red. La configuracion del modulo en este modo, se realiza de
la siguiente manera:
rtc=machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
rtc.alarm(rtc.ALARM0, tiempo)
machine.deepsleep()
Primero se crea el objeto y se configura el RTC para que pueda despertar el modulo, pos-
teriormente se establece el tiempo que va a permanecer el modulo dormido y por ultimo se
pone el modulo en Deep-Sleep. Es importante conectar el pin GPIO 16 al pin de reset (RST),
para que el modulo se despierte correctamente. El tiempo que va a permanecer el modulo
dormido, depende de la configuracion que se realice del nodo desde la central, ası, el nodo
envıa el dato sensado y espera la respuesta por parte de la central con el tiempo de dormido.
Finalmente lo que se busca, es que, esta configuracion este por defecto en el modulo cada vez
que se inicie, para esto, es necesario crear un archivo de configuracion y guardarlo en la me-
moria del modulo, esto se logra cargando el archivo de configuracion en el archivo main.py
que tiene el modulo (se crea automaticamente cuando se actualiza el firmware basado en
Mycropython), de la siguiente manera:
ampy --port /nombre del puerto put configuracion.py main.py
De esta forma, la configuracion siempre se realiza al iniciar el modulo, pues este ejecuta
automaticamente el archivo main.py cada vez que se enciende. En la figura 4-12 se puede
ver el diagrama de flujo que representa la configuracion del modulo wifi.
4.2 Desarrollo del Sistema 73
Figura 4-12: Diagrama de flujo Configuracion modulo wifi.
74 4 Desarrollo del Sistema de Comunicacion
4.2.3. Configuracion modulo ZigBee
La configuracion inicial de los modulos ZigBee se realiza mediante una aplicacion multi-
plataforma gratuita llamada XCTU, disenada para interactuar con los modulos RF de Digi
International a traves de una interfaz grafica, incluye herramientas que facilitan la configu-
racion y prueba de los modulos XBee RF, ademas, es compatible con Windows, Linux y
MacOS [15]. En la configuracion de los modulos, es importante tener en cuenta los siguientes
parametros:
El firmware del modulo: Debe ser ZigBee Coordinator API o ZigBee Router API,
dependiendo el tipo de nodo que se este configurando.
ID: PAN ID, es el ID de la red, debe ser el mismo para todos los nodos de la red.
JV: Channel Verification, se establece en 1 para los nodos router, de esta manera, el
router verifica si existe un coordinador en el mismo canal despues encenderse, para
asegurarse que esta operando en un canal valido, de lo contrario, dejara el canal y
buscara otro si no encuentra un coordinador.
DH: Destination Address High, se configura como 0x0 en todos los nodos, para que se
envıe informacion a todos los dispositivos de la red o unicamente al coordinador.
DL: Destination Address Low, se configura como 0x0 en cada router para enviar los
datos sensados unicamente al coordinador, o como 0xFFFF en el nodo coordinador
para que envıe un broadcast.
NI: Node Identifier, es el nombre con el que se va a identificar el nodo.
BD: Baud Rate, se establece con la tasa de baudios que maneja el protocolo ZigBee,
la cual es de 9600 baudios.
SM: Sleep Mode, se establece en 4, el cual habilita el modo ’ciclic sleep’, en el cual el
modulo duerme durante un tiempo determinado, definido por el parametro SP, lo que
se ve representado en un ahorro de energıa.
SP: Ciclic Sleep Period, es el tiempo en el que el modulo permanece dormido, dismi-
nuyendo el consumo de energıa.
ST: Time before Sleep, es el tiempo en el que el modulo permanece despierto antes de
iniciar al ciclo de dormido.
IR: Sampling Rate, es la velocidad con la que se va a enviar la informacion sensada a
cada nodo en la direccion definida por los parametros DH y DL.
4.2 Desarrollo del Sistema 75
D0-D4: Son los pines GPIO que se configuran como entrada para leer las variables
sensadas.
En la figura 4-13 se puede ver un ejemplo de configuracion de los parametros basicos que se
deben tener en cuenta para la configuracion inicial de cada uno de los modulos pertenecientes
a la misma red.
Figura 4-13: Configuracion Nodo ZigBee - Parametros Basicos.
Esta configuracion inicial es indispensable para que los nodos sean detectados por el coor-
dinador y puedan establecer una comunicacion con la central, despues de esto, el sistema
permite configurar algunos parametros de los nodos de manera remota, como: IR, SP y ST.
En un caso puntual donde exista una red ZigBee desplegada, el nodo coordinador es el unico
que debera ser configurado de acuerdo a las condiciones de la red.
76 4 Desarrollo del Sistema de Comunicacion
4.2.4. Framework web
Con el fin de acceder remotamente dentro de una subred a la informacion capturada por el
concentrador y extendiendo la funcionalidad del proyecto, se hace necesario construir una
aplicacion web, razon por la cual, es indispensable escoger el framework web que mejor se
adapte a las condiciones de operacion del sistema, de las cuales se resaltan:
Open Source (preferiblemente programacion Python).
Sistema de gestion de datos SQLite 3.
Control de acceso a la informacion (manejo de sesiones).
Actualizacion dinamica de datos sensados.
Ası mismo, dentro de las condiciones de evaluacion, para elegir el framework web, se consi-
dero:
Entorno de trabajo amigable con el desarrollador.
Compatibilidad con varios lenguajes.
Facilidad de integracion y funcionalidad integral (Rehuso de codigo y funciones parti-
culares para al ambiente de trabajo).
Documentacion y modo de aprendizaje.
De acuerdo a lo anterior, se eligio Django como el framework para construir la aplicacion
web.
4.2.4.1. Django
Django [25], es construido para ahorrar tiempo e inicialmente publicar y mantener actuali-
zados sitios locales de noticias. En esa medida, django proporciona las siguientes ventajas:
Desarrollo Open Source y lenguaje Python.
Implementa el paradigma MTV (Models-Template-View) o MVC (Modelo-Vista- Con-
trolador).
Manejo de 4 bases de datos (Incluida SQLite 3).
Desarrollo de aplicaciones web mantenibles en poco tiempo.
4.2 Desarrollo del Sistema 77
Amplia documentacion, con lo cual aumenta la rapidez de aprendizaje al ser un fra-
mework de alto nivel, acompanado del sistema de administracion activo.
Despliegue en multiples navegadores.
Posibilidad de implementar AJAX (JavaScript asıncrono y XML) para actualizacion
dinamica de datos.
Uso de librerıa DataTable en los templates. DataTable utiliza el paradigma de la pro-
gramacion orientada objetos para representar una tabla e interactuar dinamicamente
con esta.
En cuanto al paradigma MVC, es el mas usado en la actualidad, permitiendo acoplamiento
debil entre las piezas de una aplicacion web, las cuales son: capa base de datos (Modelo),
capa visualizacion (Vista) y capa logica (Controlador). En resumen, este paradigma permi-
te trabajar de manera abstracta los requerimientos para construir una aplicacion web, de
acuerdo a lo anterior, el desarrollo de la aplicacion django hace uso de los siguientes archivos:
Models.py
Define la estructura de la base de datos, teniendo en cuenta el desarrollo llevado hasta el
momento, se crea un modelo por estandar ya que cada uno maneja su propia base de datos.
Al utilizar esta configuracion, se podra acceder a la base de datos de manera abstracta
mediante lenguaje python.
View.py
Permite definir todas las funciones que dan respuesta a las solicitudes del cliente web, o en
su defecto, contiene la logica necesaria para el funcionamiento de la aplicacion, en general,
se destacan las siguientes funciones:
Inicio sesion: Permite al usuario web iniciar sesion y valida las posibilidades que se
generen en la interaccion con el formulario, como lo son: entrada vacıa, maxima can-
tidad de caracteres y usuario y/o contrasena invalidos, ademas, informar al usuario
cual es error cometido. El diagrama de flujo de la figura 4-14 define las caracterısticas
mencionadas. La solicitud que llega al servidor web es del tipo POST, debido al tipo
de informacion que se intercambia (nombre de usuario y contrasena), debe ser menos
vulnerable a plagio.
78 4 Desarrollo del Sistema de Comunicacion
Figura 4-14: Diagrama de flujo Inicio Sesion.
Red wifi/zigbee: Retorna al cliente en su respuesta, la informacion de cada tecnologıa
(Sensor, Tecnologıa, Dato y Hora) luego de validar el inicio de sesion, esta funcion carga
el template general que contiene la estructura para mostrar los datos. De acuerdo a
4.2 Desarrollo del Sistema 79
esto, el template utiliza AJAX para establecer una comunicacion en segundo nivel
(transparente para el usuario), de tal forma que actualice a una determinada tasa la
informacion de la red de sensores. El diagrama de flujo que describe el comportamiento
de la funcion se evidencia en la figura 4-15.
Figura 4-15: Diagrama de flujo Visualizacion informacion de redes.
Cerrar Sesion: Finaliza la sesion activa, esta funcion no presenta error en caso de no
tener algun usuario activo (funcionalidad propia de Django). Su desarrollo lo describe
la figura 4-16.
Figura 4-16: Diagrama de flujo Cerrar Sesion.
Actualizar datos en template: Es la respuesta a una solicitud en segundo plano y tiene
por objetivo actualizar los datos en la pagina web cada vez que llega un dato nuevo.
La figura 4-17 describe el funcionamiento del metodo.
80 4 Desarrollo del Sistema de Comunicacion
Figura 4-17: Diagrama de flujo Actualizar Datos.
Url.py
Define la relacion de las funciones descritas en el archivo view.py con las URL’s de la pagina
web, de tal forma que cuando el cliente web accede a una URL, la funcion resuelve la solicitud
mediante un render request. Cada URL de la aplicacion se asocia a una funcion como lo define
la tabla 4-1.
URL Funcion asociada Respuesta (Template)/paginainicio/redzigbee/ redzigbee return render(request, ’redzigbee.html’)/paginainicio/redwifi/ redwifi return render(request, ’redwifi.html’)/paginainicio/inicio/ iniciosesion render(request,’fondo.html’) con comentarios/cerrarsesion/ cerrarsesion render(request,’fondo.html’) con comentarios/paginainicio/contacto/ contacto render(request, ’contacto.html’)/actualizardbzigbee/ actualizardbzigbee HttpResponse(datajson)/actualizardbwifi/ actualizardbwifi HttpResponse(datajson)/cambiodb/ cambiodb HttpResponse(.actualizar”)
Tabla 4-1: Relacion URL - VIEW - TEMPLATES.
Settings.py
En este fichero se establecen las configuraciones que permiten desarrollar de manera abstracta
la aplicacion web, de las cuales se destacan:
Ruta del proyecto y librerıas especiales.
Habilitar herencia en plantillas HTML
4.2 Desarrollo del Sistema 81
Configuracion de base de datos.
Articulacion de middleware para validar usuario, manejo de sesiones, entre otros.
Configuracion de administrador activo.
4.2.5. Despliegue del desarrollo web
Con el fin de acceder a la informacion dentro de una subred, hace falta generar las siguientes
condiciones:
Configurar la raspberry como servidor web.
Generar un entorno virtual.
De acuerdo a lo anterior, se elige el software Apache2[50] para desplegar el servidor web,
debido a su flexibilidad, rapidez de configuracion, constante actualizacion y adaptacion al
protocolo HTTP. Ahora bien, un entorno virtual permite actualizar la aplicacion web y
manejar diferentes versiones, aislando los paquetes python utilizados en la aplicacion de
escritorio. Para desplegar la aplicacion web se realizo el siguiente procedimiento:
1. Fijar como IP estatica la interfaz ethernet de la raspberry.
2. Establecer un directorio para instalar el ambiente virtual y migrar el proyecto Django
a este.
3. Configurar el archivo setting.py habilitando despliegue en produccion y verificar el
fichero wsgi.py para vincularlo con el modulo mod wsgi de Apache2.
4. Instalacion y activacion del modulo mod wsgi de Apache2.
5. Configuracion de puerto, alias, nombre del servidor, ubicacion de archivos y otros del
servidor Apache2.
6. Adecuacion correspondiente de permisos de lectura y escritura para cada base de datos.
4.2.6. Estructura del sistema
En la figura 4-18 se observa la estructura general el sistema de comunicacion desarrollado,
en este, se pueden detallar las configuraciones necesarias y los parametros de los elementos
del sistema.
82 4 Desarrollo del Sistema de Comunicacion
Figura 4-18: Estructura del sistema.
La plataforma del sistema tiene dos comportamientos relevantes:
1. Aplicacion de Escritorio: Esta caracterıstica permite: recolectar datos por medio
de la radio wifi y el puerto serial (coordinador ZigBee), almacenar datos, configuracion
remota de nodos, obtener informacion de red y graficar los datos sensados de los nodos
activos.
La radio wifi se configura como punto de acceso y tiene como parametros: direccion IP,
nombre y contrasena de red, ademas, establece comunicacion implementando socket
tipo servidor. El coordinador ZigBee se debe configurar con el firmware de Coordinador
ZigBee en modo API y tiene como parametros: ID de red y tasa de baudios.
En la base de datos se almacenan todos los datos sensados y se eliminan los datos mas
antiguos de acuerdo a la capacidad preestablecida.
2. Aplicacion Web: Esta caracterıstica permite: visualizar en forma remota la informa-
cion de los nodos de cada tecnologıa, estableciendo comunicacion Cliente - Servidor
mediante ethernet.
4.2 Desarrollo del Sistema 83
Las bases de datos solamente seran consultadas, no se realiza ninguna operacion como
modificar, eliminar o ingresar datos.
Los nodos de la red wifi deben tener como parametros la direccion IP que los identifica
dentro de la red, ademas, deben ser configurados como ’station’ y como socket tipo cliente.
En la figura 4-19 se observa el funcionamiento del protocolo disenado para realizar la comu-
nicacion Wifi.
Figura 4-19: Diagrama de comunicacion estandar wifi.
Los nodos de la red ZigBee deben ser configurados como router ZigBee en modo API y
tener configurados los parametros: ID red, tasa de baudios, canal de verificacion, direccion
de destino, identificador de nodo, modo de dormido (y sus parametros especıficos), tasa de
muestreo y el pin de entrada para sensar la variable.
5 Protocolo de Pruebas
En el presente capıtulo se disena el protocolo de pruebas para implementar el sistema de
comunicacion desarrollado, definiendo las variables a sensar por cada nodo de las redes wifi
y ZigBee, ademas, de evaluar los contextos proporcionados por el concentrador IRIS.
5.1. Definicion de variables a sensar
5.1.1. Red wifi
En la eleccion de los sensores para los nodos de la red wifi, se tuvo en cuenta la librerıa dht
proporcionada por micropython, la cual se encarga de interpretar los datos provenientes de
los sensores de la familia DHT. Se decide trabajar con el sensor DHT11, pues ofrece una
tasa de muestreo mınima de 1 segundo, adaptandose a uno de los modos de funcionamiento
del sistema. En la figura 5-1 se observa el sensor DHT11.
Figura 5-1: Sensor DHT11.
5.1 Definicion de variables a sensar 85
Este sensor ofrece la posibilidad de medir temperatura y humedad, entre sus principales
caracterısticas estan:
Alimentacion: 3.3-5v y 0.3mA
Rango de Humedad relativa: 20 % - 90 % ±5 %
Rango de temperatura: 0◦C - 50◦C ±2◦C
Tasa de muestreo: mınimo 1 segundo
Salida digital
5.1.2. Red ZigBee
Para la red ZigBee, se decide medir la calidad del aire y la vibracion de un objeto, para esto,
se eligen los siguientes sensores:
MQ-135 : Es un sensor de gases usado para controlar la calidad de aire, se puede
observar en la figura 5-2 y entre sus principales caracterısticas se destacan:
• Alimentacion: 5v y 150mA
• Concentracion detectable: Amoniaco, oxidos de nitrogeno, alcohol, benceno, hu-
mo, dioxido de carbono, entre otros
• Unidades: Partes por millon (ppm)
• Salida digital o analogica
• Necesita 24 horas de precalentamiento para acondicionarse al medio
Figura 5-2: Sensor MQ-135.
86 5 Protocolo de Pruebas
SW-420 : Es un sensor para detectar cualquier tipo de vibracion mas alla del umbral
de vibracion, se puede observar en la figura 5-3. Entre sus principales caracterısticas
estan:
• Alimentacion: 3.3-5v y 15mA
• El umbral de vibracion se ajustable
• Salida digital
Figura 5-3: Sensor SW-420.
5.2. Recoleccion de datos
Dependiendo del estandar de comunicacion, se pueden implementar diferentes topologıas de
red. Para la red wifi, los nodos se comportan como dispositivos finales y solamente se puede
configurar en topologıa tipo estrella. Para la red ZigBee, los nodos se pueden configurar co-
mo router o como dispositivos finales, permitiendo implementar diferentes topologıas de red
como: estrella, arbol o malla, para el escenario de pruebas implementado, se decide trabajar
con topologıa estrella. El concentrador IRIS es independiente de la topologıa de red que
implementa cada estandar de comunicacion, dandole autonomıa al sistema.
En la figura 5-4 se puede ver la pagina principal de la aplicacion de escritorio del dispositivo,
la cual permite navegar por las diferentes funcionalidades que ofrece el concentrador, donde
5.3 Visualizacion de datos 87
inicialmente se puede ver la informacion de las redes guardada en el registro local del sistema.
Figura 5-4: Pagina principal concentrador IRIS.
5.3. Visualizacion de datos
Los datos recolectados se pueden visualizar de dos maneras: desde la aplicacion de escritorio
y desde la aplicacion web.
5.3.1. Aplicacion de escritorio
Dentro de la aplicacion de escritorio, existen dos opciones para visualizar los datos recolec-
tados:
88 5 Protocolo de Pruebas
Visualizacion general:
En esta opcion, se observan los datos aglomerados en una tabla en el concentrador
IRIS, especificando: nombre del nodo, estandar al que pertenece, variable sensada y
hora de recepcion del dato. En la figura 5-5 se puede evidenciar la visualizacion de
datos general.
Figura 5-5: Visualizacion general.
Visualizacion grafica:
En esta opcion, se observan dos graficas, una por cada estandar de comunicacion.
Los datos que se ven en cada grafica corresponden a los datos recolectados por un
solo sensor, este sensor, es detectado con anterioridad por el sistema y elegido por
el usuario; sin embargo, todos los datos que llegan al concentrador IRIS y que no se
5.3 Visualizacion de datos 89
muestran en las graficas, seran guardados en su respectiva base de datos. En cada
grafica se especifica la variable sensada y el tiempo exacto en la que llega el dato. En
la figura 5-6 se puede evidenciar la visualizacion de datos mediante graficas.
Figura 5-6: Visualizacion grafica.
5.3.2. Aplicacion web
La visualizacion de los datos en forma remota dentro de una subred se realiza mediante
la aplicacion web, los datos estan almacenados en la base de datos del concentrador IRIS,
la distribucion es la misma que la visualizacion general. En las figuras 5-7 y 5-8 se puede
evidenciar la visualizacion de los datos de la red wifi y ZigBee respectivamente.
90 5 Protocolo de Pruebas
Figura 5-7: Visualizacion remota datos wifi - Aplicacion web.
Figura 5-8: Visualizacion remota datos ZigBee - Aplicacion web.
5.4 Configuracion remota red de sensado 91
5.4. Configuracion remota red de sensado
La configuracion de los nodos depende del estandar de comunicacion al que pertenecen, de
esta forma:
Nodos wifi
En los nodos wifi, se configura el tiempo de dormido, para ello, el usuario debe ingresar
el nombre del nodo y elegir el tiempo de dormido que desea configurar, en la figura 5-9
se puede observar un ejemplo de configuracion remota para un nodo de la red wifi.
Figura 5-9: Configuracion remota nodos wifi.
Nodos ZigBee
En los nodos ZigBee, se tienen parametros como: tiempo de dormido, tiempo de des-
pierto y tasa de muestreo. Cada parametro a configurar tiene diferentes opciones que
debera elegir el usuario. En la figura 5-10 se observa un ejemplo de configuracion
remota para un nodo de la red ZigBee.
92 5 Protocolo de Pruebas
Figura 5-10: Configuracion remota nodos ZigBee.
5.5. Informacion de redes
La deteccion de los nodos activos del sistema se muestra de forma paralela para cada red.
En la figura 5-11 se observan los nodos que estan activos dentro de la red ZigBee y wifi, con
sus respectivos parametros configurables.
Figura 5-11: Informacion de redes.
5.6 Informacion adicional 93
5.6. Informacion adicional
Figura 5-12: Informacion de contacto aplicacion de escritorio.
Figura 5-13: Informacion de contacto aplicacion web.
94 5 Protocolo de Pruebas
Concentrador IRIS es el concepto de marca desarrollado en la presentacion final del siste-
ma de comunicacion, la informacion del equipo de trabajo se puede encontrar tanto en la
aplicacion de escritorio como en la aplicacion web. En la figura 5-12 y 5-13, se observa
la informacion de contacto en donde se encuentra el perfil de quienes hicieron posible la
ejecucion del proyecto.
5.7. Caracterısticas de funcionamiento
La autonomıa del concentrador IRIS, genera diferentes contextos que pueden ocurrir en la
implementacion del sistema, algunos de estos se resumen a continuacion:
Si un nodo del sistema (independiente de la red) no esta en operacion o presenta una
falla durante la comunicacion establecida, el concentrador IRIS seguira recibiendo los
datos sensados del resto de nodos activos, sin que esto afecte su funcionamiento general.
Si un nodo no ingresado al registro local del sistema se conecta con el concentrador
IRIS, funcionara en forma correcta sin mostrar las caracterısticas especıficas como:
nombre del sensor y tipo de variable sensada.
Algun cambio en la topologıa interna de la red, no repercute en el funcionamiento del
concentrador IRIS.
Debido a que el concentrador no esta sincronizado con la red de nodos, es inmune a
cambios en la tasa muestro y cantidad de informacion recibida.
Ademas del estandar ZigBee, existen radios XBee que permiten implementar diferen-
tes protocolos (Digimesh, 3G entre otros [16]), con lo cual, por medio de la librerıa
proporcionada por python, se pueden utilizar diferentes referencias de radios XBee.
Ahora bien, dependiendo de la configuracion como Access Point y gracias a que la
plataforma soporta el estandar 802.11n, se podra trabajar en diferentes frecuencias .
En la tabla 5-1 se puede ver la caracterısticas que adquiere el concentrador IRIS, en
cuanto a frecuencia, potencia y distancia que puede manejar para cada estandar de
comunicacion.
Caracterıstica ZigBee WifiFrecuencia 2.4GHz 2.4GHz - 5GHz
Potencia 2mW (+3dBm) 35-100mW (15-20dBm)
Distancia Hasta 120m Hasta 300m
Tabla 5-1: Frecuencia, potencia y distancia soportada por concentrador IRIS.
6 Comparacion entre Concentrador IRIS
y Plataformas existentes
Durante el proceso de investigacion del mercado comercial, se encontro un solo producto
comparable con el concentrador IRIS, se trata de ’Meshlium Xtreme’ de Libelium. Este, es
un concentrador multiprotocolo para WSN, desarrollado en el marco IoT y disenado para
conectar diferentes estandares de comunicacion entre sı, con la posibilidad de acceder a la
informacion de los nodos en forma remota y bidireccional [29]. En la tabla 6-1 se aprecian
las caracterısticas comparables de cada concentrador.
Concentrador IRIS Meshlium Xtrem
96 6 Comparacion entre Concentrador IRIS y Plataformas existentes
Caracterıstica Concentrador IRIS Meshlium XtremeMemoria RAM 1GB 256MBProcesador 1.2GHz 500MHzVoltaje de alimentacion 5v POE(Power Over Ethernet)Corriente de alimentacion 2.5A 1.5ADimensiones 85 x 56 x 17mm 210 x 175 x 50mmSistema Operativo Linux, Raspbian. Linux, Debian.Estandares de comunicacion Wifi/XBee Radioa Wifi/XBee Radio/BT/LoRa/3GSistema de manejo Interfaz de sistema/SHH Interfaz de sistema/SHHBases de datos SQLite MySQL/PostgreSQLUbicacion Indoor Indoor/OutdoorTipo de aplicaciones WSN WSN/AP/GPSPrecio comercial 300USDb 1400 USDc
Tabla 6-1: Concentrador IRIS vs. Meshlium Xtreme.
aEstandares soportados por los radios XBeebValoracion estimada de acuerdo al anteproyecto para un solo concentradorcValoracion estimada del producto con accesorios y funcionalidades limitadas
Como se puede ver, el concentrador IRIS tiene mayor capacidad de procesamiento, es mas
pequeno y no cuenta con las capacidades necesarias para operacion outdoor, de acuerdo a lo
anterior, como ventaja comparativa, es mas economico y ofrece manejo de sesiones mediante
una aplicacion web. Por otro lado, existen algunos modelos de aplicacion que se pueden
ajustar a ambos concentradores, las imagenes estan basadas en [29], como los siguientes:
Concentrador de diferentes estandares de comunicacion
Concentrador IRIS Meshlium Xtrem
Tabla 6-2: Concentrador de diferentes estandares de comunicacion.
97
El concentrador Meshlium Xtrem recibe los datos sensados de los estandares trabajados
por las radios XBee y el estandar LoRa, los datos recolectados por la red son enviados
a internet a traves de ethernet, 3G o GPRS. Por otro lado, el concentrador IRIS, esta
disenado para recibir datos sensados mediante el estandar Zigbee y wifi y tambien
envıa los datos a internet a traves de ethernet. Lo anterior se ve representado en la
tabla 6-2.
Para configurar los nodos el concentrador, Meshlium Xtrem configura la radio wifi
como punto de acceso y permite a los usuario enviar informacion en forma remota,
mientras que el concentrador IRIS configura los nodos de acuerdo a la informacion del
registro local.
Escanear diferentes dispositivos.
El concentrador Meshlium Xtrem detecta los dispositivos moviles activos que trabajan
con la interfaz de radio wifi o bluetooth. Por su parte el concentrador IRIS detecta los
nodos activos del registro local. Lo anterior se ve representado en la tabla 6-3.
Concentrador IRIS Meshlium Xtrem
Tabla 6-3: Escanear diferentes dispositivos.
Despliegue de servidor desde dispositivo central y acceso remoto a informacion.
En este aspecto el concentrador Meshlium Xtrem permite instalar alguna aplicacion o
servicio para acceder a los datos sensados en forma remota y almacenarlos en una base
de datos local o externa, por otro lado, el concentrador IRIS despliega la plataforma
98 6 Comparacion entre Concentrador IRIS y Plataformas existentes
como servidor y accede a la informacion almacenada en la base de datos local mediante
la aplicacion web.
Ambos concentradores permiten la configuracion de dispositivos de acuerdo a la tec-
nologıa.
7 Conclusiones
Los diversos estandares de comunicacion inalambrica se diferencian por caracterısticas
como: frecuencia de trabajo, distancia de funcionamiento, seguridad, consumo, tipo de
informacion enviada, requisitos de hardware y software, entre otros. Debido a esto, el
concentrador IRIS esta disenado para visualizar datos sensados y permitir adaptarse
a estas necesidades, ofreciendo al mismo tiempo, la posibilidad de desplegar diferentes
estandares en un mismo contexto. Ası mismo, la funcionalidad del concentrador, hace
posible su vinculacion al mercado, convirtiendolo en un producto llamativo, ya que
permite gestionar desde una unica plataforma, nodos de diversos estandares, solucion
de alto impacto en el ambito de las redes inalambricas de sensores y el Internet de las
Cosas.
El concentrador IRIS es invulnerable a fallas en el funcionamiento de los nodos, lo que
le da transparencia y autonomıa al sistema, permitiendo su adaptacion a las diferentes
topologıas de red de acuerdo al estandar de comunicacion. Por otro lado, la articula-
cion de nuevos estandares, que extienden las funcionalidades del sistema, sera posible,
gracias a su diseno escalable.
El uso de software libre hace que el concentrador IRIS tenga un diseno trazable, ex-
pandible y multiproposito. Ası mismo, su diseno modular, se adapta a las necesidades
del medio, cumpliendo con las frecuencias de trabajo de cada estandar.
Una de las caracterısticas mas relevantes en las redes inalambricas de sensores, es el
ahorro de energıa; buscando rescatar este aspecto, el concentrador IRIS fue disenado
para configurar en los nodos de cada red, el tiempo de dormido y la tasa de muestro.
La plataforma Raspberry Pi 3, fue un elemento indispensable para el cumplimiento
de los objetivos planteados, ofreciendo caracterısticas necesarias como: capacidad de
procesamiento, radio wifi incluida, puertos USB y ethernet, vinculacion de sistema
operativo GNU/Linux, entre otros. Ası mismo, su relacion costo-beneficio, la convierte
en una de las mejores alternativas del mercado.
100 7 Conclusiones
Con el fin de acceder en forma remota a la informacion alojada en la base de datos, surge
como necesidad en el desarrollo del proyecto, la construccion de una aplicacion web que
permita extender las funcionalidades del concentrador. Esto, sumado al costo inferior
con respecto a plataformas similares como Meshlium, convierten al concentrador IRIS
en un producto atractivo y competitivo para el mercado.
8 Trabajos Futuros
Con base en las singularidades de los productos que ofrecen caracterısticas similares a las
del concentrador IRIS, y de acuerdo a las necesidades de interoperabilidad en las redes
inalambricas de sensores, se plantean los siguientes trabajos futuros:
Incrementar la cantidad de estandares de comunicacion que interopera el concentrador,
teniendo preponderancia por los estandares: NFC, bluetooth y 3G.
Implementar la funcionalidad de comunicar concentradores IRIS entre si, creando una
malla que permita por ejemplo: compartir recursos, aumentar el trafico, la cantidad de
nodos y la robustez de la red.
Ademas de tener acceso a la informacion local mediante la aplicacion web, poder con-
figurar los nodos remotamente por medio de la misma.
Teniendo en cuenta la red desplegada de dispositivos moviles, involucrar funcionalida-
des que permitan detectar presencia mediante la radio wifi y/o bluetooth.
Disenar una fuente de poder para el concentrador, que permita multiples opciones de
alimentacion como: energia solar, POE, red electrica, baterıas, entre otras y mejorar
la proteccion externa del concentrador (certificacion IP65) necesaria para aplicaciones
outdoor.
Lista de Acronimos
ACL: Asynchronous ConnectionLess.
ACK: acknowledgement.
AES: Advanced Encription Standard
AFH: Adaptative Frecuency Hopping.
AID: Identificadores de asociacion.
AIFS1: Espacio Entre Tramas de Arbitraje.
AIFS1: Espacio Entre Tramas de Arbitraje 1.
AIFS4: Espacio Entre Tramas de Arbitraje 4.
AP: Access Point
API: Application Programming Interface.
APL: Capa de aplicacion estandar zigbee.
APSD:Entrega Automatica de Ahorro de Energıa.
ARM: Advanced RISC Machine.
ASK: Modulacion por desplazamiento de amplitud.
APS: Subcapa soporte de capa de aplicacion.
APL: Capa de aplicacion.
BLE: Bluetooth Low Energy.
BLOB: Binary Large Objects
BR/EDR: Basic Rate/Enhanced Data Rate.
BPSK: Modulacion por desplazamiento de fase binario.
CCK: Complementary Code Keying.
CSMA/CA: Carrier Sense Multiple Access with Collision Avoidance.
CTS: Clear to Send.
DCF: Funcion de Coordinacion Distribuida.
DFS: Seleccion de frecuencia dinamica. DHCP: Dynamic Host Configuration Protocol. DIFS:
Espaciado entre Tramas.
DLC: Data Link Control. DNS: Domain Name System DSSS: Direct Sequence Spread Spec-
trum.
ECMA: European Computer Manufacturers Association.
EDR: Enhanced Data Rate.
EIFS: Espaciado entre tramas extendido.
FeliCa: Felicity Card.
FSK: Frequency Shift Keying.
103
FFD: Full Function Device
RFD: Reduced Function Device
FHSS: Frequency Hopping Spread Spectrum
GTS :Guaranteed Time Slot
GFSK: Gaussian Frequency Shift Keying.
IAPP: Inter-Access Point Protocol.
IEC: International Electrotechnical Commission.
IEEE: Institute of Electrical and Electronics Engineers.
IoT: Internet of Things.
ISM: Industrial, Scientific and Medical.
ISO: International Organization for Standardization.
L2CAP: Logical Link Control and Adaptation Protocol.
LAN: Local Area Network.
LoRa: Low Range
LLCP: Logical Link Control.
LLCP: Logical Link Control Protocol.
LQI: Indicador de calidad del enlace .
LMP: Link Management Protocol.
MAC: Media Access Control.
MIMO: Multiple Input – Multiple Output.
NAV: Vector de Asignacion de Red.
NDEF: NFC Data Exchange.
NFC: Near Field Communication.
NFCIP: Near Fiel Communication Interface and Protocol.
NWK: Capa de red estandar Zigbee.
OBEX: OBject EXchange.
OFDM: Orthogonal Frequency Division Multiplexing.
O-QPSK: Modulacion por desplazamiento de fase en cuadratura con offset.
PCD: Proximity Coupling Device.
PCF: Funcion de Coordinacion Puntual.
PDU: Protocol Data Units.
PHY: Physical Layer.
PPP: Point to Point Protocol.
P2P: Peer to Peer.
PSK: Phase Shift Keying.
QAM: Quadrature Amplitude Modulation.
QoS: Quality of Service.
QPSK: Quadrature Phase Shift Keying.
RC4: Rivest Cipher 4.
RISC: Reduced Instruction Set Computer.
104 8 Trabajos Futuros
RF: Radiofrecuencia
RFCOMM: Radio Frequency Communication.
RFD: Reduced Function Device
RFID: Radio Frequency IDentification.
RTD: Record Type Definition.
RTS: Request to Send .
SAP: Service Access Point
SCO: Synchronous Connection Oriented.
SDP: Service Discovery Protocol.
SIFS: Espaciado corto entre tramas.
SIG: Special Interest Group.
SMS: Short Message Service.
SoC: System on Chip.
SSH: Secure SHell.
TCP/IP: Protocolo de Control de Transmision/Protocolo de Internet.
TCS BIN: Telephony Control – Binary.
TDD: Time Division Duplex.
TDMA: Time Division Multiplex Access.
TIM: Mapa de Indicacion de trafico.
TPC: Control de la potencia transmitida.
TPC: Control de la potencia transmitida.
UDP: User Datagram Protocol
VCD: Vicinity Coupling Device.
WAP: Wireless Application Protocol.
WEP: Wired Equivalent Privacy Algorithm .
WAE: Wireless Aplication Enviroment.
WiMAX: Worldwide Interoperability for Microwave Access.
WLAN: Wireless Local Area Network.
WMAN: Wireless Metropolitan Area Network.
WPA2: WiFi Protected Access 2.
WPAN: Wireless Personal Area Network.
WSN: Wireless Sensor Network.
WWAN: Wireless Wide Area Network.
ZDO: Dispositivo Objeto ZigBee.
Bibliografıa
[1] Acosta, M.: Estudio del estandar IEEE 802.15.4 ”Zigbee”para comunicaciones
inalambricas de area personal de bajo consumo de energıa y su comparacion con el
estandar IEEE 802.15.1 ”Bluetooth”. Ecuador, Escuela Politecnica Nacional, Trabajo
Final de Carrera, 2006
[2] Adame, Toni ; Bel, Albert ; Bellalta, Boris ; Barcelo, Jaume ; Oliver, Miquel:
IEEE 802.11 ah: the WiFi approach for M2M communications. En: IEEE Wireless
Communications 21 (2014), Nr. 6, p. 144–152
[3] Alliance, ZigBee: Especificacion de la revision ZigBee 2007. En: http://www. zigbee.
org
[4] Americo Fata, O: Redes de Sensores. Argentina, Universidad Nacional de La Plata,
Tesis de Especializacion, 2011
[5] Ananda, A. ; Choon Chan, W.: Mobile, wireless, and sensor networks technology,
applications, and future directions. New Jersey : IEEE Press, 2006
[6] Archila, D. ; Santamaria, F.: Estado del Arte de las Redes de Sensores Inalambricos.
En: Revista Digital TIA Vol. 2, No. 1 (2013), p. 4–14
[7] Arduino.cc: Arduino - Introduction. En: https://www.arduino.cc/en/Guide/Introduction
(2016)
[8] Arduino.cc: Arduino TIAN. En: http://www.arduino.org/products/boards/arduino-
tian (2016)
[9] Baghdadi, H.: Diseno y Analisis de un Sistema basado en un Transceptor Inalambri-
co embebido en una Tabla de Surf. Espana, Escuela Tecnica Superior de Ingenieros
Industriales y de Telecomunicacion, Trabajo Final de Carrera, 2014
[10] Bluetooth, SIG: Specification of the Bluetooth System. Washington : Bluetooth SIG,
2014
[11] Bluetooth.com: Understand More About Bluetooth Technology. En:
https://www.bluetooth.com/what-is-bluetooth-technology (2016)
106 Bibliografıa
[12] Bonnin, M.: Diseno y definicion de un sistema de comunicaciones inalambrico en-
tre equipos domesticos mediante Zigbee. Palma de Mallorca, Espana, UNIVERSITAT
DE LES ILLES BALEARS ESCOLA POLITECNICA SUPERIOR, Proyecto Final de
Carrera, 2012
[13] Cees Links, GM of Qorvo Low Power W.: El poder de ZigBee 3.0 – Todo sobre el
nuevo y mejorado ZigBee 3.0. (2016)
[14] Chavarrıa, D.: Tecnologıa de Comunicacion de Campo Cercano (NFC) y sus Aplica-
ciones. Costa Rica, Universidad de Costa Rica, Trabajo Final de Carrera, 2011
[15] Digi International Inc: XCTU Next Generation Configuration Platform
for XBee/RF Solutions. En: https://www.digi.com/products/xbee-rf-solutions/xctu-
software/xctu
[16] Digi International Inc: ZigBee RF Modules XBEE, XBEEPRO2, PRO S2B. Min-
netonka, 2016
[17] Dignani, Jorge: Analisis del protocolo ZigBee, Facultad de Informatica, Tesis de Grado,
2012
[18] El Yaagoubi, M.: Acceso a Internet vıa WiFi-WiMAX. Leganes, Espana, Universidad
Carlos III de Madrid, Trabajo Final de Carrera, 2012
[19] Espressif Systems IOT Team: ESP8266EX Datasheet V5.3. Shanghai, 2016
[20] Forum, NFC: Tag Type Technical Specifications - NFC Forum. En: http://nfc-
forum.org/our-work/specifications-and-application-documents/specifications/tag-type-
technical-specifications/
[21] Garbarino, Jimena ; Echeverrıa, Adriana: Protocolos Para Redes Inalambricas de
Sensores. Editorial Acad Mica Espa, 2012
[22] Garcıa, N.: Modelo de cobertura en redes inalambricas basado en radiosidad por refina-
miento progresivo. Oviedo, Espana, Universidad de Oviedo, Trabajo Final de Carrera,
2006
[23] Godoy, Diego A.: Plataformas para la creacion de mashups sensibles al contexto en
entornos de inteligencia ambiental, Facultad de Informatica, Tesis de Grado, 2013
[24] Godoy, Diego A. ; Sosa, Eduardo O. ; Barreiro, Hernan ; Benıtez, Juan de D.
; Belloni, Edgardo A. ; Dıaz Redondo, Rebeca: Plataforma Middleware para la
Gestion Datos de WSN de Manera Interoperable. En: XVIII Workshop de Investigadores
en Ciencias de la Computacion (WICC 2016, Entre Rıos, Argentina), 2016
Bibliografıa 107
[25] Holovaty A., Garcia S.: La guia Definitiva de Django. Celayita Mexico : Django
Software Corporation, 2015
[26] Iacono, Lucas ; Godoy, Pablo ; Marianetti, OL ; Garino, Carlos G. ; Parraga,
Cristina: Estudio de la Integracion entre WSN y redes TCP/IP. En: Memoria de
Trabajos de Difusion Cientıfica y Tecnica (2012), Nr. 10, p. 57–68
[27] IEEE: Tag Type Technical Specifications - NFC ForumIEEE Std 802.2, 1998 Edi-
tion(R2003). (1998)
[28] de nuevas tecnologias en transporte ITS Espana, Asoc F.: Libro blanco sobre
la aplicacion de la tecnologia NFC en el transporte publico. C/ Henri Dunant, 19 - 2o.
28036 Madrid, Septiembre 2013
[29] Libelium Comunicaciones Distribuidas S.L: Meshlium Xtreme Datasheet v4.4.
Espana, 2014
[30] Lopez Lopez, Gregorio I.: Diseno y desarrollo de una pasarela de interoperabilidad
802.15. 4/802.3 para aplicaciones de sensores. (2008)
[31] Martin, Phil: Using your new Raspberry Pi 3 as a WiFi access Point with
hostapd. En: https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-
hostapd/ (2016)
[32] MediaTek: What is MediaTek LinkIt ONE Development Platform? En:
https://labs.mediatek.com/site/global/developer tools/mediatek linkit/whatis linkit one/
index.gsp
[33] Morales, S. ; Ramırez, J.: Control y Verificacion de presencia basado en la Tecnologıa
NFC (Near Fiel Communication). Colombia, Universidad EAFIT, Trabajo Final de
Carrera, 2008
[34] Moreno, J ; Ruız, D: Informe Tecnico: Protocolo ZigBee (IEEE 802.15. 4). En:
Disponible en [Acceso 31 de octubre del 2013] (2007)
[35] Naseer, Atif ; Alkazemi, Basem Y. ; Aldoobi, Hossam I.: A general-purpose service-
oriented middleware model for WSN. En: 2016 Eighth International Conference on
Ubiquitous and Future Networks (ICUFN) IEEE, 2016, p. 283–287
[36] Ni.com: What is a Wireless Sensor Network? - National Instruments. En:
http://www.ni.com/white-paper/11529/es/ (2010)
[37] Ospina, Alberto Alejandro P.: Modelo de interoperabilidad middleware para la inte-
gracion de agentes moviles inteligentes con redes de sensores inalambricos, Universidad
Nacional de Colombia (Medellin). Facultad de Minas, Tesis de Grado, 2012
108 Bibliografıa
[38] Papacetzi, Francisco Martin A.: Wireless Personal Area Network (WPAN) a Home
Networking. (2003)
[39] Pousa, Adrian ; Sanz, Victoria M. ; De Giusti, Armando E.: Analisis de rendimien-
to de un algoritmo de criptografıa simetrica sobre arquitecturas multicore. En: XVII
Congreso Argentino de Ciencias de la Computacion, 2011
[40] Prieto, J (Ed.): Introduccion a los sistemas de comunicacion inalambricos. Barcelona
: Universitat Oberta de Catalunya
[41] S Navarro, G.: Algoritmos Cross layer para la optimizacion de las prestaciones del
TCP en redes wireless Ad-hoc. Sevilla, Espana, Universidad de Sevilla, Proyecto Fin de
carrera, 2015-2006
[42] Selent, Douglas: Advanced encryption standard. En: Rivier Academic Journal 6
(2010), Nr. 2, p. 1–14
[43] Singhanat, Krongboon ; Harris, Nick R. ; Merrett, Geoff V.: Experimental valida-
tion of opportunistic direct interconnection between different Wireless Sensor Networks.
En: 2016 IEEE Sensors Applications Symposium (SAS) IEEE, 2016, p. 1–6
[44] Sosa, Eduardo O.: Contribuciones al establecimiento de una red global de sensores
inalambricos interconectados, Facultad de Informatica, Tesis de Grado, 2011
[45] Soto, O.: Comparacion de la Eficiencia Volumetrica entre Redes Inalambricas WiFi
y WiMAX. Mexico, Universidad Nacional Autonoma de Mexico, Trabajo Final de
Carrera, 2011
[46] Suarez, G.: Estudio sobre la Comunicacion de Voz y Audio en una WPAN usando
802.11 y Bluetooth. Mexico, Universidad Veracruzana, Trabajo Final de Carrera, 2007
[47] Tanenbaum, A. ; Wetherall, D.: Redes de Computadoras. Mexico : 5ta Edicion,
Pearson, 2012
[48] Texas Instruments: BeagleBone Black Development Board. En:
http://www.ti.com/tool/beaglebk (2013)
[49] Thayer, L.: Tutorial Raspberry Pi. Santiago de Chile : Ingenierıa MCI LTDA, 2013
[50] The Apache Software Foundation: Apache HTTP Server Project. En:
https://httpd.apache.org/ (2017)
[51] Upton, E. ; Halfacree, G: Raspberry Pi Guıa del Ususario, Segunda Edicion. Reino
Unido : Raspberry Pi Foundation
Bibliografıa 109
[52] Veloz, D.: Diseno e Implementacion de un Prototipo para Control de Acceso de Perso-
nas aplicando la Tecnologıa NFC por medio del uso de Telefonos Celulares compatibles
con esta Tecnologıa. Ecuador, Escuela Politecnica Nacional, Trabajo Final de Carrera,
2010
[53] Vasquez, F.: Desarrollo de Tecnologıa NFC para medios de pago a traves de Dispositi-
vos Moviles Alcatel One Touch. Venezuela, Universidad Catolica Andres Bello, Trabajo
Final de Carrera, 2013
[54] zigbee.org: ZigBee 3.0: The Foundation for the Internet of Things is now Available!
(2016)
[55] zigbe.net: ZigBee, inicios y revisiones. (2010)
Versión 0.1
Manual de Usuario
2 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Contenido
Introducción ..............................................................................................................................................................3
Características Técnicas ........................................................................................................................................3
Aplicación de Escritorio...........................................................................................................................................4
Entorno Gráfico ....................................................................................................................................................4
Funcionalidades ...................................................................................................................................................4
1. Inicio ...........................................................................................................................................................4
2. Modificaciones ..........................................................................................................................................9
3. Información ...............................................................................................................................................9
Aplicación Web ........................................................................................................................................................9
Entorno Gráfico ....................................................................................................................................................9
Funcionalidades ................................................................................................................................................ 10
Copyright 2017 © Oscar Idrobo Lopez, Alejandro Torres Toro, Gustavo Puerto Leguizamón
Todos los derechos reservados.
Manual de Usuario
3 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Introducción Concentrador IRIS es un dispositivo que interopera diferentes estándares de comunicación inalámbrica. Está diseñado sobre la plataforma Raspberry Pi 3 y proporciona un conjunto de funciones para la adquisición de datos para redes de sensores que funcionan bajo el protocolo wifi o ZigBee, además, ofrece la posibilidad de configurar parámetros de los nodos, escanear nodos activos y almacenar los datos recolectados para posteriormente visualizarlos en forma remota.
Características Técnicas
Memoria RAM 1GB
Procesador 1.2 GHz
Voltaje de alimentación 5v
Corriente de alimentación 2.5A
Sistema Operativo Linux, Raspbian
Estándares de comunicación Wifi/XBee Radio
Bases de datos SQLite
Ubicación Indoor
Dimensiones 85 x 56 x 17 mm
Manual de Usuario
4 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Aplicación de Escritorio
Entorno Gráfico
El entorno gráfico del dispositivo, ofrece una barra de menú con tres opciones: Inicio, modificaciones e
información, además, ofrece la opción de ver la información local de cada red de sensores.
Figura 1. Inicio Concentrador IRIS
Funcionalidades
La barra de menú ofrece 3 opciones:
1. Inicio: Este menú despliega las funciones principales del concentrador IRIS: Iniciar
Concentrador, Configurar Redes de Sensores, Información Redes de Sensores y Gráficas.
Figura 2. Inicio
Manual de Usuario
5 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
1.1. Iniciar Concentrador: Inicia la recolección de datos independiente del estándar al que
pertenezcan.
Figura 3. Iniciar Concentrador
Cada botón ofrece las siguientes funcionalidades:
Establece conexión con los nodos disponibles de la red y permite almacenar los datos sensados en la base de datos.
Finaliza la conexión con los nodos disponibles en forma segura, con lo cual se habilitan adecuadamente las demás funciones principales del concentrador IRIS.
Retorna al usuario al inicio del concentrador IRIS.
1.2. Configurar Redes de Sensores: Dentro de la configuración remota de los nodos, se
tienen las opciones de los dos estándares, tanto para ZigBee como para wifi.
Figura 4. Inicio -> Configurar Redes de Sensores
Manual de Usuario
6 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
ZigBee: Permite la configuración del tiempo de dormido, el tiempo de despierto y
la tasa de muestreo para un nodo particular. Cada parámetro tiene diferentes
opciones para elegir.
Figura 5. Configuración Red ZigBee
Cada botón ofrece las siguientes funcionalidades:
Envía la trama de configuración remota al nodo XBee.
Retorna al usuario al inicio del concentrador IRIS.
Wifi: Permite la configuración del tiempo de dormido de un nodo particular.
Figura 6. Configuración Red Wifi
Manual de Usuario
7 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Cada botón ofrece las siguientes funcionalidades:
Almacena los parámetros ingresados en el registro local del sistema.
Retorna al usuario al inicio del concentrador IRIS.
1.3. Información Redes de Sensores: Con esta funcionalidad se encuentran los nodos
activos escaneando la red durante un tiempo determinado. Se realiza de manera paralela
para cada estándar de comunicación.
Figura 7. Información Redes de Sensores
Cada botón ofrece las siguientes funcionalidades:
Habilita la conexión para recibir información de los nodos activos por 10 segundos, posteriormente cierra la conexión en forma segura.
Muestra los nodos activos con sus respectivos parámetros.
Retorna al usuario al inicio del concentrador IRIS.
Manual de Usuario
8 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
1.4. Gráficas: Permite la recolección de datos al igual que “Iniciar Concentrador” con la
diferencia que se pueden observar mediante una gráfica los datos de un nodo activo en
particular y de forma paralela para cada estándar. Es necesario hacer primero un escaneo
como en “Información Redes de Sensores”, para luego elegir un nodo activo y ver los datos
sensados a través del tiempo.
Figura 8. Gráficas
Cada botón ofrece las siguientes funcionalidades:
Escanea la red en busca de nodos activos y habilita el combo box para elegir el nodo a graficar.
Habilita la conexión y captura de datos de los nodos activos, almacenando la información recolectada en la base de datos y graficando el nodo seleccionado en el combo box.
Detiene la conexión en forma segura y permite al usuario seleccionar otra alternativa en el combo box.
Retorna al usuario al inicio del concentrador IRIS.
Manual de Usuario
9 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
2. Modificaciones: Despliega un menú con dos funciones: Modificación Wifi y Modificación
ZigBee; cada opción abre un archivo de texto que contiene la información local del sistema,
esta información se puede modificar, sin embargo, es importante conservar la estructura del
archivo.
Figura 9. Modificaciones
3. Información: Este menú habilita la opción de Contacto, en donde se registra la información
de los creadores de este dispositivo.
Figura 10. Información
Aplicación Web
Entorno Gráfico
El concentrador IRIS, ofrece la posibilidad de visualizar los datos sensados de forma remota dentro de
una subred preestablecida, para lo cual ofrece la interfaz de la figura 11.
Figura 11. Interfaz web
Manual de Usuario
10 GRECO – UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Funcionalidades
Para acceder a las diferentes funcionalidades, el usuario deberá estar registrado en el middleware
de manejo de sesión de django. El panel de navegación ofrece 4 opciones:
Permite al usuario iniciar sesión y acceder a las funcionalidades de la aplicación web.
Actualiza en forma remota los datos sensados,
permitiendo al usuario filtrar información.
Al igual que en la aplicación de escritorio, registra la información de los creadores de
este dispositivo.
Cierra en forma segura la sesión de un usuario activo.