通過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獲得標記化帳號。希望這可以幫助。
的OP所說的」檢測應要從樹莓完成「 - 你的答案似乎完全在iOS端。 – barny