Найти тему
Радиохлам

Индикатор нагрузки на PC

Листал я как-то сайт популярного самодельщика AlexGyver'а в поисках вдохновения. Передо мной лежала ардуинка и парочка модулей, которые надо было куда-нибудь пристроить. И тут я набредаю на проект под названием "Экран с параметрами ПК". Задумка состояла в том, чтобы выводить информацию о нагрузке жизненно важных элементов ПК и регулировать температуру внутри корпуса компьютера через управление вентиляторами.

Идея выводить значение нагрузки и памяти ПК на внешний экран не нова. На одном только Алиэкспрессе можно найти множество готовых устройств.

Но собрать своими руками куда интереснее, особенно когда не делаешь чужой проект под копирку, а подгоняешь его под собственные требования.

Что я собственно и сделал...

В моих планах было только выводить инфу на дисплей без управления вентиляторами, причем дисплей у меня тоже был другой - крохотный LCD.

Схема подключения к ардуинке такого модуля предельно проста:

Всего 4 проводка, и вы можете выводить на экран все, что вздумается!
Всего 4 проводка, и вы можете выводить на экран все, что вздумается!

Теперь займемся программной частью. Вот мой переработанный проект.

AlexGyver в своем проекте через программу Hardware Monitor при помощи эмуляции COM-порта отправлял данные на Ардуино, где они обрабатывались нужным образом и выводились на дисплей. Однако с моим LCD-дисплеем скетч из проекта AlexGyver'а работать отказался. Пришлось выяснять, в каком данные из Hardware Monitor посылаются в Ардуино. Я написал скетч PCvalues, который бы выводил на дисплей необработанные значения. Заливаем скетч в Ардуино (я надеюсь вы знаете, как это делается). Затем запускаем передачу данных в Hardware Monitor и наблюдаем.

-3

В это время на дисплее:

-4

Куча цифр. Но главное не паниковать! Нам нужно лишь определить какие числа отвечают за нагрузку ЦП. Для этого смотрим соответствующий пункт в программе и ищем такое же число на дисплее. Запоминаем номер символьный номер цифры, с которой начинается параметр. Теперь открываем скетч load_comp или load_compv2. Там разница лишь в том, сколько параметров обрабатывается из потока.

Программы работают следующим образом: скетч берет поток данных с компа, преобразует их в строку, и затем переходит на указанную позицию и извлекает параметр ПК

Давайте взглянем на этот кусок кода:

-5

Помните мы запоминали номер символа? Так вот теперь этот номер нужно прибавить к аргументу dividerIndex, чтобы перейти на нужную позицию в строке, где расположился параметр. Вот и вся магия! Таким образом вы можете выводить на экран, любой нужный параметр.

А в заключении немного фото, как это все выглядит в железе: