Температура процессора и видеокарты, их частота и загруженность. 

Температура процессора и видеокарты, их частота и загруженность. 

Сегодня я расскажу как посмотреть основные параметры ПК - это название и температуру процессора и видеокарты. Выведем эти и другие значения при помощи Ардуино на LCD дисплей. Рассмотрим скетч вывода температуры процессора на экран LCD 1602.
Всем привет.
Сегодня продолжим тему о связи Ардуино с вашим компьютером и получим основные характеристики компьютера. Я считаю, что главное в работе компьютера – это его процессор и видеокарта, а точнее их загруженность и температура. Конечно есть ещё память и жёсткие диски, но это оставим для следующей темы. А сегодня процессор и видеокарта.
Для получения данных нам понадобятся любая Ардуина и LCD дисплей, тоже абсолютно любой, я использовал LCD 1602 с I2C подключением. Мне кажется, что это самый лёгкий для повторения пример. Подключить всего 4 провода, два из которых питание и на экране появятся название и параметры ваших процессора и видеокарты, и всё это в реальном времени.
Для работы надо запустить программу которая будет посылать в порт Ардуино эти данные и вам останется просто получить их и вывести на экран дисплея.
Мы будем получать.

  • Фирму производителя процессора и видеокарты
  • Рабочую температуру в реальном времени.
  • Тактовую частоту и их загруженность.

Есть ещё множество параметров которые можно получить. Например все данные о материнской плате, и вентиляторах установленных на ней. Размер памяти ОЗУ и её загруженность, полную информацию о жёстких дисках, но так как мне сейчас это не нужно, да и выводить на этот экранчик неудобно, поэтому я оставил это на будущее. Пишите в комментариях если вам интересна эта тема и какие параметры вы бы хотели увидеть в следующем видео.

Теперь приступим к разбору урока.

Есть много программ для отслеживания параметров компьютера. Вот одна из них. Это программа Open HardWare Monitor.
Давайте её скачаем и посмотрим что она нам покажет, а потом посмотрим, что у нас будет на дисплее.
Переходим по этой ссылке или можно скачать последнюю на текущим момент версию программы по ссылке на моём сайте. Там же будут дополнительные программы и скетч для вывода параметров на дисплей.
Нажимаем Скачать и скачиваем вот эту версию. Теперь переходим в то место куда скачал и запускаем программу.
Для отображения подробной информации о каждом из пунктов раскройте его. 

  • Voltages – напряжение (процессора);
  • Temperatures – температуры использования компонента;
  • Fans – скорость вращения вентилятора;
  • Controls – настройка скорости вращения вентилятора вручную;
  • Clocks – тактовая частота работы ядер процессора и видеокарты;
  • Load – степень загрузки компонента;
  • Data – степень физического использование памяти (загрузка ОЗУ и заполнение HDD).

Эти данные постоянно изменяются, так как замеры идут в реальном времени, и чем больше или меньше нагрузка на процессор или видеокарту, тем выше или ниже будет температура. Вот эти параметры мы и будем сегодня считывать.

Загружаем скетч и смотрим что у нас на дисплее. Сначала Ардуина ждёт подключения к серийному порту компьютера. Для того чтобы соединение произошло надо запустить программу Arduino PC Monitor. 
Эту программу написал не я. Я позаимствовал её из сети. Ссылка откуда я её взял будет в описании.  
Выбираем порт к которому подключена Ардуина.
У меня это COM PORT 4. Так же здесь можно отметить с какой частотой будут производиться вывод на дисплей Можно выбрать от 1 до 5 секунд. 
Нажимаем Соединиться и видим, что на экране появилась информация. 
Давайте теперь сравним её с программой.
Помимо HardWare Monitor я ещё вывел на экран Диспетчер задач и открыл в нём вкладку Центральный процессор. Так же здесь есть вкладка Видеокарта и там также можно видеть все изменения.
Теперь я заморожу видео чтобы рассмотреть показания.
Мы видим, что у меня процессов компании Intel, i7 3 поколения и модели 820.
Температура в данный момент поднималась до 53 градусов. Это вполне нормальная температура для процессора. Режимы работы своего процессора вы можете найти в даташитах в интернете.
Тактовая частота процессора равна 3703 Мгц . Это количество тактов (вычислений) в секунду. 1 МГц равен 1 миллиону тактов в секунду.
Загруженность процессора 25 %. Показания немного рознятся – это из-за того что я мог неправильно синхронизировать несколько видео. Видео с камеры и скрин с экрана.
Теперь рассмотрим видеокарту. Здесь я особо рассказывать не буду, так как здесь тоже самое что и в процессоре. Мы видим название моей карты. Это NVideo geforce  GTX 1650, которая сейчас разогрета до 33 градусов и загружена всего на 3 %, хотя я сейчас снимаю и монтирую видео.

К чему я всё это веду и для чего это может пригодиться.
Ну во первых для любителей разгона. Вы всегда можете в реальном времени видеть какая у вас температура процессора, а добавив в скетч несколько строчек кода вы можете автоматически или вручную включать дополнительный вентилятор или другое охлаждение. Конечно с таким дисплеем смотрится не очень красиво, поэтому я заказал несколько OLED графических дисплеев на которых можно будет построить график и выводить картинки и цвета. Например при превышении заданной температуры на экранчике будет показан сигнал тревоги, а можно и поставить пищалку и подавать звуковой сигнал. Это будет сделать совсем не сложно, и как приедут дисплеи могу сделать такой пример, конечно если будут желающие посмотреть. 
Теперь разорвём соединение и перейдём к рассмотрению кода. Для разрыва соединения нажимаем на красный квадратик и видим на дисплее текст disconnect. 

Для начала вам надо установить библиотеку LiquidCristal I2C. Её можно скачать из менеджера библиотек программы Arduino IDE.
Для всех любителей писать что в скетче ошибка, теперь буду специально говорить, что у вас может быть другой адрес не такой а например вот такой или другой. Узнать его можно запустив сканер I2C шины.
Остальное стандартное подключение и вывод текста что Ожидается соединение, ждите.
Этот текст пропадёт после того как вы запустите программу Arduino PC Monitor и она соединится с Ардуино по COM порту.
Этот код проверят пришли ли новые сообщения в порт и если да то выводит их на экран.
Выводим на первой строчке CPU если это процессор или GPU если это видеокарта.
Выводим температуру и знак градуса.
На второй строчке выводим частоту и значение мГц.
Ну и дальше выводим загруженность в процентах.
Вот и всё осталось посмотреть схему соединения и можно идти собирать. Схема очень простая. Это простое подключение дисплея по шине I2C. Ждите продолжения. Вывод на графический дисплей и больше данных.


Примеры подключения и использования LCD дисплей 1602 и 2004
Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей
Простой таймер на Ардуино с реле и обратным отсчётом
Игры на Ардуино с дисплеем LCD 1602
Подключение I2C дисплея к ардуино. Русификация текста.
Модуль rfid rc522 идентификация. Карта rfid пропуск
Уроки ардуино Простой калькулятор
Температура процессора и видеокарты, их частота и загруженность.
rfid система. LCD дисплей 1602. Русификация
rfid идентификация. Учёт посещаемости Время прихода и ухода
LCD Дисплей 1602 и 2004: Проекты и Подключение к Arduino