2016-12-02 66 views
4

我正在尋找一種方便的方法來檢測iPhone是否接近Raspberry Pi。檢測應該由樹莓做出。我不一定需要交換任何數據,所有我需要知道的是設備非常接近或觸摸的時間。檢測iPhone是否位於Raspberry Pi的近距離範圍內

我一直在頭腦風暴的一些想法,但需要你的手放在這一個,這裏是我的想法:

  • WIFI:信號強度?廣播和延遲檢查?如果不在同一個網絡上,可以從WIFI做任何事情嗎?如果在同一個網絡上可以嗎?
  • 藍牙:同樣在這裏。是否有可能檢索信號強度或以任何方式獲得接近度?理想情況下沒有配對。
  • NFC:可以使用NFC嗎?從我讀過的內容來看,它似乎僅限於Apple Pay。

這是我的想法,我相信你有更好的想法,我會很高興聽到他們!任何輸入都是有價值的:)

回答

4

通過CoreBluetooth使用BLE,並將Raspberry Pi設置爲從應用連接到的藍牙外設,您絕對會受益匪淺。您可以設置Raspberry Pi來播放唯一的GATT Service,這樣您就可以通過在CoreBluetooth中找到該服務來自動連接它。

一旦連接到外設,您可以使用readRSSI()方法來檢索藍牙信號強度,並且框架將根據您請求的信息調用peripheral(_:didReadRSSI:error:)委託方法。然後,您可以使用它來檢測(大約)iPhone與Raspberry Pi的距離。

就實際距離而言,您使用的iOS設備,芯片組和藍牙適配器之間的'RSSI - >距離'關係將會有所不同,因此您可能需要隨身攜帶數據一旦你有了應用程序,並運行,以找到適合你的需求。

對不起,有大量的鏈接。這個問題有點寬泛,我只是提供我的觀點,因爲我已經做了很多CoreBluetooth和BLE的工作。據我所知,WiFi不會是一個很好的可重複使用的解決方案,我在我的應用程序中沒有使用NFC做任何工作。如果您有其他問題,請告訴我!

編輯:我錯過了你說你想對Raspberry Pi本身進行檢測,而不是電話。我很抱歉。我將以上述答案作爲參考,但您仍然可以通過藍牙LE和可能通過NFC獲得選項(由於網絡強度和檢測方面的變化太多,我仍然在排除Wi-Fi)。

對於BLE,您可以採用與上面強調的方法非常類似的方法,除了在您的iOS設備是外設的情況下創建iPhone應用程序,並將其服務廣播到Raspberry Pi。對於NFC,如果您選擇this thread,這兩個答案似乎都有一些很好的啓動信息,說明如果您將NFC閱讀器連接到Pi,如何從Apple Pay獲得標記化帳號。希望這可以幫助。

+0

的OP所說的」檢測應要從樹莓完成「 - 你的答案似乎完全在iOS端。 – barny