Скільки активних пристроїв Bluetooth я можу надійно виявити в одному просторі?


9

Я розробляю недорогу атракцію і сподіваюся використовувати ідентифікацію пристрою Bluetooth для виявлення близькості - тобто гостя A в межах статичного розташування X. Кожному гостю буде надано індивідуальний мобільний пристрій (на базі iPod або Android).

Яка реалістична верхня межа «щільності» пристрою Bluetooth до того, як перерахування всіх прилеглих пристроїв стане ненадійним? Наприклад, у вас є 25 активних пристроїв поблизу стаціонарного ПК, що підтримує Bluetooth, занадто багато в одному місці, щоб надійно і повністю виявляти (усі пристрої)? Це занадто багато заторів?

(Щоб було зрозуміло: мені не потрібно встановлювати з'єднання. Мені потрібно лише надійно виявити наявність чи відсутність пристроїв за назвою.)


Ви знайшли номер для свого запитання?
Раміс

Відповіді:


9

Я не бачу, що специфікація Bluetooth посилається на обмеження пристроїв у тій самій області. Це практично важко визначити, оскільки це стосується не лише пристроїв Bluetooth, але й WiFi.

У цьому документі розглядається, як збільшення кількості пристроїв збільшує час, необхідний для виявлення пристрою: http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/Journal/WINET-onlineFinal.pdf

Також врахуйте наступне:

Пристрої Bluetooth працюють з радіочастотою 2,4 ГГц, що є тією ж неліцензованою частотою, яку використовують багато інших бездротових пристроїв. Якщо багато пристроїв, що знаходяться в одній області, використовують один і той же розтяг пропускної здатності, це може призвести до загальних проблем з мережею, оскільки сигнали стикаються і інформація повинна бути відтворена. Сигнал Bluetooth був розроблений для того, щоб змінювати його частоту багато разів в секунду, щоб зменшити цю перешкоду, але якщо достатньо пристроїв намагаються використовувати ту саму невелику розтяжку смуги пропускання, втручання неминуче. Bluetooth 3.0, використовуваний на пристроях, створених у 2010 році, використовує спектр 6-9 ГГц, тому у нього виникне набагато менше проблем із перешкодами. Пристрої Bluetooth 3.0 також здатні передавати на частоті 2,4 ГГц для зв'язку з попередніми технологіями Bluetooth. Bluetooth 3.0, працює на частоті 2,4 ГГц,

Підводячи підсумок: Вам потрібно ретельно розглянути можливі втручання, тимчасові обмеження. Я підозрюю, що можна зробити 25 пристроїв. Але щоб бути впевненим, вам це потрібно буде практично перевірити


5

Немає теоретичних верхніх меж того, скільки пристроїв можна виявити, це прямо пропорційно часу відкриття. Збільшення кількості часу, проведеного на відкриття, збільшить шанси виявити всі пристрої в межах дії.

В основному виявлення виконується скануючим пристроєм сканування на одній з 32 частот і рекламним пристроєм, що надсилає маяк на всі 32 частоти. Рекламні пристрої продовжують повторювати цю послідовність, і скануючий пристрій, як тільки він отримає маяк, відповість і випадковим чином відключиться на деякий час і зачепить на нову частоту і повторить той самий процес. Тож навіть якщо є кілька пристроїв, які сканують з певною частотою, спочатку їх відповіді зіткнуться, але після відключення вони випадковим чином опиняються на різних частотах і збільшують шанси відповіді повторно не стикатися.

У вашому випадку використання 25 активних пристроїв - це зовсім не проблема, я працював із пристроями та середовищами, де було 50-100 пристроїв, і за 10-15 секунд відкриття легко знайти більшість пристроїв. Сподіваюсь, це допомагає.


1

Нещодавно я вивчив те саме запитання. Мої висновки полягають у тому, що обмеження існують або від ІС, або від ПЗ.

Найкращий для використання чіп - це TI та програмне забезпечення на чіпі.

Android / Apple / Windows мають свої обмеження в ядрі, тому використання програмного забезпечення будь-яке програмне забезпечення для перерахунку BT буде обмежено BT-Stack / Kernel. Використання SoC не має меж, оскільки стек ІС простий.

Скористайтеся спеціальним способом передачі інформації вашій програмі.

На день я вирішив не використовувати BT, тому що його абсолютний біль в попці.

Якщо тільки не новий стандарт V4, який розглядає рекламу по-новому краще.

Мені також потрібно було мати необмежену кількість телевізорів у кімнаті. бо було легше і дешевше вірити чи ні.

Поверніться до свого питання.

(Використовуючи щось на зразок WP7 / iPhone3,4 / Android)

BTv2.1 BT3

Надійно не більше 10 загалом. Найбільше, що я бачив, обробляв 32.

BT4

Біла книга говорить 128 .. Тільки Apple 4S підтримує цю версію, тому я не тестував.


0

Пристрій Bluetooth одночасно може підключати близько 7 пристроїв. Це його максимальна потужність.
Але це може змінюватися залежно від конфігурації пристрою.
Запитання
Питання1
ознайомтеся з вищенаведеним посиланням, це може бути для вас корисним


3
Питання не в тому, скільки пристроїв можна підключити, а в тому, скільки їх можна виявити. Ніякого спарювання не буде.
Кортук

0

Я не думаю, що існує межа. Те, як я реалізував детектування пристроїв поблизу, полягав у використанні бібліотеки InTheHand.Net ( http://32feet.codeplex.com/ ), періодично запускайте відкриття для всіх прилеглих пристроїв, а потім коротко підключайтеся до кожного пристрою, щоб переконатися, що воно все ще доступне. Без підключення я зрозумів, що немає гарантії, що ви точно знатимете, коли один пристрій прибув чи вийшов.

Приклад нижче:

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;

    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.