2020年08月20日 更新
どうも、クラゲです。
ここではAndroid端末やiOS端末を簡単にBLEペリフェラル化する方法を紹介します。つまり、スマホやタブレットをバーチャルなBLEデバイスにしてしまうという技です。
[TOC]
"LightBlue Explorer" というアプリをインストールします。無料です。
一番下に”Create Virtual Peripheral”という所があるので、そこを選択します
Blankを選んでSaveします。Virtual Peripheralsに追加されてチェックマークが入っていることを確認します。
これだけで、セントラルからScanが可能となります
次にセントラルからReadできるように試みます
中央にある i マークをタップし、ServiceUUIDを入力します。BlueJellyサンプルで使用しているBLE Nanoサンプル用のServiceUUIDを入力します。
713D0000-503E-4C75-BA94-3148F18D941E
その下のUUID(書いてませんが、ここがCharacteristicUUIDになります)をタップして、さらに一番上のUUIDをタップし、UUIDを入力します。
BlueJellyサンプルで使用しているBLE Nanoサンプル用のCharacteristicUUID(RX)のUUIDを入力します。
713D0002-503E-4C75-BA94-3148F18D941E
Readできるようにデータを入力しておきます。
BlueJellyサンプルでは2ByteのReadを行っているので、16進数表示で4桁の数値を入力します(例:0x1000)
これで準備完了です。BlueJellyサンプルからReadすることできます。
WriteやNotifyなども上記の応用で作成可能です。その際PROPERTYの設定をお忘れなく。
BLE Peripheral Simulatorというアプリをインストールします。無料です。
決められたServiceUUIDしか使えないので、Batteryに対応したBlueJellyサンプルを用意しました。
ちなみに、他のBlueJellyサンプルで行いたい場合は、HTMLファイルにて、以下のようにUUIDを変更することと、Read時のByte数を1Byteに変更することが必要です。
ble.setUUID("BatteryLevel", "0000180f-0000-1000-8000-00805f9b34fb", "00002a19-0000-1000-8000-00805f9b34fb");
Androidアプリを起動したらBatteryを選択します。 これでBlueJellyからアクセスできます
Androidアプリのシークバーを動かすことによりValueの変化を体験することができます。
ちなみに、Notifyをセントラル側へ通知する場合は、Androidアプリにて手動でNOTIFYボタンを押してください。
他にnRF Connectというアプリがあり、Scanまではできますが、ReadやWriteはうまくできませんでした。
一応、やり方だけ展開しておきます。
nRF Connectというアプリをインストールします。無料です。
起動したら、タブでADVERTISER
という所を選択し、右下の+
マークから新しく作ります。
EDITを選択して、Advertising dataからADD RECORDを選択し、Complete Local Name
を追加
これで、スイッチをONにすれば、少なくともScanまでは出来ます。
UUIDを追加しても、ReadやWriteは出来ないかもしれません。
以上、Android/iOS端末をBLEデバイス化する方法でした!