Combien d'appareils Bluetooth actifs puis-je détecter de manière fiable dans un seul espace?


9

Je crée une attraction à faible coût et j'espère utiliser l'identification de périphérique Bluetooth pour la détection de proximité - c'est-à-dire que l'invité A se trouve dans la plage de l'emplacement statique X. Chaque invité recevra un appareil mobile personnalisé (basé sur iPod ou Android).

Quelle est la limite supérieure réaliste de la "densité" des appareils Bluetooth avant que l'énumération de tous les appareils à proximité ne devienne fiable? Par exemple, est-ce que 25 appareils actifs à proximité d'un PC fixe compatible Bluetooth sont trop nombreux en un seul endroit pour détecter de manière fiable et complète (tous les appareils)? Est-ce trop de congestion?

(Pour être clair: je n'ai pas besoin d'établir de connexions. J'ai seulement besoin de détecter de manière fiable la présence ou l'absence d'appareils par leur nom.)


Avez-vous trouvé un numéro pour votre question?
Ramis

Réponses:


9

Je ne vois pas que la spécification Bluetooth fait référence aux limites des appareils dans la même zone. Ceci est très difficile à déterminer pratiquement car il est lié non seulement aux appareils Bluetooth, mais également au WiFi.

Cet article examine comment l'augmentation du nombre d'appareils, augmente le temps nécessaire à la découverte d'appareils: http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/Journal/WINET-onlineFinal.pdf

Tenez également compte des éléments suivants:

Les appareils Bluetooth fonctionnent avec la bande radio 2,4 GHz, qui est la même fréquence sans licence utilisée par de nombreux autres appareils sans fil. Si de nombreux appareils dans la même zone utilisent tous la même bande passante, cela peut entraîner des problèmes de réseau globaux, car les signaux entrent en collision et les informations doivent être renvoyées. Le signal Bluetooth a été conçu pour changer sa fréquence plusieurs fois par seconde afin de réduire ces interférences, mais si suffisamment d'appareils essaient d'utiliser la même petite bande passante, les interférences sont inévitables. Le Bluetooth 3.0, utilisé dans les appareils créés en 2010, utilise le spectre 6-9 GHz, il aura donc beaucoup moins de problèmes d'interférence. Les appareils Bluetooth 3.0 sont également capables de transmettre à 2,4 GHz pour communiquer avec les technologies Bluetooth antérieures. Bluetooth 3.0, fonctionnant à 2,4 GHz,

Pour résumer: Vous devez soigneusement considérer les interférences possibles et les contraintes de temps que vous aurez. Je soupçonne que 25 appareils peuvent être réalisés. Mais pour être sûr, vous devrez tester pratiquement


5

Il n'y a pas de limites supérieures théoriques sur le nombre d'appareils pouvant être découverts, il est directement proportionnel au moment de la découverte. L'augmentation du temps consacré à la découverte augmentera les chances de détecter tous les appareils à portée.

Fondamentalement, la découverte est effectuée par le dispositif de balayage balayant sur l'une des 32 fréquences et le dispositif publicitaire envoyant une balise sur toutes les 32 fréquences. Les dispositifs publicitaires continuent de répéter cette séquence et le dispositif de numérisation, une fois qu'il reçoit une balise, répondra et s'éloignera au hasard pendant un certain temps et se verrouillera sur une nouvelle fréquence et répétera le même processus. Ainsi, même s'il existe plusieurs appareils scannant à une certaine fréquence, la première fois que leurs réponses entrent en collision, mais après un recul, ils se retrouvent au hasard dans des fréquences différentes et augmentent leurs chances que les réponses ne se heurtent plus.

Dans votre cas d'utilisation de 25 appareils actifs, ce n'est pas du tout un problème, j'ai travaillé avec des appareils et des environnements où il y avait 50 à 100 appareils et une découverte de 10 à 15 secondes peut facilement trouver la plupart des appareils. J'espère que cela t'aides.


1

Récemment, j'ai étudié la même question. Mes conclusions sont que les limitations sont dues au CI ou au logiciel.

La meilleure puce à utiliser est basée sur TI et sur un logiciel sur puce.

Android / Apple / Windows ont leurs propres limites dans le noyau, donc l'utilisation d'un logiciel pour énumérer BT sera limitée par BT-Stack / Kernel. L'utilisation du SoC n'a pas de limites car la pile du circuit intégré est simple.

Utilisez une méthode personnalisée pour diriger les informations vers votre programme.

À la journée, j'ai décidé de ne pas utiliser BT parce que sa douleur absolue dans le cul.

À moins que ce soit la nouvelle norme V4 qui gère la publicité d'une nouvelle manière.

J'avais également besoin d'avoir un nombre illimité de BT dans une pièce. J'ai décidé de fabriquer mon propre PCB et récepteur - pourquoi? parce que c'était plus facile et moins cher croyez-le ou non.

Revenons à votre question.

(En utilisant quelque chose comme WP7 / iPhone3,4 / Android)

BTv2.1 BT3

De manière fiable, pas plus de 10 en général. Le plus que j'ai vu en a traité 32.

BT4

Le livre blanc dit 128 .. Seul Apple 4S prend en charge cette version, je n'ai donc pas testé.


0

Un appareil Bluetooth peut connecter environ 7 appareils à la fois, c'est sa capacité maximale.
Mais cela peut varier selon les configurations de l'appareil.
Question
Question1
consultez le lien ci-dessus cela peut vous être utile


3
La question n'est pas de savoir combien d'appareils peuvent se connecter, mais de savoir combien peuvent être détectés. Aucun appairage ne sera effectué.
Kortuk

0

Je ne pense pas qu'il y ait de limite. La bibliothèque comme je l' ai mis en place était d'utiliser la détection de proximité dispositif InTheHand.Net ( http://32feet.codeplex.com/ ), exécutez la découverte pour tous les appareils à proximité périodiquement puis connectez peu à chaque appareil pour garantir qu'il est toujours disponible. Sans connexion, j'ai réalisé qu'il n'y a aucune garantie que vous saurez avec précision quand un appareil est arrivé ou est parti.

Un exemple ci-dessous:

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;

    }
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.