Android搭載IoTエッジデバイス Acty-G3 スターターキット で位置情報を取得するまでの軌跡

この記事は、[SORACOM Advent Calendar 2022/12/24](https://qiita.com/advent-calendar/2022/soracom)分の記事です。

----

SORACOMさんは色々なデバイスを出していますが、位置情報を簡単に取得・可視化できるデバイスは[GPSマルチユニット](https://soracom.jp/store/5235/)に勝るものはないと思っていますが、
他のGPS搭載のデバイスを使ってみたい。
今年11月末〜12月初旬にAWSの年次カンファレンス、AWS re:Invent ２０２２がラスベガスで開催されたので、それに持っていきたい（GPSマルチユニットは日本国内専用）
と思いまして、選んだのが、[Android搭載IoTエッジデバイス Acty-G3 スターターキット](https://soracom.jp/store/10504/)というもの。

今回はセットアップから位置情報取得までをやってみた話(軌跡)です。

## セットアップ
### 開封
さて、発注して、翌日には届く(関東圏在住)という、超高速なデリバリーによって、到着したAndroid搭載IoTエッジデバイス Acty-G3 スターターキット。
開けると、以下のようなデバイスが入っています。
![DSC_0674.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/e6554bab-7274-1256-7036-73de902cfb41.jpeg)
(他には、充電ケーブル、SIM、ネジなど）

向かって、左には電源ボタン、右側の数字の位置に、ボタンが2つ。
①の位置にあるボタンを押すと、位置情報を、②の位置にあるボタンを押すと、BLEビーコンの情報をSORACOMプラットフォーム上に送ります。(後者はまだ試していないです)。
なお、位置情報の送信ボタンを押すと、標準では60秒間隔で1時間送信するようになっています。
この設定は、変更することは可能のようです。

あとはLEDが3つ(上から電源のLED、位置情報送信実行中、BLEビーコン送信実行中)というシンプルな構成です。
Android搭載ですが、画面はなく、設定する場合は、エミュレーターを使います（後述）

蓋を開け、内蔵バッテリーを外すと、スマホ（どっちかというとWifiルーターかな）と同じ感じで、SIMカードスロットとSDカードスロットがあります。
![DSC_0683.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/d39c2230-6f09-bfce-6554-ff650ef812f1.jpeg)
とりあえずSIMカードを入れれば準備OKです。

### いきなり破壊する
・・・が、はい。いきなりやらかしました。
こちらのデバイス、蓋に6つのツメがあって、それを本体側に引っ掛けて固定、あとネジ留めして完全固定なのですが、
固定結構硬くてですね、入らないなぁ・・・とかやっていたら、ツメをいきなり破壊しましたorz(左中央のツメ)
![_20221225_183244.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/e9c867e7-4dd0-9192-d087-f39107d91676.jpeg)


はぁ・・・初日でなかなかデバイス破壊するのはなかなかないです。
完全に私が悪いんですが・・・。

今も、完全に固定できず、ちょっと浮いています。
![_20221225_183302.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/765baf6c-de6c-15b2-528b-5f51349050e3.jpeg)


なので、みなさん**Acty-G3使う際には蓋にご注意を！**

### データ送信
SIMカードを挿して、電源ON、しばらく待ったのち（一番上の黄色点灯）、①横のボタンを押して、位置情報送信を開始します。
室内だと、位置情報取れないことがあるのはわかっているので、いきなり外に出します。

そして、SORACOM Harvestでみてみます。
latitude　と longitude のみという非常にシンプルなものになっています。
![スクリーンショット 2022-12-25 18.40.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/7a50ae3e-9d99-9956-b7a2-1c9a444a9b07.png)

### GPSマルチユニットとの比較
位置情報を簡単に取得・可視化できるデバイスは[GPSマルチユニット](https://soracom.jp/store/5235/)に勝るものはない(再掲)と思っている人なので、
比較してみましょう。

まずスペック上ですが、ほぼ一緒です。Acty-G3には、携帯電話網を補助的に使うA-GPSが含まれています。
Acty-G3(QZSS = みちびき)
![スクリーンショット 2022-12-25 18.45.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/ba4b33b4-68b3-0d10-2feb-f1142ebe232d.png)
GPSマルチユニット
![スクリーンショット 2022-12-25 18.45.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/4651f910-1f56-a287-63a6-e39f2ac7a1ab.png)

実際、両方のデバイスを持ち出して、ほぼ同じ位置で動作させてみました。
みたらわかりますが、某バラエティ番組の聖地の公園(と書いてありますね)に行った際の位置情報取得状況です。
Acty-G3
![スクリーンショット 2022-12-25 18.57.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/7ec047d7-3c6d-b9e8-3479-ce66e0439cb3.png)


GPSマルチユニット
![スクリーンショット 2022-12-25 18.58.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/e6994ee5-be8f-5afe-678d-eb6033731039.png)

GPSマルチユニットの方がだいぶ位置がずれている感じがしますね。
Acty-G3の方がちゃんと取れている感じがします。（ちゃんと高台の上まで行っている。）

ちょっと細かくみてみます。公園からの帰りに絞ってみました。
若干の時間ずれがありますが、Acty-G3は駅にいた時もちゃんと取れています。優秀ですな。
Acty-G3
![スクリーンショット 2022-12-25 19.13.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/b8776f00-ef1d-2d2e-c84c-84426cea0586.png)

GPSマルチユニット
![スクリーンショット 2022-12-25 19.14.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/e101bca7-fa1a-dd0b-0dfe-a1d892e221bd.png)

データだとこんな感じです。
Acty-G3
![スクリーンショット 2022-12-25 19.14.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/80bbfc2d-c589-5f7e-b11c-c782284a9c0a.png)


GPSマルチユニット
![スクリーンショット 2022-12-25 19.14.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/2c161d6f-bc40-1ed9-5dac-031414f53ace.png)

Acty-G3についている、A-GPSの効果なのか、地下鉄での移動中もプロットされています。駅の位置ですね。大体。

![スクリーンショット 2022-12-25 19.12.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/797ac4de-15c4-b3ca-8249-6464df4b1e56.png)

ちなみに以下がGoogleMapで出した駅の位置。
![スクリーンショット 2022-12-25 19.25.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/d76db7b2-fc33-001f-b698-faa206aa986d.png)

おおお、これは結構すごい。GPSマルチユニットだと室内入ると、位置情報取れなかったりしますが、Acty-G3だと取れてたりするので、A-GPSなかなかですなと思いました。

## ラスベガスに持っていく
Acty-G3を買った目的として、もう1つ、ラスベガスに持っていきたいというのがありました。
実は1つ問題が発生しています。
それは・・・LTEのバンドがアメリカに対応していない！（そもそもダメじゃんかという話）

Acty-G3が使えるバンドは以下。
![スクリーンショット 2022-12-25 19.28.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/f4cede19-b59c-a426-b7d8-0a02242bfd64.png)


[アメリカで使えるスマホを端末別に紹介！バンドの確認方法も](https://www.hanacell.com/users/america-cell-phone/us_can_use_smartphone/)から抜粋させていただきましたバンドの情報は以下です。
![スクリーンショット 2022-12-25 19.29.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/c5a3d9f3-d43a-e128-9426-d033eb67f995.png)

ダメじゃん・・・となりました。
でも何か手段はないか！とデバイスの仕様をよく確認します・・・。
すると、Acty-G3、Wifiも搭載しています。
つまりテザリングができる！
もしかして、Wifi経由で位置情報を送信できるんじゃ？と思ってやってみました。
方法としては以下(全然手軽じゃないw)
1. アメリカのLTEバンド対応のスマホに、SORACOM IoT SIMを挿します。
1. Acty-G3をPCに繋いで、エミュレーター経由でアクセスします。(SORACOM IoT レシピ：IoTで荷物を追跡したい - 実運用に向けてのヒント - アプリ設定値の変更)[https://soracom.jp/recipes_index/9483/#i-4]参照
　　ドキュメント通り、Vysorというアプリを使います。
　![スクリーンショット 2022-11-24 0.04.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/150f69a6-fc01-26c3-20df-dbdf1040747c.png)
![スクリーンショット 2022-11-24 0.05.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/6dccf5fd-4e16-c7a3-df5e-3f8f37fb11f4.png)
![スクリーンショット 2022-11-24 0.06.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/978da8dc-9b4d-bda5-19a6-65575939d82d.png)
ちなみにアプリのアップデートや通信間隔や送信時間などの設定変更に使うのが正しい使い方です。
1. スマホのテザリングをONにして、Acty-G３から接続。（この際、自動接続にするのを忘れずに）
1. あとは位置情報送信ボタンをクリックし、SORACOM Harvestで確認

きたーーーー。
まあ、ここまでやるか？という話になっちゃうんですがもはやあと引けない状況でした（出発3日前とか）

ということで、Acty-G3とSORACOM IoT SIMを搭載したスマホ持って、渡米(結局スマホとか5台ぐらい持っていた人です)し、
ラスベガスで位置情報取得してみました！
![スクリーンショット 2022-12-25 19.44.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/f6a80e93-c280-4737-835f-e5caa01d6679.png)
ちなみに、ダウンタウンまでリブロース食べに行った帰りのものです。美味しかったです。

## 問題発生 -SORACOM Funkにデータを送れない！-
ちょっと話はラスベガス行く前に戻ります。

位置情報を取得できたら、SORACOM Funk経由で、AWS Lambdaに送信して、LINE経由で通知をしたいし、
Amazon Location Serviceに送って、ラスベガス入ったら通知するとかやってみたくなるじゃないですか。
ってことで、Amazon Location ServiceにデータをPutできるLambdaへの接続へデータを送信するようにSORACOM Funkを設定します。
・・・がいくら経ってもLambdaが呼ばれない。
最初、SORACOM IoT SIM、つまりグローバルカバレッジのSIMグループでやっていたので、そのせいかな（そんなわけないよなぁ・・・と思いつつ）と思って、
日本カバレッジかつ、すでにSORACOM Funk設定済みのSIMグループに所属させてみても・・・ダメ。
専用のSIMグループ作ってみてもダメ。
何でだーと嘆いていたら、SORACOMのエバンジェリスト松下さんからこんなコメントが・・・。
![スクリーンショット 2022-12-25 19.56.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/df1dcabe-eb7d-09a4-82f6-08402de65788.png)
こういう時は、**SORACOM Peek** の出番です！

### SORACOM Peekでパケットキャプチャーしてみる
SORACOM Peekを使って、パケットをキャプチャーしてみます。
SIM単位でできるようになってほんと便利です。

キャプチャーし終わったら、ダウンロードしたファイルをWiresharkを使って（自分アプリケーションエンジニアなので、Wiresharkは入ってますが、SORACOM Peek使う時しか使ってませんw）可視化してみます。
![____________________________2022-11-25_15.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/ffdbe915-af8b-32fc-f58a-b2d9e7950f4b.png)

10.127.111.111って・・・なんか過去LT大会かなんかで、このIPはHarvestのエンドポイントです・・・ってのを見たことあるんだけど・・・。
一応どこかに載っていないかなぁ・・・とググってみますと、SORACOM UG舩原さんのブログにありました。
[最強のセキュリティを誇るSORACOM Private Gardenが実用に耐えるかを検証する#Harvest Data](https://qiita.com/1stship/items/47afae52a5fd7ec53315#harvest-data)

`10.127.111.111 -> harvest.soracom.io`

**おーい。お前さんSORACOM Harvestにしか送れないんかいw** とデバイスに突っ込んでしまいました。

これはどうやってもFunkには送れないですね。
なので、現状ではFunk経由でLambdaに送って・・・というのはできないことになります。
一応デバイス開発元のCYBERDYNEのサポートにどうにかならんの？という問い合わせをしようと思います。
なお、Lagoon経由でLINE通知はできるので、通知必要な場合はLagoon経由にてすれば問題ないかと。

## まとめ
Android搭載IoTエッジデバイス Acty-G3 スターターキット精度いいですね。
GPSマルチユニットよりは精度は良さそうです。
ただ、価格差約2倍(23,980 円/12,100 円)がある(GPSマルチユニットは時々セールもしててもっと安く買える)ので、
この辺をどう考えるところかなと思います。
**あと、蓋の開け閉めには注意です。**
今後ですが、とりあえず、SORACOM FunkやFunnel経由でAWSとかに送りたいので、デバイス開発元に問い合わせします。
あと、BLEビーコンはまだ試していないので、なんか買って試してみたいと思います。