# 妈妈计数器设计文档 v2.0 — 商品级完整方案

**版本**: v2.0  
**日期**: 2026-03-22  
**状态**: 设计中  
**核心方向**: Web优先验证 + 实体按键交互 + 商品级体验  

> 本文档涵盖从MVP到商品级的完整功能设计，包括统计功能、声纹录制、联网后台、新手教学等模块。

---

## 版本变更记录

| 版本 | 日期 | 变更内容 |
|------|------|----------|
| v1.0.0 | 2026-03-21 | 基础设计方案，ESP32-C3 + MAX9814 |
| v1.1.0 | 2026-03-21 | 硬件升级，微雪ESP32-S3 1.85寸一体化 |
| **v2.0** | **2026-03-22** | **Web优先策略，完整实体按键交互设计** |

---

## 一、设计哲学

### 1.1 为什么Web优先？

| 维度 | App方案 | Web方案 |
|------|---------|---------|
| 开发周期 | 4-6周 | 1-2周 |
| 跨平台 | 需iOS+Android双端 | 一次开发，全平台 |
| 用户门槛 | 需下载安装 | 扫码即用 |
| 迭代成本 | 应用商店审核 | 即时部署 |
| 未来迁移 | 技术债务高 | React可包装成App |

**结论**: Web方案实现MVP最快，验证产品逻辑后可无缝迁移到App。

### 1.2 为什么实体按键优先？

微雪ESP32-S3 1.85寸开发板配备2个实体按键，这是硬件交互的核心：

- **可靠性**: 实体按键比触屏更适合儿童/老人操作
- **反馈感**: 物理按压提供明确的操作确认
- **盲操性**: 无需看屏幕即可完成常用操作
- **省电**: 相比触屏，按键唤醒功耗更低

---

## 二、商品级功能全景

### 2.1 功能矩阵

| 功能模块 | 硬件端 | Web端 | 优先级 | 说明 |
|----------|--------|-------|--------|------|
| **基础计数** | ✅ | ✅ | P0 | 实时显示今日次数 |
| **时段统计** | ✅ | ✅ | P0 | 早/上/下/晚分布 |
| **日历视图** | ❌ | ✅ | P1 | 历史数据日历热力图 |
| **趋势对比** | ❌ | ✅ | P1 | 周对比、月对比 |
| **声纹录制** | ✅ | ✅ | P1 | 设备端5组样本+Web管理 |
| **灵敏度调节** | ✅ | ✅ | P1 | 多档位阈值设置 |
| **新手引导** | ✅ | ❌ | P1 | 首次开机教学流程 |
| **翻转静音** | ✅ | ❌ | P2 | 陀螺仪姿态检测 |
| **多设备管理** | ❌ | ✅ | P2 | 一个账号多台设备 |
| **数据导出** | ❌ | ✅ | P2 | CSV/JSON导出 |
| **分享功能** | ❌ | ✅ | P3 | 生成分享卡片 |

### 2.2 完整用户旅程

```
┌─────────────────────────────────────────────────────────────────────┐
│                         用户生命周期                                 │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  【认知】    【购买】      【开箱】      【使用】      【分享】       │
│    ↓          ↓            ↓            ↓            ↓             │
│  看到介绍   下单购买     新手教学     日常使用      晒数据          │
│  产生好奇   等待物流     声纹录制     查看统计      推荐朋友        │
│             收到包裹     WiFi配置     设置优化                        │
│                        佩戴使用                                     │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘
```

---

## 三、系统架构

```
┌─────────────────────────────────────────────────────────────────┐
│                        用户层 (Web/微信)                         │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │
│  │  数据看板     │  │  设备管理     │  │  声纹训练 (WebRTC)   │  │
│  │  (日历/趋势)  │  │ (WiFi/配置)   │  │  (录音上传)          │  │
│  └──────────────┘  └──────────────┘  └──────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                              ↑ ↓ HTTPS/WebSocket
┌─────────────────────────────────────────────────────────────────┐
│                        服务层 (轻量级)                           │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │
│  │  REST API    │  │  设备网关     │  │  推送服务 (SSE)      │  │
│  │  (数据查询)   │  │ (MQTT/HTTP)   │  │  (实时状态)          │  │
│  └──────────────┘  └──────────────┘  └──────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                              ↑ ↓ MQTT over TLS
┌─────────────────────────────────────────────────────────────────┐
│                      设备层 (ESP32-S3)                          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │
│  │  麦克风监听   │  │  实体按键     │  │  屏幕UI渲染          │  │
│  │  (本地计数)   │  │  (KEY1/KEY2)  │  │  (状态机驱动)        │  │
│  └──────────────┘  └──────────────┘  └──────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
```

