BLEセンサーを用いたセンシング技術

著:月野
1.BLEについて
BLE(Bluetooth Low Energy)は、Bluetoothテクノロジーの一部であり、特に省エネルギーを重視したデザインが特徴です。 この技術は、従来のBluetoothと比較して、より少ないエネルギーで動作することが可能で、これがBLEとBluetoothの主な違いの一つです。

1)BLEとは?
BLEは「Bluetooth Low Energy」の略で、省電力でデータ通信を行うための技術です。
通常のBluetoothと比較して、低電力で長期間の使用を可能にすることを目的としており、
スマートデバイス間の通信に適しています。
2)Bluetoothとの違い
従来のBluetoothは高速なデータ転送を目的として設計されていましたが、その代わりに比較
的多くの電力を消費します。
一方、BLEは低電力で動作することに特化しており、連続した通信が必要ない小規模なデータ
の送受信に最適化されています。
このため、バッテリー寿命を延ばすことができ、特にウェアラブルデバイスやIoT(Internet
of Things)デバイスに適しています。

3)BLEのメリット
省電力性:長期間にわたるバッテリー寿命を提供し、デバイスのメンテナンスコストを削減します。
コスト効率:BLEチップは比較的安価であり、多くのデバイスに組み込むことが可能です。
普遍性:スマートフォンやタブレットなど、多くのデバイスがBLEをサポートしており、広範な互換性を持っています。
設置が簡単:BLEデバイスは、使用場所、条件に対応した、様々な形状や耐久性を備えています。小型でどこにでも設置が可能です。
2.サンプルアプリケーション
BLEセンサーから受信したデータを取得するアプリケーションのサンプルプログラムです。
内容:受信データの内容をコンソールに表示し、データの種類ごとにcsvファイルに書き込む

使用言語:C#
センサーデバイス:エレックス工業株式会社
μPRISM電池タイプ(CR2032用)
using System;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Devices.Bluetooth.Advertisement;
namespace PrismTest002
{
internal class Program
{
//-----------------------------------------------------------
//BLEセンサー ビーコンモード 受信プログラム
//-----------------------------------------------------------
static BluetoothLEAdvertisementWatcher watcher; //BLEのアドバタイズ(データ)を受信するためのオブジェクトを定義
static void Main(string[] args)
{
Console.WriteLine("Start");
watcher = new BluetoothLEAdvertisementWatcher(); //インスタンス化
watcher.Received += Watcher_Received;
watcher.SignalStrengthFilter.SamplingInterval = TimeSpan.FromMilliseconds(2000); //サンプリング間隔
watcher.ScanningMode = BluetoothLEScanningMode.Passive; //BLEデバイスのスキャンモード
watcher.Start(); //アドバタイズ スキャン開始
Console.ReadLine();
watcher.Stop(); //アドバタイズ スキャン停止
}
private static void Watcher_Received(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{
foreach (var dataSection in args.Advertisement.DataSections)
{
byte[] data = dataSection.Data.ToArray();
//--------------------------------------------------------------------------------------
// ここに、受信データをフィルタリングして、受信したいセンサーデータだけ取得する条件が必要
(ペイロード非公開につき、コード公開は不可)
//--------------------------------------------------------------------------------------
Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " : " + "BLEセンサーのビーコンデータを受信しました!");
Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " : " + "BD Address:" + args.BluetoothAddress);
Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " : " + BitConverter.ToString(data));
DisplayData(data); //コンソールに受信データを表示 & csvファイルに書き込むメソッド。ペイロード(データ部)非公開につき、コード公開不可
}
}
}
}
コード概要
- オブジェクト定義:
BluetoothLEAdvertisementWatcher
オブジェクトを用いて、BLEデバイスからのアドバタイズメント(データ)を受信します。 - インスタンス化:
new BluetoothLEAdvertisementWatcher()
でwatcher
オブジェクトをインスタンス化し、BLEデバイスのアドバタイズメント受信準備をします。 - 受信イベントハンドラ登録:
watcher.Received += Watcher_Received;
で、アドバタイズメント受信時に呼び出されるイベントハンドラWatcher_Received
を登録します。 - 受信イベントメソッド:
Watcher_Received
は、実際に受信したデータを分析、内容をコンソールに表示、csvファイルに出力するメソッドですが、今回使用しているセンサーのペイロード(データ構造)が非公開なので、コードは非公開となっています。 - サンプリング間隔設定:
watcher.SignalStrengthFilter.SamplingInterval = TimeSpan.FromMilliseconds(2000);
で、サンプリング間隔を設定します。これは、どれくらいの頻度でBLEデバイスの信号を受信するか(サンプルコードでは2000ミリ秒間隔)を設定します。 - スキャンモード設定:
watcher.ScanningMode = BluetoothLEScanningMode.Passive;
で、スキャンモードを設定します。サンプルはパッシブを指定しているので、デバイスはアドバタイズメントパケットを受信するだけです。 - スキャン開始:
watcher.Start();
で、BLEデバイスのアドバタイズメントスキャンを開始します。 - スキャン停止:
watcher.Stop();
で、アドバタイズメントスキャンを停止します。
出力結果例
コンソール

csvファイル

3.取得データの見える化
BLEデバイスから得られたデータは、様々な場面で活用できます。
その中でも最も活用されるのが、分析のためのグラフ化(視覚化)です。
1)BIツールの活用
BIツールとは、データ分析を手軽に行える革新的なソフトウェアです。
膨大なデータからグラフやチャートを生成し、成功点や、改善点を視覚的に
分析することができます。操作性は非常に分かりやすく、専門的な分析スキ
ルがないユーザーでも、データを活用できるよう支援してくれます。
2)グラフ化
先述のアプリケーションは、同一タイミングで温度と湿度を検知するデバイスのデータを、
それぞれ別々のcsvファイルに蓄積します。
実際に収集したデータを簡単にグラフ化してみました。
今回使用したのは、PowerBIというツールです。
左の2つのエクセルのデータを簡単に、右の図のような視覚的なグラフで表現することができます

このように、BLEデバイスとBIツールを上手く活用することで、簡単にデータの比較や分析を行うことができます。
4.BLEの活用例
私たちの生活の中でも、すでに様々な場所や分野でBLEは活用されています。
センサーデバイスの性能も向上しており、取得できるデータも多岐にわたります。
・ウェアラブルデバイス:ワイヤレスイヤホンやスマートウォッチなど、バッテリー寿命が重要とされるデバイスで使用されます。
・ホームオートメーション:スマートライトや温度センサーなど、家庭内の環境デバイスを制御するために利用されています。
・位置情報サービス:店舗内のナビゲーションや、倉庫内の商品の検索など、正確な位置情報が必要な場面で活用されています。
5.BLEの今後
BLEは、その省電力性と広範囲な分野での互換性により、私たちの生活を、より便利でスマートにする多くの製品やサービスを提供できる技術です。
IT技術者から一般消費者まで、多くの人にとって、BLEは日常生活におけるたくさんの可能性を秘めています。
今後、もっと多様な場面で活用されていく技術だと思います。
弊社の技術記事は、良識のある範囲で断りなくリンクや引用を行っていただいて構いません。