web-dev-qa-db-ja.com

iPhoneをBluetooth経由でArduinoに接続する

IPhoneアプリがBluetooth経由でArduinoと通信できるようになりたいです。次のプロトコルをサポートするBluetoothシールドがいくつか見つかりました:BCSP、DUN、LAN、GAP SDP、RFCOMM、およびL2CAP。少しグーグルで見つけたものから、iPhoneがBluetoothスタックを隠しているのでしょうか?!?これは正しいです?私のiPhoneが脱獄せずに他のBluetooth対応デバイスと通信できるようにする機会は本当にありませんか(btstack: http://code.google。 com/p/btstack / )?

Bluetoothが本当に不可能な場合、通信を実現するために他にどのような方法(WLANを期待)を提案しますか?私が実現したいのは次のようなものです: http://theiopage.blogspot.com/2011/08/yanis-Android-wireless-eos-controller.html

ヒントをありがとう!

18
Georg

利用可能な接続テクノロジーがいくつかあります。

他の人が述べたように、標準のBluetooth(3.0)はMFiプログラムによって制御されます。脱獄していないiPhoneに接続する唯一の方法は、MFiプログラムに参加することです。

シリアルアクセスは面白いです。 MFiをdistributeシリアルデバイスに参加させる必要がありますが、 Redpark Serial Cable を使用してowniPhoneをシリアルデバイスに。

Bluetooth LEデバイスをArduinoに接続するには、いくつかの方法があります。私が使用したのは RedBearLabs BLEシールド です。かなりうまくいきます。

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

WiFiシリアルブリッジを使用してArduinoに接続することもできます。 WiFly デバイスで成功しました。

iPhone to WiFly to Arduino

BLEシールドとWiFlyの優れた点の1つは、Objective CやMacintoshを使用する必要がないことです。もちろん、これはオプションです。 techBASIC を介して両方にアクセスでき、iPadまたはiPhoneで直接実行できます。

あなたはおそらくいくつかの研究と努力であなた自身でこれらを理解することができますが、これらの接続技術(さらにArduinoに直接適用されないいくつか)も Building iPhone and iPad Electronics Devices でカバーされています。 、オライリーの新刊。

New Book from O'Reilly

16
Mike

ストックOS iOSデバイスからBluetooth 3.0以下のデバイスへの接続に関する情報は、 AppleのMFiプログラム に受け入れられた後にのみ利用できます。

Bluetooth 4.0(BLE)は、開発中および商用のiOS開発者(MFiプログラムにアクセスする必要なし)にアクセスでき、BT4.0を搭載するiPhone 4S、iPad 3以降のデバイスのiOS 5以降で利用可能なパブリックCore Bluetoothフレームワークを使用します機内で。

数年後に追加:BLEシールドと、組み込みBLEを備えたArduino互換またはArduinoのような製品(LightBlue Bean、RFduinoなど)が市場で入手可能になりました。

10
hotpaw2

実際、ジェイルブレイクやMFiに登録しなくても、今すぐに実現できます。

新しいiOSデバイスのBluetooth 4.0とArduino BT 4.0シールドを見てみましょう。

これは役立つかもしれません: http://blog.makezine.com/2012/03/19/bluetooth-4-0-from-arduino-to-iphone-no-jailbreaking-no-mfi/

8
ygbr

この回答を改善し、すべての詳細をカバーするには、おそらくいくつかの記事または同様のものが必要です。 Arduinoは基本的に、RedBearLab BLE Shild のようなArduino BLEシールドを介して広く利用できるBluetooth周辺機器に制限がないため、物事を短くしてiOS側に焦点を当てます。

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

V4.0より前のBluetoothスタック仕様には、低エネルギー部品は含まれていません。プロトコルは使いやすいですが、SPP(シリアルポートプロファイル)を中心に簡略化されている場合は特に、Apple MFi プログラムのないiOSデバイスでは使用できません。Bluetoothはほとんどありません。市場に出回っているそのようなモジュールは、PanasonicのPan1321で、Apple認証コプロセッサーを含み、iOSで使用できます。ストーリーの悲しい部分は、この公式ページを見てみると iOS:サポートされているBluetoothプロファイル SPPがないので、リストされたプロファイルから選択できます(オーディオまたはHIDデバイスを作成している場合は、おそらくそうなります)。

Bluetooth低エネルギー(BLE)

Bluetooth v3.0仕様からv4.0への移行により、BLEが導入されました。仕様の新しい部分は、以前のものとほとんど共通点がありません。基本的には、Bluetooth v3.0 + BLE = v4.0またはBluetooth Smartと見なすことができます。 v4.0仕様のBLE部分に関心があります。

CoreBluetooth

BLEのすべての利点に加えて、低消費電力、小型サイズ、低コストは、Apple(MFiは不要)を含むモバイルメーカーによる採用が最も重要でした。BLEは完全にサポートされています- CoreBluetooth およびiOS側での実装は簡単です。覚えておく必要があることの1つは、BLEは低エネルギーで低速でもあるということです。標準では7.5msの最小接続間隔を指定していますApple documentation 推奨は30ミリ秒であると言います:-DさまざまなチップとiOSデバイスの束を使用して経験したのは、20〜30ミリ秒ごとに20バイトを送信できるようになるということです。確認が必要な場合、 40-60msのように、それを2倍にするよりも。

カスタムプロファイル

標準BLEプロファイル のリストは、Bluetooth Special Interest Group(SIG)から入手できます。 GATTベースで見てください。残念ながら、リストから心拍数モニターまたはデバイスを作成しない場合は、おそらくバッテリーサービスなどをプロファイルリストから使用します。幸い、送信する必要のあるアプリケーション固有のデータの「プレースホルダー」となるカスタムプロファイルを作成することは複雑ではありません。役割、GATT(サービスと特性)、UUIDなどの理解は必須ですが、学習曲線やBLEスタックは私の意見では難しくありません。

組み込みデバイスで実行されているBLEプロファイルが判明すると、BLEを介した接続と通信はCoreBluetoothライブラリを使用して非常に簡単になります。

iBeacon

AppleはiBeaconの「キャリア」としてBLE標準を使用して小さなハックを作りました。一部のデバイスがiBeaconであると「主張」するために、BLEアドバタイジングパケットでメーカー固有のデータを使用しています。それはまったく問題ないと思います。 BLEはiBeaconではありませんが、すべてのiBeaconはBLE(メーカー固有のデータがハードコードされ、ブロードキャストBLEモードでRSSI、UUID、メジャーおよびマイナーを公開するデバイス)であることに注意してください。さらに、iBeaconは CoreLocation ではなく CoreBluetooth によって処理されます。これにより、Apple iBeaconの意図が何であったかが明らかになります。

結論

IOSデバイスをArduinoまたは他の組み込みデバイスと統合する場合は、BLEを検討する必要があります。 IoTの誇大宣伝と利用可能なRFオプションを見てみると、BLEについてもっと知りたい理由が他にもあります。BLEは、v4.1と今後のv4.2仕様に対応するためにここにあります。帯域幅の改善、IPv6のサポート、セキュリティの向上などを実現します。

最後に、それほど短くはありませんが、それが役に立てば幸いです。

2
Darko Djuric

実装方法はわかりませんが、ArduinoでBluetoothヘッドセットをシミュレートして、アプリでデータを解析する必要があると思います。 iPhoneはBluetoothヘッドセットしかサポートしていないため、これは唯一の方法の1つです。そして、それは非常に難しいでしょう。

Wifiシールドを使用して、Wifi経由でこのようなことを行うことをお勧めします。 Apples genial bonjour systemeを使用して、ハードウェアを自動的に検出できます。

問題が解決する方法、

レオ

2
evotopid

一部のBLEモジュールはiBeaconモードで使用でき、IOに接続できます。 CC2540/CC2541に基づくモジュールHM10およびHM11を使用しました。それらにはいくつかのATコマンドがあります。変更可能なレジスタは[〜#〜] uuid [〜#〜]です、メジャーマイナーおよび測定された電力。この記事の詳細 "CC2541ベースのHM-10 BluetoothスマートモジュールをiBeaconに変える"

0