Температура CPU и GPU + частота и загрузка на LCD-дисплее на Arduino
Выводим в реальном времени на любой LCD-дисплей название, температуру, тактовую частоту и загрузку процессора и видеокарты. Всё обновляется каждые 1–5 секунд.
Что выводится на экран
- Производитель и модель CPU / GPU
- Текущая температура (°C)
- Тактовая частота (МГц)
- Загрузка в процентах (%)
Что понадобится
- Любая Arduino (Uno, Nano, Pro Mini и т.д.)
- LCD-дисплей (1602, 2004 и любой другой) с I2C-модулем или без
- ПК с Windows
Программа на компьютере
Используем готовую утилиту Arduino PC Monitor (ссылка в описании под видео).
Она считывает данные через Open Hardware Monitor / Libre Hardware Monitor и отправляет их в COM-порт.
Подключение LCD по I2C (самый простой вариант)
- VCC → 5 В
- GND → GND
- SDA → A4 (Uno/Nano) или соответствующий пин на Mega/ESP
- SCL → A5 (Uno/Nano)
Готовый скетч на LCD 1602 I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String lastData = "";
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.print("Ожидание данных");
}
void loop() {
if (Serial.available()) {
String data = Serial.readStringUntil('\n');
data.trim();
if (data == lastData) return; // не обновлять одно и то же
lastData = data;
lcd.clear();
if (data.startsWith("CPU") || data.startsWith("GPU")) {
lcd.setCursor(0, 0);
lcd.print(data.substring(0, min(16, data.length())));
if (data.length() > 16) {
lcd.setCursor(0, 1);
lcd.print(data.substring(16, min(32, data.length())));
}
}
else if (data == "disconnect") {
lcd.setCursor(0, 0);
lcd.print("Нет соединения");
}
else {
lcd.setCursor(0, 0);
lcd.print("Неизв. данные");
}
}
}
Слушает данные, приходящие по Serial.
Если строка начинается с CPU или GPU, выводит первые 32 символа на LCD (по 16 на строку).
Если приходит строка disconnect, отображает сообщение «Нет соединения».
Что можно улучшить дальше
- Перейти на OLED 128×64 — графики температуры в реальном времени
- Добавить вывод RAM, скорости вентиляторов, напряжений
- Автоматическое включение доп.охлаждения при перегреве
- Звуковое оповещение или цветовая индикация
Итог
Простой, надёжный и полностью рабочий мониторинг основных параметров системы прямо на отдельном дисплее рядом с компьютером. Никаких платных программ — всё открыто и легко повторяется.
FAQ — Температура CPU и GPU на LCD-дисплее через Arduino
Какие параметры CPU и GPU можно вывести на LCD-дисплей?
На экран выводятся производитель и модель CPU/GPU, текущая температура, тактовая частота и загрузка в процентах. Обновление осуществляется каждые 1–5 секунд.
Какая Arduino подходит для проекта?
Работает любая Arduino — Uno, Nano, Pro Mini и другие. Требования минимальны: нужен лишь последовательный порт для получения данных с компьютера.
Какой LCD-дисплей можно использовать?
Подойдёт любой LCD: 1602, 2004 и другие версии. Можно использовать дисплей с I2C-адаптером или без него. В примере применяется LCD 1602 I2C.
Как Arduino получает температуру и частоты процессора и видеокарты?
ПК использует утилиту Arduino PC Monitor. Она считывает значения через Open Hardware Monitor или Libre Hardware Monitor и отправляет данные в COM-порт, который читает Arduino.
Как подключить LCD-дисплей по I2C к Arduino?
Подключение выполняется так: VCC → 5V, GND → GND, SDA → A4 для Uno/Nano и соответствующий пин на других платах, SCL → A5 для Uno/Nano. Адрес дисплея обычно 0x27 или 0x3F.
Что делает пример скетча в статье?
Скетч принимает строки вида CPU… или GPU… из COM-порта, выводит первую часть строки на верхнюю строку LCD, вторую — на нижнюю. При команде “disconnect” очищает дисплей и выводит сообщение о разрыве соединения.
Какие улучшения можно добавить к проекту?
Можно перейти на OLED 128×64 и добавить графики температуры, вывести RAM, обороты вентиляторов и напряжения, включать охлаждение при перегреве или добавить звуковые уведомления.