起源:一条改变我的帖子
故事要从雪球说起。
某天刷雪球时,看到 @大道无形我有型 分享的一个训练方法:
Zone2 55分钟 + Zone4-5 1-2分钟
据说这种训练方式对降低血脂和坏胆固醇(LDL)特别有效。作为一个久坐的程序员,看到这个方法时,我立刻意识到:这正是我需要的。
不是那种"收藏 = 学会"的自我安慰,而是真的想要执行。
于是我做了第一件事:买了一条 Polar 心率带。
从执行到系统化
Polar 心率带到手后,我开始按照 Zone2 的方法训练。但很快我发现一个问题:
数据太分散了。
Polar 的 app 只能看训练数据,而我想知道的是:
- 今天的训练对身体恢复有什么影响?
- 睡眠质量和训练强度有什么关系?
- 我的 HRV(心率变异性)趋势如何?
这些问题,单靠 Polar 无法回答。
于是我开始构建 VitalMatrix——一个整合多源健康数据的个人管理系统。
数据来源:三驾马车
Polar:训练的核心
Polar 心率带提供了最精准的心率数据,这是 Zone2 训练的基础。
系统从 Polar 获取:
- 训练记录:每次运动的时长、类型、心率曲线
- 心率区间分布:Zone1-5 各区间的时间占比
- 训练负荷(TRIMP):量化每次训练的强度
- 夜间恢复心率:评估身体的恢复状态
Oura:睡眠与恢复
训练只是健康的一部分,恢复同样重要。
在调研了各种睡眠监测设备后,我选择了 Oura Ring,原因很简单:
- 佩戴无感:戒指比手表舒服太多,睡觉时几乎感觉不到
- 续航惊人:5-7 天充电一次,不用天天惦记
- 数据丰富:睡眠阶段、HRV、血氧、体温变化一应俱全
- 口碑出色:在量化自我(Quantified Self)社区评价很高
Oura 提供的数据:
- 睡眠质量:深睡、浅睡、REM 各阶段时长
- HRV 趋势:心率变异性是恢复状态的金标准
- 准备度评分:综合评估今天是否适合高强度训练
- 压力指标:白天的压力水平监测
- 血氧饱和度:夜间血氧的变化趋势
饮食:被忽视的变量
训练和睡眠都到位了,但还有一个关键变量:吃了什么。
系统集成了 AI 视觉识别,拍张照就能分析:
- 食物种类识别
- 营养成分估算(碳水、蛋白质、脂肪)
- 热量计算
虽然精度不如手动记录,但胜在低摩擦。毕竟,能坚持用的工具才是好工具。
技术实现
架构概览
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Polar │ │ Oura │ │ 饮食拍照 │
│ 心率带 │ │ 戒指 │ │ AI识别 │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────┼────────────────┘
▼
┌─────────────────┐
│ VitalMatrix │
│ 后端服务 │
│ FastAPI + PG │
└────────┬────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Web │ │ 小程序 │ │ API │
│ 管理台 │ │ 移动端 │ │ MCP │
└──────────┘ └──────────┘ └──────────┘
技术栈
| 模块 | 技术选型 |
|---|---|
| 后端 | FastAPI + Python 3.10 |
| 数据库 | PostgreSQL + SQLAlchemy |
| 缓存 | Redis |
| 前端 | React + Vite + TailwindCSS |
| 小程序 | 微信原生 + ECharts |
| AI 服务 | DeepSeek / Qwen / Gemini Vision |
核心功能
每日健康建议
系统综合训练数据和恢复状态,生成个性化的建议:
- 今天 HRV 较低,建议进行轻度恢复性训练
- 连续 3 天高强度训练,建议休息一天
- 睡眠质量下降,关注压力管理
风险标记
系统会自动标记 9 种潜在风险信号:
- 训练过度(连续高负荷)
- 恢复不足(HRV 持续走低)
- 睡眠紊乱(深睡比例异常)
- ...
趋势可视化
7 天滚动趋势图,一眼看清:
- 训练时长变化
- Zone2 占比
- TRIMP 累积
- HRV 波动
为什么要自己做?
市面上有很多健康管理 app,为什么还要自己造轮子?
1. 数据所有权
所有健康数据存储在自己的服务器上,不担心隐私泄露,不担心服务下线数据丢失。
2. 长期积累
我的目标是积累 足够长时间 的个人健康数据——5年、10年甚至更久。商业服务很难保证这种持续性。
3. 自由探索
有了原始数据,我可以自由地探索各种假设:
- Zone2 训练真的能降低我的静息心率吗?
- 睡眠和训练恢复之间的量化关系是什么?
- 饮食对 HRV 有什么影响?
这些问题,只有自己掌握数据才能回答。
4. 低成本
除了硬件(Polar 心率带 + Oura 戒指),软件部分几乎零成本。部署在自己的服务器上,长期运行的成本可以忽略不计。
下一步:Pattern Discovery
目前系统已经跑了一段时间,数据在持续积累。下一步我想做的是:
发现健康和不健康的 Pattern
比如:
- 什么样的训练模式让我的 HRV 提升最快?
- 哪些饮食习惯会导致睡眠质量下降?
- 压力大的时期,什么样的恢复策略最有效?
这些问题的答案,藏在数据里。我需要做的就是持续记录、持续分析。
写在最后
回想起来,这一切都始于雪球上的一条帖子。
Zone2 55分钟 + Zone4-5 1-2分钟
一个简单的训练方法,却让我开始认真对待自己的健康,并最终构建了一套完整的数据系统。
健康管理的本质,其实就是两件事:
- 持续记录——你无法改善你不测量的东西
- 长期坚持——短期数据没有意义,趋势才有价值
VitalMatrix 就是帮我做好这两件事的工具。
项目已在 GitHub 开源,如果你也想掌控自己的健康数据:
https://github.com/anon019/VitalMatrix
希望这个项目能陪伴我,也陪伴你,走向更健康的未来。