¿Cómo buscar todas las balizas disponibles con BLE?

4

Estoy trabajando con un proyecto que involucra balizas Bluetooth de baja energía. El esquema super simple solo emitirá un número único de baliza. Estas balizas se usan en un almacén de aproximadamente 100 x 100 metros, con posibilidad de expandirse a más y más grandes almacenes, y se usan para identificar cajas de cartón.

Planeamos que el operador llevará el iPhone 4s / 5, donde nuestra pequeña aplicación escanearía los canales BLE, encontraría nuestras balizas y recopilaría números.

Sin embargo, hay una cosa que no puedo entender. Hay un modo de publicidad en las especificaciones de Bluetooth LE, con un resumen como este: "Un anunciante utiliza el procedimiento de publicidad para realizar transmisiones unidireccionales a dispositivos en el área. La transmisión unidireccional se produce sin una conexión entre el dispositivo de publicidad y los dispositivos de escucha. el procedimiento publicitario se puede usar para establecer conexiones con dispositivos iniciadores cercanos o se puede usar para proporcionar la transmisión periódica de los datos del usuario a los dispositivos de escaneo que escuchan en el canal publicitario. El procedimiento publicitario utiliza el canal físico de publicidad para todas las transmisiones publicitarias ".

Por lo que, según tengo entendido, tendremos que incluir información de encabezado para ayudar a nuestra aplicación a diferenciar "nuestras" balizas BLE de otros dispositivos de publicidad BLE que se encuentran alrededor. ¿Es posible, en general, escanear periódicamente los canales y leer datos de baliza? ¿O es como el Bluetooth "antiguo", por lo que tendremos que introducir todas las balizas a nuestros dispositivos antes de poder leer los datos? ...

También me pregunto cuántas balizas serían posibles de leer, digamos, ¿radio de 10 metros en, digamos, 5-10 segundos? .. Puede haber alrededor de 500 balizas en este radio.

Las opiniones y sugerencias son muy bienvenidas. Gracias.

    
pregunta Michael Sayapin

1 respuesta

4

El paquete de publicidad que envían tus balizas puede contener datos personalizados. Sin embargo el espacio es muy limitado, alrededor de 31 bytes. Aproximadamente 16 bytes de esto van al "servicio UUID" de 128 bits de su baliza. La estructura del paquete está definida por la especificación de bluetooth y tiene algunos gastos generales, por lo que no estoy seguro de cuánto está realmente disponible para los datos personalizados.

El UUID de servicio es un identificador que buscará su aplicación de iPhone. La idea de que cada servicio tiene un identificador único, por lo que si una aplicación quiere encontrar monitores de ritmo cardíaco, buscará el uuid del monitor de ritmo cardíaco. En iOS, incluso puede realizar un escaneo de comodines, y devolverá todos los anuncios que pueda encontrar, independientemente de los servicios que tenga. Sin embargo, las directrices de Apple recomiendan que especifique el UUID del servicio.

No hay requisitos para el emparejamiento para recibir los paquetes de publicidad de la baliza. Tampoco hay un límite teórico que impida que no se puedan encontrar las balizas, dado un tiempo infinito.

No he escuchado a nadie poner 500 balizas BLE publicitarias en el rango de un iPhone para ver cuántas puede detectar. Con 500 balizas publicitarias simultáneamente habrá muchas colisiones entre paquetes. En teoría, esto podría calcularse sabiendo el intervalo de publicidad.

La ventana de escaneo del iPhone (la duración de la escucha activa de los canales) y el intervalo de escaneo (la frecuencia con la que se ingresa a la ventana de escaneo) no se pueden ajustar, no se pueden documentar y no se puede confiar en que permanezcan iguales entre las versiones. Esto significa que no hay una manera de calcular realmente cómo se encontrarán los anuncios.

Hay algunas recomendaciones publicadas por Apple sobre publicidad: enlace

Ah, y de manera predeterminada, iOS filtrará los resultados para que reciba una notificación por sesión de exploración, por baliza. Puede configurar la opción "permitir duplicados" en el escaneo para obtener múltiples notificaciones por sesión de escaneo para cada baliza si es necesario, pero nuevamente, Apple no lo recomienda.

Si terminas probando esto con 500 balizas, o incluso > 10, creo que mucha gente estaría interesada en tus resultados. Personalmente también agradecería escuchar sus experiencias.

    
respondido por el Mikko Virkkilä

Lea otras preguntas en las etiquetas