Python Bluetooth low energy observer example for OMRON Environment Sensor (2JCIE-BL01)
Switch branches/tags
Nothing to show
Clone or download
Latest commit 6cbed62 Nov 18, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
envsensor-observer-py Fixed version Sep 24, 2018
.gitignore Initial commit Jan 11, 2017
README.md Update README Nov 18, 2018

README.md

envsensor-observer-py

Python Bluetooth low energy observer example for OMRON Environment Sensor (2JCIE-BL01)(2JCIE-BU01).

  • No BLE connections are required
  • Accept advertisements from multiple sensor
  • Collect variety of environmental information from sensor beacon
    • Temperature
    • Humidity
    • Light
    • UV Index
    • Absolute pressure
    • Noise (Sound level)
    • 3-Axis Acceleration
    • Discomfort Index
    • Heatstroke risk indicator
    • Battery voltage
    • RSSI
  • 2JCIE-BU Environment Sensor (USB Type) is now supported (Advertising mode 0x01 & 0x02)

USB_Sensor

  • Flexible data logging options
    • Local CSV file (rotate every midnight)
    • Local / Remote fluentd daemon
    • Local / Remote InfluxDB
  • Tested on Raspberry Pi 3 model B (built-in Bluetooth connectivity)

Diagram

Requirements

Instructions

These instructions apply only to an up-to-date Raspbian Jessie with PIXEL, the official Raspberry PI distro.

Prerequisite

$ sudo apt-get install python-bluez

When using fluentd forwarder (Optional)

$ sudo pip install fluent-logger

When uploading data to influxDB 0.9 or higher (Optional)

$ sudo pip install influxdb
$ sudo pip install --upgrade influxdb

Device Setup

[2JCIE-BL01]

Sensor

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-BU01]

USB_Sensor

Advertising mode of USB type Environment Sensor (2JCIE-BU01) must be set to 0x01 or 0x02.

In this mode of operation, sensor data is included in the advertisement packet to be transmitted.

Currently, this sample script only support 0x01 (Sensor data) and 0x02 (Calculation data).

Please refer to User's Manual for more details.

Configuration

Open conf.py and edit your configuration.

CSV is saved under ./log/ directory in the script path by default.

You can specify a different log location in your configuration.

Run

  • Normal mode

Only sensor status information is sent to stdout in a set interval.

$ sudo ./envsensor_observer.py

You need to make envsensor_observer.py executable.

You can use Supervisor to start the script running in the background when system boot.

  • Debug mode

Full Bluetooth messages are sent to stdout in addition to the sensor status.

$ sudo ./envsensor_observer.py --debug

or

$ sudo ./envsensor_observer.py -d

Visualization

With Grafana, you can easily visualize any of data stored in InfluxDB through this script.

Dashboard

Note :

It should be noted that this example code is for demonstration purposes only, it is not intended for use in a production environment, is not guaranteed fit for any purpose.

Reference :