この Howto では Armadillo-IoT G3 に搭載した Wi-SUNアドオンモジュール (DSE版) を使って、 複数のワイヤレスセンサーデバイスe-DISP・Z (株式会社ディーディーエル製) から データを収集する方法を説明します。
e-DISP・Z は乾電池による省電力動作が可能なセンサーデバイスです。 次の4つのセンサーを搭載し、イベント発生時、または定期的に Wi-SUN規格 の無線通信によってデータを送信することができます。
- 温度センサー : -10℃ 〜 60℃
- 湿度センサー : 10% 〜 90%
- 接点開閉(開閉センサ取り付け用)
- 人感センサー: 検出距離12m / 検出範囲(水平,垂直): 102°,92°/ ターゲット-背景間の温度差 4℃以上
本Howtoで使用する e-DISP・Z と Wi-SUNアドオンモジュール(DSE版) のセット、 e-DISP・Z単体の購入については、オプション製品ページをご確認ください。
このHowtoでは次の環境を使って動作確認を行います。 必ず下記のバージョンか、それよりも新しいものを 使ってください。
Linuxカーネル | linux-3.14.79-at8 (Armadillo-IoT G3) |
---|---|
ユーザーランド (debian) | Debian GNU/Linux 8(jessie)ユーザーランド v20161221 |
セットアップ
最初に Armadillo-IoT G3 のアドオンインターフェース1 (CON1)に Wi-SUNアドオンモジュール(DSE版)を取り付けます。 アドオンモジュールの取り付け方は、Armadillo-IoT G3製品マニュアルを参照してください。
次にArmadillo-IoT G3 を起動して、e-DISP・Z からのデータを受信するための アプリケーション edispz-device-app と、edispz-device-app か受信したデータを 記録するために fluentd をインストールします。これらは一つのパッケージで インストールすることができます。Armadillo-IoT G3がインターネットに繋った状態で 次の手順でインストールしてください。rootユーザーの場合はsudoは不要です。
[Armadillo]$ sudo apt-get update
[Armadillo]$ sudo apt-get install edispz-device-app
次に、ペアリングするe-DISP・Zを登録するため図中の枠で囲ったMACアドレスをコネクションリスト(connection.list)に追記します。
[Armadillo] $ sudo vi /etc/edispz-device-app/connection.list
記入例:
# Write MAC address of e-DISPZ per line
00C14F011111
00C14F0100FF
00C14F010100
00C14F01020D
インストール直後はアプリケーションが自動起動していないため、 コネクションリストの編集が終ったら、armadilloを再起動するか edispz-device-appとedispz-fluentdのサービスを手動で起動します。
[Armadillo]$ sudo systemctl start edispz-fluentd.service
[Armadillo]$ sudo systemctl start edispz-device-app.service
e-DISP・Z を Armadillo-IoT G3 に接続するために、 図に示す LED1,2 が点灯するまで電源ボタンを押し込み電源を入れてください。 LED2がしばらく点滅した後にLED1,2が共に1回点滅することで Armadillo-IoT G3 とのペアリングが成功することを確認してください。 edisp-device-app が動作していない場合、ペアリングは実施されません。
データを収集する
ペアリングに成功すると、e-DISP・Zから受信したデータが fluentd によってJSON形式で /var/run/fluentd/sensor.log
に出力されます。
/var/run/fluentd/sensor.log
は最新30分のデータへのシンボリックリンクです。
30分以上前のデータは逐次 /var/log/fluentd/
へ保存されていきます。
ファイルへのデータ出力はfluentdで実施しているので、fluentdの設定ファイル(/opt/edispz-fluentd/fluentd/fluent.conf) を変更することで、出力形式や出力先を変更することができます。設定ファイルの変更後は、edispz-fluentd.service をrestartしてください。
[Armadillo]# sudo systemctl restart edispz-fluentd.service
アドオンインターフェース2(CON2)にアドオンモジュールを接続する場合
アドオンモジュール をアドオンインターフェース2(CON2)に接続する場合は、設定ファイル /etc/edispz-device-app/edispz.conf のttyの値にttymxc1を設定します。
[Armadillo] $ sudo vi /etc/edispz-device-app/edispz.conf
変更例: [core] tty=/dev/ttymxc1 mode=33
設定変更後は、edispz-device-appのサービスを再起動し、 e-DISPZのペアリングも再度実施してください。
e-DISP・Z の動作設定を変更する
設定ファイル /etc/edispz-device-app/edispz.confの各種設定値を変更することで、 e-DISP・Zの動作設定を変更することができます。
使用しないセンサーを無効にしたり、定期的に送信されるパケットの送信サイクルを長くすることで、電池の消費を押さえることができます。
設定可能なパラメーターは以下です。
mode
有効にするセンサー、即時送信/定期送信モードの設定が可能です。
mode | 設定内容 |
---|---|
0 | 温湿度 |
1 | 温度のみ |
2 | ドア+人感 |
3 | 温湿度+人感 |
4 | ドアのみ |
5 | 温湿度+ドア |
6 | 温湿度+ドア+人感 |
7 | 温度のみ+ドア+人感 |
8 | 人感のみ |
31 | <即時送信>ドア+人感 |
32 | <即時送信>温湿度+ドア+人感 |
33 | <即時送信>温湿度+ドア |
34 | <即時送信>温湿度+人感 |
35 | <即時送信>ドアのみ |
36 | <即時送信>人感のみ |
37 | <即時送信>ドア+人感+温度 |
38 | <即時送信>ドア+温度 |
39 | <即時送信>人感+温度 |
interval_time_second
modeが0〜8の時に設定可能です。 定期パケット送信間隔(秒)を設定することができます。
offset_time_second
modeが0〜8の時に設定可能です。 子機が複数台の場合、送信の衝突を回避するためのオフセット時間(秒)を設定することができます。
human_sensor_wait_time_second
modeが31〜39の時に設定可能です。 人感センサーの検出間隔(秒)を設定することができます。
heartbeat_time_minute
modeが31〜39の時に設定可能です。 定期パケット送信間隔(分)を設定することができます。
door_detect_mode
modeが31〜39の時に設定可能です。 ドア検出モードを設定することができます。
door_detect_mode | 設定内容 |
---|---|
0 | ドアの「開」「閉」でパケット送信 |
1 | ドアの「開」でパケット送信 |
2 | ドアの「閉」でパケット送信 |
temperature_upper, temperature_lower
温度センサが有効な場合に設定可能です。獲得する温度データの上限、下限を設定することができます。
範囲外のデータはログへ出力されません。
設定例:
temperature_upper=50
temperature_lower=-5
(※v1.2.0-1から対応)
humidity_upper, humidity_lower
湿度センサが有効な場合に設定可能です。獲得する湿度データの上限、下限を設定することができます。
範囲外のデータはログへ出力されません。
設定例:
humidity_upper=85
humidity_lower=15
(※v1.2.0-1から対応)
15台以上のe-DISP・Zを接続する
一つのWi-SUNアドオンモジュール (DSE版)につき、ペアリング可能な e-DISP・Zの台数は15台までです。
Armadillo-IoT G3 に2つの Wi-SUNアドオンモジュール (DSE版)を 接続することで計30台のe-DISP・Zをペアリングすることができます。 30台の接続に対応するソフトウェアパッケージは後日公開予定です。
edispz-device-app.serviceが自動で再起動するように設定する
edispz-device-app.serviceが停止してしまった際、自動的にサービスが再起動するように設定を変更することができます。
最初に、以下のコマンドを実行してください。
[Armadillo]# sudo systemctl edit edispz-device-app.service
編集画面が表示されたら、以下の2行を追記してください。
[Service]
Restart=always
最後に、edispz-device-appをリスタートしてください。
[Armadillo]# sudo systemctl restart edispz-device-app.service
edispz-device-appのビルド方法
edispz-device-app を改造したり機能を拡張したい場合は、Howto : e-DISP・Z 用 データ受信 アプリケーション 「edispz-device-app」 のビルド方法 をご確認ください。