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

ReekohでSigfox GPS端末の緯度経度を標高データサービスと合わせMapダッシュボードに表示する

More than 1 year has passed since last update.

Reekohとは

Reekohとは、IoTデータをNode-REDのようにハードウェアデバイス/APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、Reekoh社及び代理店からの提供されるエンタープライズ向けツールです。
ここでは、Sigfox対応GPSデバイスの緯度経度データを、国土地理院の試験サービス「標高API」に渡し、その地点の標高を取得し、ストレージに保存。最後に緯度経度及び標高を地図ダッシュボードに表示するところまでやってみます。(こんな感じです)
image.png

国土地理院の標高APIを使うReekoh Pluginの作り方はこちらに書いています。
また、SigfoxクラウドのCallbackを受け、パイプラインに渡す方法は、こちらに書いていますので、参考にしてください。

Sigfox GPS端末から標高APIまで

まずは、Reekoh Pipeline StudioでSigfox GWと自家製GSI Service Pluginを配置します。
image.png

SigfoxクラウドからのCallbackは下記のようなJSONでPOSTされることを想定しています。

{
  "device": "{device}",
  "time": "{time}",
  "lat": {lat},
  "lng": {lng}
}

2つのPluginをPipeline Studioに配置し、Sigfox GW側の設定にあわせたSigfox Callback設定をいれておけば、標高API結果を取得するまではノンプログラミングでいけます。つまり、下図のところまではノンプログラミングに可能で、このパイプラインを動かすと、下記のような上記JSONをSigfoxクラウドから受信するたびに、下記のJSONをアウトプットします。

{
  "title": "GSI Service Result",
  "data": {
    "device": "73xxxx",
    "time": 1538654677,
    "lat": 34.87436466683923,
    "lng": 135.6094595891116,
    "rkhDeviceInfo": {
      "_id": "73xxxx",
      "name": "iHere #0073xxxx",
      "location": [
        34.874365,
        135.60946
      ],
      "metadata": {}
    },
    "lastReadingDateTime": 1538654704735,
    "elevation": 80.7,
    "hsrc": "5m(写真測量)"
  },
  "result": {
    "elevation": 80.7,
    "hsrc": "5m(写真測量)"
  }
}

標高APIの結果をストレージに保存

上記JSONのようなアウトプットをストレージに保存します。Reekohでは、x_変数名という形にするのが暗黙ルールっぽいので、Converterのhandler.jsで、それぞれデバイスID、緯度経度、標高をx_device, x_lat, x_lng, x_elevationパラメータに代入しておきます。

handler.js
'use strict'

exports.handle = function (data, logger) {
  logger.log(data)
  return Promise.resolve({
    x_device: _.get(data, 'rkhDeviceInfo._id'),
    x_lat: data.lat,
    x_lng: data.lng,
    x_elevation: data.elevation, 
    x_datetime: moment(data.readingTime).format('YYYY-MM-DD HH:mm:ss')
  })
}

次にDatasetsプラグインを配置し、Converterと接続します。
image.png
これで、DatasetにデバイスIDに加え、緯度経度、標高が蓄積されていくことになります。

地図表示用のダッシュボードを作成する

ReekohメニューからDashboard Studioを選択するとダッシュボードを作成することができます。
image.png
ダッシュボードの大まかな流れは、Add Visualizationでガジェットを作成し、ガジェットの設定を行った後、他のガジェット追加のために再度Add Visualizationしていきます。最後に[Save Dashboard]でダッシュボードが作成されます。
image.png
Mapビューを作る場合は下図の通り、PipelineからDatasetの選択(Select Pipeline Dataset)、Select VisualizationでMapタグを選択、緯度経度情報として、Datasetのどのカラムを使うか(Set Latitude and Longitude)、Map表示にアイコン選択(Marker Icon)、アイコンクリック時のダイアログ表示項目を選択し、[Configure]ボタンをクリックすればOKです。
screencapture-console-reekoh-io-2018-10-08-11_49_44.png
すると、下図のようなダッシュボードができあがります。
image.png

Sigfox Japan KCCS

sigfox
IoT向け無線ネットワーク Sigfoxを日本国内で構築運用
https://www.kccs-iot.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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした