Проект отображает на OLED-дисплее (SSD1306) данные о температуре, загрузке и других характеристиках видеокарты (GPU) в режиме слайд-шоу. Сбор данных происходит на Windows при помощи LibreHardwareMonitor и Python, а затем отправляется на ESP32 по сети (HTTP).
- Особенности проекта
- Как это работает
- Требования
- Установка и настройка
- Использование
- Как изменить анимацию/формат вывода
- Лицензия
- ESP32 с подключённым по I²C дисплеем SSD1306 (128×64).
- Python-скрипт на Windows собирает данные о GPU (температура, загрузка, фан, частоты и т.п.) с помощью LibreHardwareMonitor.
- Отправка данных по протоколу HTTP на ESP32 (эндпоинт
/update
). - OLED-дисплей циклично (слайд-шоу) отображает 10 параметров о состоянии GPU (можно менять кол-во и название параметров).
- LibreHardwareMonitor (Windows) получает данные с датчиков видеокарты (NVIDIA/AMD).
- Python-скрипт обращается к библиотеке LibreHardwareMonitorLib.dll, считывая температуру, загрузку, частоты и т.п.
- Скрипт отправляет значения (GET-параметры) на
http://<IP_ESP32>/update
. - ESP32 принимает параметры, сохраняет их во внутренние переменные.
- OLED SSD1306 показывает один параметр за раз, меняя каждые несколько секунд (по умолчанию 10 c).
- ESP32 (например, DevKitC, NodeMCU-32 и т.п.)
- Дисплей SSD1306 (I²C 128×64)
- Arduino IDE (или PlatformIO) с установленными библиотеками:
WiFi.h
иWebServer.h
(встроенные в ESP32 Core)Wire.h
Adafruit GFX
Adafruit SSD1306
- LibreHardwareMonitor на Windows
- Python 3.7 – 3.11 с установленным
pythonnet
иrequests
- Установите Python (3.7–3.11) с python.org.
- Во время установки поставьте галочку «Add Python to PATH».
- В консоли проверьте:
python --version pip --version
- Установите нужные пакеты:
pip install pythonnet requests
- Скачайте LibreHardwareMonitor:
- Перейдите на GitHub Releases.
- Скачайте ZIP, распакуйте, запустите
LibreHardwareMonitor.exe
. - Убедитесь, что в папке лежит
LibreHardwareMonitorLib.dll
.
- Склонируйте данный репозиторий или скачайте ZIP с кодом (ESP32 и
gpu_monitor.py
).
- Подключите OLED SSD1306 к ESP32:
- SDA → GPIO21
- SCL → GPIO22
- VCC → 3.3V
- GND → GND
- Откройте Arduino IDE (или PlatformIO) → выберите плату ESP32.
- Установите библиотеки (если не установлены):
- Adafruit GFX
- Adafruit SSD1306
- В файле
esp32_display.ino
:- Введите свой SSID и пароль Wi-Fi.
- При необходимости измените статический IP/адреса шлюза (или закомментируйте блок
WiFi.config(...)
).
- Загрузите код в ESP32.
- Запустите LibreHardwareMonitor.exe на Windows (не закрывайте его).
- Откройте консоль (CMD или PowerShell) → перейдите в папку проекта (где
gpu_monitor.py
). - Запустите скрипт:
python gpu_monitor.py
- Скрипт каждые 5 секунд будет считывать данные о видеокарте и отправлять их на
ESP32
.
- Скрипт каждые 5 секунд будет считывать данные о видеокарте и отправлять их на
- ESP32 (при успешном подключении к Wi-Fi) будет слушать HTTP-запросы на порте 80. При каждом
/update
значения записываются во внутренние переменные. - На OLED-дисплее циклично отображается 10 показателей (GPU Temp, Load, HotSpot и т.д.), сменяясь раз в 10 секунд.
- Интервал слайд-шоу меняется в
esp32_display.ino
(переменнаяif (millis() - lastSwitch > 10000)
). - Список параметров (названия, единицы измерения) можно изменить в массивах:
const char* labels[] = { "GPU Temp", ... }; // ... float values[] = { gpuTemp, gpuLoad, gpuHotspot, ... };
- Если хотите плавную анимацию (fade, скролл), смотрите примеры с функциями
fadeOut()
,fadeIn()
илиslideTransition()
(описано в исходном коде).
Данный проект распространяется по лицензии MIT. Подробности см. в файле LICENSE.
Удачи в сборке и приятного использования!