Free Essay

Module Bluethoot 4.0

In: Other Topics

Submitted By AgustinFelix
Words 3410
Pages 14
Internet of things ( Internet de las Cosas)

Uno de los temas motivantes para la realización del proyecto de final de carrera, fue un concepto que hoy en día se esta mencionando con frecuencia: Internet of things.

Internet de las cosas (IoT, por su siglas en inglés) se refiere a la interconexión digital de objetos cotidianos con Internet.

Pero la interconexión de ellos no es el problema, “dar sentido a los datos" es el verdadero desafío, y también ,la gran oportunidad.

Es por esta razón que se pensó en una idea para darle “vida” a algo cotidiano y conectarlo con el entorno de forma que aporte valor a la sociedad.

http://www.cisco.com/web/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf

Asimismo, se hizo la siguiente la pregunta :

¿Que es otra cosa es de gran importancia para las personas , y que se podría solucionar con IoT ?

Luego de varias discusiones e investigaciones se vio que las personas cada vez tienen menos tiempo para realizar sus tareas .Una de las razones de esto es que con la evolución de las diferentes tecnologías, el hombre se encuentra conectado al mundo virtual de forma cada vez mas constante, y su vida se llena de tareas a realizar. (referencia)

Es por esto que el Tiempo, es un recurso y hay que saber administrarlo. (el tiempo es dinero)

Entonces, se pensó como se puede ayudar a administrar el tiempo de una persona con IoT, y en que tareas cotidianas se pierde tiempo inútil.
Tecnologias
Bluetooth
La tecnología Bluetooth ya existe hace varios años en el mercado, pero fue su nueva generación ( 4.0 ) la que tuvo un impacto significativo en el mundo de las conexiones inalámbricas, y en este nuevo concepto de IoT.

Las versiones previas (Bluetooth 2.0 EDR y Bluetooth 3.0 HS), llamadas “bluetooth clásico”, son orientadas a la conexión, o sea ,cuando un dispositivo está conectado, el enlace se mantiene, incluso si no hay datos fluyendo. Esto lo hace muy útil al momento de su uso en la redes de área personales (PAN) , donde las aplicaciones requieren una transferencia grande de datos, sustitución de cables, streaming de audio, etc. Pero, a pesar de estas grandes ventajas frente a otros protocolos, el consumo de energía no era el ideal para dispositivos donde la vida de la batería era un factor importante a tener en cuenta (celulares).

Entonces, cuando bluetooth anunció la adopción formal de la versión 4.0, que incluye a un subconjunto de bajo consumo (Bluetooth Low Energy o BLE) ataco el problema anterior al ofrecer una nueva evolución del protocolo altamente optimizada para la batería operada.

Mas específicamente, los modos únicos de funcionamiento definidas en la especificación Bluetooth 4.0 permiten a un dispositivo Bluetooth Low Energy (BLE) ser un dispositivo de transmisión únicamente (TX) sólo con un soporte mínimo de software requerido. Esto permite a dispositivos de bajo costo con recursos limitados tener la funcionalidad de “publicidad” y solamente transmitir información de estado. Reduciendo así ,el consumo energético.
Tecnologia atrás del BLE.
BLE implementa una nueva pila de protocolos, junto con nuevos perfiles y aplicaciones donde su principal objetivo es la eficiencia energética, o sea, ser capaz de funcionar largos periodos de tiempo con baterías de baja capacidad (baterías tipo botón).

Asimismo BLE esta diseñado para su fácil desarrollo a un bajo costo.

Radio Frecuencia.
Bluetooth LE opera en la banda ISM de 2,4 GHz con sólo 40 canales espaciados de 2 MHz cada uno. Es capaz de transmitir a una velocidad de 1 Mbit / s utilizando la modulación GFSK.
Al igual que Bluetooth clásico, utiliza el salto de frecuencia, pero utiliza salto de frecuencia adaptable y a un ritmo más lento. Utiliza 3 de los 40 canales para anunciar que permiten la detección de dispositivos. Una vez que un un dispositivo es descubierto y conectado, los 37 canales restantes se utilizan para transmitir datos.
Los 40 canales que BLE usa para la comunicación. Los verdes son los utilizados para publicidad