---

## 三、实体按键设计规范

### 3.1 硬件按键定义

微雪ESP32-S3 1.85寸开发板提供2个实体按键：

| 按键 | 物理位置 | 功能名称 | 基本功能 | 长按功能 |
|------|----------|----------|----------|----------|
| **KEY1** | 左侧 | 功能键 | 短按: 切换显示模式 | 长按3秒: 进入设置菜单 |
| **KEY2** | 右侧 | 确认键 | 短按: 确认/下一项 | 长按5秒: 开关机 |

### 3.2 显示模式循环 (KEY1短按)

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   计数模式 ──→ 今日统计 ──→ 本周趋势 ──→ 电池状态 ──→ (循环) │
│      ↑__________________________________________↓          │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

**各模式界面**:

| 模式 | 显示内容 | 按键响应 |
|------|----------|----------|
| **计数模式** | 大数字"今日已喊妈妈: XX次" | KEY1: 切到今日统计 |
| **今日统计** | 时段柱状图 (早/上/下/晚) | KEY1: 切到本周趋势 |
| **本周趋势** | 7天折线图 | KEY1: 切到电池状态 |
| **电池状态** | 电量% + 预计续航 | KEY1: 切回计数模式 |

### 3.3 设置菜单 (KEY1长按3秒进入)

```
┌─────────────────────────────────┐
│  ⚙️ 设置菜单                     │
│                                 │
│  > 1. 声纹录制                   │
│    2. WiFi配置                   │
│    3. 灵敏度调节                 │
│    4. 查看设备ID                 │
│    5. 恢复出厂                   │
│    6. 返回                       │
│                                 │
│  KEY1: 选择  KEY2: 确认/返回     │
└─────────────────────────────────┘
```

**菜单操作规则**:
- KEY1短按: 循环选择菜单项 (带>光标)
- KEY2短按: 进入选中项 / 确认当前操作
- KEY1长按3秒: 返回上级菜单

### 3.4 开关机逻辑 (KEY2长按5秒)

```
长按KEY2 (5秒)
      ↓
┌─────────────┐
│  关机确认?   │
│  [确认] [取消]│
└─────────────┘
      ↓ KEY2短按确认
进入Deep Sleep (功耗<50μA)
      ↓
任意按键唤醒 → 显示开机画面 → 恢复计数模式
```

---

## 四、Web模拟器 v2.0 规范

### 4.1 模拟器目标

作为硬件开发的debug工具，Web模拟器必须**100%还原**实体按键交互逻辑：

1. **界面1:1还原**: 360×360分辨率，GC9A01配色方案
2. **按键逻辑还原**: KEY1/KEY2的短按/长按行为完全一致
3. **状态机验证**: 所有界面跳转可在模拟器中验证
4. **数据模拟**: 模拟声音触发、电量变化、翻转检测

### 4.2 模拟器界面布局

```
┌──────────────────────────────────────────────────────────────┐
│                     Web Simulator v2.0                       │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │                                                      │   │
│  │              [ 1.85寸屏幕仿真区域 ]                    │   │
│  │                   360×360像素                        │   │
│  │                                                      │   │
│  │                   今日已喊妈妈                        │   │
│  │                      ┌─────┐                         │   │
│  │                      │  23 │   ← 当前计数            │   │
│  │                      └─────┘                         │   │
│  │                        次                            │   │
│  │                                                      │   │
│  │   ○ 计数  ○ 今日  ○ 本周  ○ 电池  ← 模式指示器       │   │
│  │                                                      │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
│  ┌────────────────┐              ┌────────────────┐         │
│  │    [ KEY1 ]    │              │    [ KEY2 ]    │         │
│  │   短按: 切换    │              │   短按: 确认    │         │
│  │   长按: 设置    │              │   长按: 开关机  │         │
│  └────────────────┘              └────────────────┘         │
│                                                              │
│  [键盘快捷键]  Q=KEY1短按  W=KEY2短按  A=KEY1长按  S=KEY2长按 │
│                                                              │
├──────────────────────────────────────────────────────────────┤
│  [🔊 模拟声音触发]  [🔄 模拟翻转]  [⚡ 电量: 67%]  [📊 导出日志] │
└──────────────────────────────────────────────────────────────┘
```

