Howto

「オムロン 環境センサ」からBLE GATTを用いてデータ収集

このHowtoでは、Armadillo-IoT G3 で 「オムロン 環境センサ」の「2JCIE-BU01」「2JCIE-BL01」 からBLE GATTを用いてデータ収集を行う手順について紹介します。
Armadillo-X1でも同様に動作させることができます。

オムロン 環境センサ 2JCIE-BU01

オムロン 環境センサ 2JCIE-BU01 (以下環境センサと記載)は、以下のセンサを搭載しています。

  • 温度
  • 湿度
  • 照度
  • 気圧
  • 騒音
  • 3軸加速度
  • eTVOC(総揮発性有機化合物濃度)

PC等(※)から電源を供給すると自動で各情報の計測を開始します。
※ PCの他、USB電源アダプタなどで代用することができます

USB接続したPC等からUSB経由でセンサーデータを習得することもできますが、BLE経由(アドバタイズ、又はGATT)での取得も可能です。
今回は以下の接続構成で1台の環境センサと通信を行います。

BU01_GATT接続図

詳細な仕様につきましては、ユーザーズマニュアルをご確認ください。

GATTツールを利用した動作確認手順

はじめにGATTツールを用いて環境センサにBluetoothで接続し、動作を確認する手順を記載します。
環境センサへ接続するためには、環境センサのBDアドレスを取得する必要があります。
環境センサがPCに接続されていることを確認し、Armadillo-IoT G3のコンソールからコマンドを入力します。
入力後に表示される行のうち、末尾に「Rbt」と名のついたBDアドレスを確認します。
確認後、Ctrl+Cでコマンドを終了します。

[armadillo ~]# hcitool lescan
LE Scan ...
C9:45:CF:9B:D9:86 Rbt # <- この BDアドレスを確認します。

確認したBDアドレスを用いて、GATTツールで環境センサへ接続とデータ取得を行います。
「計測した最新のデータを取得する」コマンドを送信し、データが返答されれば正常に動作しています。

[armadillo ~]# gatttool -t random -b C9:45:CF:9B:D9:86 --char-read --handle=0x0059
Characteristic value/descriptor: 01 d9 08 da 0d 72 00 6f 5b 0f 00 d5 14 04 00 ab 01

上記のようにデータ収集を行った後、収集したデータを「まとめてクラウドにアップする」「見やすい形に整えてログファイルに保存する」等の運用が可能です。

詳細な仕様についてはユーザーズマニュアルをご確認ください。

データ構造

上記で収集した計測データの構造を説明します。
データはすべてリトルエンディアンで構成されており、左端が最下位byte,右端が最上位byteとなっています。
今回取得したデータ構造は次の表のようになっています。

例: 01 d9 08 da 0d 72 00 6f 5b 0f 00 d5 14 04 00 ab 01

取得値 内容 解析値 単位
01 シーケンス番号 01 -
d908 温度 22.65 0.01 degC
da0d 湿度 35.46 0.01 %RH
7200 照度 114 1 lx
6f5b0f00 気圧 1006.447 0.001 hPa
d514 騒音 53.33 0.01 dB
0400 eTVOC 4 1 ppb
ab01 eCO2 427 1 ppm

Armadillo-IoT G3でデータ収集し、csvファイルに出力する

環境センサからのデータ収集,出力の一例をご紹介します。

このHowtoでは、以下の処理をループで実行するpythonプログラムを使用します。

  • データ収集完了まで環境センサと通信を試みる
  • 取得した最新データを、以下のどちらかの方法で出力
    • 標準出力に表示
    • csvファイルに出力
  • 1分後に再通信を開始

以下にプログラムを記載します。

プログラムの実行

このプログラムはpython3で作成されているため、プログラム実行前に必要なパッケージをインストールします。

[armadillo ~]# apt-get update
[armadillo ~]# apt-get install python3
[armadillo ~]# apt-get install python3-pip
[armadillo ~]# python3 -m pip install bluepy

プログラム実行時、データ出力先に合わせて引数を指定します。

  • csvファイルへの出力:「対象デバイスのBDアドレス」「デバイス名」「オプション-oとcsvファイルの保存先パス」
  • 標準出力に表示:「対象デバイスのBDアドレス」「デバイス名」

今回はcsvファイルに出力するため、以下のように引数を指定します。

[armadillo ~]# python3 omron_usb_gatt.py C9:45:CF:9B:D9:86 Rbt -o /home/atmark/omron_usb-sensor

プログラム実行後、環境センサとの通信が行われます。
以下のような文字列が表示されたとき、csvファイルに最新データが書き込まれます。

-----------------------------------
write to csv.
-----------------------------------

プログラムはCtrl+Cで終了します。

csvファイルの確認

プログラム実行後、引数で指定した場所にcsvファイルが作成されます。

[armadillo ~]# ls /home/atmark/
gatt_data_output_2019-01-10.csv

csvファイルの内部は以下のようになります。
1行目がデータの説明、それ以降の行が取得したデータになります。

