Berapa banyak perangkat Bluetooth aktif yang dapat saya deteksi dengan andal dalam satu ruang?

9

Saya merancang daya tarik berbiaya rendah dan berharap untuk menggunakan identifikasi perangkat Bluetooth untuk deteksi kedekatan - yaitu tamu A dalam jangkauan lokasi statis X. Setiap tamu akan diberi perangkat seluler yang disesuaikan (baik berbasis iPod atau Android).

Apa batas atas yang realistis pada "kepadatan" perangkat Bluetooth sebelum penghitungan semua perangkat terdekat menjadi tidak dapat diandalkan? Misalnya apakah memiliki 25 perangkat aktif di sekitar PC berkemampuan Bluetooth stasioner terlalu banyak di satu tempat untuk mendeteksi secara andal dan sepenuhnya (semua perangkat)? Apakah ini terlalu banyak kemacetan?

(Untuk lebih jelasnya: Saya tidak perlu membuat koneksi. Saya hanya perlu mendeteksi ada atau tidak adanya perangkat berdasarkan nama.)

DuckMaestro
sumber
Apakah Anda menemukan nomor untuk pertanyaan Anda?
Ramis

Jawaban:

9

Saya tidak dapat melihat bahwa Spesifikasi Bluetooth membuat referensi ke batas perangkat di area yang sama. Ini sangat sulit untuk ditentukan secara praktis karena terkait dengan tidak hanya perangkat Bluetooth, tetapi juga WiFi.

Makalah ini membahas bagaimana peningkatan jumlah perangkat, meningkatkan waktu yang dibutuhkan untuk penemuan perangkat: http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/Journal/WINET-onlineFinal.pdf

Juga pertimbangkan hal berikut:

Perangkat Bluetooth berfungsi dengan pita radio 2,4 GHz, yang merupakan frekuensi tanpa izin yang sama yang digunakan oleh banyak perangkat nirkabel lainnya. Jika banyak perangkat di area yang sama semuanya menggunakan rentang bandwidth yang sama, itu dapat menyebabkan masalah jaringan secara keseluruhan, karena sinyal bertabrakan dan informasi harus dikirim ulang. Sinyal Bluetooth dirancang untuk mengubah frekuensinya berkali-kali per detik untuk mengurangi interferensi ini, tetapi jika cukup banyak perangkat yang mencoba menggunakan rentang bandwidth yang sama, interferensi tidak dapat dihindari. Bluetooth 3.0, yang digunakan dalam perangkat yang dibuat pada tahun 2010, menggunakan spektrum 6-9 GHz, sehingga akan memiliki masalah interferensi jauh lebih sedikit. Perangkat Bluetooth 3.0 juga mampu mentransmisikan pada 2,4 GHz untuk berkomunikasi dengan teknologi Bluetooth sebelumnya. Bluetooth 3.0, berjalan pada 2,4 GHz,

Untuk meringkas: Anda perlu mempertimbangkan dengan hati-hati kemungkinan gangguan sebagai kendala waktu yang akan Anda miliki. Saya menduga bahwa 25 perangkat dapat dilakukan. Tetapi untuk memastikan Anda perlu menguji ini secara praktis

Konsalik
sumber
5

Tidak ada batas atas teoritis tentang berapa banyak perangkat yang dapat ditemukan, itu berbanding lurus dengan waktu penemuan. Meningkatkan jumlah waktu yang dihabiskan dalam penemuan akan meningkatkan kemungkinan mendeteksi semua perangkat dalam jangkauan.

Pada dasarnya penemuan dilakukan oleh pemindaian perangkat pemindaian pada salah satu dari 32 frekuensi dan perangkat iklan mengirimkan suar pada semua 32 frekuensi. Perangkat iklan terus mengulangi urutan ini dan perangkat pemindaian, setelah menerima suar, akan merespons dan mundur secara acak untuk beberapa waktu dan mengunci frekuensi baru dan mengulangi proses yang sama. Jadi, bahkan jika ada beberapa perangkat yang memindai pada frekuensi tertentu, pertama kali tanggapan mereka akan bertabrakan, tetapi setelah mundur mereka secara acak berakhir di frekuensi yang berbeda dan meningkatkan kemungkinan tanggapan mereka tidak bertabrakan lagi.

Dalam kasus penggunaan 25 perangkat aktif Anda sama sekali tidak masalah, saya telah bekerja dengan perangkat dan lingkungan di mana ada 50-100 perangkat dan penemuan 10-15 detik dapat dengan mudah menemukan sebagian besar perangkat. Semoga ini membantu.

Dennis Mathews
sumber
1

Baru-baru ini saya mempelajari pertanyaan yang sama - Temuan saya adalah bahwa keterbatasannya adalah oleh IC atau Perangkat Lunak.

Chip terbaik untuk digunakan adalah berbasis TI dan pada perangkat lunak pada chip.

Android / Apple / Windows memiliki batasannya sendiri di dalam kernel- jadi dengan menggunakan perangkat lunak, setiap perangkat lunak untuk menghitung BT akan dibatasi oleh BT-Stack / Kernel. MENGGUNAKAN SoC tidak memiliki batasan karena IC's Stack sederhana.

Gunakan cara kustom untuk menyalurkan informasi ke program Anda.

Pada hari itu saya memutuskan untuk tidak menggunakan BT karena itu benar-benar sakit di pantat.

Kecuali jika itu standar V4 baru yang menangani periklanan dengan cara baru yang lebih baik.

Saya juga perlu memiliki BT tanpa batas di sebuah ruangan .. memutuskan untuk membuat sendiri PCB dan penerima yang sesuai - mengapa? karena lebih mudah dan lebih murah percaya atau tidak.

Kembali ke pertanyaan Anda.

(MENGGUNAKAN sesuatu seperti WP7 / iPhone3,4 / Android)

BTv2.1 BT3

Andal tidak lebih dari 10 secara umum. Yang paling banyak saya lihat ditangani 32.

BT4

Buku putih mengatakan 128 .. Hanya Apple 4S yang mendukung Versi ini jadi saya belum menguji.

Piotr Kula
sumber
0

Perangkat Bluetooth dapat menghubungkan sekitar 7 perangkat sekaligus. Ini adalah kapasitas maksimumnya.
Tapi itu mungkin bervariasi sesuai konfigurasi perangkat.
Pertanyaan
Question1
lihat tautan di atas ini mungkin bermanfaat bagi Anda

Gouse Shaik
sumber
3
Pertanyaannya bukan untuk berapa banyak perangkat dapat terhubung, ini tentang berapa banyak yang dapat dideteksi. Tidak ada pasangan yang akan dilakukan.
Kortuk
0

Saya kira tidak ada batasannya. Cara saya menerapkan deteksi perangkat terdekat adalah dengan menggunakan pustaka InTheHand.Net ( http://32feet.codeplex.com/ ), jalankan penemuan untuk semua perangkat terdekat secara berkala dan kemudian sambungkan ke setiap perangkat untuk memastikannya masih tersedia. Tanpa menghubungkan saya menyadari tidak ada jaminan Anda akan secara akurat tahu kapan satu perangkat tiba atau pergi.

Contoh di bawah ini:

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;

    }
dancri77
sumber