桌面天气屏常亮浪费电,人不在时信息也没人看。有人用毫米波雷达传感器解决了这个问题:屏幕只在有人看的时候亮。

打开网易新闻 查看精彩图片

这个项目的思路很直接:屏幕不需要一直亮,只需要在人看的时候亮。毫米波传感器负责判断房间里有没有人,ESP32负责取天气、刷屏幕,两者凑在一起,一块会“看人”的桌面天气屏就成了。

清单型拆解:这套东西由什么组成

  • 主控与屏幕:Freenove FNK0103S 开发板,板载 ESP32-WROOM-32E 芯片和一块4英寸LCD触摸屏,大部分硬件都集成在这一块板上。
  • 传感器:毫米波(mmWave)存在传感器,装在机身内部,理想条件下能检测到几米外的人。
  • 外壳:3D打印件,文件随项目一起公开。
  • 软件:固件用 Rust 基于 ESP-IDF 编写,天气数据通过 Wi-Fi 从 Open-Meteo 天气 API 获取。

因为主控和屏幕已经集成在一块板上,额外接线很少。唯一需要动手的地方是传感器:为了给外壳内部腾空间,制作者把雷达模块上预装的排针拆焊下来,换成了90度弯针。

整套零件成本估算在50美元左右。手头已有零件、或者能找到更便宜货源的话,还能再低一些。

为什么不用普通人体感应

普通运动传感器只能检测“动”,人坐在桌前敲键盘、看屏幕,动作幅度小,它很容易判定为没人,屏幕就黑了。桌面天气屏恰恰需要知道“有人坐着但没怎么动”这件事。

毫米波传感器检测的是存在,不是动作。人坐在桌前,屏幕保持点亮;连续一段时间检测不到人,LCD背光才关闭;人回到检测区域,屏幕自动亮起,不用抬手碰任何东西。

这个差别看着小,实际体验差很多。运动传感器方案下,你得时不时挥挥手才能看天气;毫米波方案下,坐下就能看。

软件部分不需要自己写。触摸屏上可以完成 Wi-Fi 配网、设置位置、选择语言和温度单位。GitHub 仓库里有固件源码和完整组装说明,包括接线信息,3D打印外壳的文件也在里面。

固件用 Rust 加 ESP-IDF 写,和常见的 ESPHome 方案不太一样,想改代码的人需要先熟悉这套框架。

当然,没必要照抄这个项目。用 Cheap Yellow Display 配合 ESPHome 显示 Home Assistant 里的天气数据,再拿手头已有的传感器做存在检测,同样能做出类似效果。

一颗传感器,改变的不是屏幕能显示什么,而是屏幕什么时候该显示。桌面设备常亮的默认设定,很多时候只是缺一个判断“人在不在”的开关。