警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

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

対象製品: Armadillo-IoT G3Armadillo-X1

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

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

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

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

PC等にUSB接続すると、電源が供給され自動で各情報の計測を開始します。

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

[PC]--<USB>--[2JCIE-BU01]  <----- BLE GATT ----->  [Armadillo]

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

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分後に再通信を開始

以下にプログラムを記載します。
https://download.atmark-techno.com/misc/howto_armadillo_2JCIE-BU01_GATT/omron_usb_gatt.py

プログラムの実行

このプログラムは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 -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
カテゴリ: