tutorial ios bluetooth bluetooth-lowenergy core-bluetooth multipeer-connectivity

tutorial - Conexión Bluetooth multipeer a un dispositivo que no sea iOS



bluetooth core swift (1)

Actualmente estoy intentando conectar un Raspberry Pi y un dispositivo iOS a través de Bluetooth. Al usar BTLE y CBCentralManager puedo hacer esto: me puedo conectar al Pi y compartir datos.

Mi problema es que, para mi propósito, necesito que los dispositivos tengan una IP, que, hasta donde yo sé, solo es posible utilizando un perfil de Bluetooth PAN (Personal Area Network). iOS admite esto con el nuevo Multipeer Connectivity Framework y funciona cuando se conectan dos dispositivos iOS, uno que usa MCNearbyServiceBrowser y el otro que usa MCNearbyServiceAdvertiser . Después de la conexión, ambos dispositivos tienen una interfaz de red con una IP. Pero ahora tengo que incorporar el Rasperry Pi a ese escenario, y no encuentro ninguna forma de hacer que Pi se una al PAN.

¿Alguien tiene alguna pista si esto es de alguna manera posible, dónde empezar a buscar, si hay una buena explicación sobre la comunicación en un PAN o algo similar? ¿Podría haber un marco que haga algo como eso? Estoy feliz por las pistas y consejos.


Probablemente, el Framework de Conectividad de Multipeer se base en un protocolo patentado ya que no he visto en ninguna parte que implemente PAN. Es solo similar. Como mencionas, la lista de perfiles compatibles también contiene PAN con la siguiente nota:

Dependiendo del accesorio Bluetooth, puede experimentar ligeras variaciones en la funcionalidad del perfil. Estas variaciones se rigen por el fabricante de accesorios, no por el dispositivo iOS.

Entonces, en teoría, PAN es compatible como está, y usted debería poder conectarse con un dispositivo arbitrario que admita este perfil. Conecté mi teléfono Android a mi iPhone con el punto de acceso personal en el iPhone y el Android podría usar la conexión a internet compartida sin ningún problema.

Encontré el tutorial de anclaje Bluetooth para iPhone de Raspberry Pi que parece describir exactamente lo que estás tratando de hacer. Para referencia futura, copio los pasos aquí:

Instala los paquetes bluetooth

sudo aptitude install bluetooth bluez-utils bluez-compat

Empareje los dispositivos, esta es la parte difícil

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

Encienda el Hotspot personal

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

Disfrutar

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)

Todos los créditos van a http://www.wolfteck.com/ para proporcionar estas instrucciones detalladas.