周末下午,你抬头看了看窗外——天色转阴,空气发闷,手机上却只显示一个孤零零的温度数字。想要一次看清温度、湿度、气压、会不会下雨、天是亮是暗,通常得打开好几个App——有个开发者索性自己做了一个能同时呈现这些信息的桌面小屏。

他选了一块搭载ESP32-S3的智能显示屏做主控,顺手接上BME280温湿度气压传感器、一个雨滴检测模块,再挂上一支光敏电阻。三个传感器不断从环境里抓取原始信号,ESP32-S3在本地完成处理、判断和计算,最后交给LVGL图形库,把数据变成一套带图标的仪表盘

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

整个系统的运转逻辑分成三步:采集、处理、可视化。BME280负责给出温度、相对湿度和大气压强,其中气压值还被用来反推海拔高度;雨滴传感器靠导电膜上水滴引起的电压变化判断是否下雨;光敏模块通过阻值变化判断周边是白天还是黑夜。ESP32-S3通过I2C接口读BME280,同时采集另外两路模拟信号,再在固件里完成海拔计算、雨量状态判定和昼夜识别,整个过程循环刷新,保证界面一直跟着环境走。

显示层用了LVGL v8,没有直接堆数字,而是把每一项数据配上图标和标签——温度、湿度、气压、海拔、雨况和光亮状态一目了然。因为是显示模块自集成控制器和屏幕,整体硬件只占一块面包板加几根跳线和一条USB线,调试和搬运都很轻便。

软件侧则靠Visual Studio Code搭配ESP-IDF v5.3.5插件完成开发,Python 3.11做环境支撑,再加上Bosch的BME280驱动库和LVGL图形库,传感器通信和图形渲染的对齐就都有了。一个从物理世界到可读画面的小闭环,能跑起来只因为把传感器接口和嵌入式GUI两件事缝到了一起——不用云、不刷App,看一眼桌面小黑板就能决定带不带伞。