Modos.
Existen 4 modos básicos donde un dispositivo BLE puede operar: el modo maestro ,el modo esclavo, el modo publicidad, y el modo búsqueda.
El modo Publicidad es utilizado por el dispositivo BLE para anunciar periódicamente la información que puede ser utilizada para establecer un enlace. También se puede utilizar este para responder a consultas adicionales que otro dispositivo podría hacer.
El modo Búsqueda se utiliza para capturar los paquetes de publicidad. Luego los modos de Esclavo y Maestro se utilizan una vez que un vínculo se ha establecido entre dos dispositivos, y sus funciones principales son las de leer, escribir y realizar consultas entre sí.
El dispositivo que se inicia en modo Publicidad asumirá el rol de dispositivo Esclavo y por el contrario el dispositivo que está inicialmente en modo de búsqueda asumirá el rol de dispositivo Maestro.
Formato de paquetes.
Hay 2 tipos de paquetes, de datos y publicidad, cada uno con longitud variable. Los paquetes de datos BLE consisten en un preámbulo de 8 bits, códigos de acceso de 32 bits que se definen por el canal de RF (radio frequency) usado, una PDU (protocol data unit) variables que van desde 2 a 39bytes y un CRC (Cyclic Redundancy Check) de 24 bits. Esto significa que el paquete más corto puede ser tan pequeño como 80 bits o tan largo como 376 bits. También significa una transmisión que puede variar de 80 microsegundos a 0.3 milisegundos.

Por el otro lado los paquetes de Publicidad, tienen un PDU que contiene una cabecera de 16 bits y hasta 31bytes de datos.

Proceso de apareamiento.
Hay tres maneras que dos dispositivos se pueden asociar, “Just Works” ( Simplemente Funciona) , “Out of Band” (Fuera de Banda), y “Passkey Entry” (Entrada Clave de Acceso). Un dispositivo en modo de Publicidad ,transmite paquetes en los canales de publicidad con un PDU que contiene la dirección del dispositivo (dirección MAC) y hasta 31bytes de información adicional.

Un dispositivo en modo búsqueda es capaz de ver la dirección y dependiendo del anunciante, la información adicional puede ser enviada a petición. Esto significa que una buena cantidad de información puede ser obtenida sobre el dispositivo sin ni siquiera establecer una conexión. La publicidad se realiza de forma secuencial en todos los canales disponibles a una tasa de 20 ms a cada 10 segundos, dependiendo de la configuración. Por el contrario un dispositivo en modo búsqueda (explorador) está configurado con una ventana de exploración (el tiempo para buscar) y un intervalo de exploración (la frecuencia entre búsquedas). Una vez que se establece una conexión, el explorador suministrará al anunciante con dos parámetros críticos de información - intervalo de conexión y latencia de esclavos. El intervalo de conexión se utiliza para determinar el tiempo de inicio de los eventos de conexión. Un evento de conexión es simplemente la secuencia de intercambio de paquetes de datos. El otro parámetro, latencia de esclavos es la cantidad de intervalos de conexión que un esclavo puede ignorar sin perder la conexión; esto se hace para optimizar el consumo de energía.

Intercambio de Datos.
Luego de establecer un enlace, la comunicación se lleva a cabo a través de los 37 canales. Los PDU tienen hasta 37 bytes de carga útil, junto con una cabecera del paquete, y un control de integridad de mensajes de 4bytes. Un evento de comunicación es iniciado por un dispositivo Maestro con alternancia de datos entre el maestro / esclavo hasta que uno de ellos deje de transmitir.
Pila de protocolo de BLE.
La pila de protocolos BLE se divide en un Controller (controlador) y un Host (anfitrión). El controlador maneja las capas inferiores de la pila responsables de la captura de paquetes físicos y la RF utilizada por la radio. El host se encarga de las capas superiores de la pila; que incluyen la capa de aplicación, de protocolo, y L2CAP. El host y el controlador pueden ser o bien yuxtapuestas o el host puede ser ejecutado en el procesador de aplicaciones con la aplicación. En la segunda opción, un controlador de interfaz de hardware (HCI) es utilizado por el controlador y al host para comunicarse.

I. Controlador. El controlador de la capa de enlace captura los paquetes físicos en el espectro del aire; también maneja la sincronización y la cola de los paquetes entrantes y salientes. En resumen, es responsable para el flujo de datos a nivel físico. Este componente también puede ser utilizado como un firewall al dispositivo mediante el filtrado de paquetes de dispositivos específicos.

