Реклама ⓘ
Главная » Компьютерная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Мониторинг параметров компьютера на Arduino

Недавно на http://cxem.net обнаружил интересную статью, в которой описывалось создание устройства для мониторинга параметров ПК. Сразу захотелось что-то подобное. Но так как опыта программирования PIC контроллеров у меня маловато, зато имеется Arduino, решил собирать на нем.

Основа устройства – Freeduino, в качестве индикатора применен LCD (16х2) дисплей с контроллером H44780 на борту, для подачи звукового сигнала использован пьезоэлектрический капсуль, снятый с китайского мультиметра. Связь  полученного устройства и ПК осуществляется посредством USB.

Фото «готового» устройства:

SDC10223_600x450.jpg

Вот полный список деталей для сборки:
   - Arduino Uno, Freeduino и т. п.
   - LCD дисплей с контроллером H44780
   - Пьезоэлектрический излучатель (подойдет любой, даже тот, что используется в китайских игрушках)
   - Резистор 10-30 Ом
   - Подстроечный резистор 10кОм

Соединяем детали по такой схеме:

   cxem_600x466.jpg

Загружаем в Arduino скетч под названием “Lcd_Ram.ino” (лежит в прикрепленном к статье архиве), подключаем к ПК через кабель USB.

На дисплее устройства должна появиться такая картинка:

   SDC10225_600x450.jpg

Если картинка не появилась, то существует четыре причины:
1) Нет питания (поврежден USB шнур);
2) Поврежден шлейф LCD (дисплей не прошел инициализацию);
3)Неисправен Arduino;
4) Недостаточная контрастность дисплея (эта причина устраняется путем изменения сопротивления подстроечного резистора);

Данное устройство способно выводить на LCD информацию о загрузке оперативной памяти и процессора (больше не позволил размер самого LCD).

Если оперативная память загружена более чем на 70%, то устройство будет подавать звуковой сигнал, а на LCD будет выводиться такой значок:

   oklyk_small.jpg

Подача звукового сигнала может выключаться из программы на Windows. Если звук включен, то на LCD выводится иконка:

   sound_small.jpg

Но так как просто взять и считать значения таких параметров как процент загрузки ЦП и оперативной памяти с USB порта нельзя, то мной была написана программа для «отлова» этих значений и последующей передачи их в порт.

Главное окно данной программы:

glav_okno.jpg

Для соединения с Arduino откройте в программе вкладку «COM порт» --> “Настройка COM”, и выберите виртуальный COM порт, "принадлежащий" Arduino (если вы первый раз подключаете Arduino  к ПК, то будет необходимо установить драйвера FTDI) . После соединения на дисплее должна быть похожая картина:

   SDC10209_600x450.jpg

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

Удачи в сборке, всем пожеланиям и замечаниям буду только рад!

Прикрепленные файлы:

Теги:

Опубликована: 30.06.2013 0 2
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.4 Проголосовало: 2 чел.

Комментарии (45) | Я собрал (0) | Подписаться

+1
111 #
Программа для ПК в какой среде создавалась?
Ответить
0

[Автор]
zeconir #
Embaracadero Delphi XE3
Ответить
0
Alex #
А реально сделать такую же систему только с отображением температуры процессора и видио карты.
Ответить
0

[Автор]
zeconir #
В принципе реально. Но это того не стоит.
Ответить
0
Koronos #
Стоит для управление водяным охлаждение ПК через arduino
Ответить
+1
Tsi329 #
У меня 4 ядра. Что делать?
Ответить
0

[Автор]
zeconir #
Пока поддерживается отображение только двух. Планирую доработать программу, чтобы пользователь мог сам выбирать кол-во ядер.
Ответить
+1
Максим #
А у меня программа выдала - "Unable to write to lcd.ini"
Ответить
0

[Автор]
zeconir #
Возможная причина - отсутствие прав администратора
Ответить
0
Максим #
А можно использовать Arduino Uno 3. Есть между ними какая-то разница?
Ответить
0
Иван #
Можно, разницы нет... Я использовал Arduino nano v3
Ответить
0
Сергей #
Такая проблема: не могу убрать полностью вывод второго ядра процессора с дисплея. Хочу в том месте вывести просто текст.
Ответить
0

[Автор]
zeconir #
Насколько я помню, из программы достаточно вырезать статический текст (надпись 2 ядра) и строки, отвечающие за обновление инфы 2 ядра. Вроде бы все.
Ответить
0
Сергей #
Так вот, какие строки отвечают за обновление инфы?
Ответить
0

[Автор]
zeconir #
Ууууууу, это уже сам глянь. Я забыл уже как там программа выглядит. А вообще методом перебора.
Ответить
0
OrCanum #
Доброго времени суток. У меня просьба. Мой уровень знаний в программировании крайне низок, а очень хотелось бы, чтобы созданная схема работала не только под Windows, с вашей программой, но и под ubunta'ой. Вы можете, пожалуйста, показать мне код программы используемой вами для "отлова" значений и передачи их через порт? Если это просьба слишком наглая, то, будьте так любезны, посоветуйте литературу и сайты с помощью которых в этом можно разобраться.
Ответить
+1

