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版