Inosensor ES Devkit って何?
Inosensor ES Devkit は、Sigfox無線モジュール搭載の小さな基板です。
今回は、位置情報について実験した結果を報告します!
SigfoxバックエンドのLOCATION画面
Sigfoxから送ったデータ(メッセージ)は、Sigfoxのバックエンドで確認することが可能です。
このとき、メッセージの右側の紫色のアイコンをクリックすることで、そのメッセージのロケーション情報を調べることができます。
初期状態のLOCATION
特に何もオプションを指定していない初期状態では、以下のような表示になります。
これは、端末からメッセージを受信した基地局のうち1つをピックアップした想定エリア(シミュレーション上の電波伝搬範囲)が表示されている状態です。
正直、あんまり意味がないというか、わかりにくい・・・。
端末の位置情報を設定しよう!
次に、端末の位置情報を設定してみましょう。DEVICEタブから、位置情報を設定したいデバイスを見つけて、IDをクリックします。
デバイスの情報が表示されます。
ここで注目してほしいのが、緯度経度です。
Latitude: 0.000 (degrees)
Longitude: 0.000 (degrees)
現在は何も設定していないので0になっています。これを設定してみましょう!
端末の位置情報を設定する
画面右にあるボタンから「Edit」をクリックします。
端末固有の情報が編集できる画面になるので、緯度経度を設定します。
今回は、富士山の場所にしてみました。OKを押すと情報が更新されます。
この状態でメッセージを送信すると、LOCATIONが以下のように変わります。
写真は拡大(+)を何度かした状態です。指定した位置(富士山)に、旗が立っているのが確認できると思います!
※ちなみに、この状態で地図の左上のNoneをCoverage overlayに変更すると、さっきと同じ地図が表示されます。
Atlas nativeを使ってみる
最後に、Sigfoxが提供している、Atlas native(受信基地局情報によるデバイス位置推定サービス)を使ってみましょう。これは、端末からのメッセージを受信した基地局の位置から、デバイスの位置を推定するものです。Sigfoxは複数の基地局でデータを受信するため、デバイスの位置を推定することが可能となっています。
Device type別の設定を確認
まずは、端末の設定を確認しましょう。Atlas nativeの設定は、デバイスタイプ毎に設定されています。DEVICE TYPEのタブを開いて、端末のデバイス名(Name)をクリックします。
デバイスタイプ別のインフォメーションが表示されるので、Contactsの詳細をクリックします。
Optionsにある、Sigfox geolocation serviceが、位置情報サービスの種類になります。Atlas nativeの場合は「Network location」になっていればOKです!
Data Advanced Callbackを使ってみる
Atlas nativeの情報を取得するには、Data Advanced Callbackと呼ばれるコールバックを使用する必要があります。このコールバックは、複数の基地局の情報を集計してから発行されるため、通常のコールバックに比べて、25~30秒くらい後に発行されます。
それでは、早速設定してみましょう!
DEVICE TYPEタブを開いて、リストからデバイスを選択します。
左のメニューからCALLBACKSを選択します。コールバックの設定画面になるので、右上の「New」を押します。
一番上の「Custum callback」を選びます。
Callbackの設定をしましょう。TypeをSERVICEにすると、DATA_ADVANCEDが選べるようになります。
※本当はここで、Inosensor ES Devkitを使ってみた! ④(Sigfox CallBacks入門編)で設定したようにメールが飛ぶようにしようと思ったのですが、なぜかできないので、Webhookの設定をすることにします。
Urlpatternには、Webhookを受け取るURLを記載します。今回は、PHPが無料で使える!XFREEを使ってみた!で作成したHelloWorldのURLを使うことにします。
PHPのソースの中身はこんな感じです。
<?php
echo "hello world";
本来であれば、jsonのデータをPHPの中で処理して・・・みたいなのを書くことによりInosensor ES Devkitから送られてきたデータを処理できるのですが、面倒なのでこのままやることにします。
Bodyには、jsonのフォーマットを書きます。今回は、以下のように設定しました。
{
"device":"{device}",
"time":{time},
"data":"{data}",
"seqNumber":"{seqNumber}",
"lqi":"{lqi}",
"fixedLat":"{fixedLat}",
"fixedLng":"{fixedLng}",
"operatorName":"{operatorName}",
"countryCode":"{countryCode}",
"deviceTypeId":"{deviceTypeId}",
"computedLocation":{computedLocation}
}
OKを押すと新しいイベントが作成されます。
これで準備完了です!
メッセージを送信しよう!
この状態でメッセージを送信してみましょう。
本体のボタンを押してください。DEVICEタブのMESSAGESを確認してください。
まずは、Callbacks(緑色のアイコン)を押してみましょう。jsonで設定した値が送信されているのがわかります。
ちゃんと位置情報が入っていますね!
Location(紫色のアイコン)を押してみましょう。
位置を示す旗が秋葉原あたりに立ってます!やった!(ちなみに実際は、DMM.make AKIBAでボタンを押したので、完全に同じ場所ではありませんでした。)
まとめ
・ 初期状態のLOCATIONは、データを受信した基地局の想定エリアなのであんまり意味がない
・ 端末の位置情報を設定しておくことで、どこにおいた端末かわかる(固定の値なので端末を動かすと意味ない)
・ Data Advanced Callbackを使うと基地局の場所から推測した位置がわかる(だいたいあってる)
・ Sigfoxを使うと、GPSのハードを搭載しなくても、だいたいの位置情報がわかる!
ということで、「GPSのハードを搭載しなくても、だいたいの位置情報がわかる!」というのが便利だと思いました。わーわー。
参考リンク
購入情報
Inosensor ES Devkit:販売ページ
接点入力用ハーネス:販売ページ
Inosensor ES Devkit & 接点入力用ハーネスセット:販売ページ
製品マニュアル
チュートリアル
初級編
Inosensor ES Devkitを使ってみた! ①(購入〜Devkit登録編)
Inosensor ES Devkitを使ってみた! ②(付属品の取り付け編)
Inosensor ES Devkitを使ってみた! ③(はじめてのSigfox通信編)
LPWAって本当にローパワーなの!? Sigfox端末(Inosensor ES Devkit)が本当に低消費電力か測定してみた!
中級編
Inosensor ES Devkitを使ってみた! ④(Sigfox CallBacks入門編)
Inosensor ES Devkitを使ってみた! ⑤(接点入力用ハーネスを使ってみよう!)
Inosensor ES Devkitを使ってみた! ⑥(位置情報活用編)
Inosensor ES Devkit にオムロンの振動センサ(転倒センサ)を接続してみた!
上級編
Inosensor ES Devkit 用SDK(IFS-M01 SDK)に挑戦!①(開発環境編)
Inosensor ES Devkit SDKに挑戦!②(ケーブル編)
Inosensor ES Devkit 用 ファームウェア(IFS-M01-FIRM)の書き込みに挑戦!
Inosensor ES Devkit 用 ATコマンドファームウェア(IFS-M01-FIRM-AT)を使ってATコマンドに挑戦!