miércoles, 25 de marzo de 2015

HERRAMIENTAS PARA DESARROLLO DE IoT

HERRAMIENTAS PARA EL DESARROLLO DEL INTERNET DE LAS COSAS

La miniaturización de los componentes electrónicos y su exponencial crecimiento en capacidad, ha permitido una evolución acelerada del Internet de las cosas IoT; este concepto puede parecer para muchas personas futurista, sin embargo cada día se esta convirtiendo en una realidad cada vez mas común.
Millones de equipos y componentes están ya conectados a Internet y su incremento es cada vez mas acelerado, por lo que cada dia hay una mayor disponibilidad de tarjetas de desarrollo que permiten la creación de aplicaciones usando esta tecnología.
En esta publicación se presentaran algunas alternativas de tarjetas que permitirán que nos introduzcamos a este mundo del IoT y ha desarrollar nuestras primeras aplicaciones practicas a un costo relativamente bajo.

INTRODUCCIÓN
El IoT esta generando una cantidad enorme de oportunidades de desarrollo de nuevos componentes y servicios que mejoran la productividad y eficiencia de los actuales procesos, afinan la toma de decisiones en tiempo real para los usuarios, enriquecen la experiencia de los usuarios al interactuar con las aplicaciones y permiten resolver problemas críticos al brindar acceso a información disponible en zonas de difícil acceso.
Algunos ejemplos de los grupos de aplicaciones, donde el IoT es latente son los siguientes: Conectividad de dispositivos Maquina-a-Maquina M2M, Gestión granular de equipos basado en la nube, Conectividad industrial de planta-a-planta, Ethernet industrial, Sistemas para máxima interoperatividad, Redes de sensores inalámbricos, Gestión de servicios inteligentes, Adquisición/analisis de datos, etc.
Para aprovechar mejor los procesos creativos, es importante que podamos contar con adecuados sistemas de arranque rápido para comprender como funciona esta tecnología y el componente principal es el conocimiento del chip donde se integra el IoT, así evaluaremos varias alternativas de tarjetas de desarrollo, para que podamos elegir la que mejor se adapta a las condiciones del servicio o producto que deseamos implementar.

ARDUINO YUN
Una forma rápida de implementar prototipos con tecnología IoT es usar la placa Arduino YUM, la cual separa el microcontrolador para interactuar con los puertos y todas las funciones de una placa Arduino regular (ATmega32u4), del modulo para el soporte para la conexión a Internet tanto de forma inalámbrica como alambrada (Atheros AR9331); esta particularidad permite acelerar la ejecución de los códigos ya que toda la comunicación esta delegada usando un puente que facilita la interacción de los dos procesadores.

El procesador AR9331 ejecuta un sistema operativo basado en Linux (OpenWRT) que además de soportar las comunicaciones a internet, permite manejar una tarjeta de memoria micro SD y un puerto USB.
El sistema operativo proporciona todo el núcleo de soporte que cualquier versión de Linux, sin embargo por defecto este modulo siempre esta activo, por lo que depende de un consumo de potencia fijo, lo que hace un poco de problema con la autonomía energética, es posible optimizar el núcleo del sistema operativo para reducir el consumo de potencia únicamente dejando los módulos que se requerirán para una aplicación especifica, sin embargo es necesario conocimientos avanzados del kernel para efectuar esta tarea.
El soporte de la comunidad de Arduino es una ventaja para facilitar el aprendizaje y el desarrollo de los primeros experimentos con IoT, además se cuenta con un gran numero de ejemplos que pueden servir de base para las aplicaciones especificas en el mundo del Internet de las cosas.