### 4.3 状态机实现

```javascript
// 设备状态机 (模拟器与固件共用)
const DeviceStateMachine = {
  // 系统状态
  states: {
    IDLE: 'idle',           // 正常显示模式
    SETTING_MENU: 'setting', // 设置菜单
    WIFI_CONFIG: 'wifi',     // WiFi配置
    VOICE_TRAIN: 'voice',    // 声纹训练
    POWER_OFF: 'off'        // 关机状态
  },
  
  // 显示模式
  displayModes: ['COUNT', 'TODAY', 'WEEK', 'BATTERY'],
  currentModeIndex: 0,
  
  // 设置菜单项
  menuItems: [
    { id: 'voice', label: '声纹录制' },
    { id: 'wifi', label: 'WiFi配置' },
    { id: 'sensitivity', label: '灵敏度' },
    { id: 'deviceId', label: '设备ID' },
    { id: 'reset', label: '恢复出厂' },
    { id: 'back', label: '返回' }
  ],
  selectedMenuIndex: 0,
  
  // 按键处理
  handleKey1(shortPress) {
    if (this.currentState === this.states.IDLE) {
      if (shortPress) {
        // 短按: 循环切换显示模式
        this.currentModeIndex = (this.currentModeIndex + 1) % this.displayModes.length;
        this.render();
      } else {
        // 长按: 进入设置菜单
        this.currentState = this.states.SETTING_MENU;
        this.selectedMenuIndex = 0;
        this.render();
      }
    } else if (this.currentState === this.states.SETTING_MENU) {
      if (shortPress) {
        // 菜单内短按: 循环选择
        this.selectedMenuIndex = (this.selectedMenuIndex + 1) % this.menuItems.length;
        this.render();
      } else {
        // 长按: 返回
        this.currentState = this.states.IDLE;
        this.render();
      }
    }
  },
  
  handleKey2(shortPress) {
    if (this.currentState === this.states.IDLE) {
      if (!shortPress) {
        // 长按: 开关机
        this.showPowerDialog();
      }
    } else if (this.currentState === this.states.SETTING_MENU) {
      const selected = this.menuItems[this.selectedMenuIndex];
      if (selected.id === 'back') {
        this.currentState = this.states.IDLE;
      } else {
        this.enterSubMenu(selected.id);
      }
      this.render();
    }
  }
};
```

### 4.4 界面渲染规范

**色彩方案** (匹配GC9A01驱动): 

```css
:root {
  --bg-color: #000000;        /* 背景黑 */
  --primary: #07E0;           /* 霓虹绿 */
  --text: #FFFFFF;            /* 白 */
  --secondary: #8410;         /* 灰 */
  --accent: #00FFFF;          /* 青 */
  --warning: #FF6600;         /* 橙 */
}
```

**字体规范**:
- 大数字: 72px 等宽字体 (Share Tech Mono)
- 标题: 18px 思源黑体
- 状态: 12px 等宽

---

## 五、用户流程设计

### 5.1 首次开机流程

```
[设备首次通电]
       ↓
[开机画面] (Logo动画 2秒)
       ↓
[欢迎界面] "妈妈计数器" + 版本号
       ↓ KEY2短按
[声纹录制引导] "请让宝贝喊5次妈妈"
       ↓
[录制界面] 显示波形 + 进度 1/5
       ↓ 检测到声音
自动记录样本 → 进度+1 → 循环直到5/5
       ↓
[WiFi配置引导] 显示二维码 / 手动输入
       ↓ KEY2短按跳过
[佩戴教学] 动画演示正确佩戴
       ↓ KEY2短按
[完成画面] "已准备就绪!"
       ↓
[进入计数模式] 开始监听
```

### 5.2 日常使用流程

```
[计数模式] 显示今日次数 (默认界面)
      ↓ KEY1短按
[今日统计] 显示时段分布 (早/上/下/晚)
      ↓ KEY1短按
[本周趋势] 显示7天柱状图
      ↓ KEY1短按
[电池状态] 显示电量 + 续航
      ↓ KEY1短按
[回到计数模式]
      ↓ KEY1长按3秒
[设置菜单] 可配置各项参数
```

---

## 六、核心功能详解