[armadillo ~]# cat /home/atmark/gatt_data_output_2019-01-10.csv
Sequence_number,Temperature,Relative_humidity,Ambient_light,Barometric_pressure,Sound_noise,eTVOC,eCO2
150,23.24,36.76,100,1003.097,51.84,5.35,18.63
22,23.25,37.37,153,1003.04,62.73,5.97,19.09
90,23.2,37.75,153,1003.089,52.21,6.11,19.17
253,23.1,38.42,139,1003.069,53.01,5.97,19.09

オムロン 環境センサ 2JCIE-BL01

オムロン 環境センサ 2JCIE-BL01 (以下環境センサと記載)は、以下のセンサを搭載しています。

  • 温度
  • 湿度
  • 照度
  • UV Index
  • 気圧
  • 騒音

リチウム電池によって電源が供給され、自動で各情報を計測します。

BLE経由(アドバタイズ、又はGATT)でセンサデータ取得が可能です。
今回は以下の接続構成で1台の環境センサと通信を行います。

BL01_GATT接続図

詳細な仕様につきましては、ユーザーズマニュアルをご確認ください。

GATTツールを利用した動作確認手順

はじめにGATTツールを用いて環境センサにBluetoothで接続し、動作を確認する手順を記載します。
環境センサへ接続するためには、環境センサのBDアドレスを取得する必要があります。
環境センサにリチウム電池が接続されていることを確認し、Armadillo-IoT G3のコンソールからコマンドを入力します。
入力後に表示される行のうち、末尾に「Env」「IM」「EP」いずれかのデバイス名がついたBDアドレスを確認します。
このデバイス名は設定によって変化するため、注意してください。
確認後、Ctrl+Cでコマンドを終了します。

[armadillo ~]# hcitool lescan
LE Scan ...
DB:1A:C2:C0:C3:A4 Env # <- この BDアドレスを確認します。

確認したBDアドレスを用いて、GATTツールで環境センサへ接続とデータ取得を行います。
「計測した最新のデータを取得する」コマンドを送信し、データが返答されれば正常に動作しています。

[armadillo ~]# gatttool -t random -b DB:1A:C2:C0:C3:A4 --char-read --handle=0x0019
Characteristic value/descriptor: 60 27 0a dd 0b 48 00 01 00 59 27 a9 0d aa 1b 99 07 93 0b

上記のようにデータ収集を行った後、収集したデータを「まとめてクラウドにアップする」「見やすい形に整えてログファイルに保存する」等の運用が可能です。

詳細な仕様についてはユーザーズマニュアルをご確認ください。

データ構造

上記で収集した計測データの構造を説明します。
データはすべてリトルエンディアンで構成されており、左端が最下位byte,右端が最上位byteとなっています。
今回取得したデータ構造は次の表のようになっています。

例: 60 27 0a dd 0b 48 00 01 00 59 27 a9 0d aa 1b 99 07 93 0b

取得値 内容 解析値 単位
60 行番号 96 -
270a 温度 25.99 0.01 degC
dd0b 湿度 30.37 0.01 %RH
4800 照度 72 1 lx
0100 UV Index 0.01 0.01
5927 気圧 1007.3 0.1 hPa
a90d 騒音 34.97 0.01 dB
aa1b 不快指数 70.82 0.01
9907 熱中症危険度 19.45 0.01 degC
930b 電池電圧 2963 1 mV

Armadillo-IoT G3でデータ収集し、csvファイルに出力する

環境センサからのデータ収集,出力の一例をご紹介します。

[2JCIE-BU01]にて使用したpythonプログラムを使用します。

プログラムの実行

[2JCIE-BU01]での説明と同様に必要パッケージをインストールし、実行します。
csvファイルに出力するため、以下のように引数を指定します。

[armadillo ~]# python3 omron_usb_gatt.py DB:1A:C2:C0:C3:A4 Env -o /home/atmark/omron_usb-sensor

プログラム実行後、環境センサとの通信が行われます。
以下のような文字列が表示されたとき、csvファイルに最新データが書き込まれます。

-----------------------------------
write to csv.
-----------------------------------

プログラムはCtrl+Cで終了します。

csvファイルの確認

プログラム実行後、引数で指定した場所にcsvファイルが作成されます。

[armadillo ~]# ls /home/atmark/
gatt_data_output_2019-01-10.csv

csvファイルの内部は以下のようになります。
1行目がデータの説明、それ以降の行が取得したデータになります。

[armadillo ~]# cat /home/atmark/gatt_data_output_2019-01-10.csv
Sequence_number,Temperature,Relative_humidity,Ambient_light,UV,Barometric_pressure,Sound_noise,Discomfort_index,Heat_stroke_risk,Batt
80,26.37,29.65,78,0.01,1006.5,35.59,71.16,19.64,2.967
88,26.29,29.63,75,0.02,1006.9,36.98,71.06,19.58,2.963

関連ページ