it-swarm.com.de

Verbinden Sie ein iPhone über Bluetooth mit Arduino

Ich würde es lieben, meine iPhone-App über Bluetooth mit meinem Arduino kommunizieren zu lassen. Ich fand einige Bluetooth-Schutzschilde, die die folgenden Protokolle unterstützen: BCSP, DUN, LAN, GAP SDP, RFCOMM und L2CAP. Was ich beim Googeln gefunden habe, ist, dass das iPhone seinen Bluetooth-Stack verbirgt?!? Ist das richtig? Gibt es wirklich keine Chance, mein iPhone mit einem anderen Bluetooth-fähigen Gerät ohne Jailbreaking kommunizieren zu lassen (was meines Wissens nach erforderlich wäre, wenn ich btstack: http://code.google.com/p/btstack verwenden würde/ )?

Wenn Bluetooth wirklich nicht möglich ist, welche anderen Möglichkeiten (erwarten Sie WLAN) würden Sie vorschlagen, um eine Kommunikation zu realisieren? Was ich gerne realisieren würde, ist etwa hier: http://theiopage.blogspot.com/2011/ 08/yanis-Android-wireless-eos-controller.html

Danke für irgendwelche Tipps!

18
Georg

Es gibt verschiedene Verbindungstechniken.

Wie bereits erwähnt, wird das Standard-Bluetooth (3.0) vom MFi-Programm gesteuert. Die einzige Möglichkeit, eine Verbindung zu einem Nicht-Jailbroke-iPhone herzustellen, besteht darin, am MFi-Programm teilzunehmen.

Der serielle Zugriff ist interessant. Sie müssen sich mit MFi einem distribute eines seriellen Geräts anschließen, Sie können jedoch das Redpark Serial Cable verwenden, um Ihr own iPhone mit einem seriellen Gerät zu verbinden.

Es gibt verschiedene Möglichkeiten, Bluetooth LE-Geräte mit dem Arduino zu verbinden. Ich habe das RedBearLabs BLE Shield verwendet. Es funktioniert verdammt gut.

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

Sie können auch eine Verbindung zu einem Arduino über eine serielle WLAN-Brücke herstellen. Ich hatte Erfolg mit dem WiFly Gerät.

iPhone to WiFly to Arduino

Das Beste an dem BLE Shield und WiFly ist, dass Sie weder Objective C noch einen Macintosh verwenden müssen - obwohl dies natürlich eine Option ist. Sie können auf beide über techBASIC zugreifen, die direkt auf dem iPad oder iPhone ausgeführt werden. 

Sie können dies wahrscheinlich mit einiger Forschung und Aufwand selbst herausfinden, aber diese Verbindungstechnologien (und einige weitere, die nicht direkt auf Arduino zutreffen) sind ebenfalls in Building iPhone und iPad Electronics Devices , einem neuen, enthalten Buch von O'Reilly.

New Book from O'Reilly

16
Mike

Informationen zum Herstellen einer Verbindung zu Bluetooth 3.0 oder niedrigeren Geräten von Standard OS iOS-Geräten sind nur verfügbar, nachdem sie in Apples MFi-Programm aufgenommen wurden.

Bluetooth 4.0 (BLE) ist sowohl in der Entwicklung als auch kommerziell für iOS-Entwickler verfügbar (ohne Zugriff auf das MFi-Programm). Dabei kann das öffentliche Core-Bluetooth-Framework verwendet werden, das in iOS 5 oder höher für iPhone 4S, iPad 3 und höher mit BT4.0 verfügbar ist am Bord.

Einige Jahre später hinzugefügt: Es gibt jetzt mehrere BLE-Schilde und Arduino-kompatible oder Arduino-ähnliche Produkte mit eingebauter BLE (LightBlue Bean, RFduino usw.) auf dem Markt.

10
hotpaw2

Eigentlich können Sie dies jetzt ohne Jailbreaking oder MFi-Registrierung durchführen.

Schauen Sie sich Bluetooth 4.0 in neueren iOS-Geräten und Arduino BT 4.0 Shield an.

Dies könnte hilfreich sein: http://blog.makezine.com/2012/03/19/bluetooth-4-0-von-arduino-to-iphone-no-jailbreaking-no-mfi/

8
ygbr

Um diese Antwort zu verbessern und alle Details zu behandeln, ist wahrscheinlich ein Artikel oder ähnliches erforderlich. Ich werde versuchen, die Dinge kurz zu halten und mich auf die iOS-Seite zu konzentrieren, da Arduino grundsätzlich keine Einschränkungen für Bluetooth-Peripheriegeräte hat, die über Arduino-BLE-Schilde weit verbreitet sind, wie RedBearLab BLE Shild .

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

Die Bluetooth-Stack-Spezifikation vor v4.0 enthält keinen Low Energy-Teil. Obwohl das Protokoll einfach zu verwenden ist, ist es auf Apple iOS-Geräten ohne MFi -Programm nicht verfügbar, insbesondere wenn es um das SPP (Serial Port Profile) vereinfacht wird. Es gibt wenige Bluetooth-Module auf dem Markt, z. B. Pan1321 von Panasonic, das einen Apple-Authentifizierungskoprozessor enthält und mit iOS verwendet werden könnte. Trauriger Teil der Geschichte ist, dass, wenn Sie sich diese offizielle Seite ansehen iOS: Unterstützte Bluetooth-Profile SPP nicht vorhanden ist, so dass Sie zwischen aufgelisteten Profilen wählen können (was Sie wahrscheinlich tun werden, wenn Sie ein Audio- oder HID-Gerät erstellen). 

Bluetooth Low Energy (BLE)

Durch die Migration von Bluetooth v3.0 zu v4.0 wurde BLE eingeführt. Der neue Teil der Spezifikation hat mit dem vorherigen sehr wenig gemein. Grundsätzlich könnte man es als Bluetooth v3.0 + BLE = v4.0 oder Bluetooth Smart betrachten. Der BLE-Teil der v4.0-Spezifikation ist das, was uns interessiert.

CoreBluetooth

Neben all den Vorteilen von BLE, wie geringem Stromverbrauch, geringer Größe und geringen Kosten, war die Akzeptanz bei Mobilfunkherstellern, einschließlich Apple (kein MFi erforderlich). BLE wird vollständig von CoreBluetooth unterstützt, und die Implementierung auf iOS-Seite ist unkompliziert. Eine Sache, die Sie beachten müssen, ist, dass BLE eine niedrige Energie aber auch eine niedrige Geschwindigkeit hat. Obwohl der Standard ein minimales Verbindungsintervall von 7,5 ms angibt, sagt Apple Dokumentation , dass die Empfehlung 30 ms beträgt :-D Was ich bei der Verwendung verschiedener Chips und iOS-Geräte erlebt habe, ist, dass Sie in der Lage sind, alle 20-30 ms 20 Byte zu übertragen. Wenn eine Bestätigung erforderlich ist, dann verdoppeln Sie sie, z. B. 40-60 ms.

Benutzerdefinierte Profile

Die Liste der Standard-BLE-Profile ist über die Bluetooth Special Interest Group (SIG) verfügbar. Werfen Sie einen Blick auf GATT Based. Wenn Sie keinen Herzfrequenzmonitor oder ein Gerät aus der Liste erstellen, werden Sie wahrscheinlich den Batterieservice oder ähnliches aus einer Profilliste verwenden. Glücklicherweise ist es nicht kompliziert, ein benutzerdefiniertes Profil zu erstellen, das "Platzhalter" für anwendungsspezifische Daten ist, die Sie übertragen müssen. Das Verständnis von Rollen, GATT (Dienste und Merkmale), UUIDs und anderen ist obligatorisch, aber die Lernkurve oder der BLE-Stack ist meiner Meinung nach nicht schwierig.

Sobald ein BLE-Profil auf einem eingebetteten Gerät ausgeführt wird, ist die Verbindung und Kommunikation über BLE mit der CoreBluetooth-Bibliothek sehr einfach.

iBeacon

Apple hat einen kleinen Hack mit BLE-Standard als "Carrier" für iBeacon gemacht. Sie verwenden herstellerspezifische Daten im BLE-Werbepaket, um zu "behaupten", dass ein Gerät iBeacon ist. Welches ist vollkommen in Ordnung, würde ich sagen. Denken Sie daran, dass BLE nicht iBeacon ist, sondern alle iBeacons BLE (Gerät mit hartcodierten herstellerspezifischen Daten, die RSSI, UUID, Major und Minor im Broadcast-BLE-Modus verfügbar machen). Darüber hinaus wird iBeacon von CoreLocation not CoreBluetooth gehandhabt. Dies macht deutlich, was Apple mit iBeacon wollte.

Fazit

Wenn Sie ein iOS-Gerät mit Arduino oder einem anderen eingebetteten Gerät integrieren möchten, ist BLE definitiv etwas, das Sie berücksichtigen möchten. Es gibt weitere Gründe, warum Sie mehr über BLE erfahren möchten, wenn Sie den IoT-Hype und die verfügbaren Optionen RF betrachten. BLE hält an v4.1 und anstehenden v4.2-Spezifikationen fest, die die Bandbreite verbessern, Unterstützung für IPv6, bessere Sicherheit usw. bieten.

Am Ende nicht so kurz, aber ich hoffe es hilft.

2
Darko Djuric

Ich weiß nicht, wie man das implementiert, aber ich denke, Ihr Arduino sollte ein Bluetooth-Headset simulieren und die App die Daten analysieren lassen. Da iPhones nur Bluetooth-Headsets unterstützen, wäre dies eine der wenigen Methoden. Und es wäre sehr schwer.

Ich empfehle Ihnen, solche Dinge über Wifi mit einem Wifi-Shield durchzuführen. Dann könnten Sie Apples genial bonjour systeme verwenden, um Ihre Hardware automatisch zu erkennen.

Hoffe, das gibt dir eine Idee, wie du das Problem lösen kannst,

Löwe

2
evotopid

Einige BLE-Module können im iBeacon-Modus verwendet werden und können mit IOs verbunden werden. Ich habe mit den Modulen HM10 und HM11 gearbeitet, die auf CC2540/CC2541 basieren. Sie haben mehrere AT -Befehle für das iBeacon-Setup. Veränderbare Register sind UUID, Major, Minor und Measured Power. Weitere Einzelheiten in diesem Artikel "Verwandeln Sie Ihr auf CC2541 basierendes HM-10 Bluetooth-Smart-Modul in ein iBeacon"

0