这个项目是什么?

本项目是关于使用ESP8266和OLED屏幕实现将电脑硬件状态信息数据读取并显示到OLED屏幕上且支持显示二值化图片/播放动画。
实现类似于高端主板上面的小屏幕功能,目前已实现实时显示电脑硬件状态,如温度、使用率、频率等。目前播放动画功能已开发完毕且发布。
Github 项目地址

关于这个项目

受阿卡林的视频启发,本着兴趣和学习的目的做的第一个个人项目。本来对单片机也没什么了解,QT也是第一次使用边学边写,遇到了很多困难问题,不过好在最后目标功能都尽可能实现了。因为大二课比较多,开发时间比较碎片化,代码写的也比较难看,各位大能手下求饶。会认真听取建议批评的。

本项目灵感来源于b站up主 会飞的阿卡林 所做视频

阿卡林也是使用esp8266实现显示监控电脑硬件状态,不过与本项目区别在于:

  • 虽然都是通过aida64获取硬件信息,但阿卡林的方式是从aida64共享内存中获取信息。本项目是从aida64写入到注册表的硬件信息中获取。
  • 阿卡林的开源上位机程序使用的是C#语言实现,而且支持播放动画图片的GUI版的上位机程序没有开源,本项目上位机程序通过QT C++开发实现了原项目大部分功能且开源。
  • 阿卡林提供的下位机源码没有实现既可以播放动画又可以输出硬件信息

使用条件和准备

硬件上需要:ESP8266和oled屏幕
若对单片机不了解推荐使用与我开发环境相同的:

  • ESP8266 Node MCU Lua v3开发板(CH340串口芯片)
  • 4PIN IIC 0.96寸OLED屏幕 128x64*

某宝搜索上述关键词即可,陈本30块钱内

软件上需要:

  • Aida64 并开启 “允许将检测数据写入注册表” 选项,且勾选列表内全部硬件信息监控
  • 本项目的上位机程序 ESP8266 PC Reader
  • Arduino IDE 用于烧录下位机程序
  • 对应的串口驱动程序(CH340驱动)

使用方法

对于下位机ESP8266

  1. 电脑安装对应的串口驱动
  2. 将esp8266和oled屏幕连接好,并连接电脑。
  3. 使用用arduino ide 将项目提供的.ino源码文件烧录进ESP8266(详细教程请自行网上搜索)。
  4. 烧入成功启动后oled屏幕应该会显示有“waiting for singal”字样,表示烧入启动成功。

对于上位机PC

  1. 请先自行安装Aida64 Extreme并激活(网上自行搜索教程)
  2. 打开aida64设置,按照如图所示勾选项目,保存。保证aida64后台运行以实时获取硬件信息。
  3. 确保esp8266已连接电脑,运行项目提供的上位机程序ESP8266 PC Reader
  4. 如图步骤即可屏幕显示信息
  5. 另外可以保存设置最小化等,请自行摸索

关于显示图片/动画

  • 选择图片后程序会自动将图片二值化
  • 只支持分辨率128x64的图片,若分辨率不对请自行裁剪
  • 可以选择多张图片,若选择图片过多会程序会未响应读取加载较长时间,属于正常现象,加载完毕后便恢复正常
  • FPS设置框,表示一秒显示多少张图片,设置25则一秒内向单片机传输25张图片显示,设置0.5则表示每两秒传输显示一张图片。
  • 如何播放动画?原理是将导入的图片按顺序播放出来,速度由FPS设置框决定。所以想要播放gif图片的话,需要将gif图分辨率设置为128x64,并将每帧图片切割出来按名字顺序排序,再在上位机程序里选择图片选择全部切割出来的帧图片即可。

演示图

上位机:

上位机

下位机:

示例2 示例1
  • 页面建设中