¿Cuántos dispositivos Bluetooth activos puedo detectar de manera confiable en un solo espacio?


9

Estoy diseñando una atracción de bajo costo y espero usar la identificación del dispositivo Bluetooth para la detección de proximidad, es decir, es el huésped A dentro del rango de ubicación estática X. A cada invitado se le dará un dispositivo móvil personalizado (ya sea iPod o Android).

¿Cuál es un límite superior realista en la "densidad" de dispositivos Bluetooth antes de que la enumeración de todos los dispositivos cercanos se vuelva poco confiable? Por ejemplo, ¿tener 25 dispositivos activos en una vecindad de una PC estacionaria con Bluetooth es demasiado en un solo lugar para detectar de manera confiable y completa (todos los dispositivos)? ¿Es esto demasiada congestión?

(Para ser claros: no necesito establecer conexiones. Solo necesito detectar de manera confiable la presencia o ausencia de dispositivos por nombre).


¿Encontraste un número para tu pregunta?
Ramis

Respuestas:


9

No puedo ver que la especificación Bluetooth hace referencia a los límites de los dispositivos en la misma área. Esto es muy difícil de determinar en la práctica, ya que está relacionado no solo con dispositivos Bluetooth, sino también con WiFi.

Este documento analiza cómo el aumento en el recuento de dispositivos aumenta el tiempo que lleva el descubrimiento del dispositivo: http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/Journal/WINET-onlineFinal.pdf

Considere también lo siguiente:

Los dispositivos Bluetooth funcionan con la banda de radio de 2,4 GHz, que es la misma frecuencia sin licencia utilizada por muchos otros dispositivos inalámbricos. Si muchos dispositivos en la misma área están utilizando el mismo ancho de banda, puede provocar problemas generales de red, ya que las señales colisionan y la información debe reenviarse. La señal Bluetooth fue diseñada para cambiar su frecuencia muchas veces por segundo para reducir esta interferencia, pero si suficientes dispositivos están tratando de usar el mismo pequeño tramo de ancho de banda, la interferencia es inevitable. Bluetooth 3.0, que se usa en dispositivos creados en 2010, usa el espectro de 6-9 GHz, por lo que tendrá muchos menos problemas de interferencia. Los dispositivos Bluetooth 3.0 también pueden transmitir a 2.4 GHz para comunicarse con tecnologías Bluetooth anteriores. Bluetooth 3.0, funcionando a 2.4 GHz,

Para resumir: debe considerar cuidadosamente la posible interferencia y las limitaciones de tiempo que tendrá. Sospecho que se pueden hacer 25 dispositivos. Pero para estar seguro necesitarás probar esto prácticamente


5

No hay límites superiores teóricos sobre cuántos dispositivos se pueden descubrir, es directamente proporcional al momento del descubrimiento. Aumentar la cantidad de tiempo dedicado al descubrimiento aumentará las posibilidades de detectar todos los dispositivos dentro del alcance.

Básicamente, el descubrimiento se realiza mediante el escaneo del dispositivo de escaneo en una de las 32 frecuencias y el dispositivo de publicidad que envía una baliza en todas las 32 frecuencias. Los dispositivos publicitarios siguen repitiendo esta secuencia y el dispositivo de escaneo, una vez que recibe una baliza, responderá y retrocederá aleatoriamente durante algún tiempo y se fijará en una nueva frecuencia y repetirá el mismo proceso. Por lo tanto, incluso si hay múltiples dispositivos que escanean a una frecuencia determinada, la primera vez que sus respuestas colisionen, pero después de un retroceso terminan aleatoriamente en diferentes frecuencias y aumentan sus posibilidades de que las respuestas no vuelvan a colisionar.

En su caso de uso de 25 dispositivos activos no es un problema en absoluto, he trabajado con dispositivos y entornos donde había 50-100 dispositivos y un descubrimiento de 10-15 segundos puede encontrar fácilmente la mayoría de los dispositivos. Espero que esto ayude.


1

Recientemente estudié la misma pregunta. Mis hallazgos son que las limitaciones son por el IC o el Software.

El mejor chip para usar está basado en TI y en software en chip.

Android / Apple / Windows tienen sus propios límites en el kernel, por lo que el uso de software para enumerar BT estará limitado por BT-Stack / Kernel. El uso del SoC no tiene límites, ya que la pila del IC es simple.

Use una forma personalizada para canalizar información a su programa.

Al día decidí no usar BT porque es un dolor absoluto en el culo.

A menos que sea el nuevo estándar V4 que maneja la publicidad de una mejor manera.

También necesitaba tener BT ilimitados en una habitación ... decidí hacer mi propio PCB y receptor de propiedad, ¿por qué? porque era más fácil y más barato lo creas o no.

De vuelta a tu pregunta.

(Usando algo como WP7 / iPhone3,4 / Android)

BTv2.1 BT3

Fiable no más de 10 en general. Lo más que he visto maneja 32.

BT4

El documento técnico dice 128 .. Solo Apple 4S es compatible con esta versión, por lo que no lo he probado.


0

Un dispositivo Bluetooth puede conectar aproximadamente 7 dispositivos a la vez. Es su capacidad máxima.
Pero puede variar según las configuraciones del dispositivo.
Pregunta
Pregunta1
revise el enlace de arriba, esto puede ser útil para usted


3
La pregunta no es cuántos dispositivos pueden conectarse, sino cuántos se pueden detectar. No se realizará el emparejamiento.
Kortuk

0

No creo que haya un límite. La forma en que implementé la detección de dispositivos cercanos fue usar la biblioteca InTheHand.Net ( http://32feet.codeplex.com/ ), ejecutar el descubrimiento de todos los dispositivos cercanos periódicamente y luego conectarme brevemente a cada dispositivo para asegurar que todavía esté disponible. Sin conectarme, me di cuenta de que no hay garantía de que sabrás con precisión cuándo llegó o salió un dispositivo.

Un ejemplo a continuación:

public static List<Device> DiscoverDevices() {
        BluetoothClient bc = new BluetoothClient();
        m_btc = bc;
        List<Device> devices = new List<Device>();
        DateTime startDisc;
        Boolean canConnect;
        BluetoothDeviceInfo[] array = bc.DiscoverDevices(15, true, true, true); 
        int count = array.Length;
        startDisc = DateTime.Now;
        for (int i = 0; i < count; i++) {
            Device device = new Device(array[i]);
            if (MZPState.Instance == null) {
                MLog.Log(null, "BT discovery interrupted");
                return devices;
            }

            canConnect = CanConnect(device);
            if (canConnect) {
                //MLog.Log(null, "Active BT device detected " + device.ToString());
                devices.Add(device);
            }
            //MLog.Log(null, "Discovery result="+canConnect+" on " + device.DeviceName + " " + device.Address+ " took " 
            //  + Utilities.DurationAsTimeSpan(DateTime.Now.Subtract(startDisc)));
        }
        Performance.Create("Bluetooth local discovery", false, "",
            Performance.PerformanceFlags.Speed, DateTime.Now.Subtract(startDisc).TotalMilliseconds);
        return devices;
    }

public static Boolean CanConnect(Device device) {


        bool inRange;
        Guid fakeUuid = new Guid("{F13F471D-47CB-41d6-9609-BAD0690BF891}"); // A specially created value, so no matches.
        try {
            ServiceRecord[] records = device.DevInfo.GetServiceRecords(fakeUuid);
            //Debug.Assert(records.Length == 0, "Why are we getting any records?? len: " + records.Length);
            inRange = true;
        }
        catch (Exception) {
            inRange = false;
        }
        return inRange;

    }
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.