当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]很长一段时间里,我总是需要反复按下Alt键切换到任务管理器或系统监控工具,才能查看电脑资源的使用情况。尤其是在进行大量渲染或游戏时,如果能一目了然地看到这些信息,就能大大减少猜测的时间。一个小巧而专用的显示屏,能够实时显示CPU负载、内存使用率、磁盘容量、网络流量和电池状态,似乎正是理想的解决方案。

很长一段时间里,我总是需要反复按下Alt键切换到任务管理器或系统监控工具,才能查看电脑资源的使用情况。尤其是在进行大量渲染或游戏时,如果能一目了然地看到这些信息,就能大大减少猜测的时间。一个小巧而专用的显示屏,能够实时显示CPU负载、内存使用率、磁盘容量、网络流量和电池状态,似乎正是理想的解决方案。

我决定不买价格昂贵的台式设备,而是自己动手制作。这个项目将低成本的ESP32开发板与标准的16×2 I2C LCD显示屏结合在一起。运行在电脑上的Python脚本通过psutil库收集系统统计信息,并通过简单的USB串口连接将数据发送给ESP32。微控制器解析JSON格式的数据,循环显示多个信息页面,每隔几秒更新一次屏幕内容。

整个系统完全本地化,无需Wi-Fi、云服务,也无需复杂的配置。所有功能均通过一根USB线缆实现。

软件与库

•Arduino IDE – 用于上传 ESP32 固件

•Frank de Brabander 开发的 LiquidCrystal I2C 库——用于驱动 I2C LCD

•Benoit Blanchon 的 ArduinoJson 库(版本 6)——解析传入的 JSON 字符串

•Python 3 – 运行电脑监控脚本

•pyserial – 用于处理 Python 中的 USB 串行通信

•psutil – 收集实时系统信息(CPU、内存、磁盘、网络、电池、运行时间)

你可以使用以下命令安装这两个 Python 包:

在 Arduino IDE 中,使用库管理器安装 LiquidCrystal I2C 和 ArduinoJson(版本 6)。

接线图

使用I2C LCD的一大优点是线路简单,仅需四根线即可。I2C总线由两条信号线(SDA和SCL)以及电源和地线组成。

重要提示:大多数ESP32板的默认I2C引脚为GPIO21(SDA)和GPIO22(SCL)。如果您的板使用不同的引脚,请在代码中修改Wire.begin(SDA, SCL)这一行。

设置ESP32固件

ESP32 持续监听串行数据,逐字符构建 JSON 消息,并在收到完整对象后才进行解析。这种稳健的方法可避免因数据碎片化或不完整而引发的问题。

1. 安装电路板包

如果你之前没有使用过Arduino IDE与ESP32:

转到“文件”>“首选项”,并将 Espressif ESP32 板件索引 URL 添加到“附加板管理器 URL”字段中。

打开工具 > 板子 > 板子管理器,搜索 esp32 并通过 Espressif Systems 安装该软件包。

从板子列表中选择 ESP32 开发模块(或您特定的板子)。

2. 上传草图

创建一个新的草图,复制下方的完整代码,如有需要请更改LCD地址,并上传到你的ESP32。

上传后,打开串口监视器(115200波特率)以查看“ESP32就绪”的消息。

然后关闭显示器——是时候设置电脑端了。

3. Python 脚本 – 收集电脑性能统计信息

Python 脚本使用 psutil 库获取实时系统信息。所有收集的数据以单个 JSON 对象(后跟换行符)通过串口发送到 ESP32。脚本持续运行,默认每两秒更新一次。

你只需修改一行代码:SERIAL_PORT 应设置为你的 ESP32 的正确串口(Windows)或设备路径(Linux/macOS)。

4. 获取COM端口

Windows:打开设备管理器,在“端口(COM 和 LPT)”中查找类似“USB 串行端口(COMx)”的内容。

Linux:运行 ls /dev/ttyUSB* 或 ls /dev/ttyACM*;ESP32 通常显示为 /dev/ttyUSB0。

macOS:它会显示为 /dev/cu.usbserial-xxxx。

5. 脚本代码

创建一个名为 pc_monitor.py 的文件,并粘贴以下内容。根据需要修改 SERIAL_PORT。

6. 运行脚本

确保您的ESP32已插入USB端口,并关闭Arduino串口监视器(因为它会占用该端口)。

在保存 pc_monitor.py 的文件夹中打开终端(命令提示符、PowerShell 或 Linux/macOS 终端)。

运行:

你应该每2秒看到一次JSON数据的打印。

同时,ESP32上的LCD会开始循环显示实时系统信息。

7. 您在LCD上看到的内容

显示屏会循环显示五个不同的页面,每个页面停留3秒后自动切换到下一个。

每当电脑发送新的JSON数据包时(每2秒一次),数据都会立即更新,因此所有数值始终保持最新。

8. 测试与首次运行

首次接通电源时,LCD会显示一个简短的启动画面(PC Monitor v2.0),然后进入第一个统计页面。如果尚未接收到串行数据,数值将保持为零。

