亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino Leonardo 实时 PC 硬件监控:LCD 显示 CPU/GPU 温度

项目背景

想在不打开软件的情况下随时掌握 CPU 与 GPU 温度?本项目利用 Arduino Leonardo(或任意支持 USB HID 的开发板)配合 1602 I2C LCD,通过 C# 上位机读取 OpenHardwareMonitor 数据,经串口实时推送至 LCD,打造专属桌面硬件监控面板。

硬件准备

接线指南

LCD 引脚Arduino 引脚
VCC5V
GNDGND
SDASDA (D2)
SCLSCL (D3)

若使用其他 Arduino 板型,请查阅对应 I2C 引脚定义(Uno 为 A4/A5)。

Arduino 固件核心逻辑

代码采用「字符流 + 结束符」协议:

void loop() {
  while (Serial.available()) {
    char c = Serial.read();
    inData += c;
    if (c == '*') {         // GPU 数据结束
      inData.remove(inData.length()-1);
      lcd.setCursor(0,0);
      lcd.print("GPU Temp.: " + inData + "°C ");
      inData = "";
    }
    if (c == '#') {         // CPU 数据结束
      inData.remove(inData.length()-1);
      lcd.setCursor(0,1);
      lcd.print("CPU Temp.: " + inData + "°C ");
      inData = "";
    }
  }
}

C# 上位机开发要点

依赖库

关键代码片段

// 初始化硬件监控对象
Computer c = new Computer { GPUEnabled = true, CPUEnabled = true };
c.Open();

// 定时器中读取温度并发送
private void Status() {
  foreach (var hw in c.Hardware) {
    hw.Update();
    foreach (var sensor in hw.Sensors) {
      if (sensor.SensorType == SensorType.Temperature) {
        if (hw.HardwareType == HardwareType.GpuNvidia) value1 = sensor.Value.GetValueOrDefault();
        if (hw.HardwareType == HardwareType.CPU) value2 = sensor.Value.GetValueOrDefault();
      }
    }
  }
  port.Write($"{value1}*{value2}#");  // 协议格式
}

界面功能

常见问题排查

  1. LCD 无显示/乱码:用 I2C 扫描工具确认地址,修改 LiquidCrystal_I2C lcd(0x3F,16,2);
  2. 串口打开失败:检查设备管理器确认 COM 口号,关闭占用该端口的其他程序
  3. 温度显示 0 或异常:确认 OpenHardwareMonitor 驱动已安装,且 GPU/CPU 类型匹配(代码默认 Nvidia GPU)
  4. 延迟大:缩短定时器间隔(最低建议 500ms),或改用二进制协议减少传输开销

扩展思路

制造工艺

  1. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  2. 用 Arduino 打造绚丽显示器 Ambilight 系统
  3. Arduino UNO 驱动 16x2 LCD 实现动画与小游戏
  4. 基于 Arduino 与 MAX30100 的实时物联网心率监测系统
  5. 热水器点火器监测器:Arduino Nano + 树莓派 Zero 监控热电偶电压,熄火即时推送
  6. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  7. DIY Arduino Nano 示波器:10 Hz–50 kHz / 128×64 LCD
  8. 基于 Arduino Nano 和 MAX30102 的心率监测仪(16x2 LCD 显示)
  9. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统
  10. 打造可靠的 Arduino 气象站:DHT 传感器 + LCD + RTC
  11. 基于 Arduino UNO 构建可靠的智能能源监测仪——分步指南
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