Help us understand the problem. What is going on with this article?

Inosensor ES Devkitを使ってみた! ⑥(位置情報活用編)

Inosensor ES Devkit って何?

Inosensor ES Devkit は、Sigfox無線モジュール搭載の小さな基板です。

img-inosensor-ES-Devkit.jpg

今回は、位置情報について実験した結果を報告します!

SigfoxバックエンドのLOCATION画面

Sigfoxから送ったデータ(メッセージ)は、Sigfoxのバックエンドで確認することが可能です。

スクリーンショット 2020-11-11 13.02.15.png

このとき、メッセージの右側の紫色のアイコンをクリックすることで、そのメッセージのロケーション情報を調べることができます。

初期状態のLOCATION

特に何もオプションを指定していない初期状態では、以下のような表示になります。

スクリーンショット 2020-11-11 13.02.29.png

これは、端末からメッセージを受信した基地局のうち1つをピックアップした想定エリア(シミュレーション上の電波伝搬範囲)が表示されている状態です。

正直、あんまり意味がないというか、わかりにくい・・・。

端末の位置情報を設定しよう!

次に、端末の位置情報を設定してみましょう。DEVICEタブから、位置情報を設定したいデバイスを見つけて、IDをクリックします。

スクリーンショット 2020-11-11 13.18.37.png

デバイスの情報が表示されます。

スクリーンショット 2020-11-11 13.19.06.png

ここで注目してほしいのが、緯度経度です。

Latitude: 0.000 (degrees)
Longitude: 0.000 (degrees)

現在は何も設定していないので0になっています。これを設定してみましょう!

端末の位置情報を設定する

画面右にあるボタンから「Edit」をクリックします。

スクリーンショット 2020-11-11 13.18.49.png

端末固有の情報が編集できる画面になるので、緯度経度を設定します。

スクリーンショット 2020-11-11 14.15.30.png

今回は、富士山の場所にしてみました。OKを押すと情報が更新されます。

スクリーンショット 2020-11-11 14.15.38.png

この状態でメッセージを送信すると、LOCATIONが以下のように変わります。

スクリーンショット 2020-11-11 14.16.11.png

写真は拡大(+)を何度かした状態です。指定した位置(富士山)に、旗が立っているのが確認できると思います!

※ちなみに、この状態で地図の左上のNoneをCoverage overlayに変更すると、さっきと同じ地図が表示されます。

Atlas nativeを使ってみる

最後に、Sigfoxが提供している、Atlas native(受信基地局情報によるデバイス位置推定サービス)を使ってみましょう。これは、端末からのメッセージを受信した基地局の位置から、デバイスの位置を推定するものです。Sigfoxは複数の基地局でデータを受信するため、デバイスの位置を推定することが可能となっています。

Device type別の設定を確認

まずは、端末の設定を確認しましょう。Atlas nativeの設定は、デバイスタイプ毎に設定されています。DEVICE TYPEのタブを開いて、端末のデバイス名(Name)をクリックします。

スクリーンショット 2020-11-11 14.30.21.png

デバイスタイプ別のインフォメーションが表示されるので、Contactsの詳細をクリックします。

スクリーンショット 2020-11-11 14.30.39.png

Optionsにある、Sigfox geolocation serviceが、位置情報サービスの種類になります。Atlas nativeの場合は「Network location」になっていればOKです!

スクリーンショット 2020-11-11 14.49.10.png

Data Advanced Callbackを使ってみる

Atlas nativeの情報を取得するには、Data Advanced Callbackと呼ばれるコールバックを使用する必要があります。このコールバックは、複数の基地局の情報を集計してから発行されるため、通常のコールバックに比べて、25~30秒くらい後に発行されます。

それでは、早速設定してみましょう!

スクリーンショット 2020-11-18 11.25.07.png

DEVICE TYPEタブを開いて、リストからデバイスを選択します。

スクリーンショット 2020-11-18 11.25.26.png

左のメニューからCALLBACKSを選択します。コールバックの設定画面になるので、右上の「New」を押します。

スクリーンショット 2020-11-18 11.25.45.png

一番上の「Custum callback」を選びます。

スクリーンショット 2020-11-18 11.36.04.png

Callbackの設定をしましょう。TypeをSERVICEにすると、DATA_ADVANCEDが選べるようになります。

※本当はここで、Inosensor ES Devkitを使ってみた! ④(Sigfox CallBacks入門編)で設定したようにメールが飛ぶようにしようと思ったのですが、なぜかできないので、Webhookの設定をすることにします。

Urlpatternには、Webhookを受け取るURLを記載します。今回は、PHPが無料で使える!XFREEを使ってみた!で作成したHelloWorldのURLを使うことにします。

PHPのソースの中身はこんな感じです。

index.php
<?php
echo "hello world";

本来であれば、jsonのデータをPHPの中で処理して・・・みたいなのを書くことによりInosensor ES Devkitから送られてきたデータを処理できるのですが、面倒なのでこのままやることにします。

Bodyには、jsonのフォーマットを書きます。今回は、以下のように設定しました。

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を押すと新しいイベントが作成されます。

スクリーンショット 2020-11-18 11.36.29.png

これで準備完了です!

メッセージを送信しよう!

この状態でメッセージを送信してみましょう。

本体のボタンを押してください。DEVICEタブのMESSAGESを確認してください。

スクリーンショット 2020-11-18 11.38.08.png

まずは、Callbacks(緑色のアイコン)を押してみましょう。jsonで設定した値が送信されているのがわかります。

スクリーンショット 2020-11-18 14.08.12.png

ちゃんと位置情報が入っていますね!

Location(紫色のアイコン)を押してみましょう。

スクリーンショット 2020-11-18 11.37.58.png

位置を示す旗が秋葉原あたりに立ってます!やった!(ちなみに実際は、DMM.make AKIBAでボタンを押したので、完全に同じ場所ではありませんでした。)

まとめ

・ 初期状態のLOCATIONは、データを受信した基地局の想定エリアなのであんまり意味がない
・ 端末の位置情報を設定しておくことで、どこにおいた端末かわかる(固定の値なので端末を動かすと意味ない)
・ Data Advanced Callbackを使うと基地局の場所から推測した位置がわかる(だいたいあってる)
・ Sigfoxを使うと、GPSのハードを搭載しなくても、だいたいの位置情報がわかる!

ということで、「GPSのハードを搭載しなくても、だいたいの位置情報がわかる!」というのが便利だと思いました。わーわー。

参考リンク

購入情報

Inosensor ES Devkit:販売ページ

接点入力用のハーネスが発売になっています。

接点入力用ハーネス:販売ページ
Inosensor ES Devkit & 接点入力用ハーネスセット:販売ページ

製品マニュアル

Inosensor ES Devkit 製品マニュアル

チュートリアル

初級編

Inosensor ES Devkitを使ってみた! ①(購入〜Devkit登録編)
Inosensor ES Devkitを使ってみた! ②(付属品の取り付け編)
Inosensor ES Devkitを使ってみた! ③(はじめてのSigfox通信編)

中級編

Inosensor ES Devkitを使ってみた! ④(Sigfox CallBacks入門編)
Inosensor ES Devkitを使ってみた! ⑤(接点入力用ハーネスを使ってみよう!)
Inosensor ES Devkitを使ってみた! ⑥(位置情報活用編)

リンク集

Inosensor ES Devkit 関連リンク集(随時更新)

robotstartinc
家庭用の人型ロボット(Pepperなど)をメインターゲットとしたロボット関連ビジネスを専門に行うスタートアップ。
http://robotstart.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away