Shujima Blog

Apple製品,技術系の話をするブログ

OMRONの環境センサ2JCIE-BL01をRaspberry Piから使えるように設定する

基本的にこちらのQiita記事と同一の内容が書かれています.

qiita.com

違うのはIMモードである点です.

手順はほぼ変わらないですが,ねんのため独立して書くことにします.

設定に必要な環境

  • 電源が入っておりペアリングしていない環境センサ2JCIE-BL01(WxBeacon2での挙動は不明)

  • iPhoneまたはAndroid端末

当方はiPhone 6sです.

設定する内容

Omronの環境センサは内部に変更可能なパラメータを持っており,外部から書き換え可能です. その中の「Beacon Mode」という変数は初期状態で「Event Beacon (ADV)」に設定されており,発信するパケットにセンサ値を含まない空のパケットを送信するモードになっています.

これを,EPモードまたはIMモードに設定することで,センサ値を含ませることが可能です.

EPモードとIMモード

最初にご紹介したQiitaではEPモードに書き換えていましたが,今回IMモードにしか含まれない情報が欲しかったため,IMモードに設定してみようと思います.

モードなどの情報はこちらのページに載っています.

omronmicrodevices.github.io

Table 33を見るとBeaconのADV setting パラメータで設定するBeacon Modeによってパケットがどのように変化するかがわかります.

表の一番左Beacon Modeの数値が変化することによって表の右2行 Adv. Packetの内容が(A)〜(E)のどれになるかが決定されます.この(A)〜(E)はTable 45〜50に詳細が載っています.

標準ではBeacon Modeが0x08に設定されており,パケットの形式は(C)です.Cにはセンサのイベントフラグ(Evt)のみが含まれており,センサの情報は入っていません.

EPモードのパケット(E)は加速度センサを除くセンサの計測値の他に不快指数や熱中症危険度など,他のセンサによって計算されるであろう環境指数が含まれています.

IMモードのパケット(D)にはそういった環境指数の代わりに,加速度センサを含むすべて計測値が含まれています.

WxBeacon2には加速度センサが入っていないという噂を聞いたことがあり,またOmron製の場合であっても,加速度センサに言及されていないページがあるなど,使用できない場合がありそうです.

EPモード,IMモードにある,「Limited Broadcaster」ですが,Table 32中の説明を読む限り,間欠的な運転により電池を削減することができるかもしれません.

今回は,「General Broadcaster」= 0x 02に設定してみました.

今回はIMモードに設定してみます.

設定方法

App Store/Google PlayからApp「BLE Scanner」をダウンロードします(無料)

f:id:masa_flyu:20181009191457p:plain

アプリを開くと,近くにある電源の入ったBLE機器が一覧されます.ここで,XX-BL01(XXにはEnvSensor,EP,IMのいずれかが入る)を探し,Connectを選択します.自分はすでにQiita記事を参考にEPモードに変えていたため,名前がEP-BL01になっていますが,多くの人はここがEnvSensor-BL01になっているはずです.

これを開くと詳細な画面が出てきます.

f:id:masa_flyu:20181009191513p:plainf:id:masa_flyu:20181009191515p:plain

このSERVICESの中身はインターフェースマニュアルにあるTable 6の内容です. この中からParameter Serviceを開きたいので,「0C4C3040...」を探し,選択します

f:id:masa_flyu:20181009191519p:plain

すると,またパラメータの一覧が出てくるため,今度はTable 30に従いParameter Service内のAdv Settingsを開きたいので,「0C4C3042...」を探し,「Write,Read」を選択します.

f:id:masa_flyu:20181009191525p:plain

この画面は,パラメータの読み込み,書き込みを行えます.Read Valueをタップすると,現在のパラメータの情報を確認できます.

Write Valueで値を書き換えるのですが,その際,以下の値にします.

xxxx xxxx xxxx xxxx 02 xx

空白はただ見やすくしているだけなので無視してください. xは今の書き換える必要が無いため今のセンサの値をRead Valueしたものをそのまま書けばいいです. インターフェースマニュアルによれば,デフォルトは

0808 a000 0a00 3200 08 00

のようですが,自分の場合,

0808 a000 0a00 3300 04 00

となっていました.そのため私は

0808 a000 0a00 3300 02 00

としました.

デフォルトだった場合にIMに切り替えるには,

0808 a000 0a00 3200 02 00

となります(空白は無視)

Write Valueを押して,この数値を打ち込みます.

f:id:masa_flyu:20181009191527p:plain

打ち込みおわったら,Read Valueを押して,正しく変化しているかを確認します.

その後1分ぐらいしたら,センサの名前が「IM-BL01」に変わります.

これで終了です.

あとはOmronのサンプルプログラムを動かすと,全センサの値のログが取れます. .

当ブログをご利用いただく際には免責事項をお読みください。