Este documento describe la tecnología de los beacons y iBeacons. Explica que un beacon es un dispositivo que emite señales periódicas que permiten a otros dispositivos detectar su ubicación. Luego describe las características y aplicaciones de los iBeacons, incluyendo su identificación mediante UUID, mayor y minor, y cómo permiten categorizar la distancia en rangos. También cubre el soporte y APIs para iBeacons en diferentes plataformas móviles y desarrolladores de hardware.
2. Beacon
Un beacon (baliza), es cualquier dispositivo que emite una determinada señal periódica que permite a otro
dispositivo recibirla y actuar en consecuencia.
Una baliza no puede identificar quién ha escuchado su señal.
Los clientes no se conectan a las balizas, sólo escuchan las notificaciones que estas envían.
3. Bluetooth
Smart
También conocido como Bluetooth Low Energy (o Bluetooth LE)
Desarrollado por Nokia en 2006 bajo la marca Wibree.
Adoptado en 2010 bajo la nueva especificación bluetooth 4.
Optimizado para bajo consumo (15mA en escritura y 2uA en reposo. Entre un 10 y 20 % menos con respecto a
las versiones anteriores de BT, lo que permite el empleo de pequeñas pilas de tipo CR) y transmisiones de
paquetes pequeños (236.7 kbps thoughtput)
Altamente resistente al ruido y a la interferencia (hay que tener en cuenta que BT trabaja en la banda abierta de
2,4GHz)
Chips con un coste relativamente bajo y que abarcan muy poca superficie en pcb.
4. Bluetooth Smart no es retrocompatible. Para asegurar el soporte con versiones anteriores de Bluetooth,
se define un modo dual denominado Bluetooth Smart Ready.
5. Bluetooth emplea la modulación FHSS (Frequency Hopping Spread Spectrum. Espectro ensanchado por salto
de frecuencia), aportando las siguientes ventajas en las comunicaciones:
1. Altamente resistentes al ruido y a la interferencia.
2. Difíciles de interceptar.
3. Pueden compartir una banda de frecuencia con muchos tipos de transmisiones convencionales con mínima
interferencia.
79 canales de 1MHz bluetooth classic
40 canales de 2MHz bluetooth BLE
6. Roles
generales en BLE
Bluetooth Smart presenta una arquitectura cliente/servidor:
Cliente: Realiza peticiones e interactúa con características (GATT Profile)
Servidor: Responde a peticiones, maneja características, puede enviar notificaciones de cambios
Dentro del paradigma Bluetooth LE, existen 4 roles generales que puede implementar un dispositivo:
• Peripheral
◦ Dispositivo de tipo servidor que provee datos a los clientes en forma de tabla GATT.
• Central
◦ Dispositivo de tipo cliente que se conecta a un dispositivo de tipo Peripheral para leer/escribir.
• Broadcaster
◦ Dispositivo de tipo servidor que no acepta conexiones entrantes pero que emite información.
• Observer
◦ Dispositivo de tipo Cliente que escanea y analiza datos pero no inicia conexiones.
Generic Attribute Profile (GATT): El perfil GATT es una especificación general para enviar y recibir pequeños
trozos de información llamados atributos sobre un enlace BLE.
7. iBeacon
iBeacon es el nombre (marca) elegido por Apple para denominar a una tecnología (abierta) que emplea Bluetooth
LE como medio de transmisión y que permite a las aplicaciones móviles saber como de cercar están respecto a
un dispositivo llamado beacon (baliza).
8. Posibles
aplicaciones iBeacon
El iBeacon se pensó para aportar a los usuarios nuevas experiencias en el mundo de retail (promociones, zonas
de mayor demanda, hábitos de visita del cliente,...)
TREND REPORT Beacons http://go.mutualmobile.com/rs/mutualmobile/images/Trend_Report_Beacons.pdf
9. A parte del retail, también existen numerosas situaciones donde aplicando los 2 conceptos clave de esta
tecnología (micro-localización e interacción/Compromiso/Contexto) pueden resultar bastante valiosas:
Museos y exhibiciones: Información de objetos, tracking de las zonas más visitadas, conferencias en una
determinada zona,...
Transporte de masas: Conocer en que avión, linea de tren/metro/autobús se está viajando y conocer más
información acerca de ella (tiempos de llegada, rutas,...)
Salud: Conocer información medica del paciente que se encuentra en determinada habitación, evitando cometer
posibles errores.
Eventos deportivos: Indicar la ruta más corta desde el aparcamiento hasta localidad que va a ocupar el
usuario.
Parking: Localizar un vehículo o plaza libre.
Localización de objetos perdidos.
Automatización.
12. Un iBeacon emplea para su identificación los siguientes 3 campos personalizables:
Proximity UUID (128 bit).
Major (16 bit).
Minor (16 bit)
Dando lugar a 3 niveles para identificar una micro-localización:
Sólo Proximity UUID.
Proximity UUID & Major.
Proximity UUID & Major & Minor.
En bluetooth 4, cada servicio tiene un identificador único de 16 o 128 bit denominado service UUID.
Los identificadores de 16 bits son asignados por el “Bluetooth standards committee”, mientras que los
identificadores únicos de 128 bits (gratuitos) son propios de cada fabricante .
Generador de UUIDs de 128 bits: http://www.itu.int/ITU-T/asn1/uuid.html
https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx
13. 4C00 02 15 585CDE931B0142CC9A1325009BEDC65E 0000 0000 C5
<company identifier (2 bytes)> <type (1 byte)> <data length (1 byte)>
<uuid (16 bytes)> <major (2 bytes)> <minor (2 bytes)> <RSSI @ 1m>
• Apple Company Identifier (Little Endian), 0x004c
• Data type, 0x02 => iBeacon
• Data length, 0x15 = 21
• UUID: 585CDE931B0142CC9A1325009BEDC65E
• Major: 0000
• Minor: 0000
• Measured power at 1 meter: 0xc5 = -59
Ejemplo de los datos que contiene el campo de datos del paquete que emite una iBeacon
15. La distancia entre un iBeacon y el dispositivo receptor está categorizada dentro de 3 rangos distintos:
• Inmediato: menos de 50cm.
• Cerca: aproximadamente entre 50cm y 2,5m.
• Lejos: más o menos entre 2,5m y 30/50m, dependiendo de parede y de la potencia de emisión y otros
muchos factores.
Estos rangos se definen para notificar cambios de zona a las aplicaciones cuando estas están en background. En
foreground es posible obtener la distancia exacta a la baliza midiendo el nivel de señal que nos llega y
comparándolo con el valor de señal a 1m que va encapsulado en el paquete que recibimos de la baliza.
17. Soporte software
iOS7+
OS X 10.9+
Soporte hardware
iPhone 4S+, iPad 3+, iPad mini, iPod touch 5+, iOS
Simulator (host con bt4), ordenadores a partir del 2012
Necesidad de licencia
MFI
Para desarrollar hardware BLE no es necesario adquirir
una licencia MFI. Aunque sí se quiere hacer uso de la
marca iBeacon si es necesario.
APIs
Core Bluetooth
Core Location
Observaciones
No permite escuchar cualquier UUID siendo necesario
especificar los UUIDs con los que se quiere trabajar.
Integración con Passbook.
Advertising sólo en foreground.
Background task, monitorización de cambio de zona.
Para el uso de los iBeacons es necesario tener activado el bluetooth y el servicio de localización.
20. Soporte software Android 4.3 (API Level 18)+
Soporte hardware
Nexus 4, Nexus 7 2013, Moto G, Galaxy S3+, Galaxy Note
II+, HTC One,...
APIs android.bluetooth
Observaciones
No es necesario registrar los UUID.
No permite hacer advertising.
Background task.
Cada fabricante implementaba sus propias APIs. Con la llegada de la API Level 18, se intenta unificar APIs para
el uso de BLE.
No existe una API propia para iBeacon, aunque mediante las clases existentes es posible implementar la
funcionalidad propuesta por Apple.
22. Soporte software Windows 8 / 8.1 , Windows Phone 8.1
Soporte hardware
Hardware con Windows 8/8.1 + módulo bluetooth 4
Todos los dispositivos NOKIA (MS Mobile) Lumia WP 8
APIs Windows.Devices.Bluetooth.GenericAttributeProfile
Observaciones
No permite escuchar cualquier UUID siendo necesario
especificar los UUIDs con los que se quiere trabajar.
Soporte para background task.
26. Soporte software Linux kernel 3.5
Soporte hardware
Hardware con módulo bluetooth 4
APIs BLueZ
Observaciones
Los kernels <= 3.4 no permite más de una conexión LE
L2CAP.
BlueZ: official Linux Bluetooth protocol stack
28. iBeacon Dev KITS
* Existen numerosas plataformas en el mercado. Se han elegido las más representativas o peculiares.
29. Fabricante Gimbal (Qualcomm)
Precio
$5 (Series 10) / $10 (Series 20)
(precio dependiendo de volumen)
Duración batería 1-3 años (reemplazable)
Documentación https://www.gimbal.com/
Usado por Apple en sus Apple Stores.
30. Fabricante
Estimote (Chip Nordic nRF51822 +
Cortex M0)
Precio $99 pack de 3
Duración batería 2 años (CR2450 “no reemplazable”)
Documentación
http://estimote.com/
https://github.com/Estimote/
Una pila CR2450 proporciona una capacidad de alrededor de unos 620mAh.
32. Fabricante
Sensor Tag - Texas Instruments
(CC2541 + 8051 MCU)
Precio $25
Duración batería 2 años (CR2032, reemplazable)
Documentación
http://processors.wiki.ti.com/
index.php/Bluetooth_SensorTag
Buena documentación, coste relativamente bajo, coste de la licencia del compilador entre $1300 - 3400$
http://www.iar.com/Products/IAR-Embedded-Workbench/8051/
33. ReadBear http://redbearlab.com/ibeacon/
Radius Networks http://www.radiusnetworks.com/ibeacon/
Proximus IO http://www.proximus.io/
Texas Instruments
CC2543
http://www.ti.com/tool/cc2543-broadcaster-rd
JNHuaMao HM-10/
HM-11
http://www.jnhuamao.cn/bluetooth.asp?ID=1
BLE 112 / 113
https://www.bluegiga.com
http://www.seeedstudio.com
CSR4.0 USB Dongle
http://www.ebay.com/sch/i.html?
_sacat=0&_from=R40&_nkw=csr+4.0&_sop=15
* Existen numerosas plataformas en el mercado. Se han elegido las más representativas o peculiares.
Otras plataformas:
La opción más barata para testeo de apps consisten en la emulación de un iBeacon vía software.
35. Seguridad y privacidad
La “seguridad” (una baliza no posee lógica alguna, tan sólo hace broadcasting de cierto dato) de un iBeacon
puede verse comprometida en alguno de los siguientes aspectos:
Modificación de los datos de un iBeacon: El fabricante de la baliza permite personalización remota, pero no
protege el sistema con una clave de acceso, permitiendo la modificación por cuenta ajena de los campos UUID,
mayor y minor, inutilizando la baliza para su uso desde la app móvil o pudiendo alterar los datos para trabajar con
la aplicación de un competidor.
Spoofing: Un iBeacon se puede suplantar con facilidad (los campos UUID, mayor y minor, se pueden obtener
mediante sniffer o descopilación de la App móvil). La aplicación móvil ha de implementar algún mecanismo que
evite en la medida de lo posible un ataque mediante spoofing.
Privacidad:
Una posible medida para evitar que una aplicación pueda hacer tracking, consiste en deshabilitar los servicios de
localización para dicha app (en el caso de iOS), pudiendo habilitarlos de nuevo cuando nos interese.
37. Documentación extra Bluetooth Smart:
Bluetooth Low Energy: The Developer’s Handbook
http://chapters.comsoc.org/vancouver/BTLER3.pdf
https://www.bluetooth.org/en-us/specification/adopted-specifications
http://www.bluetooth.com/Pages/Bluetooth-Smart.aspx
https://developer.bluetooth.org/DevelopmentResources/Pages/default.aspx