打印

自己动手用单片机做副屏,低成本实现信息实时显示,附踩坑指南

[复制链接]
1152|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jerry_jn 于 2025-7-17 17:37 编辑

作为一个每天扒在电脑前的数码爱好者,总觉得主屏幕被代码编辑器、浏览器窗口占满后,想瞥一眼时间、CPU 占用率都得切来切去,实在太影响效率。于是琢磨着搞个低成本副屏,看了一圈成品副屏要么太贵,要么功能不合心意,干脆自己用单片机捣鼓一个!折腾小半个月总算成了,今天就来详细说说过程,给想动手的朋友打个样~​
一、核心硬件选款:性价比优先
一开始在单片机型号上纠结了好久,从 51 单片机到 STM32 都看了个遍。最终选了ESP32,理由很简单:自带 WiFi 和蓝牙,方便和电脑无线通信,而且处理能力足够带动屏幕,价格也就几十块,比 STM32 入门款便宜不少。屏幕选的是0.96 英寸 OLED,虽然尺寸小但清晰度够高,黑底白字看着也舒服,关键是功耗低,用个小锂电池就能续航大半天。​
这里提醒下,要是想做更大的副屏(比如 2.4 英寸 LCD),建议直接上 STM32F103,ESP32 驱动大尺寸屏幕时偶尔会有卡顿。另外,接线时一定要注意屏幕的 IIC 接口引脚定义,我第一次就因为把 SDA 和 SCL 接反了,屏幕白亮半天没反应,排查了俩小时才发现问题,血的教训!​
二、功能实现:从基础到自定义
目前我的副屏主要显示这几类信息,都是日常高频用到的:​
系统状态:CPU 占用率、内存使用率、硬盘剩余空间,通过 Python 脚本读取电脑数据,再用 MQTT 协议发给 ESP32​
时间信息:精确到秒的时钟 + 农历日期,用 NTP 同步时间,误差基本控制在 1 秒内​
自定义内容:可以手动输入文字(比如待办事项 “下午 3 点开会”),甚至能显示简单的 BMP 格式小图标,我就把女朋友画的小猫头像设成了屏保​
程序部分用 Arduino IDE 写的,其实难度不算高,核心就是把传感器数据(或者电脑发来的数据)解析后,通过库函数输出到屏幕。比如显示 CPU 占用率,先在电脑上用psutil库获取数据,转成 JSON 格式通过 WiFi 发出去,ESP32 收到后用OLED.display()函数刷新屏幕就行。要是完全没接触过编程也别怕,网上有很多现成的例程,稍微改改参数就能用。​
三、踩坑与优化:实用经验分享​
供电问题:刚开始用 USB 线直连电脑供电,屏幕总闪屏,后来发现是电脑 USB 口电压不稳,换成 5V 1A 的小电源就稳了​
无线延迟:WiFi 传输偶尔会有 0.5 秒左右的延迟,对实时性要求高的朋友可以试试有线串口连接,延迟能降到 100ms 以内​
屏幕烧屏:OLED 长时间显示同一画面会烧屏,建议加个自动切换显示内容的功能,比如每 10 分钟换一次布局​
四、优缺点总结:适合哪些人玩?​
优点:成本低(全套下来不超过 80 块)、完全自定义(想显示啥就编啥)、体积小(巴掌大,随便贴在显示器旁边)​
缺点:显示面积有限(复杂图表别想了)、需要一点点编程基础(至少得会改参数)、颜值看个人手艺(我这手残党焊的杜邦线有点乱)​
总体来说,这个小项目特别适合想入门单片机的新手练手,既能学到硬件接线,又能接触到简单的通信协议,做好了还挺实用。我现在每天写代码时,副屏就乖乖显示着时间和系统状态,切窗口的次数少了一半,效率真的提上去了!​

使用特权

评论回复

相关帖子

沙发
javon| | 2025-7-24 09:14 | 只看该作者

使用特权

评论回复
板凳
xch| | 2025-7-24 15:14 | 只看该作者
太贵了。吃回扣了吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

11

帖子

0

粉丝