Bla*_*olf 5 bluetooth ios core-bluetooth bluetooth-lowenergy multipeer-connectivity
我目前正在尝试通过蓝牙连接Raspberry Pi和iOS设备.使用BTLE,CBCentralManager
我能够做到这一点 - 我可以连接到Pi并共享数据.
我的问题是,为了我的目的,我需要设备有一个IP - 据我所知,只有使用PAN(个人局域网)蓝牙配置文件.iOS确实支持使用新的Multipeer Connectivity Framework,它可以在连接两个iOS设备时使用,一个使用MCNearbyServiceBrowser
,另一个使用MCNearbyServiceAdvertiser
.连接完成后,两个设备都具有带IP的网络接口.但现在我必须让Rasperry Pi进入这种情况 - 我找不到任何方法让Pi加入PAN.
有没有人有任何线索,如果这是某种可能的,从哪里开始寻找,如果有一个很好的解释PAN或类似的通信?甚至可能有一个类似的东西的框架?我很高兴任何线索和建议.
多重连接框架可能可能基于专有协议,因为我没有看到它实现PAN.它只与它类似.如您所述,支持的配置文件列表包含PAN以及以下注释:
根据蓝牙配件的不同,您可能会在配置文件功能方面略有不同.这些变化由附件制造商管理,而不是iOS设备.
因此理论上支持PAN,您应该能够连接支持此配置文件的任意设备.我通过iPhone上的Personal Hotspot将我的Android手机连接到我的iPhone,而Android可以使用共享的互联网连接,没有任何问题.
我找到了Raspberry Pi蓝牙iPhone Tethering教程,似乎正好描述了你想要做的事情.为了将来参考,请复制以下步骤:
安装蓝牙套餐
sudo aptitude install bluetooth bluez-utils bluez-compat
Run Code Online (Sandbox Code Playgroud)
配对设备,这是棘手的部分
pi@raspberrypi ~ $ hcitool scan
Scanning ...
18:34:51:55:B0:D8 Fanboy ][
pi@raspberrypi ~ $
pi@raspberrypi ~ $ grep KeyboardDisplay /usr/bin/bluez-simple-agent
capability = "KeyboardDisplay"
pi@raspberrypi ~ $ sudo perl -i -pe 's/KeyboardDisplay/DisplayYesNo/' /usr/bin/bluez-simple-agent
pi@raspberrypi ~ $ grep DisplayYesNo /usr/bin/bluez-simple-agent
capability = "DisplayYesNo"
pi@raspberrypi ~ $
pi@raspberrypi ~ $ sudo bluez-simple-agent hci0 18:34:51:55:B0:D8
RequestConfirmation (/org/bluez/18868/hci0/dev_18_34_51_55_B0_D8, 160178)
Confirm passkey (yes/no): yes
Release
New device (/org/bluez/18868/hci0/dev_18_34_51_55_B0_D8)
pi@raspberrypi ~ $
pi@raspberrypi ~ $ sudo bluez-test-device trusted 18:34:51:55:B0:D8 yes
Run Code Online (Sandbox Code Playgroud)
打开个人热点
pi@raspberrypi ~ $ echo "echo 'iface bnep0 inet dhcp' >> /etc/network/interfaces" | sudo sh
pi@raspberrypi ~
$ sudo pand -c 18:34:51:55:B0:D8 -role PANU --persist 30
Run Code Online (Sandbox Code Playgroud)
请享用
pi@raspberrypi ~ $ ifconfig bnep0
bnep0 Link encap:Ethernet HWaddr e0:91:53:61:0f:74
inet addr:172.20.10.10 Bcast:172.20.10.15 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4426 (4.3 KiB) TX bytes:802 (802.0 B)
Run Code Online (Sandbox Code Playgroud)
所有学分都转到http://www.wolfteck.com/以提供这些详细说明.