从Raspberry Pi检测iPhone 5s的接近程度

时间:2014-04-05 05:40:03

标签: raspberry-pi bluetooth-lowenergy ibeacon

我最近收购了一些Raspberry Pis和CSR蓝牙4.0 USB加密狗。我已经尝试了所有博客和教程(其中最好的是来自Radius NetworksAdafruit),但我要么缺少一个重要的行为行为或配置步骤。

我正在使用从源代码编译的Bluez 5.17。我的CSR 4.0 BLE加密狗似乎也运行良好:

$ sudo hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1A:7D:DA:71:0F  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:12649 acl:0 sco:0 events:464 errors:0
        TX bytes:2658 acl:0 sco:0 commands:124 errors

当我开始一个女同志时,我什么都没看到。我的iPhone 5s启用了蓝牙功能。

$ sudo hcitool lescan
LE Scan ...

从我的iPhone 5s启动“Beacon Toolkit”,创建一个带有随机UUID的新iBeacon并激活它。很多莱斯活动被捡起来。

$ sudo hcitool lescan
LE Scan ...
5E:EE:91:0C:BE:2E (unknown)
5E:EE:91:0C:BE:2E (unknown)
5E:EE:91:0C:BE:2E (unknown)
...

所以我决定尝试做广告:

$ sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8 00
< HCI Command: ogf 0x08, ocf 0x0008, plen 32
  1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F
  17 D1 AD 07 A9 61 00 00 00 00 C8 00
> HCI Event: 0x0e plen 4
  01 08 20 00
$ sudo hciconfig hci0 leadv 3

我不知道在这一点上我应该期待什么。 “定位iBeacon”应用程序就位于Locate iBeacons视图中,其中包含“寻找iBeacons ......”。没有任何事情发生。

无论哪种方式,这个测试的全部要点是看看我是否可以通过BLE检测我的iPhone 5s与它之间的接近程度。

这甚至可能吗?所有iBeacon和BLE博客和教程都完全不清楚这项技术或它们涵盖的工具实际可行的内容。例如,为了测量接近度,不得不经常运行应用程序是不太实际的。

如何在没有应用程序运行的情况下让我的iPhone 5s自行投放广告?

提前感谢任何提示。我认为有几个人磕磕绊绊,试图了解如何在应用内情景之外使用此功能。

2 个答案:

答案 0 :(得分:5)

当您在Raspberry Pi上扫描iBeacons时,您需要一个脚本来解析iBeacon标识符。我的公司发布了一个here.

  

&#34;定位iBeacon&#34;应用程序只是坐在Locate iBeacons视图中,用#34;寻找iBeacons ......&#34;。没有任何事情发生。

除非您首先告诉iOS查找其proximityUUID,否则您无法在iOS上看到iBeacon。在您的情况下,您正在使用proximityUUID E20A39F4-73F5-4BC4-A12F-17D1AD07A961进行Raspberry Pi传输。您必须使用此proximityUUID为iBeacon配置Locate,以使其可见。

  

如何在没有应用程序运行的情况下让我的iPhone 5s自行投放广告?

不幸的是,你做不到。 iOS设备需要运行应用程序以使自己发送iBeacon传输。如果您希望Raspberry Pi成为接收器,则必须让手机用户激活应用并将其置于前台。

另一种方法是让Raspberry Pi成为发射器。手机仍然需要安装一个应用来检测Pi并测量距离,但应用程序可能在后台。当iOS首次检测到iBeacon时,它会短暂启动应用程序,将iBeacons搜索到后台,在那里可以进行快速距离估算,然后请求用户许可到前台进行更多测距。

鉴于iOS安全模型,我担心这是你能做的最好的。 Android在这个用例中更加灵活,应用程序可以在后台完成各种操作(虽然Android不能充当发​​送器)。

完全披露:我是Radius Networks的总工程师。

答案 1 :(得分:0)

我认为同意你的沮丧。我一直在尝试做同样的事情......

大卫你的解释完全有道理..

但我能以某种方式,让我的树莓pi工作几天。每次,我都接近RPI,LED会亮起来。当我走了大约20米远时,立即岔路口。我能够使用你的testblescan程序来搜索一个特定的信号,然后当它看到一个“minor = 513”的信号时,我就把它点亮它以点亮LED ......它工作得很好......然后我一直在玩弄它,操作系统被破坏了,所以我不得不从头开始......现在我不能重复了。无论我的iphone6处于什么状态,它似乎都能正常工作......我在天堂,现在我无法让它做同样的事情。

我一直都有蓝牙,我有一块鹅卵石手表..应该,我至少看不到bluetooh的信号......有人说,如果我关掉iphone上的蓝牙,我可以看到鹅卵石Hcitool扫描/莱斯坎。所以想知道iphone是否会拦截蓝牙信号...