初めてのBLE (6) micro:bitでペリフェラル③UARTサービス

 前回、キャラのUUIDで温度を伝えることができました。ここでは、micro:bitのプログラムにUARTで温度を伝える機能を追加します。

UARTサービスの追加

 メニューのBluetooth、その他からUARTサービスを選びます。

 追加したUARTサービスを「最初だけ」に追加します。

UARTで文字を送る機能を追加

 メニューの入力から、「ボタンAが押されたとき」を選びます。

 Bluetoothのその他から「bluetooth uart write line " "」を選びます。

 ””の中に任意のASCII文字を入れます。最大60文字?ぐらい入るようです。

 同様に、ボタンBも追加します。これで送信側のプログラムができあがりました。

受信

 UARTの受信をし、その文字をLEDに表示します。「データを受信したとき 区切り文字」を選びます。

 「文字列を表示 "Hello!"」を選びます。

 先ほどの「データを受信したとき 区切り文字」へ「文字列を表示」を入れます。

 Bluetoothのその他から、「UART 次のいずれかの文字の手前まで読み取る」を選びます。

 「文字列を表示 "Hello!"」の "Hello!"の上にドロップします。

 2か所ある「改行」を「コロン」に変更します。

 プログラムができあがったので、ダウンロードし、hexファイルをMICROBITドライブにドロップします。コピーが終わるとリセットされ、micro:bitのペリフェラルが動き始めます。

動作確認

 オン・セミコンダクターのBLEであるRSL10 Bluetooth Low Enaergy Exploerを使って情報を見ます。connectで接続し、Discover Serviceでサービスを表示しました。UARTと温度計のサービスが見えます。

 Aボタンを押すと、「12345」が送られてきました。

 Bボタンを押すと、「BLE」が送られてきました。

 「test:」と入力し、Write Reqをクリックすると、micro:bitのLEDにtestと文字が流れました。

温度の値をUARTサービスで送る

 ボタンAを押すと、最新の温度が送られるプログラムを考えます。
 文字列から、「数値を文字列に変換する」を選びます。

 "12345"の部分にドロップします。

 入力から温度を選びます。温度は摂氏の整数です。

 数値「0」の上にドロップします。
 温度を測定したら、文字列に変換し、UARTで送信するプログラムができあがりました。

 RSL10 Bluetooth Low Enaergy Exploerで接続します。ボタンAを押すと、24℃が送られてきました。キャラの温度は23℃が送られていました。

前へ

初めてのBLE (5) micro:bitでペリフェラル②Arduinoのセントラル

次へ

初めてのBLE (7) micro:bitでペリフェラル④温度キャラをArduinoセントラルで受け取る