【IoT】ラズベリーパイ3+SORACOM Air(AK-020)+AmbientでGPSロガー(所在地確認)を作ってみる
最終更新日: 2017/09/27 11:37am
こんにちは。経理の小高です。
今日の話題は
- ラズベリーパイ3 ModelB
- SORACOM Air (USBドングル:AKA-020)
- GPSモジュール(GPS受信機キット1PPS出力付き「みちびき」対応 :AE-GYSFDMAXB)
- IoTクラウドサービス:Ambient
を使って、営業さんの所在地確認をしようというお話です。うちの会社も社長が「どこにいるのかわからなくて困る」ということがありまして、これまで「居場所確認用」に余ったスマホを使っていました。スマホの2年縛りが切れるので、経理を安くしましょうという狙いです。GPSは車のダッシュボードに装着します。
制作
Ambientは日本のIoTプラットフォームで、簡単にセンサーデータを可視化できるサービスです。無料のユーザー登録をしました。
Ambientさんの方で
- ラズベリーパイ3とGPS受信機キット1PPS出力付き「みちびき」対応 (AE-GYSFDMAXB)を使ってAmbientにデータを送るブログ:Raspberry Pi3のPythonでGPSを扱う
- Ambient用Pythonモジュール:Git Hub : Ambient Python Lib
を提供してくださっているのでスムーズに制作できました。
以下はラズベリーパイ3とGPS受信機キットを接続したところです。通信方法はuartですので、ラズベリーパイ3とGPS受信機キットのTXとRXをたすき掛けに接続します。GPS受信機キットのGNDをラズベリーパイ3のGND、5Vをラズベリーパイ3の5Vに接続します。
ラズベリーパイ3モデルBのピンアウトはこちら(raspberrypi.org GPIO: MODELS A+, B+, RASPBERRY PI 2 B AND RASPBERRY PI 3 B)。
uart通信を使うときの注意事項として、/dev/ttyS0に設定されているデフォルトのシリアル通信の設定を無効にしなければなりません。これを行うのに以下のサイト(の⑧)を参考にさせていただきました。どうもありがとうございました。
Git HUB : 秋月電子 UART(シリアル)接続GPS(2016.2発売)をRaspberry Pi 3につなげて、GPS出力をgpsdで受ける
以下は会社の前でGPSのテストをしている様子です。電源は電池(ニッケル水素電池4本)、Wifiは事務所から拾っています。
ラズベリーパイ3にログインして、GPSモニターで見ると以下のようになります。赤く囲った部分が時刻と緯度、経度です。衛星が4つ以上拾えないと測位できませんので、電源投入後(gpsd起動後)しばらく待ちます。
これにSORACOM AirのUSBドングル(AK-020)を挿して、出先の場所をクラウドに送れるようにします。
なんだかんだと手間取ってしまったのが、AK-020の起動設定でした。結局、以下に公開されているスクリプトを利用させていただきました。
このshell scriptを/etc/rc.localで呼び出して自動起動設定をします。
自動車に装着
営業車のダッシュボードに装着しました。
以下が遠景。問題は電源です。携帯電話の充電器を使ってみたところ、USBドングルが電気を食うらしく、すぐに電池切れになってしまいました。
そこで、シガーソケットにインバータ(12V-100V:こんなのがあるのですね)を挿し、それにパススルー機能付きの携帯電話の充電器をつなぎ、ラズベリーパイ3に電気を送ることにしました。そうすれば、少しぐらいエンジンを切ってもGPSは動きます。電源オフは「充電池の電源がきれたタイミング」となりますが、これについてはもう少し改良したいところです。
(2017/9/27変更)シガーソケットから電源をとるように変更して、エンジン(アクセサリ)に連動して「ぶっつり電気をきる」ようにしました。というのも、エンジンを切った状態でも位置情報をGPSで記録したところ「セブンで休憩」している様子が克明に記録されました(一番最後の図)。これは見ていて嫌な気持ちになるのでやめたという次第です。
以下がAmbientで表示した画面。
GPSには10m-20mくらいの誤差がありますが、それなりに居場所がわかるようになりました。
「みちびき」が今年(2017年)中に4機体制になるそうなので、そうすればもっと精度がでるかもしれません。
NHK 2017年6月1日(木) 誤差わずか数センチ!驚異の日本版GPS
少々ながくなりましたが、「営業さんがいない!!」の1つの解決策になるかもしれません。
継続的に使うに、車の中に置くので、温度・湿度の試験が必要ですね。ラズベリーパイ3がMicroUSBをブロックデバイスにしているので、それなりの期間で壊れることを前提にしています。
(2017/9/27追加) 「セブンで休憩」の様子
←「【セキュリティ】WordPress 4.8.2 Security and Maintenance Release」前の記事へ 次の記事へ「【ホームページ】ファイアウォール管理システムをリニューアルしました」→