### 6.1 统计功能 — 从数字到洞察

#### 6.1.1 日历热力图

**价值**: 一眼看出孩子哪天喊妈妈最多，发现规律

**Web端展示**:
```
┌─────────────────────────────────────────┐
│  📅 2026年3月                           │
├─────────────────────────────────────────┤
│  日  一  二  三  四  五  六             │
│   1   2   3   4   5   6   7             │
│  23  45  38  52  41  67  55             │
│   8   9  10  11  12  13  14             │
│  42  39  51  48  44  58  61             │
│  15  16  17  18  19  20  21             │
│  37  43  49  52  46  53  59             │
│  22  23  24  25  26  27  28             │
│  41  38  45  50  47  44  42             │
│  29  30  31                             │
│  48  51  39                             │
│                                         │
│  颜色: ░低 █中 ▓高                      │
│  本月总计: 1,423次                      │
│  日均: 46次                             │
└─────────────────────────────────────────┘
```

**洞察维度**:
| 维度 | 展示方式 | 价值 |
|------|----------|------|
| 单日峰值 | 颜色最深的格子 | 发现"高需求"日子 |
| 周末vs工作日 | 列对比 | 判断陪伴时间影响 |
| 月度趋势 | 整月颜色分布 | 看到成长变化 |

#### 6.1.2 横向对比

**功能**: 选择任意两天/两周进行对比

```
┌─────────────────────────────────────────┐
│  📊 数据对比                             │
├─────────────────────────────────────────┤
│                                         │
│  对比项        3月15日      3月22日      │
│  ─────────────────────────────────────  │
│  总次数           37          59  ▲59%   │
│  早晨(6-9点)       8          12         │
│  上午(9-12点)     12          18         │
│  下午(12-18点)     9          15         │
│  晚上(18-22点)     8          14         │
│                                         │
│  💡 洞察: 周末孩子更活跃，晚上增幅最大    │
│                                         │
└─────────────────────────────────────────┘
```

---

### 6.2 声纹录制 — 个性化识别

#### 6.2.1 为什么需要声纹录制？

**问题**: 默认"妈妈"识别模型基于成人语音训练，儿童语音特征差异大
- 音调更高 (儿童300-400Hz vs 成人150-200Hz)
- 发音不标准 ("麻麻"、"妈~妈~")
- 个体差异大

**目标**: 通过5-10组样本训练专属模型，识别准确率从70%提升到95%+

#### 6.2.2 设备端录制流程

```
[设置菜单] → 选择"声纹录制"
      ↓
┌─────────────────────────────────┐
│  🎤 声纹录制 1/5                 │
│                                 │
│  请让宝贝喊"妈妈"               │
│                                 │
│    ∿∿∿∿∿∿∿∿∿∿∿∿∿∿∿           │
│    [实时波形显示]                │
│                                 │
│  检测到声音...                  │
│                                 │
│  KEY2 = 重新录制                │
│  KEY1长按 = 返回                │
└─────────────────────────────────┘
      ↓ 检测到有效声音
自动保存样本 → 进度+1
      ↓ 5组完成
┌─────────────────────────────────┐
│  ✅ 声纹录制完成                 │
│                                 │
│  已记录5组样本                   │
│  识别准确率: 预估 94%            │
│                                 │
│  是否测试识别?                  │
│  [是]  [否]                     │
└─────────────────────────────────┘
```

#### 6.2.3 Web端声纹管理

```
┌─────────────────────────────────────────┐
│  🔊 声纹管理                             │
├─────────────────────────────────────────┤
│                                         │
│  当前样本: 5个                           │
│  识别准确率: 94% (基于测试集)             │
│                                         │
│  [🎤 录制新样本]  [🧪 识别测试]          │
│                                         │
│  ─────────────────────────────────────  │
│  样本列表:                               │
│                                         │
│  ▶ 样本1  [播放] [删除]  质量: 优        │
│  ▶ 样本2  [播放] [删除]  质量: 优        │
│  ▶ 样本3  [播放] [删除]  质量: 良        │
│  ▶ 样本4  [播放] [删除]  质量: 优        │
│  ▶ 样本5  [播放] [删除]  质量: 良        │
│                                         │
│  [重新训练模型]  [恢复默认声纹]          │
│                                         │
└─────────────────────────────────────────┘
```

---

### 6.3 联网与权限 — 数据云端化

#### 6.3.1 架构设计

