Altas WiFiとData Advanced Callback

LPWAとアセットトラッキングは長距離、低消費電力、低コストというLPWA技術の特長から、最近多くの事例が出てきています。（日本向けRC3トラッキングデバイスは[こちら](https://partners.sigfox.com/products/device?or[categories][0]=device&or[businessBenefits][0]=tracking&or[deviceZones][0]=zone3&q=&limit=12&page=0)にも載っていますし、ここには掲載されていないデバイス、ソリューションも多く存在します）
位置情報を取得する手段と言えば、GPSや日本ではQZSS（準天頂衛星システム）などがあり、精度の高い位置情報を提供することができるようになっています。
ただ、そこまで位置精度は必要ないけど、デバイスのバッテリー稼働時間を何年も保ちたいという方もいるでしょう。
その時の選択肢として考えられる最有力はWi-Fi位置情報サービスではないでしょうか？
![wifi.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/4355ac9c-587d-c900-6696-b4ce8fdc3a45.jpeg)

Sigfox社は、[here社](https://www.here.com/)と提携し、LPWAにマッチしたWiFi位置推定サービス**"Atlas Wi-Fi"**を提供しています。

#Atlas Wi-Fiの特長
WiFi位置推定という言葉を聞くと、多くの方は既にそのようなサービスが存在していることをお気づきでしょう。
では、何か違うのか？
Atlas Wi-Fiは、LPWA技術をアセットマネイジメントに使うということに特化したサービスです。まず、LPWAでは、あまり多くのデータを送信できません（というかすべきではありません）。また、数多くのアセットを管理しようとすると、やはりコストが気になります。
Atlas Wi-Fiは、街中のWi-FiアクセスポイントのMACアドレスのみをSigfoxネットワークで送信すれば、お客様のITシステムに位置推定結果を提供することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/39a389e7-f4d4-a927-c9d9-49ce19c6d5d8.png)
>上図: [Sigfox Buildページ](https://build.sigfox.com/location/#about-the-atlas-suite)から引用

もちろん、コストも他社サービスよりも安価になっています。
また、Wi-Fiアクセスポイントは街中には多く存在しますが、郊外や物流倉庫周辺には存在しない場合があります。その時にでも位置測位ができるよう、**Atlas native**（Sigfox基地局による位置推定サービス）との組み合わせや、登録されていないご自身のWi-FiアクセスポイントをAtlas Wi-Fiサービスに組み込む**Private Database**というサービスもあり、これら課題を解決することができます。
つまり、

- GPSと比較して低消費電力
- コスト（位置推定サービスコスト）
- Atlas native / Private Databaseによる情報補完
- 屋内でも利用可能（もちろんワールドワイド）

といった観点で、ユースケース次第では、十分、Atlas Wi-Fiという選択肢が見えてくるのではないでしょうか？

#Atlas Wi-Fiを使ってみる
Atlas Wi-Fiを使おうとした場合、まずは、Atlas Wi-Fiに対応したSigfoxデバイスを入手します。[こちらの記事](https://qiita.com/ghibi/items/fed5664028ee0172cdc3)を参考にご自身でWi-Fiトラッカーデバイスを作成いただいても結構です。
ただし、（2019年7月）現在、[Sigfox Buy](https://buy.sigfox.com/)ではAtlas Wi-Fiオプションを購入することができないので、Atlas Wi-Fiのオプション追加に関しては、直接Sigfox Operator（国内は京セラコミュニケーションシステム）まで[お問い合わせ](https://www.kccs-iot.jp/inquiry/)ください。

#Atlas Wi-Fi位置情報を取得する
無事、Atlas Wi-Fiオプションを追加できれば、あとは、

1. Wi-FiモジュールでスキャンしたAP MACアドレスを2つ、ペイロードとして送信します。
2. Data Advanced Callbackに**computedLocation**を追加する。

これで、位置推定結果がお客様のITシステムに提供されます。

##Data Advanced Callbackに"computedLocation"を追加する
Advanced Callbackの登録方法は下図の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172313/6565d345-ae45-5c84-7fbd-4ad9baa7ea61.png)
Callback Typeに**"SERVICE"**-**"DATA_ADVANCED"**を選択し、下記例のようなJSON Bodyを設定すれば完了です。

```body.json
{
  "device":"{device}",
  "time":{time},
  "data":"{data}",  
  "lqi":"{lqi}",
  "computedLocation":{computedLocation}
}
```

##Atlas Wi-Fi推定位置情報を確認する
Data Advanced Callbackを設定の完了後は、デバイスからWi-Fi MACアドレスを含んだメッセージが送信されるのを待ちます。
メッセージが送信されると下記のようなJSONが送られてきます。

```callback.json
{
  "device": "1234AB",
  ...（略）
  "computedLocation": {
    "lat":35.5xxxxxxxxxxx,
    "lng":139.7xxxxxxxxxxx,
    "radius":24,
    "source":6,
    "status":1
  }
}
```
各項目の意味は下表を参考にしてください。

|項目|内容|
|:---|:---|
|lat|緯度|
|lng|経度|
|radius|最大推定誤差(m)|
|source|位置推定ソース（1:Sigfox独自GPSフォーマット、2:Atlas native、**6:Atlas Wi-Fi**）
|status|位置推定ステータス(0:位置情報なし、**1:OK**、2:Fallback、20:無効なペイロードフォーマット）|

通常、Altas Wi-Fi位置推定に成功するとsource=6、status=1となります。

是非、お試しください。

[Sigfox Japan KCCS](https://qiita.com/organizations/sigfox)