概要
ゼミ室にいた時間を、M5Stack Basicで記録・確認する小型アプリを制作した。A/Bボタンで入室・退室を記録でき、特定のBLEビーコンを検知したときも入退室の候補として扱う。今日の滞在時間、直近7日の合計、1日平均を320×240の画面へまとめ、自身の席に常設した。
背景・目的
研究室で作業する時間が増え、自分がどれだけ研究室に滞在しているかの時間が気になった。毎回入退室をボタンの押下で記録すると、頻繁に押し忘れが起こりそうなので、完全に自動化をしたかった。
制作で考えたこと
BLEビーコンのアドバタイズを主な指標とするが、これは一定間隔で届くとは限らず、検知だけで正確な出席管理をするものではない。そこで、自動検知は補助情報とし、本人がA/Bボタンで記録を確定できる構成にした。毎日の利用では詳細なログより、いま滞在中か、今日どのくらいいたかがすぐ分かることを重視した。
実装・制作内容
ESP32、M5Unified、BLE、Preferencesを用い、入退室セッションをNVSへ保存する。Wi-FiとNTPで日時を取得し、ビーコン名の検知状態、手動・自動の記録元、週合計・平均・当日合計を画面に描画する。機能を切り替えられるマルチモードのファームウェアの一部として、日々の記録に必要な画面と状態管理を実装した。

結果
6月は平均的に10時間/日、多い時は15時間/日ほど研究室に滞在していることがわかった。





