WINGS
検索…
アリアアプリ
App_ARIA
TWELITE ARIAには温湿度センサーと磁気センサーが搭載されており、両方のセンサーのデータも出力メッセージに含まれます。
このページでは出力メッセージからそれらのセンサーデータの読み方について解説します。
書式はパルアプリと同様です。詳しい説明はこちらをご覧ください。

センサーデータの簡易的な読み方

以下のご案内はTWELITE ARIAモード時のご案内です。
開閉センサーパルモードの場合はこちらをご確認ください。
下記のデータ羅列は、: に始まり改行コードまでの16進数データをテキストで表現したものです。
:80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934[CR][LF]
上記は逐次解釈する書式ですので、厳密に解釈するのは煩雑です。
データの詳細情報はこちらをご参照ください。
そのため、各センサーの値の場所とその抽出例をご説明します。 その際、: を 0 文字目とします。

データの位置の表記法

以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。
[データの開始位置:データの開始位置+文字数]
例えば、15文字目から4文字を指定する場合は、以下のように表記します。
[15:15+4]

温湿度センサー

温度などのセンサーデータは103文字目から118文字目までに含まれております。 各データの位置やデータ形式は以下の通りです。
データ位置 意味
[103:103+4] 温度(符号付整数、単位は℃の100倍(23.56℃→2356))
[115:115+4] 湿度(符号無整数、単位は%の100倍(25.99%→2599))

磁気センサー

磁気センサーは93文字目から2文字分です。 磁気センサーは下表の値を出力します。
磁気センサーデータ
意味
磁気センサーのデータ
意味
00
磁石が遠ざかった。
01
磁石のN極が近づいた。
02
磁石のS極が近づいた。
80
磁石が近くにない。(タイマーによる定期送信)
81
磁石のN極が近くにある。(タイマーによる定期送信)
82
磁石がS極が近くにある。(タイマーによる定期送信)
例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。
80 -- 80 -- 80 -- 01(※) -- 81 -- 81 --
※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。
また、磁石が近くにあるかだけ知りたい場合は、94文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。

センサーのデータの抽出例

以下は、温湿度と磁気センサーのデータを取得するPythonの対話モードでの実行例です。 出力メッセージから、温度、湿度、照度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、温度は符号付の数値に変換します。 そのあと、センサーのデータを出力しますが、温度と湿度データは100倍されたデータですので、出力時に100で割った値を出力しています。 また、磁気センサーのデータをシリアル出力から抜き出し、上表に従って磁気センサーが検出している状態に変換し、加速度データと磁気センサーの情報を標準出力しております。
>>> t = ':80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934'
>>> temp = int(t[103:103+4], 16) # 63文字目から4文字取り出し、整数値に変換
>>> temp = (-65536 + temp) if temp >= 32768 else temp # 符号付き16ビット整数の対応
>>> hum = int(t[115:115+4], 16)
>>> print('temperature: %f, humidity: %f' % ( temp/100.0, hum/100.0 ))
temperature: 25.120000, humidity: 38.920000
>>> v = int(t[93:93+2], 16) # 93文字目から2文字取り出し、整数値に変換
>>> periodic = True if (v & 0x80) else False # 定期送信パケットかどうか調べる(Trueだったら定期送信)
>>> status = 'S' if (v & 0x4F) == 2 else 'N' if (v & 0x4F) == 1 else 'Open' # 磁気センサーの状態を取得する。
>>> print('Magnet: %s, %s' % (periodic, status))
Magnet: True, Open

アドレスなどのセンサー以外のデータ

出力メッセージは、センサーのデータ以外に以下の情報が含まれております。
データ位置 データ例 意味
[1:1+8] 80000000 中継機のシリアルID
[9:9+2] CF LQI
[11:11+4] 0002 続き番号
[15:15+8] 8201BAA2 送信元のシリアルID
[23:23+2] 01 送信元の論理デバイスID
[25:25+2] 80 センサー種別(80で固定)
[27:27+2] 06 PAL基板バージョンとPAL基板ID(TWELITE ARIAは06)

TWELITE ARIAのデータの判別方法

親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリの出力か区別する必要があります。 TWELITE ARIAの出力メッセージは、改行コード抜きで123文字(改行コードありでは125文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。 ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
  • 1文字目が8であること
  • 15文字目が8であること
  • 25、26文字目が '80' であること
  • 27、28文字目が '06' であること

TWELITE ARIAモード

出力例

:80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^^^^^^^9^^^^^a^^^^^^^b^^^^^^^c^^^^^^^d^^^e^^^^^^^f^^^g^^^^^^^h^i^^^^^^^j^^^k^^^^^^^l^^^m^n^o
意味
バイト数
データ例
備考
1
中継機シリアルID ​
4
80000000
中継されていない場合は80000000
2
LQI
1
CF
大きいほど電波品質が良い
3
続き番号
2
0002
4
送信元シリアルID
4
8201BAA2
5
送信元LID
1
01
6
センサー種別
1
80
TWELITE ARIAは80固定
7
PAL ID
1
06
TWELITE ARIAモードは06
8
センサーデータ数
1
07
9
センサーデータ0(ヘッダ)
4
00340003
拡張バイトなし、符号なし1バイト、パケットプロパティが3バイト
a
センサーデータ0
3
813500
タイマーイベントで送信した
b
センサーデータ1(ヘッダ)
4
12053504
拡張バイトあり、符号なしLong、タイマーイベント情報
c
センサーデータ1
4
01000000
タイマーが起床させた
d
センサーデータ2(ヘッダ)
4
11300802
符号なし2バイト、電源電圧
e
センサーデータ2
2
0D20
3360mV
f
センサーデータ3(ヘッダ)
4
11300102
符号なし2バイト、ADC1
g
センサーデータ3
2
04ED
1261mV
h
センサーデータ4(ヘッダ)
4
00000001
拡張バイトなし、符号なし1バイト、磁気センサー
i
センサーデータ4
1
80
変化なし、オープン (00: 磁石が離れた。 01: N極が近づいた 02: S局が近づいた 80: 変化なし(磁石なし) 81: 変化なし(N極が近くにある) 82: 変化なし(S極が近くにある))
j
センサーデータ5(ヘッダ)
4
05010002
拡張バイトなし、符号あり2バイト、温度
k
センサーデータ5
2
09D0
25.12℃
l
センサーデータ6(ヘッダ)
4
01020002
拡張バイトなし、符号なし2バイト、湿度
m
センサーデータ6
2
0F34
38.92%
n
チェックサム1
1
79
1~mまでのLRC
o
チェックサム2
1
34
1~nまでのCRC8
PDFに出力
リンクのコピー
概要
センサーデータの簡易的な読み方
データの位置の表記法
温湿度センサー
磁気センサー
センサーのデータの抽出例
アドレスなどのセンサー以外のデータ
TWELITE ARIAのデータの判別方法
TWELITE ARIAモード
出力例