これには 2 つの側面があります。デバイスで定義するプロファイルと、iOS アプリケーションでこのプロファイルと通信するために記述するコードです。
デバイスで、収集する測定値の特定のサービスを含むプロファイルを定義します。メインの Bluetooth 開発者サイト のリストに、標準の Bluetooth LE プロファイルがいくつかあります。これらには、温度、心拍数、歩行ケイデンスなどのプロファイルが含まれているため、これらのカテゴリのいずれかで測定値を提供している場合、デバイスにそれらのサービスの 1 つを提供させることができ、それを読み取る iOS アプリケーションで使用できます。サービス。
言及した湿度の測定値など、既存のサービスのいずれにも含まれていない値については、独自のカスタム サービスを作成する必要があります。サービスの特性 (提供するデータの種類と提供方法) を定義し、このサービスに一意の識別子を指定するだけです。 Bluetooth 組織によってアウト。
これらのサービスと特性を定義する方法は、デバイスに使用する特定の Bluetooth LE ハードウェアによって異なります。私は最近、Bluegiga の BLE112 チップでほとんどの作業を行いました。これは、低電力マイクロコントローラーと Bluetooth LE トランスミッターを組み合わせたものです。彼らは、デバイス プロファイルを定義し、一致するファームウェアを作成するための非常に優れたツールを備えており、これをチップに設定するのはかなり簡単です。他のメーカーについては言えませんが、似たようなものを持っている可能性が高いです。
ハードウェアでプロファイルを定義したら、それをアドバタイズしているデバイスを探し、iOS アプリケーション内でそれらに接続できるようにする必要があります。これには Core Bluetooth を使用します。温度センサーの例など、Apple のサンプル アプリケーションの 1 つから始めることを強くお勧めします。この例では、標準の健康温度計プロファイルを使用していますが、それを微調整して、温度測定値に加えて独自のサービスを見つけることができます。この例では、LE デバイスから返されたバイナリ データを読み取って処理する方法を確認できます。
このトピックに関する Apple の 2 つの WWDC 2012 セッション ビデオ、Session 703 - Core Bluetooth 101 および Session 705 - Advanced Core Bluetooth を見ることを強くお勧めします。