RaspberryPi 3B+とWxBeacon2(OMRON 2JCIE-BL01)で環境測定 CSV出力まで

各部屋の環境測定(温度・湿度・気圧)は現在ラズパイとI2Cセンサ(主にBME280)を用いて行っています。 I2Cは電源と信号線計4本をラズパイGPIOと接続が必要です。それと半田付け・ケーブル処理・ケーシングでちょっとやっかいです。
Bluetooth接続としたくラズパイ内でCSV作成までをWxBeacon2のOEM元OMORONのサンプルプログラム動作確認まで行いました。最終的にはZABBIXサーバにデータを送り可視化をしたいです。

【BLE】

Bluetooth LE(ブルートゥースLE)は、Bluetooth Low Energy の略。さらに略して、BLE と表記することも多い。Low Energy は、「省電力」といった意味。
ブルートゥースは、最大10メートル程度の距離で機器と機器を相互接続するための無線通信の規格。たとえば、ワイヤレスのキーボードやマウス、ヘッドホンなどで使われている。
当初は、パソコンと携帯電話との接続や家電製品同士の接続など多く用途が想定されていた。しかし、無線LAN(いわゆるWi-Fi)など他の無線通信方式の普及が進み、期待されたほど用途が広がっていない。
ブルートゥースLE は、このブルートゥースのバージョン4.0 から採用された消費電力が低い通信方式。そのため、ボタン電池など簡単な電源で数年間、使い続けることができる。
具体的には、健康管理機能を搭載した腕時計型の端末からスマートフォンへデータを送ったり、逆にスマートフォンから電話やメールの着信を腕時計型端末に知らせるといったことができる。
同様に、各種医療機器が監視しているデータを逐次送信したり、さまざまなセンサーが収集した情報を監視装置に送るといった用途でも利用拡大が期待されている。
今後ますます、M2M や IoT と呼ばれる機器同士の相互通信が増えていく。そのため、省電力で長く使える無線通信方式の需要が高まっている。ブルートゥースLE も、そうした技術のひとつといえる。

NTT PC Communication https://www.nttpc.co.jp/yougo/BLE.html

◇OSイメージ
https://www.raspberrypi.org/downloads/raspbian/
2018-11-13-raspbian-stretch-lite.zip
解凍してmicroSDにimgをWrite
2018-11-13-raspbian-stretch-lite.img

◇OSのアップデート
$ sudo apt-get update
$ sudo apt-get upgrade

◇OS環境構築各種
$ sudo raspi-config

◇準備
git
$ sudo apt-get install git

◇Python関連
$ sudo apt-get install python-bluez
$ sudo apt-get install python-dev
$ sudo apt-get install python-pip
$ sudo pip install --upgrade pip
$ sudo pip install requests

◇OMRONリポジトリをクローン
$ git clone https://github.com/OmronMicroDevices/envsensor-observer-py.git

GitHub - OmronMicroDevices/envsensor-observer-py: Python Bluetooth low energy observer example for OMRON Environment Sensor (2JCIE-BL01)
Python Bluetooth low energy observer example for OMRON Environment Sensor (2JCIE-BL01) - GitHub - OmronMicroDevices/envs...


Beacon Modeの変更
Environment Sensor (2JCIE-BL01) must be configured as a beacon broadcaster (IM/EP).
In this mode of operation, sensor data is included in the advertisement packet to be transmitted.
Please refer to User's Manual for more details.

環境センサー(2JCIE-BL01)はビーコンブロードキャスター(IM / EP)として設定する必要があります。
この動作モードでは、送信されるアドバタイズメントパケットにセンサデータが含まれています。
詳しくはユーザーズマニュアルを参照してください。


OmronMicroDevices/envsensor-observer-py  README.md 抜粋

◇Beacon Modeの変更

iPhoneにBLE Scannerを入れて行いました。

EnvSensor-BL01 Connect をタップ
5バイト目から8バイト目=3040をタップ
Write,Readをタップ
書き込まれた後のスクショになります。0808a0000a0032000400
確実に書き込みができるとEP-BL01に変わります

マニュアル
1.3.1データ保存有り 1.3.2データ保存無しより抜粋

iPhone BLE Scannerからの設定は下記の変更後のBeaconModeの通り

変更 Beacon Mode Name Shortened Device Name Device Name
0x08 Event Beacon(ADV) Env EnvSensor-BL01
0x04 General Broadcaster 2 EP EP-BL01
envsensor_observer.pyに実行権限を与えて

$ sudo ./envsensor_observer.py

envsensor_observer.py の測定間隔300sec毎にsensor statusが標準出力されます。

conf.pyに指定されたlogフォルダにCSVファイルが生成されています。レイアウトの都合でX-Y軸を入れ替えております。

すでに心はZABBIXサーバに!カンファレンスで頂戴したステッカーを貼り付けて準備中です。環境測定をグラフで可視化と電池消耗閾値設定でイベントメールを生成して送信を実現させたいです。

コメント