2013-03-28 37 views
32

Tôi sẽ bắt đầu với câu hỏi.Bluetooth LE RSSI để phát hiện lân cận iOS

BTI RSSI có phải là cách hay để chỉ ra hai thiết bị gần nhau hay không? nó chỉ hoạt động với các thiết bị nhỏ như fobs vv?

Các Vấn đề:

Tôi hiện đang xem xét đưa ra một ứng dụng mà sẽ sử dụng BTLE và cho phép các kết nối dựa trên sự gần gũi. Về vấn đề này nó là giống như các ứng dụng demo mà táo hiển thị trong bài phát biểu chính của Advanced Core Bluetooth (Khi hai thiết bị gần như chạm vào thì họ kết nối).

Như tôi đã hiểu, khoảng cách được xác định dựa trên giá trị RSSI khi trung tâm phát hiện ra thiết bị ngoại vi. Khi tôi thử điều này tuy nhiên với hai iPad, tín hiệu có vẻ quá mạnh cho điều này, nó cũng quá không nhất quán để có một đâm chính xác ở gần vì nó không hiển thị rất nhiều tương quan với các thiết bị gần.

Tôi đã thử mã mẫu của Apple và điều tương tự ở chỗ các thiết bị không nhất thiết phải gần gũi để thông tin truyền từ người này sang người khác.

Nếu chỉ có một cách để giảm cường độ tín hiệu của các thiết bị ngoại vi quảng cáo ....

Cảm ơn trước sự giúp đỡ nào.

Trả lời

20

Trải nghiệm của Matthew Griffin phù hợp với tôi. Tuy nhiên - khi chúng ta có thể đo lường trong một khoảng thời gian hợp lý, hai điều đã giúp chúng ta hiệu chỉnh điều này tốt hơn.

Chúng tôi đã phải bọc một bộ lọc đơn giản (kalman) trên định hướng ăng-ten và IMU để nhận được một bình luận chạy thô mặc dù - và điều này không phải là rất CPU hoặc đèn pin.

  • Sử dụng IMU bạn có ý tưởng hợp lý về khoảng cách/hướng đi - và nếu điều này trong một khoảng thời gian ngắn - chúng tôi giả định 'phía' khác là văn phòng phẩm. Điều này giúp rất nhiều để có được một giá trị cho định hướng 'hiện tại' và 'hiệu chỉnh tiếng ồn môi trường hiện tại.
  • Tương tự - làm tương tự đối với các thay đổi xoay vòng/vị trí.

Chúng tôi nhận thấy rằng nói chung, việc định hướng lại thiết bị là cách tốt hơn để nhận chỉ đường; và khoảng cách đó chỉ đáng tin cậy trong khoảng 30 đến 600 giây sau khi hiệu chỉnh 'di chuyển' và chỉ khi thiết bị không quay quá nhiều. Và trong thực tế một khi cần một số thiết bị 4-5 'khác'; lý tưởng không quá di động, để giữ cho chính mình được hiệu chỉnh động.

Tuy nhiên, trò chuyện là khá đáng tin cậy - nghĩa là chúng tôi biết khi nào không đo lường. Và kết quả thực sự là người ta có thể xác định khá rõ những thứ như 'ở bàn phím' và 'di chuyển'/di chuyển qua một cánh cửa/mở cụ thể hoặc hướng. Tương tự như vậy đo một lĩnh vực bằng cách nhảy ngẫu nhiên qua phòng; thay đổi định hướng rất nhiều - không hoạt động tốt một khi các ăng ten ăng-ten thu nhận được phần nào làm việc sau một thời gian tĩnh.

+0

bạn có bất kỳ công thức để chuyển đổi db để mét khoảng ?? – ilesh

10

Tôi đã dành tuần cuối cùng xử lý nghiêm ngặt với RSSI, cố gắng sử dụng cảm biến Wi-Fi và Bluetooth LE cho vị trí tam giác và để chuyển đổi khoảng cách.

Thật không may, những gì tôi thấy là RSSI quá khó và không đáng tin cậy để sử dụng nhất quán để xác định khoảng cách. Về lý thuyết, RSSI và khoảng cách hoạt động theo định luật nghịch đảo (gấp đôi khoảng cách và RSSI sẽ giảm số lượng decibel cố định), nhưng trong thực tế RSSI bị ảnh hưởng bởi các yếu tố không kiểm soát được như thời tiết (thời tiết khô cho phép RF) các vật thể kim loại hoặc con người trong đường đi từ cảm biến này đến cảm biến khác sẽ gây ra sự suy giảm, và bất kỳ vật kim loại nào được định vị chặt chẽ bởi một trong các cảm biến sẽ làm tăng cường độ tín hiệu).

Có nhiều cách để cố gắng bù đắp cho điều này. This paper là một trong những giấy tờ tốt nhất tôi đọc về cách lấy kết quả chính xác, nhưng dòng dưới cùng là một phương pháp không đáng tin cậy trừ khi bạn chỉ muốn có ý tưởng chung về vị trí của thiết bị.

+0

liên kết đến Bài viết bị hỏng. – Raanan

2

Nếu tôi hiểu rõ, bạn đang cố gắng triển khai chức năng tương tự như những gì được thấy trong bản trình diễn WWDC và những ứng dụng như thực hiện Bump. Đối với RSSI đó sẽ là đủ. Kiểm tra các giá trị ngưỡng hỗ trợ (ví dụ> -30) và bạn sẽ ổn.

+0

Nó không phải là đơn giản. Giá trị RSSI cực kỳ ồn ào và cần phải lọc. –

+0

@PhillApley Tôi nghĩ rằng nó phụ thuộc rất nhiều vào ứng dụng của bạn. Đối với hầu hết các trường hợp mà bạn cần phải xác định xem hai thiết bị có rất gần hay không và một số lỗi có thể chấp nhận được, thì RSSI là đủ. – allprog

13

Bạn hoàn toàn chính xác về RSSI nhảy cực kỳ và ngẫu nhiên. Bạn nên lấy các giá trị RSSI của bạn sau mỗi hai giây (nhanh hơn và bạn nhận được một loạt các lỗi). Vứt bỏ các giá trị RSSI có độ lớn hơn ~ -40 decibel và sử dụng tổng các giá trị trước đây trước khi bạn khai báo phạm vi gần đúng của mình cho người dùng.

Đối với tuyên bố sau của bạn, bạn đang gặp may.

Nếu chỉ có một cách để giảm cường độ tín hiệu của thiết bị ngoại vi quảng cáo ....

Các dịch vụ mà bạn đang tìm kiếm được gọi là TX Power Service. Thực hiện dịch vụ này trên thiết bị ngoại vi của bạn sẽ cho phép bạn giảm công suất phát của thiết bị. Bằng cách đó bạn có thể điều chỉnh phạm vi mà dữ liệu quảng cáo hiển thị. Rất tiếc, chúng tôi không có quyền truy cập vào dịch vụ này trên thiết bị iOS. Nhưng nếu bạn đang viết firmware của riêng bạn cho một thiết bị ngoại vi BLE, đây là dịch vụ bạn muốn.

Các vấn đề liên quan