¿Cómo funcionan los iBeacon?

Las balizas iBeacon son un sistema diseñado para la localización en interiores.

El problema

Cuando estamos dentro de un edificio, el sistema GPS de nuestro smartphone no tiene visibilidad de los satélites de posicionamiento y resulta complicado ubicarlo. Además, el GPS tiene un error de varios metros en el mejor de los casos, lo que no nos permite ser lo suficientemente precisos intentando ubicar a una persona dentro de una habitación, por ejemplo.

La solución

Para solucionarlo se utilizan balizas Bluetooth que emiten constantemente una serie de identificadores que permiten que nuestro móvil las identifique y mida la potencia de señal que nos llega desde ellas. Sabiendo qué baliza es y la distancia a la que estamos de ella, podemos deducir nuestra posición en el edificio.

Tal como se explica en este documento de Apple, las balizas emiten unos valores predefinidos:

CampoLongitudDescripción
UUID16 bytesIdentificador único de la aplicación o el proveedor de la baliza.
major2 bytesRegión de la baliza.
minor2 bytesSubdivisión de la región.

El identificador completo de una baliza será UUID/major/minor y podemos utilizarlo como queramos. Por ejemplo, podríamos tener un UUID correspondiente a Egibide, el valor major podría representar el campus y el minor un aula concreta.

Convirtiendo un iPhone en baliza

Partiendo de estos tutoriales sobre como crear un emisor y un receptor, he creado una aplicación de ejemplo que convierte al iPhone en una baliza y en un receptor, mostrando los parámetros que se emiten y reciben.

El código fuente está disponible en este repositorio de GitHub.