Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créez un moniteur PC temps réel Arduino avec affichage LCD

Composants et fournitures

ComposantQuantitéRemarques
Arduino Leonardo (ou tout Arduino avec USB natif / ATmega + convertisseur UART)1Leonardo : port USB virtuel série natif
Écran LCD 16×2 (avec module I2C)1Adresse I2C 0x3F (scanner I2C pour confirmer)
Fils de connexion1 lot

À propos du projet

Introduction

Projet né du désir d'apprendre et de s'amuser. Simple à réaliser, applications multiples : surveillance matériel, affichage variables système, etc.

Mise en route – Câblage LCD I2C

Connexion standard : VCC/GND + SDA/SCL sur broches I2C de l'Arduino (Leonardo : SDA=2, SCL=3). Module I2C détecté à l'adresse 0x3F via scanner I2C.

Firmware Arduino

Bibliothèques : Wire.h, LiquidCrystal_I2C.h.

LiquidCrystal_I2C lcd(0x3F, 16, 2);
String inData;

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

void loop() {
  while (Serial.available() > 0) {
    char recieved = Serial.read();
    inData += recieved;
    if (recieved == '*') {           // Fin ligne 1 (GPU)
      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.print("Disconnected!"); }
    }
    if (recieved == '#') {           // Fin ligne 2 (CPU)
      inData.remove(inData.length() - 1, 1);
      lcd.setCursor(0, 1);
      lcd.print("CPU Temp.: " + inData + char(223) + "C ");
      inData = "";
    }
  }
}

Protocole série : tempGPU*tempCPU#. Caractères * et # délimitent les deux lignes. Latence évitée par lecture char par char.

Application PC (C# / Windows Forms)

Bibliothèque : OpenHardwareMonitorLib.dll (récupération températures CPU/GPU Nvidia).

Architecture :

  • Computer objet : CPUEnabled = true, GPUEnabled = true.
  • Timer périodique (intervalle configurable) → Status() : énumère capteurs, extrait températures, envoie port.Write(gpuTemp + "*" + cpuTemp + "#").
  • Interface : ComboBox ports COM, ComboBox intervalle, boutons Connect/Disconnect, statut barre d'état, minimisation zone de notification.
  • Exécution en administrateur requise (accès capteurs matériel).

Extrait code C# principal

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

Configuration & utilisation

  1. Compiler/uploader firmware Arduino.
  2. Compiler application C# (Visual Studio), référence OpenHardwareMonitorLib.dll.
  3. Exécuter en admin, sélectionner port COM, intervalle (ex. 2000 ms), « Connect ».
  4. LCD affiche : ligne 1 → GPU, ligne 2 → CPU, mises à jour temps réel.

Code source complet

  • Firmware Arduino (ci-dessus).
  • Application C# (Windows Forms) : classes Form1, Init(), Status(), gestion timer, tray icon, connect/disconnect.

Schéma

Schéma de câblage LCD I2C – Arduino Leonardo (image).

Processus de fabrication

  1. Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
  2. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  3. Créer des animations et jeux sur LCD avec Arduino UNO
  4. Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
  5. Sécurisez votre chauffe-eau : Moniteur de tension thermocouple pour veilleuse pilote
  6. Afficher des images sur un écran TFT 1,17 pouces avec Arduino UNO
  7. Oscilloscope DIY Arduino Nano (10 Hz – 50 kHz) avec écran LCD 128×64
  8. Moniteur de fréquence cardiaque MAX30102 avec Arduino Nano et écran LCD 16x2
  9. Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO