暗い話題からスタートですが、春先から体調を崩し、あまり活動できていません・・。
しかしソラコムさんがまたやってくれました!
https://www.lp.soracom.jp/202008-blog-campaign
過去2回同様、モノにつられ、重い腰を動かします。
過去の開発
以前、盗難対策(防止ではなく)として、モノが盗まれた際、通知と位置情報を知るものを考案し、作りました。

システムとしては、SORACOMのLTE-M Button Plus(通称ひげボタン)に振動センサーから信号を送って、SORACOM Func→AWS Lambda→Slackと通知を送るものです。
位置情報は簡易位置測位機能を使って取得していました。

このシステム、電池で長時間稼働でき、非常に良かったのですが、以下の課題がありました。
- 死活監視できない(異常発生していないのか、死んでるのかがわからない)
- 簡易位置測位だと位置情報が結構ズレる
特に位置情報は私の住んでいる地域(広島市内)では200~500mのズレがあり、時には海の向こうの島が指されることがありました。
今回の開発
そんななか、ソラコムさんからまた素敵な新製品が!
https://soracom.jp/products/kit/gps_multiunit/
GPSに加え、温湿度、加速度センサーも搭載しています。
このガジェット、定期送信に加え、「加速度割り込み」機能があります。
この加速度割り込み機能を振動検知に使えば、簡易位置測位より精度の高いGPSを使ったものにできるのでは・・
さらに定期送信により1日1回自動送信すると、死活監視にもなる。
すなわち前述の課題「通知が無いと思ったら死んでた・・」が解決されます。
さらにさらに、システム的には前回のものがほぼ再利用できます。

ということでLambdaを一部修正するのみで完了。
GPSマルチユニットを動かしてみると・・数十秒で通知が届きます。

リンクをクリックするとGoogleマップで表示されます。
ひげボタン版は数百mズレていましたが、今回のものはかなり精度高いです。
ポケットに入れて散歩してみると・・

いい感じでトラッキングされています(コンソール画面を加工してます)。
ここまで使ってみた感想(課題)です。
- 室内ではGPS情報が取れないことが多い(システムでは「位置情報なし」としています)

- 定期送信と加速度割り込みはどちらもペイロード「type=0」で届くので、紛らわしい
https://dev.soracom.io/jp/gps_multiunit/how-it-works/ - 徒歩では加速度割り込みが発生するが、電車や車移動では発生しない(走行時のトラッキングはできない?しきい値変えればできる?)
もう少しいろいろ試してみたいところです。
お礼
いつもながら、このようなアウトプットのモチベーションをくださるソラコムさん、ありがとうございます。
また、Lambdaの実装については、Kenichiro Wada様(@keni_w)のQiitaを参考にさせていただきました。
https://qiita.com/keni_w/items/9e9235dc9d7310062459
https://qiita.com/keni_w/items/4b511f89c8dbd259a78d
誠にありがとうございました。
体調もだいぶ回復したので、少しずつがんばります!