检测iPhone是否与Raspberry Pi处于近距离

Jam*_*orf 5 iphone bluetooth ios raspberry-pi swift

我正在寻找一种方便的方法来检测iPhone何时接近,几乎触及Raspberry Pi.检测应该从覆盆子进行.我不一定需要交换任何数据,我需要知道的是设备非常靠近或接触时.

我一直在集思广益,但是需要你的手,这是我的想法:

  • WIFI:信号强度?广播和检查延迟?是否可以在不在同一网络的情况下从WIFI做任何事情?是否可以在同一个网络上?
  • 蓝牙:同样如此.是否有可能检测信号强度或以任何方式获得接近?理想情况下没有配对.
  • NFC:可以使用NFC吗?据我所知,它似乎仅限于Apple Pay.

这是我的想法,我相信你有更好的想法,我很高兴听到他们!任何输入都很有价值:)

小智 5

通过CoreBluetooth使用BLE 并将Raspberry Pi设置为您从应用程序连接的蓝牙外围设备,您肯定会受益匪浅.您可以设置Raspberry Pi来广播一个独特的GATT服务,这样您就可以通过在CoreBluetooth中查找此服务来自动连接到它.

一旦连接到外围设备,就可以使用该readRSSI()方法检索蓝牙信号强度,框架将peripheral(_:didReadRSSI:error:)使用您请求的信息调用委托方法.然后,您可以使用它来检测(大约)iPhone与Raspberry Pi的距离.

就实际距离而言,"RSSI - >距离"关系会因您使用的iOS设备,芯片组和蓝牙适配器而异(此处提供更多信息),因此您可能需要一次性使用数据你已经启动并运行应用程序以找到适合您需求的应用程序.

很抱歉有很多链接.这个问题有点广泛,我只是提供了我的观点,因为我已经完成了很多与CoreBluetooth和BLE的合作.据我所知,WiFi不是一个非常好的可重用解决方案,我在我的应用程序中没有使用NFC做任何工作.如果您有其他问题,请告诉我!

编辑:我错过了你说你想在Raspberry Pi本身进行检测的地方,而不是手机.我很抱歉.我将上面的答案作为参考,但您仍然可以通过蓝牙LE和可能通过NFC获得选项(由于网络强度和检测的变化太多,我仍然排除Wi-Fi).

对于BLE,您可以采用与上面突出显示的方法非常相似的方法,除了创建您的iOS设备是外围设备的iPhone应用程序,并将其服务广播到Raspberry Pi.对于NFC,如果您查看此主题,如果您将NFC读卡器连接到Pi,两个答案似乎都有一些很好的启动信息,说明如何从Apple Pay获得标记化的帐号.希望这可以帮助.