Nano 33 BLE Senseでマルチセンサ・ペリフェラルを作る (1) BLEとは

 BLEは、近距離無線通信のBluetoothの規格の中で、バージョン4からを指し、Bluetooth Low Energy の省略形です。センサなど省電力の機器に適した規格です。

GATTサーバ

 バッテリの残量を送信するペリフェラルがあります。このバッテリの残量は、次の図のように、バッテリ・サービスの中のバッテリ・レベルというキャラクトリスティックのValueという整数値です。

 サービスは、複数あるので固有の番号UUIDを振ります。バッテリ・サービスは登録されていて、

  登録されているサービスは、こちらで調べられます。 

 キャラクトリスティックもいろいろなものが世の中にあるので、固有の番号UUIDを振ります。バッテリ・レベルは登録されていて、0x180Fです。

 アプリケーションによって独自にUUIDを設定もできます。

実例SersorTag

 数年前はたくさん出回っていたTIのSersorTagを動かし、オン・セミコンダクターのRSL10-USB001GEVK: RSL10 USB DongleとそのツールRSL10 Bluetooth Low Enaergy Exploerを使って情報を見ます。これらの機材は技適がとられています。

 SersorTagのUUIDはたくさんあります。三つに分けてキャプチャしました。1枚目は、どのBLEでももっているGenericの項目です。一番下がバッテリ残量のサービスです。

 2枚目は、内蔵の各種センサのサービスです。ほとんどが同じパターンで、最初のキャラはセンサの読み取ったデータ、二番目が、送ってよいかを求める値、三番目はResolutionです。

 最初の光センサ以降は、本体についているスイッチ、基板上のI/Oポートなどのサービスです。

 詳細な解説ページは、CC2650 SensorTag User's Guideにあります。この手のセンサで、オープンな解説があるのは、この機種だけです。

 上記の結果から、一つのセンサに一つのキャラUUIDが割り当てられていて、湿度センサの温度と湿度は、同じキャラUUIDにパックして送っていることがわかります。

  Temp[0:7], Temp[8:15], Hum[0:7], Hum[8:15]

 送信するのはbytes列です。センサから読み取ったのも、16ビットならば上位バイトと下位バイトのように、そのまま送れるので、送信記述部分が簡単になるかもしれません。

 別の方法として、温度と湿度に別々にキャラUUIDを割り当て、温度と湿度を浮動小数点(実数)で送る方法もあります。

前へ

ESP32入門 通信機能が標準搭載されたマイコン・ボード (9)の補足説明

次へ

Nano 33 BLE Senseでマルチセンサ・ペリフェラルを作る (2) 搭載センサHTS221①