```
┌─────────────────────────────────────────────────────────────┐
│                        权限体系                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  👑 设备所有者 (家长)                                        │
│  ├── 查看全部数据                                           │
│  ├── 修改设备设置                                           │
│  ├── 管理声纹样本                                           │
│  └── 分享权限给他人                                         │
│                                                             │
│  👀 被分享者 (爷爷奶奶)                                       │
│  └── 只读查看数据 (不可修改)                                 │
│                                                             │
│  🔗 临时访客                                                 │
│  └── 24小时有效链接，查看当日数据                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

#### 6.3.2 后台数据展示

```
┌─────────────────────────────────────────┐
│  👶 小宝的妈妈计数器                     │
├─────────────────────────────────────────┤
│                                         │
│  📊 今日概览                             │
│  ┌──────────┐  ┌──────────┐            │
│  │   59次   │  │  1,423次 │            │
│  │  今日    │  │  本月    │            │
│  └──────────┘  └──────────┘            │
│                                         │
│  📈 最近7天趋势                          │
│     ▲                                    │
│    ╱ ╲      ╱╲                          │
│   ╱   ╲____╱  ╲____                     │
│  ╱                  ╲____               │
│                                         │
│  📅 本月日历热力图                        │
│  [████░░██▓▓░░████]                     │
│                                         │
│  🔔 今日高峰: 下午3点 (15次/小时)         │
│                                         │
│  [查看完整日历]  [导出数据]  [分享]       │
│                                         │
└─────────────────────────────────────────┘
```

---

### 6.4 新手教学 — 零门槛上手

#### 6.4.1 教学流程设计

**原则**: 不强制、可跳过、随时可回看

```
[首次开机] → [欢迎画面]
      ↓
┌─────────────────────────────────┐
│  👋 欢迎使用妈妈计数器           │
│                                 │
│  3步完成设置:                   │
│  1. 录制声纹 (2分钟)            │
│  2. 连接WiFi (1分钟)            │
│  3. 佩戴教学 (1分钟)            │
│                                 │
│  [开始设置]  [跳过]             │
└─────────────────────────────────┘

跳过确认:
┌─────────────────────────────────┐
│  ⚠️ 跳过后可以在设置中重新配置   │
│                                 │
│  确定要跳过新手教学吗?          │
│                                 │
│  [返回]  [确定跳过]             │
└─────────────────────────────────┘
```

#### 6.4.2 分步骤教学

**Step 1: 声纹录制**
```
┌─────────────────────────────────┐
│  1/3 录制声纹 🎤                │
│                                 │
│  为什么要录制?                  │
│  每个宝宝喊"妈妈"的声音都不一样，│
│  录制后识别更准确哦~            │
│                                 │
│  请让宝宝对着设备喊5次"妈妈"     │
│                                 │
│  进度: ▓▓▓░░ 3/5               │
│                                 │
│  [下一步]  [跳过]               │
└─────────────────────────────────┘
```

**Step 2: WiFi配置**
```
┌─────────────────────────────────┐
│  2/3 连接WiFi 📶                │
│                                 │
│  连接WiFi后，可以在手机上        │
│  查看详细统计报告~              │
│                                 │
│  [扫描二维码配置]               │
│                                 │
│  或手动输入:                    │
│  网络: [____________]          │
│  密码: [____________]          │
│                                 │
│  [连接]  [跳过]                 │
└─────────────────────────────────┘
```

**Step 3: 佩戴教学**
```
┌─────────────────────────────────┐
│  3/3 佩戴教学 👶                │
│                                 │
│  [动画演示]                     │
│                                 │
│  建议佩戴位置:                  │
│  • 挂在胸前 (效果最好)          │
│  • 放在口袋 (效果一般)          │
│                                 │
│  💡 提示:                       │
│  • 屏幕朝外                     │
│  • 距离嘴巴30cm以内             │
│                                 │
│  [完成]  [再看一遍]             │
└─────────────────────────────────┘
```

---

### 6.5 软硬件一体化体验

#### 6.5.1 完整体验闭环

| 阶段 | 硬件体验 | 软件体验 | 情感价值 |
|------|----------|----------|----------|
| **开箱** | CNC外壳质感、磁吸充电、定制包装 | App下载引导、二维码配对 | "这钱花得值" |
| **首次使用** | 屏幕动画引导、LED状态指示 | 新手教程、实时反馈 | "很简单，孩子也喜欢" |
| **日常使用** | 佩戴舒适、续航18h+、翻转静音 | 每日报告推送、成就徽章 | "原来孩子喊了这么多次" |
| **数据回顾** | 一键同步、离线缓存 | 周报/月报、成长曲线 | "看着数据觉得很有意思" |
| **社交分享** | 生成精美数据卡片 | 一键分享朋友圈 | "晒娃新方式" |

#### 6.5.2 异常处理

| 异常场景 | 硬件反馈 | 软件反馈 |
|----------|----------|----------|
| 电量低于20% | 屏幕显示🔋+橙色闪烁 | Web推送低电量提醒 |
| WiFi断开 | 屏幕显示❌+尝试重连 | App显示离线状态 |
| 识别率下降 | 提示"建议重新录制声纹" | Web显示识别准确率趋势 |
| 设备翻转 | 自动暂停，屏幕显示🔄 | 记录静音时段 |

---

## 七、Web端应用设计

### 6.1 页面结构

```
Web应用
├── 📊 数据看板 (首页)
│   ├── 今日/本周统计卡片
│   ├── 7天趋势图
│   ├── 今日时段分布
│   └── 设备状态
├── 📅 历史记录
│   ├── 日历热力图
│   ├── 单日详情
│   └── 数据导出
├── 🔊 声纹管理
│   ├── 样本列表
│   ├── 录制新样本
│   └── 识别测试
└── ⚙️ 设备设置
    ├── WiFi配置
    ├── 灵敏度调节
    ├── 开关机时间
    └── 固件更新
