Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Real-Time Arduino PC Monitor met LCD Display: CPU & GPU Temperaturen

Componenten en Benodigdheden

Arduino Leonardo (of andere Arduino met UART) × 1
LCD 16x2 (met I2C converter) × 1
Jumper wires (algemeen) × 1

Over dit Project

Inleiding

Dit project ontstond uit de behoefte aan plezier en kennis. Het is eenvoudig te bouwen en heeft veel toepassingen, zoals het controleren, opslaan en weergeven van hardware-variabelen.

Aansluiten van de LCD

Sluit de LCD aan (ik gebruikte een I2C converter). Het schema is hierboven te zien.

De Arduino Code

Stel de 16x2 LCD in met adres 0x3F (adres te vinden via I2C scanner sketch op Arduino Playground).

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);

String inData;

void setup() {
  lcd.init();
  Serial.begin(9600);
  lcd.backlight();
}

void loop() {
  while (Serial.available() > 0) {
    char recieved = Serial.read();
    inData += recieved;
    
    if (recieved == '*') {
      inData.remove(inData.length() - 1, 1);
      lcd.setCursor(0, 0);
      lcd.print("GPU Temp.: " + inData + char(223) + "C ");
      inData = "";
      if (inData == "DIS") {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Disconnected!");
      }
    }
    
    if (recieved == '#') {
      inData.remove(inData.length() - 1, 1);
      lcd.setCursor(0, 1);
      lcd.print("CPU Temp.: " + inData + char(223) + "C ");
      inData = "";
    }
  }
}

Uitleg: We gebruiken een char variabele om de seriële invoer te lezen en toe te voegen aan inData. Een * markeert het einde van de GPU-temperatuur, een # markeert het einde van de CPU-temperatuur. Zo weet de Arduino wanneer hij de data moet verwerken en printen.

Configuratie: C# Applicatie

Waarom C#? Het is snel te schrijven en makkelijk voor Windows Forms applicaties.

Je hebt de OpenHardwareMonitorLib.dll nodig. Download deze, maak een nieuw Windows Forms project, voeg de DLL toe als referentie.

Interface Ontwerp

Ontwerp het formulier met:

  • ComboBox voor COM-poort selectie
  • ComboBox voor update-interval
  • Connect / Disconnect knoppen
  • Status labels
  • NotifyIcon voor systeembak minimalisatie

De C# Code (Kern)

using System.IO.Ports;
using OpenHardwareMonitor.Hardware;

SerialPort port = new SerialPort();
Computer c = new Computer() { GPUEnabled = true, CPUEnabled = true };
float value1, value2; // GPU & CPU temp

private void Init() {
  // Poort instellingen, scan beschikbare poorten
  port.BaudRate = 9600;
  // ... vul comboBox1 met poortnamen
}

private void Status() {
  foreach (var hardware in c.Hardware) {
    if (hardware.HardwareType == HardwareType.GpuNvidia) {
      hardware.Update();
      foreach (var sensor in hardware.Sensors)
        if (sensor.SensorType == SensorType.Temperature)
          value1 = sensor.Value.GetValueOrDefault();
    }
    if (hardware.HardwareType == HardwareType.CPU) {
      hardware.Update();
      foreach (var sensor in hardware.Sensors)
        if (sensor.SensorType == SensorType.Temperature)
          value2 = sensor.Value.GetValueOrDefault();
    }
  }
  try {
    port.Write(value1 + "*" + value2 + "#");
  } catch (Exception ex) {
    timer1.Stop();
    // Foutafhandeling
  }
}

// Connect knop: open poort, start timer
// Disconnect knop: stuur "DIS*", sluit poort, stop timer
// Timer tick: roep Status() aan
// Form Load: c.Open()
// Let op: programma moet als Administrator draaien!

Schema

Aansluitschema voor LCD met I2C op Arduino Leonardo.

Productieproces

  1. Arduino Nano Flight Simulator 2020 Bedieningspaneel – LCD & CDI Display
  2. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  3. Bouw Boeiende LCD Animaties & Games met Arduino UNO
  4. Real-time IoT hartslagmonitor met Arduino en MAX30100
  5. Veilige CV-ketelbewaking: Thermocouple-spanningsmonitor voor pilootvlammen
  6. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  7. Zelfbouw Arduino Nano Oscilloscoop (10 Hz – 50 kHz) met 128×64 LCD
  8. MAX30102 hartslagmonitor bouwen met Arduino Nano en 16x2 LCD
  9. Geavanceerd thuismonitoringssysteem met Arduino Mega en IoT-sensoren
  10. Bouw een betrouwbare Arduino-weerstation met DHT-sensoren
  11. Bouw een betrouwbare wekker met DS1302 RTC en Arduino UNO