II. L2CAP. El controlador se comunica con el protocolo de Capa de Enlace Lógico de Control y Adaptación (L2CAP) a través de la HCI o directamente. La principal función de este componente es proporcionar servicios de datos a las capas de nivel superior y para la multiplexación y segmentación de paquetes en fragmentos para el controlador. Inversamente, se vuelven a ensamblar los paquetes desde el controlador antes de que sean enrutados a las capas de nivel superior.

III. GAP. El Perfil de Acceso Genérico (Generic Attribute Profile) es el responsable de definir los procedimientos genéricos que se utilizan en el apareamiento y el enlace del dispositivo. Es la interfaz para que la capa de aplicación ponga en práctica los diferentes modos Bluetooth (Publicidad, de búsqueda etc.)

IV. SM. El Administrador de seguridad (Security Manager) se utiliza para la autenticación y el cifrado. Se utiliza un método de cifrado de AES-128 bits , también es responsable del emparejamiento y la distribución de claves. Este componente es utilizado por el dispositivo maestro para aliviar las demandas informáticas de seguridad en el dispositivo esclavo.

V. ATT. El Protocolo de Atributo (Attribute Protocol) es un método de comunicación diseñado para optimizar la transmisión de paquetes pequeños. ATT son pares de atributos y valores que se pueden utilizar para leer, escribir, o descubrir por otros dispositivos.

VI. GATT. Perfil Genérico de Atributo (GATT) es responsable de describir los diferentes marcos (frameworks) de servicios y es una extensión a ATT que es específica para Bluetooth LE 4.0. Se conecta con la capa de aplicación a través de los perfiles de aplicación. Cada perfil de aplicación define el formato de datos y la forma en que debe ser interpretada por la aplicación. Los perfiles mejoran el consumo de energía mediante la reducción de la cantidad de datos que se intercambian. Están diseñados para funciones específicas, por ejemplo, hay un perfil de Frecuencia Cardíaca, un perfil de Glucosa y un perfil de Notificación de Alertas entre muchos otros. Esto hace que sea fácil para los desarrolladores crear aplicaciones orientadas a una funcionalidad específica utilizando los pares de atributos/valor predefinidos en cada perfil.

Un concepto importante para entender con el GATT es la relación servidor / cliente: El periférico es conocido como el servidor GATT, que contiene los datos de búsqueda del ATT y definiciones de servicio y característica, y el Cliente GATT (teléfono / tableta), es quien envía solicitudes a este servidor.

En el siguiente diagrama se ilustra el proceso de intercambio de datos entre un periférico (el servidor GATT) y un dispositivo central (el cliente GATT), con el dispositivo maestro iniciando cada transacción:

Servicios y características
Las transacciones del GATT en BLE se basan en objetos anidados, denominados perfiles, servicios y características de alto nivel, que se pueden ver en la siguiente ilustración:

Perfiles
Un perfil no existe realmente en el propio periférico BLE, es simple una colección predefinida de servicios que se ha compilado ya sea por el Bluetooth o por los desarrolladores de periféricos.

La lista completa de perfiles basados en el GATT adoptados oficialmente se puede ver aquí: http://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx#GATT

Servicios
Los servicios se utilizan para dividir los datos en entidades lógicas, y contienen fragmentos específicos de datos llamados Características. Un servicio puede tener una o más características, y cada servicio se distingue de otros servicios por medio de un ID numérico único llamado UUID, que puede ser de 16 bits (servicios adoptados oficialmente por BLE) o de 128 bits (para servicios personalizados ).

Una lista completa de los servicios BLE adoptados oficialmente se puede ver en la página de Servicios del Portal (https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx ) para desarrolladores de Bluetooth.

Características
El concepto de nivel más bajo en las transacciones del GATT es la característica, que encapsula un único punto de datos (aunque puede contener una serie de datos relacionados, como los valores X / Y / Z de un acelerómetro de 3 ejes.).

De manera similar a los servicios, cada característica se distingue a través de un UUID de 16 bits o 128 bits (UUID predefinido) , se puede utilizar las características estándar definidos por el Bluetooth (que garantiza la interoperabilidad a través de un HW/SW BLE habilitado ) o definir propias características personalizadas para el uso en HW/SW propio adaptado.

Low Energy (bajo consumo energia)

