ESP32用データロガープログラムの作成 その3
前回の「ESP32用データロガープログラムの作成 その2」の続きです。
今回はロガーとしての機能(コマンドやデータ保存形式等)を追加していきます。
基本的機能はシリアルから受信した1行データ(末尾[\r])をMicroSDカードにファイルとして保存することです。
その他ファイルのオープンやクローズ、RTCの日時の設定、ロガーの動作設定等のロガーコマンドのもシリアル通信により行うこととします。現在想定しているロガーコマンドは次のものです。
また、電源電圧が低下した場合にオープン中のファイルをクローズする機能も付けます。電源電圧低下を検知するハードウェアはエムイーシステムさんが作成されます。(私はそれをIO入力で待ち受けるだけです。)
【ロガーコマンド】
1. | #DAY yyyy/mm/dd[\r] | : | 日付設定 |
2. | #TIME hh:mm:ss[\r] | : | 時間設定 |
3. | #FILE xxxx[\r] | : | xxxxファイル名で出力ファイルオープン |
4. | #FILE DAYTIME[\r] | : | RTCの日付時間名で出力ファイルオープン |
5. | #FILE DAY[\r] | : | RTCの日付名で出力ファイルオープン |
6. | #FILE TIME[\r] | : | RTCの時間名で出力ファイルオープン |
7. | #CLOSE[\r] | : | オープン中の出力ファイルをクローズ |
8. | #TIME SET[\r] | : | 保存する1行文字列の前に時間(例13.24.01)挿入 |
9. | #TIME CLR[\r] | : | 保存する文1行字列の前に時間挿入なし |
※上記コマンド以外に非公開のメンテナンス用のコマンドも実装しています。
動作時のディスプレイ(oled)表示イメージは次のようになります。
左が電源投入時で、右がログデータ受信時です。
-
左上の「S」は #TIME SET[\r] の状態を示す。なお、#TIME CLR[\r] の時は「C」と表示します。
-
左中の「O」はログデータ保存用ファイルがオープン中であることを示します。なお、ログデータ保存用ファイルをオープンしていない時は何も表示しない。
-
左下の「*」はログデータ1行分をファイルに保存したことを示します。直ぐに消灯します。書き続けていれば連続表示して見えます。
-
最下の文字列「2018.10.15_16_00_52」はファイル名を指します。実際のファイル名にはファイル拡張子「.txt」が付いています。ファイルをオープンしてないときは何も表示しない。
今回はここまで
あとはちゃんと作ったプログラムが動いているかの動作確認作業(検査・デバッグ行程)とになります。