プロジェクト概要
目的
M5Stack Unit CamS3-5MP をカバンに装着し、スマートフォン(PWA)から操作する vlog 用カメラ を構築する。 日常の移動・お出かけを「撮りっぱなし」で記録し、インターバル写真やタイムラプスとして残し、SNS にすぐ共有することを目指す。
要件
ユーザーから提示された要件は以下のとおり。
| # | 要件 | 対応する機能設計 |
|---|---|---|
| 1 | モジュールをカバンに付けて vlog 用にする | ハードウェア / アーキテクチャ |
| 2 | スマホアプリで録画状況や録画設定 | 録画状況・録画設定 |
| 3 | 一定時間の写真撮影モード | インターバル写真 |
| 4 | タイムラプスモード | タイムラプス |
| 5 | 撮影画像のプレビュー | 撮影画像プレビュー |
| 6 | SNS 投稿機能 | SNS 投稿 |
確定した方針(壁打ち結果)
| 項目 | 決定 | 理由 |
|---|---|---|
| スマホアプリ | PWA / モバイル Web | インストール不要・iOS/Android 両対応・開発が最速 |
| 接続方式 | BLE 制御 + WiFi 転送のハイブリッド | 屋外・省電力。制御は BLE、画像転送は WiFi |
| 「録画」の主目的 | インターバル写真 / タイムラプス主体 | ESP32 は本格動画エンコードが苦手。CamS3-5MP の得意領域 |
| SNS 投稿先 | X (Twitter) + Instagram | 既存 API キー資産と共有シートの併用 |
| 開発方針 | 公式 OSS ファームを拡張 | 工場ファームが要件の大半を既に実装済み |
最重要の発見
実機の Unit CamS3-5MP には、工場出荷時点で要件の大半を満たす OSS ファームが入っている。
- 給電すると WiFi AP
UnitCAMS3-WiFiが立ち上がり、http://192.168.4.1で内蔵 Web UI が開く - REST API(capture / stream / control / config / poster)を備える → PWA から直接利用可能
- EzData クラウドへのインターバル自動アップロード機能を内蔵
→ **「ゼロから作る」のではなく「公式ファームを拡張し、PWA を被せる」**のが最短かつ低リスク。詳細は全体アーキテクチャを参照。
フェーズ戦略
| フェーズ | 内容 | 対象機能 |
|---|---|---|
| Phase 1 | 工場 REST API をそのまま使い PWA を被せる(WiFi のみ) | 録画設定・プレビュー・インターバル写真 |
| Phase 2 | ファームに BLE GATT を追加し省電力化。WiFi はオンデマンド | BLE ハイブリッド・オフライン PWA |
| 横断 | タイムラプス生成・SNS 投稿 | ffmpeg.wasm / Workers 中継 |