INTEL EDISON
La plataforma Edison es una excelente alternativa para rápido diseño de prototipos con IoT, por sus caracteristicas esta plataforma fue concebida para lograr una rápida transición de un diseño de prototipos a una implementación final, por lo que es una alternativa confiable para productos e implementaciones finales.
Edison es una plataforma compacta, robusta y de pequeño tamaño y de gran rendimiento, además con un soporte enriquecido para facilitar el trabajo de los desarrolladores que pueden programar con una diversidad de herramientas como C/C++, Pyton, Java y Arduino.
La principal característica de esta tarjeta es su poder de procesamiento soportada en un procesador de núcleo doble Atom IA-32 de 500Mhz y un microcontrolador Quark de 100 Mhz, lo que permite separar las funciones de la pila de procesamiento, TCP/IP y periféricos brindando una gran versatilidad para las necesidades de los diseño y la optimización del consumo de potencia; por otro lado las características de memoria (RAM 1GB y Flash 4GB) son mas que suficientes para soportar prototipos de gran complejidad, así como el almacenamiento y procesamiento de datos in situ para reducir la cantidad de datos que se intercambian con otras unidades.
Una característica importante es que el modulo ya tiene embebidos los controladores de Wifi y Bluetooth, con lo que se tiene acceso a protocolos de alto ancho de banda para la comunicación con Internet, asi como de baja carga para la comunicación con otros sensores, adicionalmente tiene el soporte para otros protocolos seriales como I2C, SPI y UART para la implementación de otros canales de comunicación alambrados o inalámbricos.

La principal limitante de esta plataforma es el acceso a los terminales físicos para el prototipado rápido de las aplicaciones, ya que los pines están disponibles en su solo conector de 70 posiciones, por lo que se requiere de una tarjeta adicional para un acceso mas cómodo de los pines; Intel pone a disposición una tarjeta de extensión compatible con Arduino para dicho propósito con lo que se tiene acceso no solo a los pines sino a la interfaz USB para la gestión de la tarjeta.
Una característica adicional de esta tarjeta es que su diseño incluye el circuito gestor de la energía con lo que es posible acoplar múltiples fuentes de poder al modulo, desde baterías, a fuentes de baja potencia (energy harvesting) con lo que se garantiza la movilidad de las aplicaciones desarrolladas con esta tarjeta.


SPARK
Es una herramienta diseñada para ser fácilmente usada por usuarios no técnicos, además de brindar las mejores características de poder de procesamiento para los usuarios avanzados, ya que brinda distintos mecanismos para su programación.
La tarjeta de desarrollo de Spark es de hardware abierto, y combina el poder de procesamiento de un microcontrolador ARM Cortex M3, con un chip wifi broad com, que administra el controlador de red y libera recursos al microcontrolador principal; ya que las especificaciones de diseño son abiertos estas se pueden usar para el prototipado y para la integración en soluciones finales.










Una de las principales ventajas de este modulo es su diversidad de mecanismos disponibles para su programación, ya que al soportar el lenguaje wiring (lenguaje de arduino), C/C++ y ensamblador es posible crear código para este modulo con: un IDE de Arduino, entorno que puede resultar muy familiar para los que tienen alguna experiencia con esta plataforma, por otro lado se puede acceder vía el Spark Web ID, que integra todas las herramientas necesarias para que se puede trabajar usando un navegador, esta es una adecuada ventaja ya que permite actualizar o reprogramar el modulo de forma remota siempre que este cuente con acceso a internet, por otro lado es posible llegar al modulo vía CLI (Interfaz de linea de comandos), para los que están mas familiarizados con la ejecución de comandos vía consola; otra forma de conectar con el modulo es por medio de la interfaz REST API integrada en el dispositivo, con lo que es posible usar funciones desde aplicaciones móviles y web, por ultimo todas las librerias, plantillas y otros recursos estan disponibles para optimizar el funcionamiento del modulo a las condiciones de diseño definidas por el usuario.
La principal limitación de esta plataforma es la disponibilidad de pines del modulo lo que es coherente con el relativo bajo costo de la unidad, lo que implica que para diseños mas complejos es necesario crear extensiones, el consumo de energía es muy reducido y existen muchas formas para usuarios avanzados de optimizarlo.

A pesar que existen otras plataformas potentes para el desarrollo de aplicaciones con IoT, estas tres son las que brindan los recursos y herramientas mas faciles y versatiles para que usuarios no experimentados y experimentados puedan desarrollar de manera rápida su aplicaciones IoT.

No hay comentarios.:

Publicar un comentario