Bluetoothアプリケーションを開発する


これは、Bluetooth技術の非常に入門ポストです.その最初の部分ので、長く、より徹底的な記事のためのチューニング.

イントロ


Bluetoothの世界では、Bluetooth技術は、より多くのエネルギーを意識しているBluetoothのサブプロトコルをサポートするために開発されています.それで、我々はあなたのオーディオ・イヤリングまたはあなたの自動車のオーディオ・システムによって使われるブルートゥース・クラシックを持ちます、そして、我々にはあなたのSmartWatch、あなたの電話またはあなたのスマート・ロックなどこのような力の制約された装置によって主に使われるブルートゥース低エネルギーがあります.
私はブルの非常に基本を説明し、私は完全なBluetoothアプリケーションで転送します.

プロトコル


Bluetooth低エネルギープロトコルは非常に簡単です.多くのネットワーク層が関与しているが、それらのいずれかを心配する必要はありません.我々は、アプリケーションの層を使用して我々のアプリを書くだろうとしてブルコントローラは、私たちのための作業の残りを処理します.
ブルートゥース生態系では、2つのタイプの装置があります:中心と周辺機器.
前者は周辺機器に接続するデバイスで、クライアントとして考えています.
後者は新しい接続を受け入れるデバイスです.サーバーとしてそれらを考えてください.
次の図は、概念をまとめたものです.
  • BLUEでは、Bluetooth SIGによって定義されたいくつかのプロファイルがあります.
  • そのようなプロフィールは、HIDプロフィール、心拍数プロフィール、健康温度計プロフィール、近接プロフィールとより多くです.
  • 各々のプロファイルは、どの特定のサービスがデバイスによって、出されなければならないかについて定義する.各サービスはゼロ、1つ以上の特性を持つことができます.通常サービスは1~5の特性の間にあります.
  • この特徴はサービスの入出力端点と考えられる.
  • それぞれのサービスまたは特性はユニークなID、UUIDを持っています.
  • 周辺機器が発見されるとき、広告モードでそのITS.この種のモード広告パケットは、周辺機器のための近くの中央デバイス走査によって、伝送されて、受信される.そのようなパケットはデバイスの名前、ブルートゥースアドレスまたはバッテリーレベルのようなデバイス特有のデータを含んでいます.このようなデータは、ブランクシリーズの後のポストで分析されるので、従うことを忘れないでください.
  • 実装



    使用するコントローラ:オープンソースブル:ビットデバイス-公式:blebit.io
    シナリオ:セットアップ中央デバイスと周辺機器.両方のデバイスは、当社のソフトウェアによって制御されます.目標は2つのコンピュータを持つことができます以上の通信.
    後の記事では、SmartWatchで通信する方法をあなたに教えます.
    周辺の設定
    そこで、まず周辺機器を設定します.それはクライアントにいくつかのサービスを提供し、新しい接続を受け入れることができるでしょう.
    私たちはBLUEを使用しています:ビット:我々は、ビットJava SDKを使用します.ブル:ビットはプログラムのアクセスとセットアップBluetooth接続に最も簡単なツールの一つです.また、安全なセキュリティ監査、recon、列挙、デバッグや任意の種類のブルオートメーション、本当に役立つの棚のツールを提供しています.
    次のコードはいくつかのサービスを作成し、いくつかの特性を追加し、終了したときにコントローラオブジェクトを作成します.

    
    public class VerySimplePeripheral {
    
        public static void main(String[] args) 
        {   
            setupPeripheral();
        }
    
        private static void setupPeripheral()
        {
            try {
                /** Retrieve a BLE:Bit Peripheral controller **/
                PEController pe = BLEHelper.getPeripheralController(new PEBLEDeviceCallbackHandler());
    
                /** Create a connection parameter **/
                pe.sendConnectionParameters(new PEConnectionParameters());
    
                /** We won't make use of any pairing method **/
                pe.configurePairing(ConnectionTypesCommon.PairingMethods.NO_IO);
    
                /** Set peripheral's Bluetooth Address **/
                pe.sendBluetoothDeviceAddress("aa:bb:cc:dd:ee:ff", ConnectionTypesCommon.BITAddressType.STATIC_PRIVATE);
    
                /** Create HRS service **/
                BLEService heart_rate_service = new BLEService(UUID.fromString("0000180D-0000-1000-8000-00805F9B34FB").toString());
    
                /** Create advertisement data **/
                AdvertisementData adv_data = new AdvertisementData();
                adv_data.setFlags(AdvertisementData.FLAG_LE_GENERAL_DISCOVERABLE_MODE | AdvertisementData.FLAG_ER_BDR_NOT_SUPPORTED);
                pe.sendAdvertisementData(adv_data);
    
                /** Add BLE Characteristic Heart Rate Measurement **/
                String uuid_char = UUID.fromString("00002A37-0000-1000-8000-00805F9B34FB").toString();
                BLECharacteristic hr_measurement = new BLECharacteristic(uuid_char, "hello-world".getBytes());
                hr_measurement.enableRead();    // Enable read-requests
                hr_measurement.enableWrite();   // Enable write-requests
    
                /** Bind Characteristic to the service **/
                heart_rate_service.addCharacteristic(hr_measurement);
    
                /** Attach service to the controller device **/
                pe.sendBLEService(heart_rate_service);
    
                /** Let the controller know that 
                 * we have finished with setting 
                 * up the device **/
                pe.finishSetup();
    
            }catch(IOException e) {
                System.err.println(e.getMessage());
            }
        }
    }
    
    上記のコードは、BLUE : bit SDKを使用して周辺を作成するのがいかに簡単な仕事であるかを示します.上記のコードの破棄
  • ble :ビットコントローラと適切なコールバックオブジェクトが作成される
  • 接続とペアリング/セキュリティパラメータを設定する
  • アドレス&広告パケットセット
  • ブルサービスと特性が定義される
  • デバイスの起動を終了します
  • 次の記事では、中央デバイスがどのように設定できるか、周辺機器が中央デバイスとデータを交換できるようにします.ハードウェアの知識は、ブル:ビットツールを完全にソフトウェアによって制御することができますし、USB経由で接続する必要はありません.
    今後の記事では、より高度なアプリケーションを開発し、スマートフォンなどのデバイスと通信する方法を紹介します.
    Bluetoothコントローラの詳細についてはdocs.blebit.io