```

### 6.2 技术栈

| 层级 | 技术选型 | 理由 |
|------|----------|------|
| 前端框架 | React + TypeScript | 类型安全，组件化 |
| UI组件 | Ant Design Mobile | 移动端友好 |
| 图表库 | ECharts | 功能丰富，支持热力图 |
| 状态管理 | Zustand | 轻量级 |
| 后端 | Node.js + Express | 快速开发 |
| 数据库 | MongoDB | 适合时序数据 |
| 实时通信 | Socket.io | 设备状态推送 |

---

## 八、交付里程碑

### 8.1 开发阶段规划

| 阶段 | 核心目标 | 交付物 | 验收标准 | 预计时间 |
|------|----------|--------|----------|----------|
| **MVP** | 基础功能验证 | Web模拟器 v2.0 | 实体按键交互完整可用 | 5天 |
| **V1.0** | 软件闭环 | Web数据看板 + 声纹管理 | 日历/趋势/声纹功能完整 | 7天 |
| **V1.5** | 软硬件打通 | ESP32固件 + 云API | 设备联网，数据同步正常 | 7天 |
| **V2.0** | 商品级体验 | 完整产品 | 新手引导、权限体系、异常处理 | 5天 |

### 8.2 功能优先级

**P0 - 必须有 (MVP)**:
- [x] 实体按键交互设计
- [x] 4种显示模式
- [ ] Web模拟器完整实现
- [ ] 基础计数功能

**P1 - 应该有 (V1.0)**:
- [ ] 日历热力图
- [ ] 趋势对比
- [ ] 声纹录制 (设备端+Web)
- [ ] 新手引导流程
- [ ] WiFi配置

**P2 - 可以有 (V1.5)**:
- [ ] 多设备管理
- [ ] 权限分享
- [ ] 数据导出
- [ ] 翻转静音

**P3 - 锦上添花 (V2.0)**:
- [ ] 社交分享卡片
- [ ] 成就系统
- [ ] AI洞察报告
- [ ] 多语言支持

---

## 九、附录

### 8.1 快捷键映射

| 按键 | 模拟器操作 |
|------|-----------|
| Q | KEY1短按 (切换) |
| W | KEY2短按 (确认) |
| A | KEY1长按3秒 (设置) |
| S | KEY2长按5秒 (开关机) |
| Space | 模拟声音触发 |
| F | 模拟翻转静音 |

### 8.2 调试输出格式

```
[STATE] IDLE → SETTING_MENU
[KEY] KEY1_LONG_PRESS (3000ms)
[MODE] COUNT → TODAY
[TRIGGER] Energy=5234 Threshold=5000 COUNT=24
[FLIP] isFlipped=true → 暂停监听
```

---

*文档版本: v2.0*  
*最后更新: 2026-03-22*  
*作者: Jetton*
