このHowtoでは、Armadillo-IoT G3 で 「オムロン 環境センサ」の「形2JCIE-BU01」「形2JCIE-BL01」 からアドバタイズを用いてデータ収集を行う手順について紹介します。
Armadillo-X1でも同様に動作させることができます。
オムロン 環境センサ
オムロンは2019/01/23現在、3種のセンサを販売しています。
本Howtoでは、そのうち2つを用いたデータ取得を行います。
形2JCIE-BU01
オムロン 環境センサ 形2JCIE-BU01は、以下のセンサを搭載しています。
- 温度
- 湿度
- 照度
- 気圧
- 騒音
- 3軸加速度
- eTVOC(総揮発性有機化合物濃度)
PC等にUSB接続すると、電源が供給され自動で各情報の計測を開始します。
USB接続したPC等からUSB経由でセンサーデータを習得することもできますが、BLE経由(アドバタイズ、又はGATT)での取得も可能です。
形2JCIE-BL01
オムロン 環境センサ 形2JCIE-BL01は、以下のセンサを搭載しています。
- 温度
- 湿度
- 照度
- UV Index
- 気圧
- 騒音
リチウム電池によって電源が供給され、自動で各情報を計測します。
BLE経由(アドバタイズ、又はGATT)でセンサデータ取得が可能です。
接続構成例
今回は以下の接続構成で複数台の環境センサからデータを取得します。
※記載のPCについては、デバイスへの給電のみに利用しています。USB電源アダプタなどで代用することができます
詳細な仕様につきましては、ユーザーズマニュアルをご確認ください。
アドバタイズ
アドバタイズとは「センサが接続可能状態となり、周辺に機器情報を発信すること」です。
発信している機器情報は「アドバタイジングパケット」といい、セントラルがこれを確認して接続を開始します。
今回ご紹介している各環境センサは、デフォルト設定でアドバタイジングパケットに「最新のセンサデータ」が含まれています。
これをArmadillo-IoT G3で受信,解析することでデータを収集します。
ただし、[形2JCIE-BL01]はデフォルト設定でアドバタイジングパケットを送信しない設定となっているため、設定変更を行う必要があります。
Armadillo-IoT G3でデータ収集し、csvファイルに出力する
各環境センサからのデータ収集,出力の一例をご紹介します。
このHowtoでは、GitHubにて公開されているpythonプログラムを使用します。
プログラムの詳細については、以下のページをご確認ください。
https://github.com/OmronMicroDevices/envsensor-observer-py
形2JCIE-BL01の設定
[形2JCIE-BL01]がアドバタイジングパケットを送信する設定にするため、[gatttool]コマンドを用いて設定変更を行います。
[形2JCIE-BL01]へ接続するためには、[形2JCIE-BL01]のBDアドレスを取得する必要があります。
[形2JCIE-BL01]にリチウム電池が接続されていることを確認し、Armadillo-IoT G3のコンソールから[hcitool]コマンドを入力します。
入力後に表示される行のうち、末尾に「Env」というデバイス名がついたBDアドレスを確認します。
確認後、Ctrl+Cでコマンドを終了します。
[armadillo ~]# hcitool lescan
LE Scan ...
DB:1A:C2:C0:C3:A4 Env # <- この BDアドレスを確認します。
確認したBDアドレスを用いて、GATTツールで[形2JCIE-BL01]へ設定コマンドを送信します。
[armadillo ~]# gatttool -t random -b DB:1A:C2:C0:C3:A4 --char-write-req --handle=0x0048 --value=0808a0000a0032000400
Characteristic value was written successfully
再度[hcitool]コマンドを入力して同じBDアドレスを確認します。
このとき、デバイス名が「Env」から「EP」に変化していれば設定は完了です。
[armadillo ~]# hcitool lescan
LE Scan ...
DB:1A:C2:C0:C3:A4 EP
GitHubからプログラムの取得
GitHubからプログラムを取得するためには、Armadillo-IoT G3に[git]をインストールする必要があります。
[armadillo ~]# apt-get install git
[git]インストール後、[git clone]コマンドでpythonプログラムを取得します。
[armadillo ~]# git clone https://github.com/OmronMicroDevices/envsensor-observer-py.git
[armadillo ~]# ls
envsensor-observer-py
また、取得したプログラムを実行するための準備として必要なパッケージをインストールします。
[armadillo ~]# apt-get install python-bluez
[armadillo ~]# pip install fluent-logger
プログラムの実行
取得した[envsensor-observer-py]ディレクトリ下の[envsensor_observer.py]ファイルを実行すると、データ取得が開始されます。
[armadillo ~]# cd envsensor-observer-py/envsensor-observer-py
[armadillo]:~/envsensor-observer-py/envsensor-observer-py# sudo ./envsensor_observer.py
envsensor_observer : complete initialization
プログラムは「Ctrl+C」で終了します。
取得データの確認
取得データは「envsensor-observer-py/envsensor-observer-py/log/env_sensor_log.csv」に出力されます。
[armadillo]:~/envsensor-observer-py/envsensor-observer-py# cat log/env_sensor_log.csv
Time,Gateway,Address,Type,RSSI (dBm),Distance (m),Sequence No.,Battery (mV),Temperature (degC),Humidity (%%RH),Light (lx),UV Index,Pressure (hPa),Noise (dB),Discomfort Index,Heat Stroke Risk,Accel.X (mg),Accel.Y (mg),Accel.X (mg),eTVOC (ppb),eCO2 (ppm),SI (kine),PGA (gal),Seismic Intensity,Vibration Info
2019-01-22 02:31:26.114134,armadillo,C945CF9BD986,Rbt 0x01,-75,4.56090090614,160,0.0,24.1,28.81,210,0.0,1003.597,66.99,68.5749479,17.7793687222,0.0,0.0,0.0,14,497,0.0,0.0,0.0,-
2019-01-22 02:31:26.630981,armadillo,DB1AC2C0C3A4,EP,-48,0.191917158927,3,2960.0,26.59,23.38,174,0.01,1003.3,35.59,70.64,19.01,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-
2019-01-22 02:31:26.854032,armadillo,C945CF9BD986,Rbt 0x01,-79,6.75334746525,161,0.0,24.1,28.82,210,0.0,1003.6,52.0,68.5759038,17.7806559599,0.0,0.0,0.0,14,492,0.0,0.0,0.0,-
2019-01-22 02:31:28.731120,armadillo,C945CF9BD986,Rbt 0x01,-74,4.12343003842,163,0.0,24.09,28.85,201,0.0,1003.648,52.7,68.56781535,17.7765178638,0.0,0.0,0.0,14,492,0.0,0.0,0.0,-