2. ESTADO DEL ARTE
2.2 INTERNET DE LAS COSAS (IoT)
2.3.4 Análisis de RaspBerry PI Es una computadora de bajo costo, en un solo circuito, o placa reducida Es desarrollada en el Reino Unido por la compañía
RaspBerry Pi y tiene como objetivo dar a conocer la computación en escuelas. “Presenta todas las características de una computadora de escritorio, permite navegar por internet, trabajar sobre hojas de cálculo o textos, entre otras funcionalidades”46
.
“Gracias a las múltiples funcionalidades que ofrece la RaspBerry Pi, se ha utilizado en actividades digitales, por ejemplo, en la toma información de estaciones meteorológicas, para crear patrones en base a los datos suministrados”47
.
Tiene varios puertos y entradas, dos USD, uno de Ethernet, salida HDMI, su procesador corre a 700 MHz.
Su sistema operativo recomendado, es Raspbian, que es una distribución de Linux, basada en Debian. “Esta perfeccionado para el uso de la RaspBerry PI”48
. En la siguiente tabla, se presentan las características más relevantes del dispositivo RaspBerry Pi
Tabla 5. Características de RaspBerry Pi
Fuente: Los Autores
46
RASPBERRY PI, What is a RaspBerry Pi?., [en línea] < http://www.raspberrypi.org/help/what-is-a-raspberry- pi/> [citado en abril 23 de 2014]
47
Ibíd.
48
RASPBERRY PI, Documentation Raspbian [en línea] <http://www.raspberrypi.org/documentation/raspbian/README.md [citado en abril 23 de 2014]
44 2.4 SISTEMAS OPERATIVOS
“Para poder realizar la programación de cada sensor o nodo, es necesario poseer un sistema operativo, que permita implementar la funcionalidad deseada a cada nodo, manteniendo la estructura de cada arquitectura. En el siguiente apartado se mencionaran y explicaran brevemente algunos de los sistemas operativos para motas más utilizados”49
.
Cada sistema operativo para motas, presenta características distintas, por ejemplo, asignación de recursos, nodos o sensores, estructuras de las redes, etc. “Actualmente con el surgimiento de más tipos de WSN y mejoras en los recursos que permiten implementarlas, ha generado el surgimiento de nuevos sistemas operativos que permitan adaptar más fácil los nuevos enfoques de redes”50
.
A continuación se explican brevemente algunos de los sistemas operativos más usados:
TinyOS: Es un sistema operativo de código abierto, basado en componentes, flexible y orientado específicamente en el diseño de redes. Incluye protocolos de red, servicios distribuidos, herramientas para controlar y manipular los sensores, y poder obtener los datos arrojados por los nodos. “Presenta continua evolución y mejoras en cada actualización disponible”51
.
MantisOS: Sistema operativo, de código abierto, escrito en C y basado en hilos, orientado al diseño de redes de sensores. Al estar basado en hilos, en la ejecución de cualquier aplicación, activa la ejecución de múltiples hilos, adicional es eficiente en el consumo de energía. “Desde el año 2007 no presenta actualizaciones, motivo por el cual no se han solucionado algunos bugs presentados”52
.
Contiki: Es un sistema operativo, escrito en C y de código abierto, denominado hibrido, al presentar soporte a eventos y a la vez planificación multihilo. Está orientado al diseño y configuración de nodos de redes de sensores. “Posee integración para trabajar con protocolos IPv6, TCP/IP, entre otros, además de tener interfaz gráfica bastante intuitiva”53
.
49
ORTIZ, Antonio. Técnicas de enrutamiento inteligente para redes de sensores inalámbricas. Tesis Doctoral. Albacete.: Universidad de Castilla-La Mancha. Departamento de sistemas informáticos, 2011. P 19 - 20
50
Ibíd.
51
DIAZ, Soledad. Wireless Sensor Networks. [en línea] <http://www.arcos.inf.uc3m.es/~sescolar/index_files/presentacion/wsn.pdf> [citado en abril 23 de 2014]
52
ORTIZ, Antonio. Técnicas de enrutamiento inteligente para redes de sensores inalámbricas. Op Cit.
53 FERRARI, German, et al., “Sistemas embebidos para tiempo real”, [en línea] (2010)
<https://eva.fing.edu.uy/file.php/581/proyectos/2010/DataloggerContiki/DataloggerContiki.pdf > [citado en abril 21 de 2014]
45
SenOS: Es un proyecto multi-institucional, que está orientado a investigación en el uso de arquitecturas de software a entornos informáticos limitados. Presenta soporte a los esquemas energéticos de los sensores. “Es un sistema operativo deficiente en robustez, adaptabilidad y escalabilidad”54
.
Nano-RK: “Es un sistema operativo, que ejecuta en tiempo real diseño de redes de sensores inalámbricas. Utiliza tareas para determinar el orden de ejecución de cada orden solicitada. Tiene soporte para plataformas FireFly y MicaZ”55
.
LiteOS: Sistema operativo basado en UNIX, creado en la Universidad de Illinois, para el diseño de redes inalámbricas de sensores. Fue creado pensando en presentar un sistema operativo basado en UNIX, que permitiera trabajar sobre redes de sensores, usando programación en hilos. “Sus componentes principales son: LiteShell, LiteFS y su kernel”56
.
La tabla 6 presenta un resumen de los sistemas operativos más utilizados para trabajar sobre redes de WSN, además se presenta la arquitectura, modelo de programación, gestión de memoria y de protección, protocolo de comunicación, intercambio de recursos, y soporte para aplicaciones en tiempo real.
54
ORTIZ, Antonio. Técnicas de enrutamiento inteligente para redes de sensores inalámbricas. Op Cit. p20
55
ORTIZ, Antonio. Técnicas de enrutamiento inteligente para redes de sensores inalámbricas. Op Cit.p21
56
OMER, Muhammad, KUNZ, Thomas. Operating Systems for Wireless Sensor Networks: A Survey. [en línea] (31 de mayo de 2011) < http://www.mdpi.com/1424-8220/11/6/5900> [citado en abril 23 de 2014]
46
Tabla 6. Resúmenes de sistemas operativos
Fuente: Operating Systems for Wireless Sensor Networks: A Survey. En: MDPI Open Access Publishing [en línea] (31 de mayo de 2011) <www.mdpi.com/journal/sensors> [citado en abril 23 de 2014]
47 2.5 SIMULADORES DE WSN
Debido al alto costo que generaría el despliegue de una WSN para la realización de pruebas, se han desarrollado en el mercado una gran cantidad de simuladores. A continuación se describirán brevemente algunos simuladores:
NS-2 (Network Simulator 2): Es un simulador de eventos discretos, para la creación de redes de investigación. “Proporciona soporte para realizar la simulación de TCP, enrutamiento y protocolos de multidifusión en redes cableadas e inalámbricas”57
.
El proyecto nació en el año 1989, y su evolución fue considerable, hasta el año 1995, cuando DARPA, Xerox Parc, LBL, UCB y USC/ISI apoyaron el desarrollo, hasta la actualidad, adicionalmente DARPA con SAMAN, realizan la investigación y crecimiento de NS.
NS-3 (Network Simulator 3): Es un simulador de eventos discretos, es usado principalmente para fines educativos e investigativos. Simula protocolos unicast y multicast, esta versión a diferencia de NS-2, permite soportar totalmente el flujo del trabajo realizado en las simulaciones. Permite realizar trabajos de alta capacidad, habilitando el uso de NS-3 como herramienta de emulación, soportando simulaciones de redes IP, inalámbricas, y nuevos protocolos de ruteo como OLSR y AODV.
Tom Henderson, uno de los desarrolladores de ns, propone la nueva versión de ns, llamada ns-3, escrita desde ceros en el lenguaje de programación C++. Su investigación y desarrollo fue patrocinado especialmente por investigadores de la Universidad de Washington, el Instituto Tecnológico de Georgia y el grupo de Investigación Planete de INRIA (Instituto Nacional de Investigación en Informática y Automática), de Francia.
TOSSIM: Permite realizar las simulaciones de las aplicaciones del sistema operativo TinyOS, posee gran flexibilidad al permitir sustituir componentes de la simulación, adicionalmente posee integración para trabajar con plataformas ATMega128. Dependiendo del nivel de simulación que se esté ejecutando, permite realizar interrupciones. “TOOSIM, no es nada más que una librería, donde los desarrolladores deben escribir un programa que permita la ejecución de simulaciones, además posee soporte para Python y C++”58
.
57
INFORMATION SCIENCE INSTITUTE. The network simulator ns-2. [en línea] <http://www.isi.edu/nsnam/ns/> [citado en abril 21 de 2014]
58
TINYOS. Tossim [en línea] (10 de mayo de 2013) < http://tinyos.stanford.edu/tinyos- wiki/index.php/TOSSIM> [citado en 22 de abril de 2014]
48
TOSSIM facilita el desarrollo de escenarios de simulación de redes de sensores, permitiendo integrar miles de nodos, compilados directamente desde los códigos de TinyOS. “Incluye además, una interfaz gráfica de usuario (GUI), para visualizar las simulaciones que se están realizando”59
.
Omnet++: Es un simulador para construir redes, por medio de módulos discretos orientado a objetos, está escrito en C. Posee funciones para trabajar redes cableadas, inalámbricas, sensores, entre otras. Tiene la funcionalidad de añadir protocolos de internet, modelar y controlar el rendimiento de las redes. “Su entorno de ejecución es basado en el IDE Eclipse, donde se incluyen extensiones para trabajar en tiempo real, emulación de redes, lenguajes de programación y otras funciones”60
.
Permite trabajar en sistemas operativos basados en UNIX, como en Windows, su licencia es de distribución publica académica y la versión comercial, llamada OMNEST, está a cargo de Simulcraft Inc. Adicionalmente permite utilizar varias interfaces de usuario, dependiendo del propósito de uso. Omnet++, al ser programado en módulos, permite ejecutar simulaciones distribuidas y paralelas, convirtiendo está en una de las características más importantes. Se pueden acceder a los códigos fuente del simulador, por medio de compiladores C++ integrados en Omnet++, permitiendo que el simulador, las interfaces y herramientas de desarrollo de simulación sean ejecutadas, como se mencionó anteriormente, sobre sistemas operativos tales como Windows, Linux y algunas versiones de UNIX. Permite adicionar extensiones de simulación, para ser ejecutadas en tiempo real, con lenguajes de programación alternativos a C++, por ejemplo, C# o Java.
GLOMOSIM (Global Mobile Information System Simulator): Es un simulador orientado principalmente a redes inalámbricas y redes inalámbricas descentralizadas AD-HOC, su librería escrita en C, realiza trabajos sobre eventos discretos.
Avrora: Es un simulador escrito en JAVA y de código abierto, para ejecutar programas de simulación integrados en TinyOS. Permite simular sobre dos plataformas Mica2 y MicaZ. La mayor parte de la información que se encuentra en su página no se encuentra activa, por lo que es necesario recurrir a foros de ayuda para solucionar problemas.
Proyecto de investigación que nació del grupo de Compiladores UCLA, que
59
BERKELEY University of California, Electrical Engineering and computer sciences. Simulating TinyOS Networks [en línea] (11 de noviembre de 2003) < http://www.cs.berkeley.edu/~pal/research/tossim.html> [citado en mayo 1 de 2014]
60
OMNET++. Welcome to Omnet++ Community (2013) < http://www.omnetpp.org/> [citado en abril 22 de 2014]
49
buscan herramientas y soluciones para el micro controlador AVR de Atmel, ofreciendo un api en Java para realizar las simulaciones requeridas.
VisualSense: Es un simulador, que permite modelar redes de sensores inalámbricos. Posee sofisticados modelos de canales de comunicación, sensores, protocolos AD-HOC. Puede ser ejecutado en Windows o MAC.
J-SIM: Simulador escrito en JAVA, que permite crear modelos numéricos, este programa está enfocado principalmente a la biomedicina y la fisiología, sin embargo los campos de aplicación científica pueden ser bastante extensos. Permite combinar ecuaciones, integrales, sumatorias, eventos discretos y códigos de procesamiento según los casos necesarios. “Su compilador añade automáticamente los factores de conversión de unidades físicas, así como el rechazo o aprobación de ecuaciones balanceadas. Funciona sobre Windows, Linux y Mac”61
.
GTNetS: Es un simulador de redes, integrando todas las funciones requeridas para trabajar sobre el campo de redes de computadores. “Tiene como objetivo crear simulaciones lo más cercanas posibles a estructuras reales”62
.
JIST/SWANS: JIST es un motor de simulación, para eventos discretos ejecutados en máquinas virtuales de Java. Es un nuevo enfoque, que permite crear nuevos simuladores para eventos discretos con alta eficacia.
Por otro lado SWANS es un simulador de redes inalámbricas y está construido sobre Jist. Nació como resultado de los pobres resultados que ofrecían los simuladores de red. Estructura sus componentes de software de manera independiente, sin embargo al integrarse generan configuraciones completas para las simulaciones de redes. Posee características similares a NS-2, pero es posible simular redes más grandes y complejas.
En la tabla 7 se muestran los simuladores más comunes en el ámbito de la investigación, presentando aspectos como el lenguajes de programación, estándares y protocolos que soporta, la cantidad de nodos y si cuenta con una interfaz de usuario.
61
PHYSIOME PROJECT, JSim [en línea] (15 de enero de 2014) < http://www.physiome.org/jsim/> [citado en mayo 1d e 2014]
62
GEORGIA TECH, School of electrical and computer engineering, GTNetS About [en linea] <http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/> [citado en mayo 1 de 2014]
50
Tabla 7. Simuladores WSN
Simulador Lenguaje programación Protocolos y estándares Cantidad
nodos GUI
Ns-2 OTcl TCP, AODV, OLSR, DYMO,
802.11, Bluetooth, Mobile IP, <100 No
Ns-3 C++, Python IPv4, MAC, Wi-Fi, Wimax, ---- --
TOSSIM nesC 802.15.4 >1000 Si
OmNet ++ C++, NED
UDP, TCP, SCTP, IPv4, IPv6, Ethernet, PPP, 802.11, MPLS,
OSPF
>1000 Si
COOJA Java IPv4, IPv6, 6LoWPAN, RPL,
CoAP, UDP <100 Si
GLoMoSim Parsec(C,C++) Wi-Fi, LAN, MAC, TCP/IP, >1000 --
UWSin C++ AODV, DSR >1000 --
Avrora Java --- >1000 Si
SENS C++ SSR, SHR, SRP, MAC, ADOV >100 SI
Castalia C++ MAC <50 --
EmStar nesC/C++ UDP, FFT <50 Si
SENSE C++ DSR, AODV, 802.11 <100 --
VisualSense Ptolemy II Ad-hoc, MAC <50 --
J-Sim Java, TCL MAC 802.11 <100 Si
GTNetS C++ Wi-Fi, WiMax >1000 --
Fuente. Los Autores
De acuerdo a las características, anteriormente mencionadas, se procederá a explicar en los siguientes apartados, las características más relevantes e importantes de los software de simulación que fueron utilizados para el desarrollo del proyecto.