5

現在、Raspberry Pi と iOS デバイスを Bluetooth 経由で接続しようとしています。BTLE を使用すると、CBCentralManagerこれを行うことができます。Pi に接続してデータを共有できます。

私の問題は、私の目的のために、デバイスに IP が必要なことです。これは、私の知る限り、PAN (Personal Area Network) Bluetooth プロファイルを使用してのみ可能です。iOS は新しいMultipeer Connectivity FrameworkMCNearbyServiceBrowserでこれをサポートしており、1 つは を使用し、もう1 つはを使用して 2 つの iOS デバイスを接続するときに機能しMCNearbyServiceAdvertiserます。接続が確立されると、両方のデバイスに IP を持つネットワーク インターフェイスが設定されます。しかし今、私は Rasperry Pi をそのシナリオに入れなければなりません - そして私は Pi を PAN に参加させる方法を見つけることができません。

これが何らかの形で可能である場合、どこから始めればよいか、PAN などでの通信について適切な説明がある場合、手がかりはありますか? そのようなことを行うフレームワークさえあるのでしょうか? リードやアドバイスをいただければ幸いです。

4

1 に答える 1

5

Multipeer Connectivity Framework は、おそらく独自のプロトコルに基づいていると思われます。これが PAN を実装しているのを見たことがないからです。それに似ているだけです。ご指摘のとおり、サポートされているプロファイルのリストには PAN と次の注記が含まれています。

Bluetooth アクセサリによっては、プロファイル機能が若干異なる場合があります。これらのバリエーションは、iOS デバイスではなく、アクセサリの製造元によって管理されています。

したがって、理論的には PAN はそのままサポートされており、このプロファイルをサポートする任意のデバイスに接続できるはずです。iPhone の Personal Hotspot を使用して Android フォンを iPhone に接続すると、Android は問題なく共有インターネット接続を使用できました。

あなたがやろうとしていることを正確に説明しているように見えるRaspberry Pi Bluetooth iPhone Tetheringチュートリアルを見つけました。今後の参考のために、ここに手順をコピーします。

Bluetooth パッケージをインストールする

sudo aptitude install bluetooth bluez-utils bluez-compat

デバイスをペアリングします。これはトリッキーな部分です

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

パーソナル ホットスポットをオンにする

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

楽しみ

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)

これらの詳細な手順を提供するために、すべてのクレジットはhttp://www.wolfteck.com/に送られます。

于 2014-03-18T18:59:19.380 に答える