Hay algunas formas de como Bluetooth 4.0 alcanza su mayor eficiencia de energía. En primer lugar, utiliza un ciclo de trabajo inferior, esto significa que se va a dormir por períodos más largos de tiempo y se despierta con menos frecuencia para enviar o recibir paquetes. En segundo lugar, el uso del los perfiles GATT es capaz de enviar paquetes de datos más pequeños (exponer estado) en ráfagas cortas para ahorrar energía. La transmisión de datos puede ser activada por un evento local y está disponible un cliente en cualquier momento.
Por ultimo, los enlaces entre dispositivos no se mantienen mientras no haya comunicación; el dispositivo se pone en modo “dormido” y corta el enlace un vez que el intercambio de paquetes termino.

Entonces, ¿cuánta energía consume BLE comparado al Bluetooth clásico? Depende del dispositivo y la aplicación, pero en general podemos ver (figura) que el tiempo de transmisión es mucho más corto ,de 100ms del Bluetooth clásico a 3 ms de BLE. También podemos ver que el consumo de corriente de pico es 10mA menos y ,en el mejor de los casos ,el consumo de energía es de 1 / 100 del de Bluetooth clásico.

Clásico vs BLE

Con BLE, Bluetooth ha hecho un cambio de paradigma en el diseño. Bluetooth 2.0 EDR y Bluetooth 3.0 HS fueron diseñados con velocidades de datos más rápidas en mente, contraste BLE 4.0 fue diseñado con un menor consumo de energía en mente. BLE 4.0 no está diseñado para transmitir grandes cantidades de datos; sino está diseñado para enviar periódicamente ráfagas cortas de datos. Hay 2 tipos de dispositivos BLE 4.0, modo dual, que es compatible con versiones anteriores de BT, y un solo modo que sólo es compatible con BLE 4.0. Dispositivos de modo dual que realizan streaming de alta velocidad de datos no se benefician de la baja el consumo de energía de BLE 4.0, que sólo se logra cuando se utiliza el modo de baja velocidad de datos BLE.

Otra característica de BLE es su capacidad para soportar una implementación de hardware asimétrico: un dispositivo multifuncional complejo como un teléfono celular soportará el espectro completo de la especificación Bluetooth 4.0, mientras que los nodos sensores pueden implementarse como un diseño de bajo costo y recursos limitados, soportando sólo un subconjunto de la especificación 4.0, pero suficiente para cumplir con el propósito de una arquitectura dispositivo-sensor. También permite que los dispositivos puedan conectarse a internet de una manera eficiente donde tradicionalmente no han sido capaces -a través de su arquitectura cliente / servidor.

Mientras que la eficiencia energética de Bluetooth Smart hace que sea muy atractivo para usar con dispositivos que requieren una batería pequeña y que funcionen durante largos períodos de tiempo, su capacidad de interactuar con aplicaciones móviles es otro gran atractivo para desarrollar proyectos de IoT.

Cantidad de dispositivos conectados en el futuro con tecnologías inalámbricas:

https://www.abiresearch.com/press/more-than-30-billion-devices-will-wirelessly-conne

http://www.eetimes.com/document.asp?doc_id=1280724

https://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx

https://www.bluetooth.org/en-us/specification/adopted-specifications
Módulos BLE

Una vez , investigada la tecnología bluetooth 4.0, se prosiguió a ver que dispositivos había en el mercado que utilizaran esta tecnología y que fueran útiles para el objetivo del proyecto.
Se encontraron varias marcas que trabajan con bluetooth 4.0 , específicamente con la implementación de BLE. Marcas como RedLabBear, AdaFrtuit , Bluegiga y HM.

Se hizo análisis completo de los diferentes módulos que cada de estas empresas ofrecía, comparando características ,precio, adaptabilidad al proyecto, tamaño, escalabilidad, consumo de energía y otros.

