Skip navigation
> RoadTest Reviews

Omron Environmental Sensors - Review

Scoring

Product Performed to Expectations: 8
Specifications were sufficient to design with: 8
Demo Software was of good quality: 9
Product was easy to use: 8
Support materials were available: 8
The price to performance ratio was good: 8
TotalScore: 49 / 60
  • RoadTest: Omron Environmental Sensors
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: SensorTag
  • What were the biggest problems encountered?: Can't retrieve recorded data over BLE. Battery can't be secured using provided components.

  • Detailed Review:

    Overview

    I’m road testing Omron Environment Sensor (PCB Type) 2JCIE-BL01-P1.

    It has the following sensors:

    • Temperature
    • Humidity
    • Light / UV Index
    • Barometric pressure
    • Sound noise

    The sensor comes with extra parts to hold a battery. They need to be soldered.  There are no any instructions or a web link to documentation.

     

    Useful information

    Documentation

    Omron web site has documentation in different languages. I’ve used the following documents:

    2JCIE-BL01-P1 Environment Sensor (PCB Type) User's Manual https://omronfs.omron.com/en_US/ecb/products/pdf/A280-E1.pdf

    Environment Sensor Data Sheet  https://omronfs.omron.com/en_US/ecb/products/pdf/A259-E1-03.pdf

    Environment Sensor White Paper https://omronqafs.omron.com/en_US/ecb/products/pdf/A285-E1-01.pdf

    Battery Connector

    I was looking to test the sensor on the go. But I was not able to find any information on soldering battery connectors for Environment Sensor. So I’ve soldered battery connectors as best as I can. And I’m definitely not an expert in soldering.

    After I’ve soldered connectors I’ve inserted  CR1232 3V battery.

    But my battery was not able to power the sensor as the battery connectors are not locking it in place.  There is a gap between the battery and the sensor. As result I was not able to perform testing the sensor on the go.

    I've compared it with a similar SensorTag sensor and SensorTag has a much more robust battery connector.

     

    Power Supply Workaround

    So I’ve used a stationary power supply as an alternative. The sensor requires 3 volts.

    Code samples

    I found two Omron’s repositories for Environment Sensor on Github.

     

    OMRON Developers Hub (omron-devhub) https://github.com/omron-devhub/2jciebl-bu-ble-raspberrypi

    The code is released under GPL 2.0 license. Environment Sensor project has 4 stars. It was last time updated in March 2019. There are no open issues. It provides installation steps for Raspberry Pi. I was able to follow them without any issues as well. It is very basic sample in Python, which reads data continuously from the sensor.

     

    The first step was to install BLE Scanner and change Environment Sensor Beacon mode from default mode 00 (Event Beacon (SCAN RSP)) to  04 (General Broadcaster 2). After this change the device BLE name gets changed from Env to EP. User’s Manual p.29 has description of these parameters. But the main difference is that the device in General Broadcaster 2 mode streams real-time sensor data from the device using BLE interface.

    Change the beacon mode of the environment sensor by the following procedure.

    1. Find and connect a BLE device named Env (EnvSensor - BL01)
    2. Open "0C4C3040-7700-46F4-AA96D5E974E32A54" of CUSTOM SERVICE
    3. Open "0C4C3042-7700-46F4-AA96D5E974E32A54" of CUSTOM CHERACTERISTIC
    4. Tap Write Value "0808 A000 000A 0032 04 00", which is changing the sensor mode General Broadcaster
    Default0x0808(1285ms) Advertise interval Unit0.625msRange0x0320(500ms)0x4000(10.24s)
    Default0x00A0 (100ms) Advertise interval Unit0.625msRange0x00A0(100ms)0x4000(10.24s) *Not used
    Default0x000A (10s) Set transmission period per cycle when 0x03 Beacon Mode or 0x05 Limited Broadcaster Unit1 sec Range0x0001(1s)0x3FFF(16383s)
    Default0x0032(50s) Set silent period per cycle when 0x03 Beacon Mode or 0x05 Limited Broadcaster Unit1 secRange0x0001(1s)0x3FFF(16383s)
    Default0x08 (8) Beacon Mode Range0x00(0)0x0A(10)
    Default0x00 (0 dBm) Tx Power UnitdBm Range-20, -16, -12, -8, -4, 0, 4 dBm
    1. Tap Read Value to see if the set value is reflected
    2. Turn off the connection and confirm that the name of the device has changed to EP- BL01.

    There is some additional information about Omron mobile app for the sensor in another roadtest review.

     

    OMRON Corp. Micro Devices Div (OmronMicroDevices)

    https://github.com/OmronMicroDevices/envsensor-observer-py

    It has 25 stars and no open issues. It was last time updated in November 2018. It is not clear for me what the license type for the code is. It provides installation steps for Raspberry Pi. I was able to follow them without any issues.It is a more advanced Python program. It has option to store sensor data stream in a file or in a time series database InfluxDB.

    I’ve tested both options. Both of them worked very well. But I prefer InfluxDB combination with Grafana, as this combination provides nice user experience and simplifies data exploration.

    I’ll share my experience of using the sensor with InfluxDB/Grafana.

     

    InfluxDB installation and configuration

    There is some additional work involved to install a more recent version of InfluxDB on RPi as the version that can be installed by default with Debian is quite outdated..

    pi@raspberrypi:~ $ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
    source /etc/os-release
    test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.listOK
    pi@raspberrypi:~ $ source /etc/os-release
    pi@raspberrypi:~ $ test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    pi@raspberrypi:~ $ test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    pi@raspberrypi:~ $ test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    deb https://repos.influxdata.com/debian stretch stable
    pi@raspberrypi:~ $ sudo apt-get update
    Get:1 http://archive.raspberrypi.org/debian stretch InRelease [25.4 kB]
    Get:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB]
    Get:3 https://repos.influxdata.com/debian stretch InRelease [4732 B]
    Hit:4 https://download.docker.com/linux/raspbian stretch InRelease
    Hit:5 https://dl.yarnpkg.com/debian stable InRelease
    Get:6 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages [11.7 MB]
    Get:7 https://repos.influxdata.com/debian stretch/stable armhf Packages [929 B]
    Fetched 11.7 MB in 17s (688 kB/s)
    Reading package lists... Done
    pi@raspberrypi:~ $ sudo apt-get upgrade influxdb
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
      influxdb libgs9 libgs9-common libvpx4 yarn
    5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 67.7 MB of archives.
    After this operation, 149 MB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:2 https://repos.influxdata.com/debian stretch/stable armhf influxdb armhf 1.7.9-1 [59.4 MB]
    Get:3 https://dl.yarnpkg.com/debian stable/main armhf yarn all 1.19.2-1 [890 kB]
    Get:1 http://mirror.us.leaseweb.net/raspbian/raspbian stretch/main armhf libgs9 armhf 9.26a~dfsg-0+deb9u6 [1860 kB]
    Get:4 http://raspbian.freemirror.org/raspbian stretch/main armhf libgs9-common all 9.26a~dfsg-0+deb9u6 [5143 kB]
    Get:5 http://raspbian.freemirror.org/raspbian stretch/main armhf libvpx4 armhf 1.6.1-3+deb9u2 [432 kB]
    Fetched 67.7 MB in 44s (1534 kB/s)
    Reading changelogs... Done
    (Reading database ... 108252 files and directories currently installed.)
    Preparing to unpack .../libgs9_9.26a~dfsg-0+deb9u6_armhf.deb ...
    Unpacking libgs9:armhf (9.26a~dfsg-0+deb9u6) over (9.26a~dfsg-0+deb9u5) ...
    Preparing to unpack .../libgs9-common_9.26a~dfsg-0+deb9u6_all.deb ...
    Unpacking libgs9-common (9.26a~dfsg-0+deb9u6) over (9.26a~dfsg-0+deb9u5) ...
    Preparing to unpack .../libvpx4_1.6.1-3+deb9u2_armhf.deb ...
    Unpacking libvpx4:armhf (1.6.1-3+deb9u2) over (1.6.1-3+deb9u1) ...
    Preparing to unpack .../archives/yarn_1.19.2-1_all.deb ...
    Unpacking yarn (1.19.2-1) over (1.19.1-1) ...
    Preparing to unpack .../influxdb_1.7.9-1_armhf.deb ...
    Unpacking influxdb (1.7.9-1) over (1.0.2+dfsg1-1) ...
    Setting up libgs9-common (9.26a~dfsg-0+deb9u6) ...
    Setting up yarn (1.19.2-1) ...
    Setting up influxdb (1.7.9-1) ...
    Installing new version of config file /etc/influxdb/influxdb.conf ...
    Synchronizing state of influxdb.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable influxdb
    Setting up libvpx4:armhf (1.6.1-3+deb9u2) ...
    Processing triggers for libc-bin (2.24-11+deb9u4) ...
    Processing triggers for man-db (2.7.6.1-2) ...
    Setting up libgs9:armhf (9.26a~dfsg-0+deb9u6) ...
    Processing triggers for libc-bin (2.24-11+deb9u4) ...
    

    Testing InfluxDB installation and configuration

    I've changed envsensor-observer-py configuration file to log data into InfluxDB and than validated that it is working as expected.

    pi@raspberrypi:~ $ influx
    Connected to http://localhost:8086 version 1.7.9
    InfluxDB shell version: 1.7.9
    > USE weather
    Using database weather
    > SELECT * FROM "census"
    name: census
    time                accel_x accel_y accel_z battery bt_address   di    distance          eco2 etvoc gateway     heat humidity light noise pga pressure rssi seismic sensor_type si temperature uv   vibinfo
    ----                ------- ------- ------- ------- ----------   --    --------          ---- ----- -------     ---- -------- ----- ----- --- -------- ---- ------- ----------- -- ----------- --   -------
    1575987836305355036 0       0       0 3000    F2821D9C2708 60.35 1.015827711157303 0    0     raspberrypi 14.66 53.02    0 47.88 0   996.2    -61 0       EP          0 16.21       0.02 -
    

     

     

    Grafana installation and configuration with InfluxDB

    Grafana installation is quite simple and can be easly configured to use InfluxDB.

    pi@raspberrypi:/tmp $ wget https://dl.grafana.com/oss/release/grafana_6.5.2_armh f.deb
    --2019-12-25 09:43:35--  https://dl.grafana.com/oss/release/grafana_6.5.2_armhf.deb
    Resolving dl.grafana.com (dl.grafana.com)... 151.101.186.217, 2a04:4e42:2c::729
    Connecting to dl.grafana.com (dl.grafana.com)|151.101.186.217|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 33363030 (32M) [application/x-debian-package]
    Saving to: 'grafana_6.5.2_armhf.deb'
    
    grafana_6.5.2_armhf 100%[===================>]  31.82M 1.77MB/s    in 21s
    
    2019-12-25 09:43:57 (1.51 MB/s) - 'grafana_6.5.2_armhf.deb' saved [33363030/33363030]
    
    pi@raspberrypi:/tmp $ sudo dpkg -i grafana_6.5.2_armhf.deb
    Selecting previously unselected package grafana.
    (Reading database ... 110574 files and directories currently installed.)
    Preparing to unpack grafana_6.5.2_armhf.deb ...
    Unpacking grafana (6.5.2) ...
    Replaced by files in installed package grafana-rpi (6.5.2) ...
    Setting up grafana (6.5.2) ...
    ### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
     sudo /bin/systemctl daemon-reload
     sudo /bin/systemctl enable grafana-server
    ### You can start grafana-server by executing
     sudo /bin/systemctl start grafana-server
    Processing triggers for systemd (232-25+deb9u12) ...
    pi@raspberrypi:/tmp $ sudo /bin/systemctl daemon-reload
    pi@raspberrypi:/tmp $ sudo /bin/systemctl enable grafana-server
    Synchronizing state of grafana-server.service with SysV service script with /lib /systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable grafana-server
    Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.
    pi@raspberrypi:/tmp $ sudo /bin/systemctl start grafana-server
    

    After Grafana started I was able to access my local instance from browser at http://192.168.1.63:3000/login

    Than I've specified InfluxDB location.

    Environment Sensor Data exploration with Grafana

    I've created a simple dashboard in Grafana. It demonstrates data captured by the sensor.

    Data Recording mode

    After successful testing of real-time data streaming mode, I was looking to test device in the data recording mode. This mode can have a lot of practical applications.

    But there I didn't find any code samples. So I've followed User's Manual. And it requires multiple steps to enable it.

    The device supports several modes with data recording to flash memory. Activation of data recording requires several steps to activate it and it has some conditions, where it is switching off.

    Time Information must be set from the Central device first. Time information is cleared

    to zero (0) again when the Measurement Interval is changed, Beacon Mode is changed or power is reset. In these cases, it is necessary to set Time Information again to restart data recording.

    Only some Beacon Modes support Data Recording. I've decided to use the default 0.x08 Event Beacon (ADV) for event recording.

    Beacon Mode Name Shortened Device Name Device Name

    0x00 Event Beacon (SCAN RSP) Env EnvSensor-BL01

    0x01 Standard Beacon Env EnvSensor-BL01

    0x07 Alternate Beacon Env EnvSensor-BL01

    0x08 Event Beacon (ADV) Env EnvSensor-BL01

    I’ve installed gattlib and used gattol to make these configuration changes to enable data recording. There is a good description how to use these tools at https://github.com/pcborenstein/bluezDoc/wiki/hcitool-and-gatttool-example

    Setting Time

    Control Service  (Service UUID: 0x3030)

    Time information (Characteristics UUID: 0x3031)

    Set UNIX TIME from the Central device for time adjustment of the recording data in the flash memory.

    Time information based on this setting is recorded for each page of the flash memory.

    * Note: Memory recording of measured data is not started unless time set to this Characteristic.

    Request page (Characteristics UUID: 0x3003)

    Specify the page number to retrieve the measured data from the flash memory.

    The result of retrieving from the memory for the page specified in this Characteristic will be set in

    1. 2.1.4 Response flag and the past measured data will be set in 2.1.5 Response data.

    * Note: Memory recording of measured data is not started unless 2.3.1 Time information is set.

     

    Here is my attempt to use recording mode.

    Line 04 - in some cases connection attempt fails

    Line 06 - sometimes BLE device reset is required before connection can be created

    Line 11 - lists available characteristics of the device

    Line 46 - reading the current mode of the device

    Line 48 - reading current time

    Line 49 - time is not set

    Line 51 - set time in Unix format.

    Line 57 - set recording mode.

    Line 71-77 reading last recorded page from data logger

    Line 86 - reading error code

    Line 87 - no error flags

    Line 109 - reading latest data

    pi@raspberrypi:~ $ gatttool -I -b F2:82:1D:9C:27:08
    [F2:82:1D:9C:27:08][LE]> connect
    Attempting to connect to F2:82:1D:9C:27:08
    Error: connect error: Connection refused (111)
    
    pi@raspberrypi:~ $ sudo hciconfig hci0 reset
    pi@raspberrypi:~ $ sudo gatttool -t random -b F2:82:1D:9C:27:08 -I
    [F2:82:1D:9C:27:08][LE]> connect
    Attempting to connect to F2:82:1D:9C:27:08
    Connection successful
    [F2:82:1D:9C:27:08][LE]> characteristics
    handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
    handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
    handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb
    handle: 0x0009, char properties: 0x20, char value handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb
    handle: 0x000d, char properties: 0x02, char value handle: 0x000e, uuid: 00002a29-0000-1000-8000-00805f9b34fb
    handle: 0x000f, char properties: 0x02, char value handle: 0x0010, uuid: 00002a24-0000-1000-8000-00805f9b34fb
    handle: 0x0011, char properties: 0x02, char value handle: 0x0012, uuid: 00002a25-0000-1000-8000-00805f9b34fb
    handle: 0x0013, char properties: 0x02, char value handle: 0x0014, uuid: 00002a27-0000-1000-8000-00805f9b34fb
    handle: 0x0015, char properties: 0x02, char value handle: 0x0016, uuid: 00002a26-0000-1000-8000-00805f9b34fb
    handle: 0x0018, char properties: 0x12, char value handle: 0x0019, uuid: 0c4c3001-7700-46f4-aa96-d5e974e32a54
    handle: 0x001b, char properties: 0x02, char value handle: 0x001c, uuid: 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001d, char properties: 0x0a, char value handle: 0x001e, uuid: 0c4c3003-7700-46f4-aa96-d5e974e32a54
    handle: 0x001f, char properties: 0x02, char value handle: 0x0020, uuid: 0c4c3004-7700-46f4-aa96-d5e974e32a54
    handle: 0x0021, char properties: 0x02, char value handle: 0x0022, uuid: 0c4c3005-7700-46f4-aa96-d5e974e32a54
    handle: 0x0023, char properties: 0x12, char value handle: 0x0024, uuid: 0c4c3006-7700-46f4-aa96-d5e974e32a54
    handle: 0x0027, char properties: 0x0a, char value handle: 0x0028, uuid: 0c4c3011-7700-46f4-aa96-d5e974e32a54
    handle: 0x0029, char properties: 0x0a, char value handle: 0x002a, uuid: 0c4c3012-7700-46f4-aa96-d5e974e32a54
    handle: 0x002b, char properties: 0x0a, char value handle: 0x002c, uuid: 0c4c3013-7700-46f4-aa96-d5e974e32a54
    handle: 0x002d, char properties: 0x0a, char value handle: 0x002e, uuid: 0c4c3014-7700-46f4-aa96-d5e974e32a54
    handle: 0x002f, char properties: 0x0a, char value handle: 0x0030, uuid: 0c4c3015-7700-46f4-aa96-d5e974e32a54
    handle: 0x0031, char properties: 0x0a, char value handle: 0x0032, uuid: 0c4c3016-7700-46f4-aa96-d5e974e32a54
    handle: 0x0033, char properties: 0x0a, char value handle: 0x0034, uuid: 0c4c3017-7700-46f4-aa96-d5e974e32a54
    handle: 0x0035, char properties: 0x0a, char value handle: 0x0036, uuid: 0c4c3018-7700-46f4-aa96-d5e974e32a54
    handle: 0x0037, char properties: 0x0a, char value handle: 0x0038, uuid: 0c4c3019-7700-46f4-aa96-d5e974e32a54
    handle: 0x0039, char properties: 0x0a, char value handle: 0x003a, uuid: 0c4c301a-7700-46f4-aa96-d5e974e32a54
    handle: 0x003c, char properties: 0x0a, char value handle: 0x003d, uuid: 0c4c3031-7700-46f4-aa96-d5e974e32a54
    handle: 0x003e, char properties: 0x08, char value handle: 0x003f, uuid: 0c4c3032-7700-46f4-aa96-d5e974e32a54
    handle: 0x0040, char properties: 0x0a, char value handle: 0x0041, uuid: 0c4c3033-7700-46f4-aa96-d5e974e32a54
    handle: 0x0042, char properties: 0x08, char value handle: 0x0043, uuid: 0c4c3034-7700-46f4-aa96-d5e974e32a54
    handle: 0x0045, char properties: 0x0a, char value handle: 0x0046, uuid: 0c4c3041-7700-46f4-aa96-d5e974e32a54
    handle: 0x0047, char properties: 0x0a, char value handle: 0x0048, uuid: 0c4c3042-7700-46f4-aa96-d5e974e32a54
    handle: 0x004a, char properties: 0x04, char value handle: 0x004b, uuid: 0c4c3052-7700-46f4-aa96-d5e974e32a54
    handle: 0x004c, char properties: 0x18, char value handle: 0x004d, uuid: 0c4c3051-7700-46f4-aa96-d5e974e32a54
    handle: 0x004f, char properties: 0x02, char value handle: 0x0050, uuid: 0c4c3053-7700-46f4-aa96-d5e974e32a54
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3042-7700-46f4-aa96-d5e974e32a54
    handle: 0x0048   value: 08 08 a0 00 0a 00 32 00 04 00
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3031-7700-46f4-aa96-d5e974e32a54
    handle: 0x003d   value: 00 00 00 00
    
    [F2:82:1D:9C:27:08][LE]> char-write-cmd 0x003d 5df6fdae
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3031-7700-46f4-aa96-d5e974e32a54
    handle: 0x003d   value: 5d f6 fd ae
    
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3042-7700-46f4-aa96-d5e974e32a54
    handle: 0x0048   value: 08 08 a0 00 0a 00 32 00 04 00
    [F2:82:1D:9C:27:08][LE]> char-write-cmd 0x0048 0808a0000a0032000800
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3042-7700-46f4-aa96-d5e974e32a54
    handle: 0x0048   value: 08 08 a0 00 0a 00 32 00 08 00
    handle: 0x003d   value: 9f ff f6 5d
    
    Latest page (Characteristics UUID: 0x3002)
    The Latest page shows the latest page and row information of the memory as the progress status of
    data recording.
    The Central device can acquire the past memory data by referring to the difference between the
    page information at the previous data retrieving and this latest page information.
    
    
    
    
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 5d f6 ff 9f 2c 01 00 00 03
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 5d f6 ff 9f 2c 01 00 00 09
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 5d f6 ff 9f 2c 01 00 00 0c
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 98 d5 f8 5d 2c 01 1f 00 06
    
    Error status (Characteristics UUID: 0x3033)
    Various error conditions of the sensor are indicated by a bit field. The error state can be reset by
    writing 0 from the Central device.
    *Just reading this characteristic does not reset the state.
    
    
    [F2:82:1D:9C:27:08][LE]> char-read-uuid  0c4c3033-7700-46f4-aa96-d5e974e32a54
    handle: 0x0041   value: 00 00 00 00
    
    
    
    
    
    (C) Connection Advertise 2
    This format contains Flag, Local Name, Latest page information, and event flag. There is no SCAN_RSP
    and sensor data is not included.
    
    
    
    
    2.1.1 Latest data (Characteristics UUID: 0x3001)
    
    Measured sensor data is updated every measurement interval and reflected in Latest data. The
    measurement interval can be changed in 2.2.1 Measurement interval.
    In addition to regular update in set measurement interval, when sensor is disconnected from Central
    devices, the measurement is immediately carried out then the contents of this characteristics is
    updated. However, in case of immediate data measurement, this measured data is not saved to the
    
    memory and row number is not updated.
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3001-7700-46f4-aa96-d5e974e32a54
    handle: 0x0019   value: 04 33 06 01 12 00 00 02 00 c8 27 77 12 5c 17 4d 05 ba 0b
    
    2.1.2 Latest page (Characteristics UUID: 0x3002)
    
    The Latest page shows the latest page and row information of the memory as the progress status of
    data recording.
    The Central device can acquire the past memory data by referring to the difference between the
    page information at the previous data retrieving and this latest page information.
    
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 8c 0f f8 5d 2c 01 12 00 05
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: 8c 0f f8 5d 2c 01 12 00 06
    

    Reading Data

    Request page (Characteristics UUID: 0x3003)

    Specify the page number to retrieve the measured data from the flash memory.

     

     

    Now I'm attempting read the latest page.

    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3003-7700-46f4-aa96-d5e974e32a54 0x120006

    handle: 0x001e   value: 00 00 00

     

    Response flag (Characteristics UUID: 0x3004)

    When requesting page and row number is set in 2.1.3 Request page, 2.1.5 Response Data will be

    updated with retrieved measured data. Whether the update is successfully completed or not can be

    known by the Update flag of this Characteristic.

     

    I'm checking this flag. And it works this time.

    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3004-7700-46f4-aa96-d5e974e32a54

    handle: 0x0020   value: 01 5d f6 ff 9f

     

    Response data (Characteristics UUID: 0x3005)

    Retrieved memory data in the page and row specified in 2.1.3 Request page will be updated in this

    1. characteristic. Correct data acquisition can be made after the update flag becomes "Completed" in
    2. 2.1.5 Response flag. Also, by reading this Characteristic, the data of the next row in the same page

    is automatically set to this Characteristic (descending order Row 12 to Row 0).

    Therefore, it is unnecessary to specify 2.1.3 Request page for each row, and all row in the same

    page can be read by continuous Read of this Characteristic. However, since automatic retrieving

    across pages is not performed, when moving to the next page, it is necessary to specify the page

    number again to 2.1.3 Request page and confirm the 2.1.4 Response flag each time.

    * Note: Memory recording of measured data is not started unless 2.3.1 Time information is set

     

    Line 02-08 I'm getting response data back.

    Line 14 Trying to get new data

    Line 15 No data

    Line 16 Trying to get new data

    Line 17 No data

    I was not able to get valid response data back.

    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3005-7700-46f4-aa96-d5e974e32a54
    handle: 0x0022   value: 00 83 06 33 12 00 00 02 00 94 27 8e 12 c2 17 8b 05 b3 0b
    
    
    043e2b0201000108279c1d82f21f02010603020a1812ffd502910002009d240000000000000000000408456e76ce
    043e2b0201000108279c1d82f21f02010603020a1812ffd502910002009d240000000000000000000408456e76d5
    043e2b0201000108279c1d82f21f02010603020a1812ffd502910002009d240000000000000000000408456e76d8
    043e2b0201000108279c1d82f21f02010603020a1812ffd502a20002009d240000000000000000000408456e76c5
    043e2b0201000108279c1d82f21f02010603020a1812ffd502a40002009d240000000000000000000408456e76d8
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3003-7700-46f4-aa96-d5e974e32a54 0x150007
    handle: 0x001e   value: 00 00 00
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3004-7700-46f4-aa96-d5e974e32a54
    handle: 0x0020   value: 01 5d f6 ff 9f
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3005-7700-46f4-aa96-d5e974e32a54
    handle: 0x0022   value: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [F2:82:1D:9C:27:08][LE]> char-read-hnd 0x0022
    Characteristic value/descriptor: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [F2:82:1D:9C:27:08][LE]> char-read-hnd 150007
    Characteristic value/descriptor: 14 00 28 00 04 00 90 01
    [F2:82:1D:9C:27:08][LE]> char-read-hnd 150008
    Characteristic value/descriptor: 01 18
    [F2:82:1D:9C:27:08][LE]> char-read-hnd 150006
    Characteristic value/descriptor: 02 07 00 04 2a
    

     

    pi@raspberrypi:~/omron/2jciebl-bu-ble-raspberrypi $ sudo gatttool -t random -b F2:82:1D:9C:27:08 -I
    [F2:82:1D:9C:27:08][LE]> connect
    Attempting to connect to F2:82:1D:9C:27:08
    Connection successful
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3003-7700-46f4-aa96-d5e974e32a54 0x120006
    handle: 0x001e   value: 00 00 00
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3004-7700-46f4-aa96-d5e974e32a54
    handle: 0x0020   value: 01 5d f6 ff 9f
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3005-7700-46f4-aa96-d5e974e32a54
    handle: 0x0022   value: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [F2:82:1D:9C:27:08][LE]> exit
    
    
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3002-7700-46f4-aa96-d5e974e32a54
    handle: 0x001c   value: d4 e4 f8 5d 2c 01 20 00 06
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3003-7700-46f4-aa96-d5e974e32a54 200001
    handle: 0x001e   value: 00 00 00
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3004-7700-46f4-aa96-d5e974e32a54
    handle: 0x0020   value: 01 5d f6 ff 9f
    [F2:82:1D:9C:27:08][LE]> char-read-uuid 0c4c3005-7700-46f4-aa96-d5e974e32a54
    handle: 0x0022   value: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    
    
    
    
    
    
    
    
    
    Contacting Omron Support

    After multiple unsuccessful attempts to retrieve data from Data Logger mode I’ve tried to contact Omron support at https://www.components.omron.com/contact-us-form?inquiryType=sensor&support=technical

    on December 17th . I’m still waiting for the response as of January 8th.

     

    Future Exploration

    The Environmental Sensor has ability to perform some edge processing and only trigger notification when a certain condition has been reached. It is a powerful capability for a constraint device, which can significantly extend battery life and reduce maintenance costs for the sensor in some scenarios.

    In the past BLE stack had some critical security vulnerabilities. The Environmental Sensor can be programmed over the air with a new firmware. So it may be interesting to explore  how it can be done, especially when security is important.


Comments

Also Enrolling

Enrollment Closes: Oct 5 
Enroll
Enrollment Closes: Oct 9 
Enroll
Enrollment Closes: Oct 5 
Enroll