web-dev-qa-db-fra.com

Connecter un iPhone à Arduino via Bluetooth

J'aimerais pouvoir laisser mon iPhone-App communiquer avec mon Arduino via Bluetooth . J'ai trouvé des boucliers Bluetooth prenant en charge les protocoles suivants: BCSP, DUN, LAN, GAP SDP, RFCOMM et L2CAP. D'après ce que j'ai trouvé en cherchant un peu sur Google, est-ce que l'iPhone cache sa pile Bluetooth?!? Est-ce correct? N'y a-t-il vraiment aucune chance de laisser mon iPhone communiquer avec un autre appareil compatible Bluetooth sans jailbreaker (qui, autant que je sache, serait nécessaire si j'utilisais btstack: http://code.google.com/p/btstack/ )?

Si le bluetooth n’est vraiment pas possible, quels autres moyens (comme le WLAN) suggéreriez-vous pour réaliser une communication? Ce que j’aimerais réaliser, c’est comme ici: http://theiopage.blogspot.com/2011/ 08/yanis-Android-wireless-eos-controller.html

Merci pour tous les conseils!

18
Georg

Il existe plusieurs technologies de connexion disponibles.

Comme d'autres l'ont mentionné, la norme Bluetooth (3.0) est contrôlée par le programme MFi. La seule façon de se connecter à un iPhone non jailbroke est de rejoindre le programme MFi.

L'accès en série est intéressant. Vous devez vous connecter à MFi pour distribuer un périphérique série, mais vous pouvez utiliser le câble série Redpark pour connecter votre posséder l'iPhone à un périphérique série.

Il existe plusieurs façons de connecter des périphériques Bluetooth LE à l’Arduino. Un que j'ai utilisé est le RedBearLabs BLE Shield . Cela fonctionne très bien.

iPhone to RedBearLab BLE Shield to Arduino, powering a hacked truck using techBASIC

Vous pouvez également vous connecter à un Arduino via un pont série WiFi. J'ai eu du succès avec le WiFly .

iPhone to WiFly to Arduino

L'un des avantages du BLE Shield et de WiFly est qu'il n'est pas nécessaire d'utiliser Objective C ou un Macintosh - bien que ce soit une option, bien sûr. Vous pouvez accéder aux deux via techBASIC , directement sur iPad ou iPhone.

Vous pouvez probablement résoudre ces problèmes vous-même grâce à des recherches et à des efforts, mais ces technologies de connexion (ainsi que quelques autres qui ne s'appliquent pas directement à Arduino) sont également couvertes dans Création d'appareils électroniques pour iPhone et iPad , un nouveau livre de O'Reilly.

New Book from O'Reilly

16
Mike

Les informations sur la connexion à Bluetooth 3.0 ou à des périphériques inférieurs à partir de périphériques iOS existants ne sont disponibles qu'après avoir été acceptées dans programme MFi d'Apple .

Bluetooth 4.0 (BLE) est accessible en développement et commercialement aux développeurs iOS (sans avoir besoin d'accéder au programme MFi), en utilisant le cadre public Bluetooth central disponible dans iOS 5 ou version ultérieure sur les appareils iPhone 4S, iPad 3 et versions ultérieures portant la technologie BT4.0 à bord.

Ajoutées quelques années plus tard: Il existe maintenant plusieurs boucliers BLE et produits compatibles avec Arduino ou similaires à Arduino avec BLE intégré (LightBlue Bean, RFduino, etc.) disponibles sur le marché.

10
hotpaw2

En fait, vous pouvez y arriver maintenant sans Jailbreaking ou inscription MFI.

Jetez un oeil sur Bluetooth 4.0 dans les nouveaux appareils iOS et le bouclier Arduino BT 4.0.

Cela pourrait aider: http://blog.makezine.com/2012/03/19/bluetooth-4-0-from-arduino-to-iphone-no-jailbreaking-no-mfi/

8
ygbr

Améliorer cette réponse et couvrir tous les détails nécessite probablement un article ou similaire. Je vais essayer de garder les choses courtes et de me concentrer sur iOS, car Arduino n’a fondamentalement pas de limitations sur les périphériques Bluetooth largement disponibles via les boucliers Arduino BLE, tels que RedBearLab BLE Shild

Bluetooth v2.0 + EDR, v2.1 + EDR, v3.0 + HS ....

La spécification de pile Bluetooth antérieure à la v4.0 ne contient pas de pièce à faible énergie. Bien que le protocole soit facile à utiliser, surtout s'il est simplifié autour du profil SPP (Serial Port Profile), il n'est pas disponible sur les appareils Apple iOS sans le programme MFi . Il existe peu de modules Bluetooth sur le marché, par exemple le Pan1321 de Panasonic, qui inclut le coprocesseur d’authentification Apple et qui pourrait être utilisé avec iOS. Une partie triste de l’histoire est que si vous regardez sur cette page officielle iOS: profils Bluetooth pris en charge SPP n’est pas disponible, vous pouvez donc choisir entre les profils répertoriés (ce que vous ferez probablement si vous créez un périphérique audio ou HID). 

Bluetooth basse énergie (BLE)

La migration de la spécification Bluetooth v3.0 vers la v4.0 a introduit BLE. La nouvelle partie de la spécification a très peu en commun avec la précédente. Fondamentalement, vous pouvez le regarder comme Bluetooth v3.0 + BLE = v4.0 ou Bluetooth Smart. La partie BLE de la spécification v4.0 est ce qui nous intéresse.

CoreBluetooth

Outre tous les avantages de BLE, tels que la faible consommation d’énergie, la petite taille et le faible coût, le plus important a été l’adoption par les fabricants de téléphones mobiles, y compris Apple (pas besoin de MFi). BLE est entièrement pris en charge par CoreBluetooth et la mise en œuvre du côté iOS est simple. Il faut garder à l’esprit que BLE consomme peu d’énergie mais aussi de faible vitesse. Bien que la norme spécifie un intervalle de connexion minimal de 7,5 ms, Apple documentation indique que la recommandation est de 30 ms :-D Ce que j’ai appris à utiliser des tas de puces et d’appareils iOS, c’est que vous serez en mesure de transmettre 20 octets toutes les 20 à 30 ms. Si un acquittement est nécessaire, faites-le doubler, comme 40-60ms.

Profils personnalisés

La liste des profils BLE standard est disponible par le groupe d'intérêt spécial Bluetooth (SIG). Jetez un coup d'œil sur GATT. Malheureusement, si vous ne créez pas de moniteur de fréquence cardiaque ni d'appareil dans la liste, vous utiliserez probablement un service sur batterie ou similaire à partir d'une liste de profils. Heureusement, il n'est pas compliqué de créer un profil personnalisé, qui sera un "espace réservé" pour les données spécifiques à l'application que vous devez transmettre. Compréhension des rôles, GATT (Services et Caractéristiques), UUID et autres est obligatoire, mais la courbe d'apprentissage ou la pile BLE n'est pas difficile à mon avis.

Une fois que le profil BLE, l’exécution sur un périphérique intégré est connu, la connexion et la communication sur BLE sont très simples avec la bibliothèque CoreBluetooth.

iBeacon

Apple a fait peu de piratage en utilisant le standard BLE comme "transporteur" pour iBeacon. Ils utilisent les données spécifiques au fabricant contenues dans le paquet publicitaire BLE pour "affirmer" que certains périphériques sont iBeacon. Ce qui est parfaitement correct, je dirais. Ce que vous devez garder à l’esprit est que BLE n’est pas iBeacon, mais que tous les iBeacons sont BLE (appareils avec données codées en dur propres au fabricant, exposant RSSI, UUID, majeurs et mineurs en mode BLE de diffusion). En outre, iBeacon est géré par CoreLocation not CoreBluetooth . Cela montre clairement quelle était l'intention d'Apple avec iBeacon.

Conclusion

Si vous souhaitez intégrer un périphérique iOS à Arduino ou à un autre périphérique intégré, vous devez absolument prendre en compte BLE. Si vous voulez en savoir plus sur le battage médiatique de l'IdO et les options RF disponibles, vous souhaitez en savoir plus sur BLE. BLE est là pour rester avec les spécifications v4.1 et à venir v4.2 qui amélioreront la bande passante, apporteront la prise en charge d'IPv6, une meilleure sécurité, etc.

À la fin, pas si court, mais j'espère que cela aidera.

2
Darko Djuric

Donc, je ne sais pas comment le mettre en œuvre, mais je pense que votre Arduino devrait simuler un casque Bluetooth et laisser l’application analyser les données. Étant donné que les iPhones ne prennent en charge que les casques Bluetooth, cette méthode serait l'une des seules. Et ce serait très difficile.

Je vous recommande de faire des choses comme celle-ci en Wifi avec un Wifi-Shield. Que vous pourriez utiliser Apples genial bonjour systeme, pour détecter automatiquement votre matériel.

J'espère que cela vous donne une idée de la façon de résoudre le problème,

Leo

2
evotopid

Certains modules BLE peuvent être utilisés en mode iBeacon et peuvent être connectés à des IO. J'ai travaillé avec les modules HM10 et HM11, basés sur CC2540/CC2541. Ils ont plusieurs commandes AT pour la configuration iBeacon. Les registres modifiables sont UUID, Major, Minor et Puissance mesurée. Plus de détails dans cet article "Transformez votre module intelligent Bluetooth HM-10 basé sur CC2541 en iBeacon"

0