| RedLabBear | AdaFruit | Bluegiga | HM | Modulo | Blend Micro | BLE mini | Bluefruit LE | BLE112 | HM-10 | | | | | | | BLE chip | Nordic nRF8001 | RBT01 | Nordic nRF8001 | Propio | Propio | MCU (micro controller unit) | Atmel ATmega32U4 | (TI) CC2540 | - | 8051 microcontroller | CC2541 | Software incluido | Arduino | No | No | No | No | Voltaje entrada | 5V (USB) /3.3-12V (VIN) | 3.4V to 11V VIN / 5V USB / | 5V VIN | 2.0V to 3.6V | External 3.3V | Conectividad | Bluetooth 4.0 Low Energy /micro-USB /Serial (TX/RX) /I2C /SPI | Bluetooth 4.0 Low Energy /micro-USB /UART (TX/RX) | Bluetooth 4.0 Low Energy /UART (TX/RX) /SPI | UART with hardware flow control/ USB (USB/CDC) | UART interface | Memoria flash | 32KB ( 4 KB used by bootloader) | 128/256 | - | 128kb | 128/256 | EEPROM | 1Kb | 8Kb | - | 8Kb | 8 KB | Dimensiones ( La. x An. x Al.) | 43.6 x 18.4 x 4.3 mm | 39 x 18.5 x 3.8 mm | 29 x 28 x 0.8 mm | 18.10 x 12.05 x 2.3 mm | 26.9 x 13 x 2.2 mm | Sensibilidad de rececpión | -87dBm | -93 dbm | -87dBm | -92 dBm | -93 dbm | Frecuencia | 2.4 Ghz | 2.4 Ghz | 2.4 Ghz | 2.4 GHz | 2.4 GHz | Peso | 4g | - | 1.8 g | | 8.0g | Consumo energia | Active Mode RX Down to 19.6 mAActive Mode TX (–6 dBm): 24 mAPower Mode 1 (3-µs Wake-Up): 235 µAPower Mode 2 (Sleep Timer On): 0.9 µAPower Mode 3 (External Interrupts): 0.4 µA | Active Mode RX Down to 19.6 mAActive Mode TX (–6 dBm): 24 mAPower Mode 1 (3-µs Wake-Up): 235 µAPower Mode 2 (Sleep Timer On): 0.9 µAPower Mode 3 (External Interrupts): 0.4 µA | Active Mode RX Down to 19.6 mAActive Mode TX (–6 dBm): 24 mAPower Mode 1 (3-µs Wake-Up): 235 µAPower Mode 2 (Sleep Timer On): 0.9 µAPower Mode 3 (External Interrupts): 0.4 µA | TX peak current:27 mARX peak current:25 mAPower mode 1:270 uAPower mode 2:1 uAPower mode 3: 0.4 uA | Active-Mode RX Down to: 17.9 mAActive-Mode TX (0 dBm): 18.2 mAPower Mode 1 (4-µs Wake-Up): 270 µAPower Mode 2 (Sleep Timer On): 1 µAPower Mode 3 (External Interrupts): 0.5 µA | Pins I/O | 17 | 21 | - | - | 10 | Compatibilidad SO móvil | Android 4.3 + / iOS 7 + /Windows Phone 8.1 | Android 4.3 + / iOS 7 + | Android 4.3 + / iOS 7 + | Android 4.3 + / iOS 7 + | Android 4.3 + / iOS 7 + | ¿Requiere plataforma de desarrollo ? | No | Si | Si | Si | Si | Precio (USD) | $23.40 | $25.00 | $19.95 | $19.00 | $6.50 |

Luego de comparar las características ofrecida por cada modulo BLE, se opto por el Blend Micro (RedLabBear) , la principal razón fue que contaba con Arduino integrado y no era necesario tener una plataforma de desarrollo para programarlo. Asimismo, se vio que los otros valores que eran de mayor importancia; como el consumo de energía, compatibilidad con SO mobile y escalabilidad ( pins I/O) , no variaban mucho respecto a los otros módulos.
Conectividad BLE- Android

Después de que se descubrió un dispositivo, una conexión puede ser establecida. Entonces es posible leer los servicios que ofrece un dispositivo BLE, y para cada servicio sus características (implementación de un perfil GATT). Cada característica proporciona un valor, que puede ser leído, escrito, o ambos. Por otra parte, cuando un modulo BLE se encuentra en el modo de publicidad , el dispositivo envía repetidamente un nombre anunciado que se puede establecer previamente en el código del BLE.

Asimismo, Android cuenta con una API pública para el perfil Bluetooth GATT. Esta proporciona la funcionalidad Bluetooth del GATT para permitir la comunicación con Bluetooth BLE. Uno de estos servicios permite obtener la intensidad de la señal (RSSI = Indicador de intensidad de señal recibida), que se puede utilizar para determinar la cercanía de un modulo BLE.

--------------------------------------------
[ 2 ]. RSSI es la intensidad de la señal de un dispositivo recibida en el dispositivo receptor, por ejemplo, un teléfono inteligente.

Similar Documents