M5Stackを使い、ZED-F9P/M5F9Pの測位データをGoogle Driveにアップロードする方法(その2)

M5Stackを使い、ZED-F9P/M5F9Pの測位データをGoogle Driveにアップロードする方法(その1)で紹介した方法を少し改良しました。

改良した内容は次のとおりです。
1.測位したデータをシリアル通信で取得できるようにした。
2.マイクロSDカードに保存されるデータの古いものを自動的に削除するようにした。

ファームウェアはm5upload_FW_v1_0_1.zipをダウンロードし、解凍後、M5Stackに書き込んで下さい。

1.データをシリアル通信で取得

前回の実装では、M5Stack間をワイヤで接続しなくて済むように、Wifi経由でデータを取得するようにしました。
ただ、このWifi経由で長時間運用していると接続が切れてしまい、データが取得できなくなる場合がありました。
その原因はまだ調べていませんが、より信頼性がある方法として、シリアル通信でデータ取得できるようにしました。

接続は次の画像のように、右側のM5F9Pの3ピンのコネクタからの白(TX)と黒(GND)を左側のM5StackのR2とGに接続します。
このようにワイヤで接続しますので、接触不良を除いて、接続が切れる可能性は無くなります。
車など振動する環境ではR2とGは半田付けした方がいいでしょう。

このシリアル通信で測位データを取得するにはm5upload.iniファイルで、次のように、[data]項目で"connect = uart"と指定して下さい。
このconnectの指定が無い場合は従来どおりWifi経由でデータを取得します。
ボーレートはM5F9Pの既定値である115200bpsで通信しますので指定する必要はありません。

; M5UPLOAD INI file

; Wifi -------------------------------------------
[wifi1]
ssid = xxxxxxx
password = xxxxxxxx

; データサーバ
[data]
connect = uart  ; wifi or uartを指定。wifiの場合はip= およびport=の項目も指定

;Google Apps Scirpt
[gas]
url = https://script.google.com/macros/s/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/exec

; アップロード
[upload]
folder = m5upload
period = 5 ;分単位

; ロガー
[logger]
max = 1000	; 最大保存容量 MB単位

2.マイクロSDカードのファイルの自動削除

ロガーとして、測位データは一旦、マイクロSDカードに保存されます。
保存場所は /m5upload/gpslog/ で、1日毎のフォルダに保存されます。
保存容量は10Hzの測位レートの場合、1日で約130MB程度です。

運用期間が長い場合、保存できなくなりますので、設定した最大容量に達したら、古いファイルから自動で削除するようにしました。
最大容量は既定値で2,000MBですが、INIファイルで変更できます。

設定は、上記のupload.iniファイルのように、
[logger]  
max = 1000 ; 最大保存容量 MB単位
の項目で指定します。

3.ソースコード

ソースコードはm5upload_src_v1_0_1.zipをダウンロードして下さい。
開発環境はArduino IDEです。