初めてのBLE (4) micro:bitでペリフェラル①温度のCharacteristic
ArduinoBLEでは温度や加速度のデータはキャラ(Characteristic)のデータでやり取りされます。Nordic のBLEデバイスnRDxxxでは、NUS(Nordic UART Service)が提供されています。UARTというよりTx/Rxのターミナルと考えると扱いやすいです。ArduinoBLEでは、専用の関数はサポートされていないようなので、micro:bitのGUIツールで温度を送れるペリフェラルを作ります。
●キャラで温度
BLEの用途に限らず、micro:bitのファームウェアは最新にしておきます。執筆時点では、Interface Version: 0254でした(DETAILS.TXT)。
https://makecode.microbit.org/へ行き、ホームから新しいプロジェクトをクリックします。画面右上の歯車のアイコンをクリックします。
プロジェクトの設定を選びます。
No Pairing Required:...を選び、保存します。
同じく歯車のメニューから拡張機能を選びます。
Bluetoothを選択します。
Bluetoothがメニューに追加されています。クリックして、その中から「温度計サービス」を選択します。
「最初だけ」の中に「温度計サービス」を入れます。
次の図のように、接続されたとき、接続が切断されたときのLED表示を追加します。左下のダウンロードをクリックし、ダウンロードされたファイルを、MICROBITドライブにドロップします。MICROBITドライブは、micro:bitをPCとUSBケーブルでつないだときに表示されています。
書き込みが終わると、再起動されます。
オン・セミコンダクターのBLEであるRSL10 Bluetooth Low Enaergy Exploerを使って情報を見ます。
26℃のデータが送られているのが確認できました。
●UUID
温度のキャラのUUIDは、E95D9250-251D-470A-A062-FA1922DFA9A8です。データは符号付き8ビットの整数です。
そのほか、このマイコン・ボードのBLEを網羅した情報はこちらが充実しているようです。
Bluetooth Developer Studio Level 3 Profile Report