[Автор]
zeconir #
Я бы с радостью предоставил вам исходники, но их у меня уже нет (очередной сбой системы -> переустановка, и как правило файлов нет).
Насчет литературы, тут в интернете найти куски кода не сложно, просто пробейте "как в делфи определить частоту ЦП и т.д. Для передачи значений в порт использовал компонент BComPort.
P.S. Если вам интересна эта тема, то скоро (сегодня - завтра) выложу на сайт или статью или как схему "Индикатор загруженности ЦП". Тоже общение через COM порт (в т.ч. виртуальный).
Ответить
0
OrCanum #
Весьма прискорбно. Но спасибо за ответ. Да, обязательно посмотрю.
Ответить
0
Dacian #
А чтобы подключать LCD через I2C что менять надо в коде!?
Ответить
0
Vukasito #
Все сделал, все работает, автору спасибо, могу скетч выложить с I2C. Торопился задавая вопрос выше.
Ответить
0
Сергей #
А как изменить значок перегрузки RAM? Хочу убрать скобки или даже совсем другой знак себе сделать
Ответить
0

[Автор]
zeconir #
Смотрите, в начале скетча есть блоки с такими заголовками: byte slash_up[8], ..., byte sound[8].
Изменение данных в них позволит изменить символы. Если в ячейке стоит "1" - на жки будет затемнен соотв. пиксель.
Ответить
0
Stalker_cs #
Столкнулся с такой проблемой:
Запустил прогу, и в ней выбрал вкладку "COM порт", затем нажал нечто вроде "Найти порт", после чего у меня в бесконечном цыкле стали открываться окна с предупреждением, мол "выбран неверный COM порт". Закрыть программу получилось только через диспетчер задач. Думал что при следующем запуске проги всё наладится, ан нет. Теперь при старте программы сразу же начинают открываться эти предупреждения. Неподскажете как это исправить? Очень хочется всёже собрать "это чудо".
Прикрепленный файл: Безымянный.jpg
Ответить
0

[Автор]
zeconir #
Из того что я помню (у меня уже нет исходников программы для ПК, видимо когда-то "почистил" диск), такая ошибка возникает, если в системе вообще нет ни одного COM порта. Проверьте в Диспетчере устройств. Можно еще проверить, скачав Eltima Virtual Serial Port driver, добавить виртуальную пару COM портов.
Ответить
0
Stalker_cs #
Скетч и библиотека для I2C LCD 16x2
Прикрепленный файл: Lcd_Ram.ino
Прикрепленный файл: LiquidCrystal_I2C-master.rar
Ответить
0
Павел #
Скетч не открывается почему-то.
Ответить
0
i2c #
Спасибо большущее!
Ответить
0
Константин #
Добрый день. А как снимать температуру процессора и отображать? Можно ли и как? И, допустим, температуру других компонентов - HDD, видеокарты...?
Ответить
0

[Автор]
zeconir #
По поводу мониторинга температуры процессора в интернете есть достаточно информации, в отличии от данной статьи, которая ориентирована больше на электронную часть а не программную. Что касается второго вопроса, то да - можно.
Ответить
0
Константин #
Я наверное не правильно сформулировал. Снять температуру с датчика процессора и послать на ардуино для дальнейшей обработки. Я, к сожалению в и-нете не нашел ничего конкретного.
Ответить
0

[Автор]
zeconir #
Язык программирования?
Вот, к примеру, то что было найдено за 30 сек.
Delphi
C++
Ответить
0
Alex #
Возможно ли использовать другие типы экранов совместимых с arduino, и если возможно, прошивку только в arduino uno подстраивать под него надо?
Ответить
0

[Автор]
zeconir #
Можно использовать и несовместимые, если на то пошло! Второй части вопроса не понял.
Ответить
0
Alex #
Ой сори не правильно вопрос задал не прошивку, а код проекта
Ответить
0

[Автор]
zeconir #
Именно так дело и обстоит.
Ответить
0
Pavlo #
Привет. Несколько лет назад был ваш комент что вы собираетесь доделать программу под несколько ядер. Так вопрос, доделали ?
Ответить
0

[Автор]
zeconir #
Нет, эту затею забросил.
Ответить
0
odd #
Работает, но стрелочки не двигаются почему-то и никаких других символов типа звука или! Не выдает.
Ответить
0
Artem1988 #
Собрал данную схему, на Arduino NANO. Заработала сразу но, показывала какую-то ерунду. Показания в тысячах. Процессор у меня два ядра, четыре потока. Поковырял скетч, в параметре "char a[1];" поменял число 1 на 2. И стало показывать правильно. P.S. Автору большое спасибо за статью!
Отредактирован 04.03.2018 17:57
Ответить
0
Даниил #
Здравствуйте, подойдет ли Freeduino Through-Hole для сборки данного оборудования?
Ответить
0

[Автор]
zeconir #
Добрый день. Если совместимо со средой Arduino, и имеет в основе контроллер ATmega, скорее всего подойдет.
Ответить
0
Даниил #
При загрузке на Arduino Uno пришет тысячи процентов. Что делать?
Ответить
0
DidandGo #
Наверно ошибка в коде или проблема с железом
Ответить
0
DidandGo #
А можно сделать такую же но только на oled 128*64 и просто с экраном без зумеров (у меня резисторов нет)?
Ответить
0
Sergeykozinetss #
Врапрос: а под Дебиан или Убунту сервер, есть какая -то программка? На сервере штука была бы полезна.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

МиниПК MK809V - 4 ядра, Android 4.4.2
МиниПК MK809V - 4 ядра, Android 4.4.2
Raspberry Pi 2 Мини гравер 125 Ватт
вверх