Howto

Armadillo-IoT G3/X1で「オプテックス株式会社製 ワイヤレス在室検知センサ CPI-J」の信号を検知する

このHowToでは、Armadillo-IoT G3/X1(以下、Armadillo-IoT) を用いた「オプテックス株式会社製 ワイヤレス在室検知センサ CPI-J」 (以下、CPI-J)のデータ検知手順について紹介します。
CPI-Jはリチウム電池CR-123Aと搭載されたソーラーバッテリーの電力で駆動し、人体を検知した際にEnOceanで信号を送信します。

詳細な仕様につきましては、CPI-Jの取扱説明書をご確認ください。

動作要件条件

CPI-JのデータはEnOceanで送信されるため、Armadillo-IoTに「Armadillo-IoT EnOcean アドオンモジュール EN00」(以下、EN00)が必要となります。

EN00は、ttyデバイスファイルから制御することができます。
ttyデバイスファイルは、ご利用になるArmadillo-IoTの種類と、EN00を接続するアドオンインタフェースによって異なります。
Armadillo-IoTの種類及びアドオンインターフェースと、ttyデバイスファイルの対応を以下に記載します。

Armadillo-IoTの種類 アドオンインタフェース  ttyデバイスファイル
Armadillo-IoT G3 CON1 ttymxc0
Armadillo-IoT G3 CON2 ttymxc1
Armadillo-IoT X1 CON1 ttymxc6

このHowtoでは例として、各機器を以下の条件で使用します。

■CPI-J

  • 高さ2.5mの天井に設置

■Armadillo-IoT

  • 「Armadillo-IoT G3」のCON1にEN00を接続

送信されるデータの種類

CPI-Jが送信するデータの種類は、以下の3つです。

  • 人体検知時(以下、「検知信号」)
  • 一定時間、人体が検知されなかった時(以下、「不在信号」)
  • 本体側面の「ペアリングボタン」を5秒以上押し続けた時

Pythonによるデータ受信

CPI-Jが送信する信号の内、検知信号・不在信号を受信し表示するプログラムを作成しました。

以下のリンクより必要な各ファイルをダウンロード可能です。
https://download.atmark-techno.com/misc/howto_armadillo_optex_cpi-j/

以下に実行手順を記載します。
1.enocean_sensor.py、enocean_sensor.conf、requirements.txtをArmadillo-IoT上に配置
2.必要なパッケージをインストール

[armadillo ~]# apt-get update
[armadillo ~]# apt-get install python python-pip
[armadillo ~]# pip install -r requirements.txt

3.設定ファイル「enocean_sensor.conf」を適切な値に設定する
以下、設定ファイル例

[core]
port=/dev/ttymxc0

[sensor]
room1=CPI_J,05:00:2E:A3
  • port:使用するシリアルポート
  • room1:「センサー名」「センサーデバイスID」 room*は複数指定可能
    変数名は変更可能

[sensor]において指定しているセンサーデバイスID(Module ID)は、下図のように当センサの取り付けプレートを外した製品裏側に記載されています。

CPI-J裏面

4.「enocean_sensor.conf」を「/etc/enocean_sensor.conf」に配置

5.「python enocean_sensor.py」コマンドで実行

このプログラムを実行することで、次のような結果が得られます。

{"CPI_J","2018-10-05 13:09:14","sensor_id=05:00:2E:A3","Detection signal"}
{"CPI_J","2018-10-05 13:14:10","sensor_id=05:00:2E:A3","Absence signal"}
...

「Detection signal」と表示されているのは検知信号を表します。
また、「Absence signal」と表示されているのは不在信号を表します。CPI-Jが不在信号を送信するタイミングについては、取扱説明書をご確認ください。

このようにデータ検知を行った後、「クラウドにアップロード」「ログファイルに保存」等の運用が可能です。