2021年09月09日
by RAMBO
Wanesy Wave には、Beacon情報を取得する機能があります。
この機能を使うことで、工場や倉庫の見える化(モノや人にビーコンを装着し、位置情報をリアルタイムで把握)が実現できるのではないでしょうか。
実際にどのようなデータを取得することができるのか説明していきます。
LoRaWANゲートウェイは Kerlink Wirenet iStation(以降iStation)、ネットワークサーバーは Kerlink WANESY MANAGEMENT CENTER(以降WMC) を使っています。
Wanesy Wave と iStation は弊社内に設置、WMC はクラウド上のサービスです。
Wanesy Wave からのデータ
ネットワークサーバー(WMC)から送信されるJSON内にある、payload に値が格納されています。
payloadを変換することで、
- 新しくスキャンされたBeacon
- 前回から引き続きスキャンされたBeacon
- スキャンされなくなったBeacon
の情報を MAJOR+MINOR(若しくはMAC Address), RSSI 値として得られます。
payload は次のようになっています(WMCからBase 64で送信)。
o2FugoMaB/8AAyMBgxoAAWHbAwBhcoIaCABGlRm5mGFjgoMaCAAL8CAAgwEvAA==
Base 64 デコードし、HEX値に変換します。
A3616E82831A07FF00032301831A000161DB03006172821A0800469519B998616382831A08000BF0200083012F00
CBORでデコードします。
{
"n": [[0x7FF0003, -4,1], [0x161DB, 3,0]],
"r": [0x8004695, 0xB998],
"c": [[0x8000BF0, -1,0], [0x1, -16,0]]
}
得られたJSONには
n: 新しくスキャンされたBeacon([MAJOR+MINOR iBeacon, RSSI, Moving Status])
r: スキャンされなくなったBeacon(MAJOR+MINOR identifier)
c: 前回から引き続きスキャンされたBeacon([MAJOR+MINOR iBeacon, RSSI, Moving Status])
が格納されています。
新しくスキャンされたBeacon情報を見てみます。
[[0x7FF0003, -4,1], [0x161DB, 3,0]]
2つの Beacon の情報が得られました。
1つ目の MAJOR+MINOR 0x07FF0003 はそのまま記載されています。
2つ目以降は配列の1項目目の和を求めることで取得します。
この場合だと、0x7FF0003 + 0x161DB = 0x080061de となります。
RSSI値も計算が必要です。
RSSI=JSONのRSSI×2−47
1つ目は、-4 × 2 – 47 = -55 となります。
弊社では、WaveのPayloadを変換できるツールを公開しています(こちら)。
(サイトの利用には認証が必要です。Waveを購入されたお客様へは認証情報をお伝えいたします。)
例で使ったPayloadを次のJSON形式に変換し出力します。
データの確認等にご利用ください。
[
{ "tag_key": "n", "beacon": "0x07ff0003", "rssi": -55, "move": 1 },
{ "tag_key": "n", "beacon": "0x080061de", "rssi": -41, "move": 0 },
{ "tag_key": "r", "beacon": "0x08004695" },
{ "tag_key": "r", "beacon": "0x0801002d" },
{ "tag_key": "c", "beacon": "0x08000bf0", "rssi": -49, "move": 0 },
{ "tag_key": "c", "beacon": "0x08000bf1", "rssi": -79, "move": 0 }
]