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ファイルに書き込むメソッド。ペイロード(データ部)非公開につき、コード公開不可                       
            }
        }

    }
}

コード概要

  1. オブジェクト定義BluetoothLEAdvertisementWatcherオブジェクトを用いて、BLEデバイスからのアドバタイズメント(データ)を受信します。
  2. インスタンス化new BluetoothLEAdvertisementWatcher()watcherオブジェクトをインスタンス化し、BLEデバイスのアドバタイズメント受信準備をします。
  3. 受信イベントハンドラ登録watcher.Received += Watcher_Received;で、アドバタイズメント受信時に呼び出されるイベントハンドラWatcher_Receivedを登録します。
  4. 受信イベントメソッドWatcher_Receivedは、実際に受信したデータを分析、内容をコンソールに表示、csvファイルに出力するメソッドですが、今回使用しているセンサーのペイロード(データ構造)が非公開なので、コードは非公開となっています。
  5. サンプリング間隔設定watcher.SignalStrengthFilter.SamplingInterval = TimeSpan.FromMilliseconds(2000);で、サンプリング間隔を設定します。これは、どれくらいの頻度でBLEデバイスの信号を受信するか(サンプルコードでは2000ミリ秒間隔)を設定します。
  6. スキャンモード設定watcher.ScanningMode = BluetoothLEScanningMode.Passive;で、スキャンモードを設定します。サンプルはパッシブを指定しているので、デバイスはアドバタイズメントパケットを受信するだけです。
  7. スキャン開始watcher.Start();で、BLEデバイスのアドバタイズメントスキャンを開始します。
  8. スキャン停止watcher.Stop();で、アドバタイズメントスキャンを停止します。

出力結果例

コンソール

csvファイル

3、取得データの見える化

  BLEデバイスから得られたデータは、様々な場面で活用できます。
  その中でも最も活用されるのが、分析のためのグラフ化(視覚化)です。

   1)BIツールの活用

    BIツールとは、データ分析を手軽に行える革新的なソフトウェアです。
    膨大なデータからグラフやチャートを生成し、成功点や、改善点を視覚的に
    分析することができます。操作性は非常に分かりやすく、専門的な分析スキ
    ルがないユーザーでも、データを活用できるよう支援してくれます。

   2)グラフ化

    先述のアプリケーションは、同一タイミングで温度と湿度を検知するデバイスのデータを、
    それぞれ別々のcsvファイルに蓄積します。
    実際に収集したデータを簡単にグラフ化してみました。
    今回使用したのは、PowerBIというツールです。
    左の2つのエクセルのデータを簡単に、右の図のような視覚的なグラフで表現することができます

   このように、BLEデバイスとBIツールを上手く活用することで、簡単にデータの比較や分析を行うことができます。

4、BLEの活用例

   私たちの生活の中でも、すでに様々な場所や分野でBLEは活用されています。
   センサーデバイスの性能も向上しており、取得できるデータも多岐にわたります。

   ・ウェアラブルデバイス:ワイヤレスイヤホンやスマートウォッチなど、バッテリー寿命が重要とされるデバイスで使用されます。

   ・ホームオートメーション:スマートライトや温度センサーなど、家庭内の環境デバイスを制御するために利用されています。

   ・位置情報サービス:店舗内のナビゲーションや、倉庫内の商品の検索など、正確な位置情報が必要な場面で活用されています。

5、BLEの今後

 BLEは、その省電力性と広範囲な分野での互換性により、私たちの生活を、より便利でスマートにする多くの製品やサービスを提供できる技術です。
 IT技術者から一般消費者まで、多くの人にとって、BLEは日常生活におけるたくさんの可能性を秘めています。
 今後、もっと多様な場面で活用されていく技術だと思います。

前の記事

PLCって何?