去年冬天我妈住院,我在医院陪床。
隔壁床的阿姨,儿子在深圳,一个月回来一次。有天下午她拿着手机戳了半天,抬头问我:“小伙子,你帮我看看,我儿子发的照片在哪儿?”
我接过来,微信九十多条未读,照片埋在某个群的第三十几条消息里。翻出来递给她,她盯着屏幕看了很久,说了句:“他这是在哪儿啊。”
那一下我挺不是滋味的。
我们做技术的总有种错觉,觉得给爸妈换台新手机、装几个 APP,就叫尽孝了。可微信里那个层层嵌套的相册入口,对他们来说跟一道解不开的数学题没区别。
腾讯数码前阵子有篇文章,标题挺扎心:《一年就回几趟家,讲真,少给父母买智能产品》。我一开始不服气,看完觉得说得对。你买的智能音箱他们不敢用,你装的摄像头他们觉得被监视。因为那些东西的交互逻辑是给你设计的,不是给他们设计的。
所以这两年我一直在找一个东西:不用学、不用点、放桌上就能用。
前几天在立创开源刷到一个项目,我觉得找到了。
先看这是个什么东西
AI智能相框(小智电子相册 PhotoTVbox)作者:ccy-studio | 立创开源·星火计划2025
数据:2.1万浏览、218 收藏、25 条评论
授权:GPL 3.0,原理图、PCB、BOM、3D外壳、固件源码、上位机源码,一个不落
复刻成本:约 200 元
功能说起来一句话就完了:一个 3.5 寸的桌面相框,你在小程序里发照片它自动显示,你对它说话它能回,到点了它提醒吃药。
听着简单。但把它拆开看,工程含量比外观高太多了。
一、为什么是 ESP32-S3:一个正在发生的趋势
先说个行业观察。
最近圈里在聊 OpenClaw、MimiClaw,“养龙虾”刷屏了小半个月。热闹背后其实是一个很明确的信号:AI 智能体正在从云端往端侧走,从 Linux 往 MCU 走。
搁两年前,你想做个会说话的设备,第一反应是上树莓派跑 Python。现在越来越多人直接拿几十块的 ESP32 就干了。前几天还看到一篇《从 OpenClaw 到 MimiClaw:AI 助手开始往 ESP32 走》,讨论的就是这件事。
这个相框,正好是这波趋势里一个挺完整的样本。
主控 ESP32-S3,8MB PSRAM + 16MB Flash。
PSRAM 是关键。LVGL 跑双缓冲、解 JPEG 图片,内存吃得凶,片内那点 SRAM 根本不够看。16MB 的 Flash 则装得下 UI 资源、中文字库,还留得出 OTA 双分区。
选型上没什么炫技的地方,刚好够用,也不浪费。做过产品的人才会这么选。
二、最见功力的地方,在电源
我看开源项目有个习惯:先翻电源部分。
因为电源最能看出作者是玩票的,还是真做过量产。
这个项目的电源,我看完的评价是:作者被坑过。
核心是 BQ24075,做的是动态电源路径管理(DPPM)。翻译成人话:插着 USB 的时候,系统由适配器直接供电,同时给电池充电;拔掉 USB,无缝切到电池。整个过程系统不断电、不重启。
没做过的人可能觉得,不就是充电吗。
实际上没有路径管理的方案,插拔那一瞬间电压会跌,MCU 直接复位,屏幕黑一下。这种 bug 在实验室不一定复现,到了用户手里天天遇到,还查不出来。
但真正让我停下来看了两遍的,是它怎么处理“插电自动开机”。
设备用了一颗专用长按开关机芯片(EC190708)做电子开关。矛盾就来了:用户希望“没电关机后,一插上 USB 就自动开机”,可开关机芯片的逻辑是等你手动按下去。
作者的解法是加一路 NMOS,检测到 USB 插入,就把开关机芯片的按键脚拉低。相当于电路自己帮你按了一下。
思路一点都不复杂。但它属于你没踩过就想不到、踩过一次终身难忘的那类经验。开源项目里愿意把这种细节公开的,真不多。
避坑提醒BQ24075 的 NTC 脚,要么接热敏电阻做温度保护,要么用 10K 电阻拉到设定值。两个都不接,充电直接不工作,而且它不报错。你多半会以为是芯片买到假的。
三、UI 用 LVGL,但值钱的是它的开发方式
界面是 LVGL 做的,这不稀奇。稀奇的是作者怎么开发它。
他搭了一套 SDL2 的 PC 模拟器:UI 代码先在电脑上跑起来,鼠标点,实时看效果,调顺了再用 sync_esp_code.py 同步进 ESP-IDF 工程编译烧录。
做过 LVGL 的都懂那个痛苦循环:改一个控件坐标,编译,烧录,上电,眯着眼看效果,一轮两三分钟。一个界面调完,半天就没了。
用模拟器,这个循环压到几秒,还能直接上电脑的调试器打断点。
这套方法跟相框本身没半点关系,但它能原样搬进你自己的任何一个 LVGL 项目。整个项目里,我觉得这块的复用价值最高,比任何一张电路图都值钱。
四、语音:站在小智的肩膀上
对话能力是基于小智 AI 二次开发的。
硬件是标准三件套:ES7210 做双麦采集(带回声消除、降噪),ES8311 做播放解码,NS4150B 功放推喇叭。这套组合在小智生态里被验证过无数次,稳。
有意思的是软件层。相框有两个身份:平时是相册,你叫它的时候是语音助手。作者的做法是监听小智的 Idle 事件,对话结束进入空闲,自动切回相册页;被唤醒,跳到对话页。
说白了就是个状态机,但落到体验上,就是“它知道什么时候该退下”。
对老人来说这点特别重要。他们不用去搞懂什么叫“模式”,也不用记得该切到哪一页。
五、再往上:云端、小程序、Web 一整套
如果只做到本地,它就是个电子相框。这个项目往上还搭了一整套:
服务端用 Flask + MQTT,MQTT 推指令和消息,Flask 管账户和文件。
Space 账户隔离,多设备多用户,各看各的,不串号。
客户端用 Uni-app,一套代码同时出小程序和 Web。
这里有个挺现实的细节:小程序因为资质问题上不了架,作者转做了 Web 端。
个人开发者迟早都要撞上这么一次。所以技术方案最好从一开始就留条后路,别把宝全押在一个分发渠道上。
从硬件到驱动,到 RTOS、UI、AI、云端、前端,这一个项目把嵌入式全栈完整跑了一遍。
我很少单独推荐某个项目。但要找个东西系统性练手,这个的性价比是真高。
想复刻的看这里
成本约 200 元(含屏幕,外壳 3D 打印另算)。资料包含原理图、PCB、BOM、3D 模型、固件源码和上位机源码,GPL 3.0 全开放。
三个提醒:
1. NTC 那个坑,前面说了,别忘。
2. 作者的测试服务器不保证长期开着,建议自己私有化部署一套,Flask + MQTT,一台最便宜的云服务器就够。
3. 外壳直接打作者的模型,尺寸和 PCB 是对上的,自己改容易装不进去。
最后说点别的
写这篇的时候,我又想起医院里那位阿姨。
我们这行有种挺常见的傲慢:默认用户会学。会注册、会点击、会自己找入口。可对我爸妈那代人来说,“不用学”本身就是最高级的功能。
一个放在桌上的相框,不用解锁,不用找入口,照片自己就来了,你想说话它就应你。
这里面没一样是前沿技术。ESP32-S3 不新,LVGL 不新,MQTT 更不新。
难的是有人肯花心思去想这么一件事:一个七十岁的人第一次看到它,会伸手去点哪儿。
声明:这个项目是立创开源作者 ccy-studio 的作品,不是我做的。我只是完整拆了一遍,觉得好,值得让更多人看到。想复刻的直接去原项目,记得给作者点个收藏。
原项目:oshwhub.com/yc_chen/ai-smart-photo-frame
你有没有给爸妈做过什么小玩意儿?评论区聊聊,我挺想看的。
想动手的,回复关键词【相框】,我把这个项目的原理图、PCB、BOM、固件源码、外壳 3D 模型打包整理好发你。
另外附一份我自己整理的 LVGL + SDL2 模拟器搭建步骤。
觉得有用的话,点个「在看」
让更多做嵌入式的朋友看到