Arduino GPSロガー (Pro Mini 3.3V版)

道路施設の維持管理のために適切な予防保全が必要と言われていますが、人口が減少がしていく中で山間の生活道路の質を維持するために、コストをかけずに客観的な情報を蓄積していけるシステムが望まれているのではないでしょうか?

Arduino GPSロガーは路面のデコボコの振動を加速度センサーにより定量化しGPSによる位置情報とともにSDカードに記録して路面診断用のデータを蓄積するツールです。

使用するパーツ
Arduino Pro Mini 328 3.3V 8MHz(スイッチサイエンス 1,243 )
あるいは互換機 EasyWordMall Pro Mini モジュール Atmega328 3.3V 8M Arduino用 (EasyWordMall 375円)

GPS受信機キット (秋月電子通商 2200円)1PPS出力付き

マイクロSDカードスロットDIP化キット(秋月電子通商 300円)

MPU-6050 使用 3軸ジャイロスコープ・3軸加速度センサー モジュール(GY-521)(Umemoto LLC 198円)

動作の概要
電源はIoT機器用モバイルバッテリー cheero Canvas 3200mAhがお勧めです。一般的なモバイルバッテリーでは消費電力が小さすぎて自動的に給電が停止してしまいます。USBケーブルの電源線から5VをPro MiniとGPSモジュールに給電し、Pro Miniから供給される3.3VでSDとGY-521に給電します。
GPSから日付、時刻、緯度、経度、捕捉衛星数を読み取ります。加速度・ジャイロセンサーから約50msec毎に200回データを読み取り、進行方向の加速度の平均値と標準偏差、上下方向の加速度の平均値と標準偏差、左右方向の回転角速度の平均値と最大値と最小値を求めます。
測定の周期はおよそ14秒でしたが、日付から自動生成されるファイル名のファイルmm_dd.txtにカンマ区切りで追記されます。

16.12.31追記
GPSでの時刻はUTC(世界協定時)で出力されるので日本では9時間加算する必要があります。日付の繰り上がりなどを考えると面倒なのでUTCで我慢していましたが、落ち着いて考えると日本時間の9時にファイルの日付が変わるのでそれはそれで面倒です。時差を反映させるTimeというライブラリを見つけましたので、実装しました。

データ表示
オープンソースソフトウェアのQGISを使用して表示します。国土地理院のタイル地図に測定点を表示します。例として振動が大きかったポイントは赤い大きな星印、振動が少なかった地点は小さな丸印で表示しています。
結線
(Arduino Pro Mini 3.3V)
[GPS–Pro Mini]
5V–5V
GND–GND
RXD–NC
TXD–D2

[SD–Pro Mini]
DAT2–NC
DAT3–D10
CMD–D11
VDD–3.3V
CLK–D13
VSS–GND
DAT0–D12
DAT1–NC
SWB–NC
SWA–NC

[GY-521–Pro Mini]
VCC–3.3V
GND–GND
SCL–A5(SCL)
SDA–A4(SDA)
XDA–NC
XCL–NC
ADD–NC
INT–NC

[LED–Pro Mini]
RED LED–D9
GREEN LED–D8

時差対応版

UTC版

 

QGIS上でGoogle Satelliteに表示した例です。三陸海岸を探索していた軌跡です。

“Arduino GPSロガー (Pro Mini 3.3V版)” への 8 件のフィードバック

  1. 測定周期を変えるには、どうすればいいのですか?

    1. こんにちは、
      時差対応版プログラムの行番号で説明します。
      振動などを常時モニターするという狙いでプログラムを作りましたので、加速度などの測定周期は行番号198のdelay(50)でおよそ50msec間隔にしています。行番号161のcount=200で、200回測定したら統計データを記録しています。
      計算上は記録周期は50msec*200=10secですが、処理時間等がかかるのでSDには14秒間隔で記録されていました。
      記録する間隔を変更するには目的に応じて行番号161と198の数値を変更するのが良いと思います。

  2. もう一つ
    arduino unoで動作確認したんですが、取得したデータはシリアルモニタにはでるのですが、sdカードに保存できてないのですが、原因はわかりますか? 電圧は3.3vまで降下しています。

    1. こんにちは、
      SDは3.3Vで読み書きしないといけないので、UNOを使い場合は注意が必要です。(私はPro Mini 3.3V版を使っているのでそのまま接続できました。)
      Arduino UNO SDをキーワードに検索するとUNOでSDカードに記録する方法について書いてあるサイトが見つかると思います。
      私がよく参考にさせてもらっている「なんでも作っちゃう、かも。」さんが参考になると思います。
      http://arms22.blog91.fc2.com/blog-entry-502.html

      SDに記録できると便利なので頑張ってください。

  3. こんにちは
    google earthでデータ表示することは、可能ですか?

    1. こんにちは、
      QGISのOpenLayers pluginを使ってGoogle MapsのSatelliteを表示してGPSログをプロットすることができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です