初めての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℃が送られていました。