SORACOM
WioLTE
Harvest

WioLTE で Harvest の位置情報データを “お手軽に” 試してみた

こんにちは、ソラコムの松井です。

昨日の SORACOM Technology Camp 2018 で発表された、Harvest の位置情報データ機能を試してみました。

GPS モジュールを使ったスケッチは後日公開される予定ですが、昨日試そうと思った時に GPS モジュールが手元になかったので、WioLTE の LTE モジュールが持つ基地局情報を使った簡易位置情報取得機能を使ってみました。

お散歩キット

WioLTE::GetLocation()

簡単に使えそうです。

サンプルコード

GetLocation.ino
#include <WioLTEforArduino.h>
#include <stdio.h>
WioLTE Wio;

void setup() {
  delay(200);

  SerialUSB.println("");
  SerialUSB.println("--- START ---------------------------------------------------");

  SerialUSB.println("### I/O Initialize.");
  Wio.Init();
  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyLTE(true);
  delay(500);

  SerialUSB.println("### Turn on or reset.");
  if (!Wio.TurnOnOrReset()) {
    SerialUSB.println("### ERROR! ###");
    return;
  }

  SerialUSB.println("### Connecting to \"soracom.io\".");
  if (!Wio.Activate("soracom.io", "sora", "sora")) {
    SerialUSB.println("### ERROR! ###");
    return;
  }
  SerialUSB.println("### Setup completed.");
}

void loop() {
  double lat, lng;
  char data[256];
  Wio.GetLocation(&lng, &lat);
  sprintf(data, "https://www.google.co.jp/maps/@%f,%f,15z", lat, lng);
  SerialUSB.println(data);
  delay(60000);
}

これを実行すると、デバッグログに下記のように表示されます

--- START ---------------------------------------------------
### I/O Initialize.
### Power supply ON.
### Turn on or reset.
### Connecting to "soracom.io".
### Setup completed.
https://www.google.co.jp/maps/@35.621483,139.73056,15z

このリンクを開くとなんとなく合ってそうな感じですね。
GoogleMap

Harvest に送ってみる

WioLTEforArduinoライブラリに含まれる soracom-harvest サンプルに手を加えて、座標を送ってみましょう。

変更箇所は下記のようになります。
※フルのコードはこちらにあります。

$ diff soracom-harvest/soracom-harvest.ino soracom-harvest-location/soracom-harvest-location.ino
44a45
>   double lat, lng;
45a47,50
>
>   Wio.GetLocation(&lng, &lat);
>   sprintf(data, "https://www.google.co.jp/maps/@%f,%f,15z", lat, lng);
>   SerialUSB.println(data);
63c68
<   sprintf(data,"{\"temp\":%.1f,\"humi\":%.1f}", temp, humi);
---
>   sprintf(data,"{\"temp\":%.1f,\"humi\":%.1f, \"lat\":%f, \"lng\":%f}", temp, humi, lat, lng);
65c70
<   sprintf(data, "{\"uptime\":%lu}", millis() / 1000);
---
>   sprintf(data, "{\"uptime\":%lu, \"lat\":%f, \"lng\":%f}", millis() / 1000, lat, lng);

さっそく Harvest で確認してみましょう。

Harvest Location

会場付近の位置情報がトラック出来ていました。

まとめ

非常に簡単に位置情報を可視化できるようになり、ますます Harvest が便利になりましたので、ぜひゴールデンウィークにお試しください!
もし GPS モジュールがない場合には、LTE モジュールの機能を使って代用できますので、旅のお供に Wio LTE を持ち歩いてみても面白いかもしれません。

昨日のイベントでブログを書くまでが SORACOM Technology Camp です、とあったので、有言実行ということで早速記事を書いてみました。
皆さんもぜひ色々試してみて、情報発信してみましょう!