【开源项目】DIY智能手表Monica:极客的腕上科技艺术品
发布时间:昨天 17:42
版块:
电子DIY
简介:在这个智能穿戴设备泛滥的时代,一款真正由极客为极客打造的开源智能手表项目——Monica,正在技术爱好者圈子里掀起一股DIY热潮。这款基于ESP32-S3智能手表不仅硬件设计精良,软件架构更是别具匠心
一、原理图
- 主控:ESP32-S3,32M 外置 Flash
- IMU:BMI270 + BM150 (抬手唤醒、计步器、指南针)
- 电源管理:AXP2101
- 其他:SD卡槽、RTC、蜂鸣器、MIC、气压传感、按键
- 屏幕:1.8寸 Amoled 368*448
- 电池:402728 400毫安
PCB
- 单面四层0.8MM,元件比较密集
- 1.27MM 母座用于下载和 USB 连接
- 引出串口和 I2C 接口等,预留用于底板拓展
程序
Monica 的软件设计堪称教科书级别。它采用分层架构,清晰解耦:
- 底层:HAL硬件抽象层,管理应用外设驱动。
- 中间层:使用LVGL图形库和SimpleKV 键值数据库,实现应用与驱动的解耦,让开发更高效。
- 应用层:支持 App 安装、卸载、生命周期管理,甚至可以自定义表盘!只需在 watch_faces 文件夹里放上你的背景图和数字资源,就能拥有独一无二的表盘。
应用、驱动层解耦
- SimpleKV:简单的 Key-Value (键-值) 内存数据库框架,实现两层的数据交互。使用 键 (字符串) 索引数据,切断应用层和驱动层的数据耦合。
- Lvgl: 使用 Lvgl 作上层应用默认图形库,及其文件系统接口
因此,只要设备适配 Lvgl ,就可以直接使用这套 Mooncake UI框架。
驱动层
- HAL:外设驱动的对象抽象
- Hardware Manager:硬件管理层。负责底层的 硬件初始化、运行时的 状态维护更新,例如自动睡眠、抬手唤醒、计步器更新等
- USB MSC模式:为了读写 SD 卡方便,同时按 电源 和 下 按键启动时,会进入 USB MSC 模式,SD 卡会被挂载成 U盘,接上 USB 即可直接读写
应用层
- App基类、安装卸载框架:所有 App 的对象基类,描述了 App 的基础框架。安装卸载框架实现简单的 App 列表管理
- App生命周期管理:支持前后台的 App 运行生命周期 调度器 (单线程,单前台,多后台) ,使用 状态机 (FSM)实现
- 系统内置APP:都是在 App 层之上实现的应用,但 启动动画 和 启动器 会被 Framwaork 框架特殊调用
用户自定义表盘
watch_faces 目录下的每一个文件夹都视作一个表盘
- background目录:存放表盘背景资源 (png、gif)
- number目录:存放从0~9的时间数字资源 (png)
- face.json:资源描述文件,如时间数字坐标等
watch_faces/
|
├── AyanamiRei
│ ├── background
│ │ ├── background.png
│ ├── face.json
│ └── number
│ ├── 0.png
│ ├── ~
│ └── 9.png
|
├── FloatingNum
│ ├── background
│ │ └── background.png
│ ├── face.json
│ └── number
│ ├── 0.png
│ ├── ~
│ └── 9.png
|
└── PixelThinking
├── background
│ ├── background.png
├── face.json
└── number
├── 0.png
├── ~
└── 9.png
存在问题:
当然,Monica 也有它的“遗憾”。原版使用的 1.8 寸屏幕已经停产,这让一些后来者望而却步。但开源的魅力就在于——问题即挑战,限制即创新的起点。
已经有玩家尝试替换其他型号的屏幕,修改驱动代码,甚至重新设计 PCB 来适配新器件。这种“折腾”的过程,恰恰是 DIY 的灵魂所在。
3D模型
完全开源
Monica 最迷人的地方,是它的完全开源。
- 硬件设计:原理图、PCB 文件全部公开,使用嘉立创 EDA 设计,四层板布局紧凑,适合进阶玩家学习。
- 软件代码:GitHub 仓库结构清晰,注释详尽,从驱动到应用层层递进,是学习 ESP32 和嵌入式 GUI 开发的绝佳范本。
- 社区活跃:项目发布以来,已有超过 5000+ 克隆,上百条讨论,有人成功复刻,有人提出改进建议,还有人基于它开发了新功能。
项目地址:
- GitHub: https://github.com/Forairaaaaa/monica
- 嘉立创开源平台: https://oshwhub.com/eedadada/monica
- 项目视频: https://www.bilibili.com/video/BV1AP411Q7dk
实物秀
为什么你应该关注Monica?
如果你是:
- 一个想深入学习 ESP32 和嵌入式开发的工程师;
- 一个热爱动手、喜欢折腾硬件的 Maker;
- 一个想做点酷东西却苦于没有方向的学生;
- 或者只是一个对“智能穿戴”充满好奇的普通人……
那么,Monica 就像一扇门,带你进入一个软硬结合、创意无限的世界。
本文来自公众号:小康师兄,小康师兄新书《从零开始学ESP32物联网应用开发》已全网上市,京东/淘宝/当当均可购买。
昨天 17:42
全部评论