Листал я как-то сайт популярного самодельщика AlexGyver'а в поисках вдохновения. Передо мной лежала ардуинка и парочка модулей, которые надо было куда-нибудь пристроить. И тут я набредаю на проект под названием "Экран с параметрами ПК". Задумка состояла в том, чтобы выводить информацию о нагрузке жизненно важных элементов ПК и регулировать температуру внутри корпуса компьютера через управление вентиляторами.
Идея выводить значение нагрузки и памяти ПК на внешний экран не нова. На одном только Алиэкспрессе можно найти множество готовых устройств.
Но собрать своими руками куда интереснее, особенно когда не делаешь чужой проект под копирку, а подгоняешь его под собственные требования.
Что я собственно и сделал...
В моих планах было только выводить инфу на дисплей без управления вентиляторами, причем дисплей у меня тоже был другой - крохотный LCD.
Схема подключения к ардуинке такого модуля предельно проста:
Теперь займемся программной частью. Вот мой переработанный проект.
AlexGyver в своем проекте через программу Hardware Monitor при помощи эмуляции COM-порта отправлял данные на Ардуино, где они обрабатывались нужным образом и выводились на дисплей. Однако с моим LCD-дисплеем скетч из проекта AlexGyver'а работать отказался. Пришлось выяснять, в каком данные из Hardware Monitor посылаются в Ардуино. Я написал скетч PCvalues, который бы выводил на дисплей необработанные значения. Заливаем скетч в Ардуино (я надеюсь вы знаете, как это делается). Затем запускаем передачу данных в Hardware Monitor и наблюдаем.
В это время на дисплее:
Куча цифр. Но главное не паниковать! Нам нужно лишь определить какие числа отвечают за нагрузку ЦП. Для этого смотрим соответствующий пункт в программе и ищем такое же число на дисплее. Запоминаем номер символьный номер цифры, с которой начинается параметр. Теперь открываем скетч load_comp или load_compv2. Там разница лишь в том, сколько параметров обрабатывается из потока.
Программы работают следующим образом: скетч берет поток данных с компа, преобразует их в строку, и затем переходит на указанную позицию и извлекает параметр ПК
Давайте взглянем на этот кусок кода:
Помните мы запоминали номер символа? Так вот теперь этот номер нужно прибавить к аргументу dividerIndex, чтобы перейти на нужную позицию в строке, где расположился параметр. Вот и вся магия! Таким образом вы можете выводить на экран, любой нужный параметр.
А в заключении немного фото, как это все выглядит в железе: