上位に戻る
初版20120610
更新20120616
概要
アンドロイドのGPS機能を使って、動態監視のシステムを作ってみました。ある決まったコース上を走る車を監視したいなんて話があって、調べて見ると、大体が、物流用で監視周期が遅くて使えそうにありません。スマホのGPS機能を使えば、割と簡単そうだったので試しに作ってみました。1秒周期で、動態の位置を収集して、サーバ上に転送、パソコンからこの位置情報をGETして、パソコンモニター上の地図にプロットします。
今のところ、実用になるかのか、用途があるのかなんとも状態で、無用の長物かもね・・・・。
せっかくなので、ロガー機能と、速度計の機能をつけてみました。
アンドロイド側ソフト
数値と、バーで速度を表示します
速度は、計算周期の移動距離から算出します。
例えば10秒とすると、10秒間で移動した距離から算出
表示は、1秒ごとに算出します
加速度センサーは考慮していないので、衛星の捕捉状態で位置が微妙にずれるので、計算単位の時間を長くしています
なので、まあ速度といっても参考程度です
数値と、バーで高度を表示します
1秒更新です
緯度、経度、
速度計算周期あたりの距離
総距離
を表示します
ソフトを最初に起動したら、メニューから設定画面を表示して各パラメータを設定します
@記録周期 : メモリカードに記録する周期を入力します。最低1秒ですが、1秒だと、1秒ごとにフラッシュメモリに書込むので、メモリの寿命に留意してください
A速度計算周期: 速度を算出する計算単位。短いと値がばらつきます。長いと、早い速度変更に追いつきません。衛星が安定して捕捉できる場合は、短くてもOKです。
A速度グラフ最大値: バーグラフの最大スケールです。
B高度グラフ最大値: バーグラフの最大スケールです。
Cデータ収集を行う:チェックを入れると、SDメモリカードにGpsApllaのフォルダが作成され、その中に、指定した保存ファイル名+日付の名前で位置情報、速度、距離などが記録されます。パソコン(Windows)利用を想定してShiftJISコードです。
D省電力モードを無効にする:大抵、電池消耗対策で、なにも操作しないと、省電力モードに移行する設定になっていると思いますが、このモードに移行すると、GPSが機能しなくなるので、設定を追加しました。(もしかしたら、別の方法があるかもしれませんが・・。)
Eサーバに位置情報を送出する:チェックを入れると、指定された周期で、FTPサーバに位置情報をアップロードします。
F識別コード:サーバにアップロードするファイル名になります。任意の数字4桁で設定
Gテストサーバを利用:こちらを選択すると、私の自宅のサーバを経由します。サーバと言ってもAtomCPUのパソコンなので、処理能力はショボイです
転送された最後のデータは、サーバに残りますので、こちらを利用される場合は、ご理解の上ご利用願います。
H以下のサーバを利用:別のサーバを利用します。プロパイダ契約を行っていれば、大抵、ホームページのサービスが付いていると思いますので、そのサーバを利用できます。通信できるかどうかを、別途ftpツールか、ieのftp接続で必ず確認してから設定してください
通信コマンドは、別スレッドで動作させている為、通信できない場合は、キューが貯まりすぎて、スマホの動作がおかしくなるかもしれません。通信の確認が、取れない場合は、送信動作を停止させてください
Iフォルダ名:ルートではなく、フォルダの配下にデータを格納する場合は、フォルダ名を記入します。フォルダ名は、必ず最後に / を入れてください
例 [work/]
Jデータ送信周期:ftpサーバに送信する周期を記入します。10秒以上で、2秒単位で設定します
収集データについて
■GPSロガーデータ
スマホをストレージモードで接続して、パソコンから見ると、GpsApllaのフォルダが出来上がっており、開くと、GpsData2012xxxx.csvのデータが出来ます
Excelで開くと、上記のように表示します
A列は、年月日
B列は、時間
C列は、緯度
D列は、経度
E列は、高度
F列は、計算周期の距離(km)
G列は、速度(km/h)
H列は、総距離(km)
I列は、総稼動時間(Sec)
J列は、GPSの状態
■FTP送信データ
ftp送信にチェックを入れると、上記とは別に、GpsData.csv(日付の入っていないデータ)というデータが出来上がります。
1行目は、ヘッダ情報で、日付と時間が記入されます
2行目以降は、A列が緯度、B列が、経度、C列が、高度になります
1秒ごとのデータが記載されています。10秒周期に設定してあるので、10個の位置データがあります。
Andoroidプログラムのダウンロード
動作可能なバージョンは、2.2以降です
下記プログラムをインストールしてください。許可を与えないとインストールできません。
GpsAplla V1.0
初版
パソコン側ソフト
起動すると以下のようなフォームが表示されます
地図のデータと、座標が2点必要です。googleのアカウントがあれば、マイプレイスから、座標を2点選択して、緯度経度を取得します。
又は、地図上の緯度経度を表示してくれるホームページがありますので、それを利用してもいいでしょう。
下のサービスを利用しました
http://www5.ocn.ne.jp/~botan/map_g.html
上記のページで、利用したいエリアの住所を選択して地図を表示させます。
地図上の左上のポイントを選択して、ポイントの緯度経度を取得します。
同じく、右下のポイントを選択して、緯度経度を取得します。
座標を控えたら、Alt+PrintScreenのキーを押して、画面のコピーを取ります。
ペイントに貼り付けて、必要な部分を切り抜いて、ビットマップで保存します。
@地図選択:上記で作成した地図データを選択します
A地図画面サイズ:地図画面の大きさをピクセルで設定します。上記で、切り抜いた大きさに合わせたほうが、にじまないで綺麗に表示できます
切り抜きサイズと違っても、地図画面サイズに合わせて拡縮されて、表示されます。
B地図表示:地図画面を表示させます
C左上座標:ボタンを押した後、地図画面の左上ポイントを選択します。合わせて、先ほど控えた緯度経度の座標を入力します
D右下座標:ボタンを押した後、地図画面の右下ポイントを選択します。合わせて、先ほど控えた緯度経度の座標を入力します
E処理周期:スマホ側で設定した周期に合わせます
F識別番号:スマホ側で設定した番号に合わせます
GFTPサーバ:スマホ側で設定した内容に合わせます
以上で準備が整いましたので、開始ボタンを押して、処理をスタートさせてください
スマホも起動させます
GPS情報が取得されると、スマホから位置情報が送出されます
検知すると、右上のテキストボックに取得したむねのメッセージが表示されます
データが取得されると、赤のターゲットが表示されます。1秒周期で更新します
パソコン側のソフト
DoutaiKanshi_V1.0.zip
初版
DoutaiKanshi_V1.1.zip
2012/06/16 回線に遅延がある場合に、ftp転送できなくなるバグを修正しました
その他
このソフト、1人で検証するには、非常に苦しいス。よめはんに頼むのも、パソコンばっか相手しているので、頼もうにも予想される結果が・・・・・。
なので、あんまり検証できていません
一応処理周期を10秒に設定すると、最大で15秒の遅れで、表示されます。(プログラム上は、)
後、速度計ですが、車とか、新幹線で測ってみました。車の場合、車の速度計より、5%以上値が小さかったです。プログラム見直しましたが、特におかしなところは見当たらず。どうも、車の速度計は、実速度より、大きく表示されている模様・・。
ちなみに、このソフト 都会のように、ビルが建っていると、衛星の電波が途切れて捕捉衛星が切り替わり、速度はかなり暴れます。
スマホには、加速度センサーが付いているので、傾きセンサーと合わせれば、必要な加速度を算出できそうですが、進行方向以外にも、上下方向などにも振れるので、かなり高速で処理して、振れ方向を検出しないと難しいそうです。
2012/06/16 独りで検証するのが難しいので、会社のDocomoのモバイルモデムを借りてきて、ノートで移動しながら確認しようとしたところ、ftpエラーになり、えらい苦労しました。2つのタイマーを使って2つの処理をさせていたのですが、タイマーでは、お互いの処理が干渉するようで、マルチスレッドを実装しました
まだまだ、このソフト未完成です
ご意見、ご希望ありましたら、掲示板にでも投稿してください