Python 脚本运行后,你应该能看到数字实时变化。电脑端也会打印每发送的 JSON 数据,因此你可以验证数据是否正在被传输。

3D打印外壳 – 由JUSTWAY制造

电子设备运行正常后,下一步就是为项目赋予一个完整、专业的外观。设计并打印一个能精准适配ESP32板、LCD屏幕以及所有线路的外壳,需要花费时间,并且还需要一台优质的3D打印机。

我选择了JUSTWAY定制3D打印手机壳。JUSTWAY专注于高品质打印,尺寸精准,边壁光滑,层线清晰。您可将自己的STEP文件上传至其网站,立即获取报价。零件包装完好,与模型完全一致。

为什么我推荐JUSTWAY参与这个项目:

•完美适配标准ESP32开发板和16×2 I2C LCD显示屏

•USB接口和通风孔的开孔

•有多种颜色可选(黑色、白色、透明)

•快速周转,全球发货

最终思考

该项目将一个廉价的ESP32和一个简单的I2C LCD改装成一款可放置在桌面上的专用PC性能监控器。它无需互联网连接,也不依赖外部云服务,仅需一根USB线缆即可实现供电和数据传输。Python与Arduino的结合具有高度灵活性,基于JSON的协议也使得添加或修改显示的性能指标变得十分简便。

如果遇到任何问题,请先检查基本事项:I2C 地址、正确接线、正确的 COM 端口以及波特率(115200)。提供的 ESP32 代码内置了 JSON 解析和错误报告功能,因此串口监视器会始终准确告知您具体哪里出了问题。

现在,自己动手制作一个显示器吧,再也不用 Alt+Tab 切换到任务管理器了。如果你成功制作出来,欢迎分享你的照片以及所做的修改——我非常期待看到你的创意成果。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

我们已经这样临时搭建的花园喷泉好几年了。我妻子用几件陶瓷器皿组装而成,我在下层水盆里加了一台小巨型水泵,用来将水输送到上层水盆的喷嘴处。

关键字: 智能插座 压力传感器 ESP32

在我的一些之前视频中,我向大家展示了如何在不同显示屏上模拟制作模拟VU表。这次我将讲解如何制作这样一个项目,但使用的是包含几乎所有元件(包括MCU)的显示模块。只需添加几个无源元件和一个LED,即可作为峰值表来工作。

关键字: 显示屏 LED ESP32

我想创建一种无需亲自坐在电脑前即可远程监控电脑性能的方法。无论我正在运行资源密集型任务、玩游戏,还是仅仅想查看系统状态,这款设备都能让我通过任何有网络连接的地方,实时获取CPU、GPU、RAM和SSD的性能数据。

关键字: 智能家居 CPU GPU 物联网

我创建了BEAPER Nano,旨在为初学者的电子学和计算机技术课程提供一个多功能的教学平台。其功能也使其成为帮助任何人专注于学习微控制器编程的理想平台,无需在搭建和调试面包板电路时受到干扰。

关键字: 微控制器 机器人 ESP32

黑胶唱片的物理仪式感有一种无可替代的魅力——手中唱片的重量,放置时的刻意动作,以及音乐开始前那份期待。数字音乐为我们提供了无限的选择,却也夺走了这种仪式感。

关键字: Wi-Fi 蓝牙 扬声器 ESP32

Smart Dice 是一款基于 ESP32 构建的 3D 数字骰子摇器,其设计灵感源自非洲卢多(ludo)游戏规则,这种游戏深深根植于尼日利亚和西非文化之中。该骰子在 240x240 TFT 显示屏上呈现为一个真实可旋...

关键字: 显示屏 传感器 ESP32 MPU6050

使用ESP32开发板、MAX98357A I2S音频放大器以及WitAITTS库,构建一个基于实时AI的文本转语音转换器。本项目通过Wi-Fi将ESP32连接至Wit.ai云平台,实现对输入文字的实时转换为自然流畅的语音...

关键字: AI 音频放大器 ESP32

在Linux系统的C语言开发中,字节对齐是一个绕不开的基础话题。很多开发者都遇到过这样的困惑:明明计算结构体大小时把每个成员的字节数加起来,结果实际大小却比计算值大上好几倍,甚至修改结构体成员的排列顺序,总大小还会发生变...

关键字: Linux CPU

这是一个基于LILYGO TTGO T-Display(ESP32 + 1.14英寸IPS LCD)的小型常驻桌面小工具,可直观显示您的Claude.ai使用额度,通过绿色/黄色/红色的色彩编码,让您随时了解已消耗了多少...

关键字: LCD显示屏 ESP32 电路板

MCU作为嵌入式系统的核心,从诞生之初就面临着固件被逆向、拷贝的风险。在上世纪八九十年代,MCU的应用刚在工业控制、消费电子领域普及,芯片厂商还没有成熟的硬件加密技术,早期工程师们只能在有限的硬件条件下,想出各种巧妙的加...

关键字: MCU CPU
关闭