2016-12-02 40 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

相关问题