Мониторинг параметров пк на pic

Мониторинг параметров ПК на PIC

Данный проект представляет собой USB-устройство с LCD-дисплеем, на котором отображаются параметры компьютера в реальном времени.

Прошивка PIC-контроллера: Прошивка использует USB стек микроконтроллеров. Файлы, расположенные в USB папке, взяты из библиотеки «Microchip Libraries of Applications». Я использовал версию v2012-08-22 этой библиотеки. Файлы main.c, usb_descriptors.c, и usb_config.h были сформированы после «Device — HID — Custom Demos» файлов. Микропрограммное обеспечение обрабатывает команды в функции ProcessIO function в коде main.c. Прошивка PIC поддерживает следующие команды, передаваемые через USB HID:

0x10 — Очистить дисплей
0x11 — Перейти на строку 1, распечатать строковый параметр
0x12 — Перейти на строку 2, распечатать строковый параметр
0x13 — Перейти на строку 3, распечатать строковый параметр
0x14 — Перейти на строку 4, распечатать строковый параметр
0x20 — Выключить подсветку
0x21 — Включить подсветку
0x22 — Переключить подсветку
0x23 — Запросить состояние подсветки
0x30 — Обновить пользовательский параметр

Поддержка приложения ПК: приложение было написано на C#. Некоторые примечания. файл HIDInterface.cs представляет собой скрытую форму. Я создал это как форму, чтобы я мог получить указатель окна, используемого для вызовов функции RegisterDeviceNotification. Это позволяет мне определять, когда USB устройства подключены и не подключены. Это файл общего типа; специальные команды отображения находятся в файле HIDInterface_LcdDisplay.cs. Этот файл расширяет файл HIDInterface.cs и позволяет мне легко отправлять команды на дисплей. В LineOptionControl.cs вы найдете следующую функцию.

Эта функция определяет, как приложение отображает графы. Она требует целочисленный ввод в диапазоне 0 -> 100 и возвращает 20 символьную строку, представляющую целое число. Каждый символ представляет 5% графа. PIC интерпретирует символы 0x10 -> 0x15 в обычные символы, представляющие 0% -> 5%.

Настройки: Поддерживаемое приложение позволяет изменять значение скорости обновления информации. Это число означает, как часто ПК опрашивается для получения информации о состоянии. При этом на дисплее происходит обновление полученной информации. Вы также можете изменять время подсветки в режиме простоя. По истечении этого времени в режиме простоя компьютера (мышь не перемещалась, на клавиатуре не нажимались кнопки и т.д.) подсветка выключится. Если вы установите это время одинаково со временем отключения дисплея, тогда отключение будет выполняться синхронно. Если вы хотите деактивировать эту функцию, установите значение в 0.

Командная строка: Если вы выберите значение «min» либо «minimize» для программы в качестве аргумента, то она запустится в свернутом виде в системный трей. Это удобно выполнить путем изменения ярлыка, как показано далее .

Список используемых радиоэлементов:

  • LCD дисплей:
    • 1x NHD-0440WH-ATFH-JT [P1] — Модель не критичная. У меня используется 4×40 управляемый 2x SPLC780D микросхемами.
    • 1x 20KΩ потенциометр [R3] — Подстройка контрастности дисплея
    • 1x NPN FET [Q1] — Модель не критичная, я использовал MPSA42_D26Z FET.
    • 1x 1KΩ резистор [R5] — Ограничитель тока затвора.
    • 1x 22Ω резистор [R6] — Токоограничительный резистор подсветки LCD.
  • Микроконтроллер и обвязка:
    • 1x PIC18F2550 [U2] — PIC18F с поддержкой USB
    • 1x 10KΩ резистор [R4] — Для подтяжки MCLR
    • 1x SPST кнопка [S1] — Сброс. SKRGARD010.
    • 1x 20MHz кварц [Y1] — Я использовал ABL-20.000MHZ-B2.
    • 2x 18pF конденсаторы [C1] [C2] — Для 20МГц кварцевого резонатора
    • 1x 220nF конденсатор [C3] — Фильтрующий конденсатор для 3.3В USB порта МК
    • 1x 6 штыревой разъем [P2] — для программирования ICSP
    • 1x USB кабель [P3] — Питание устройства

Простая система сбора данных о температуре на PIC микроконтроллере

В проекте рассматривается простое и дешевое решение цифрового термометра, который подключется по интерфейсу USB к персональному компьютеру. Аппаратная часть состоит из PIC микроконтроллера, датчика температуры и адаптера USB-UART. Программа микроконтроллера написана на Си в среде mikroC (mikroElektronika). Программное обеспечение для ПК написано на языке Processing. Это открытый язык программирования, основанный на Java. Представляет собой легкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимацию и интерфейсы. Как дополнительная функция, в программе реализована запись данных о температуре по времени и дате в ASCII файл.

Микроконтроллер Microchip PIC12F1822 выполнен в 8-выводном корпусе, работает в широком диапазоне питающих напряжений (1.8 В – 5.5 В), имеет интегрированный 10-битный АЦП и модуль EUSART для коммуникации по последовательному интерфейсу. В схеме применяется аналоговый датчик температуры MCP9701A, который поддерживает измерение температуры в диапазоне от –40°С до +125°С. Выходное напряжение датчика прямо пропорционально температуре, температурный коэффициент составляет 19.53 мВ/°С. Измерение отрицательных температур возможно за счет смещения по постоянному напряжению 400 мВ, что соответствует температуре 0 °С.

Выход датчика подключен к одному из каналов АЦП микроконтроллера. Встроенный источник опорного напряжения микроконтроллера сконфигурирован для получения напряжения 2.048 В, причем использование этого внутреннего источника гарантирует стабильность данных АЦП при нестабильном питании микроконтроллера. Микроконтроллер передает преобразованные 10-битные данные по последовательному интерфейсу в компьютер.

Многие современные компьютеры и ноутбуки не имеют последовательных портов, поэтому автор использовал готовый модуль преобразователя интерфейсов USB-UART, он может быть непосредственно подключен к ТТЛ входам и выходам модуля EUSART микроконтроллера. Кроме того, модуль имеет шину питания +5 В, +3.3 (зависит от конструкции преобразователя USB-UART). В нашем случае напряжение питания микроконтроллера +5 В

.

Принципиальная схема

Схема цифрового термометра очень простая. Датчик температуры подключен к порту микроконтроллера RA2/AN2. Выводы адаптера USB-UART RX и TX подключены к соответствующим выводам микроконтроллера. Источник тактирования микроконтроллера – внутренний осциллятор 4 МГц.

Следует отметить, что вывод микроконтроллера MCLR сконфигурирован для работы в качестве линии ввода/вывода с целью дальнейшего расширения функций. Однако пользователь может настроить на использование по прямому назначению – сигнал внешнего сброса.

Микроконтроллер и датчик температуры установлены на небольшой макетной плате, на которой также размещен ответный коннектор для подключения к адаптеру USB-UART (для данного исполнения адаптера).

Программное обеспечение

Программа для микроконтроллера, как упоминалось выше, написана на Си в среде mikroC Pro для PIC микроконтроллеров. Данный компилятор предоставляет библиотеку функций по работе с АЦП микроконтроллера, однако, есть один нюанс – библиотека рассчитана на использование напряжения питания микроконтроллера в качестве опорного напряжения АЦП. Поэтому необходимо использовать собственный код для конфигурирования встроенного источника опорного напряжения.

Преобразование выходного напряжения датчика MCP9701A аналого-цифровым преобразователем осуществляется через каждые 2 секунды, два байта данных затем передаются на ПК по последовательному интерфейсу. Полный исходный код программы микроконтроллера с комментариями доступен для скачивания в разделе загрузок, для его компиляции подойдет и демонстрационная версия компилятора mikroC, не забудьте только использовать внутренний источник тактирования 4 МГц.

Программа для ПК на языке Processing проста и реализует несколько функций: прием 10-битных данных с последовательного порта (виртуального COM порта), преобразование полученных данных в значение температуры, визуализация данных в окне программы. Библиотека функций Processing для работы с последовательным портом реализует простые способы записи данных в порт и чтения принятых данных.

По принятию двух байт данных, необходимо вычислить значение температуры. Для датчика MCP9701A расчеты следующие:

Разрешение АЦП преобразователя (Vref = 2.048V) = 2.048 В/1024 = 2 мВ/отсчет

Эквивалентное выходное напряжения для 10-битного АЦП Vadc (мВ) = 2 мВ*ADCvalue

Температура (°C) = (Vadc – 400 мВ)/19.5 мВ/°С

Вид окна программы для ПК

Кнопка «Start/Stop» предназначена для начала/остановки записи данных о температуре в файл. При нажатии копки «Start» начинается запись данных – сначала в оперативную память компьютера, а по нажатию кнопки «Stop» данные переносятся в файл. Имя файла содержит время и дату начала записи данных, поэтому наложение данных исключено. Каждый раз, когда нажимается кнопка «Start», создается новый файл.

Возможные улучшения

Интервал преобразования данных в данной версии жестко фиксирован в программе микроконтроллера, однако более гибким вариантом может быть пользовательская установка интервалов в программе на ПК. Кроме того возможна реализация прорисовки графиков изменения температуры по сохраненным данным в виде отдельного программного модуля.

Загрузки

Исходный код программы микроконтроллера (mikroC) – скачать
Исходный код программы для ПК (Processing) и исполняемый файл – скачать

Перевод: Vadim по заказу РадиоЛоцман

Мониторинг параметров пк на pic

1. Режим ожидания (при выключенном зажигании) — на индикатор выводится текущее время и температура окружающей среды;

2. Рабочий режим, включающий в себя измерение напряжения бортовой сети, тока заряда/разряда аккумулятора, оборотов двигателя, температуры двигателя, температуры на улице, индикацию текущего времени;

3. Аварийный режим (работает только при включенном зажигании) — контролирует аварийный уровень тормозной жидкости (датчик штатный поплавок в расширителе ГТЦ), минимальный уровень охлаждающей жидкости в расширительном бачке системы охлаждения (сделан самодельный поплавок с герконом и магнитом), перегрев двигателя (в случае нагрева двигателя выше 990С), аварию генератора ( в случае понижения напряжения на аккумуляторе ниже 10,5В). Также при выключении зажигания, если водитель забыл выключить габариты, то устройство ему об этом обязательно напомнит.

Для того чтобы реализовать часы в бортовом компьютере, в программе были использованы прерывания, подсчет 1 секунды ведется по сотому уходу в прерывания, часы можно настраивать только при выключенном зажигании. При этом никакие сервисных функции нет, опрос кнопок инкрементирования часов и минут ведется постоянно, с периодичностью одного опроса датчика температуры улицы (это примерно каждые 0,7сек.). Так как при опросе датчика температуры запрещаются все прерывания, то тому, кто захочет повторить бортовой компьютер, нужно будет только откалибровать в программе (методом подбора) ежечасный коэффициент поправки регистра секунд (в программе находится после метки ZAGIG — это режим ожидания), и аналогично подобрать коэффициент поправки секунд после метки RABOTA. Делается элементарно — вместо цифр коэффициентов ставим нули, зашиваем в пик, включаете устройство на сутки. Затем, по окончании суток, измеряем погрешность хода часов. Допустим, часы отстали на 15мин, это 900 сек. Вычисляем часовую погрешность хода: 900/24=37,5сек, округляем в любую сторону, корректируем программу и снова проверяем. Аналогично и для рабочей части программы (не забудьте сымитировать включение зажигания и запуск стартера).

В режиме ожидания, когда зажигание выключено, на индикатор выводится температура на улице и текущее время в формате ЧЧ:ММ. При включении зажигания, высвечивается приветственная надпись:

Затем выводится на LCD наружная температура и температура двигателя

Далее измеряется напряжение на аккумуляторе, и, если его уровень выше 11,0В, то выводится следующая надпись:

Если ниже, то выводится надпись с рекомендацией подзарядить аккумулятор.

Работа LCD происходит по однонаправленному последовательному интерфейсу (вывод RW соединен с корпусом), организованному через порт B. Все входы контроллера (за исключением выводов термодатчиков DS1820), а также выводы питания, обвешены SMD конденсаторами по 0,1мкф, для повышения надежности при возникновении помех в бортовой сети. Датчик тока включается последовательно в тонкий плюсовой провод зарядки аккумулятора от генератора (не путать с толстым проводом идущем плюсом на стартер). Все внешние цепи напряжением 12В (а именно: габариты, уровень тормозной жидкости, наличие тосола, включения стартера, включения зажигания и провод, идущий к тахометру, на котором есть прерывания от катушки зажигания), соединены с «пиком» при помощи транзисторных повторителей (ВС846В или аналогичных NPN в SMD исполнении).

В штатной схеме любого карбюраторного ВАЗа питание на лампочку аварийного снижения тормозной жидкости приходит +12В, поэтому при создании схемы бортового компьютера учитывались минимальные переделки в схеме авто, а именно — провод, который шел к лампе тормозной системы, обрезаем и прикручиваем к выводу платы с меткой ТС (тормозная система). В этом случае подача напряжения на этот провод будет соответствовать аварийному снижению уровня тормозной жидкости. Аналогично с расширителем системы охлаждения двигателя, причем плюсовой провод, идущий к расширителю системы охлаждения, можно запараллелить с проводом, идущим от бачка с тормозной жидкостью.

Мини-дисплей для ПК

Здесь представлено описание небольшого графического индикатора, подключаемого через порт USB к обычному компьютеру. Его основное назначение — вывод системной информации во время работы полноэкранных приложений (тесты типа 3DMark, игры и т.д.)

Лирика.
Сама по себе идея подключения таких ЖКИ появилась достаточно давно. В первую очередь ее подхватили моддеры. В сети есть огромное количество вариантов подключения этих индикаторов к различным портам ПК — LPT, RS232, USB.
Есть и фирмы-производители, специализирующиеся на их производстве — Matrix Orbital, Crystalfontz и др.
Подтянулись и производители периферии — в игровых клавиатурах .

Здесь представлено описание небольшого графического индикатора, подключаемого через порт USB к обычному компьютеру. Его основное назначение — вывод системной информации во время работы полноэкранных приложений (тесты типа 3DMark, игры и т.д.)

Лирика.
Сама по себе идея подключения таких ЖКИ появилась достаточно давно. В первую очередь ее подхватили моддеры. В сети есть огромное количество вариантов подключения этих индикаторов к различным портам ПК — LPT, RS232, USB.
Есть и фирмы-производители, специализирующиеся на их производстве — Matrix Orbital, Crystalfontz и др.
Подтянулись и производители периферии — в игровых клавиатурах Logitech серии «G» уже достаточно давно применяются небольшие графические панели, на которые можно выводить как системную, так и игровую информацию.
Есть и полноценные ЖК-мониторы с небольшой диагональю (7-8″), подключаемые к компьютеру через USB-порт (напр., Samsung SyncMaster U70)

Казалось бы, чего проще — купить готовое изделие и не забивать себе голову тем, что давно уже изобретено, изготовлено и продается по 3руб/штука.
Однако же, в серийных изделиях на то время (а это было полтора года назад, сейчас, возможно, ситуация изменилась) меня не устраивали несколько моментов.

Первое — недостаточный функционал программ, обеспечивающих работу ЖКИ. Да, гламурные часики и свободное место на дисках — это нужные вещи. Температуры CPU и GPU — тоже. Но в современном компьютере существует около сорока различных параметров, которые в большей или меньшей степени представляют интерес для пользователя.

Второе проистекает из первого. Полновесные программы от производителей железа, обвешанные десятками библиотек и зачастую требующие для своей работы пресловутого .Net-а, так или иначе справляются с выводом необходимой информации. Но какой ценой ?
20-30МБ оперативной памяти, десятки мегабайт на жестком диске. Понимаю прекрасно, что при нынешних тенденциях «расползания» ПО на ГИГАбайты десяток-другой «метров» мало кого волнует. Но есть и еще один фактор — влияние этих программ на быстродействие самих ПК.
Опять-таки, не буду говорить за текущее состояние, но на тот момент вывод какой-либо графической информации через порт USB с помощью распространенных программ нагружал процессор (в зависимости от его быстродействия) на 5-15%. И в этом случае результаты, например, теста 3DMark уже не являлись корректными.
Да, есть относительно шустрые и универсальные программы типа LCDSmartie и LCDHype, но все они ЛИБО шустрые, ЛИБО универсальные. Первая не знает о существовании графических индикаторов, вторая — о том, что на дворе 21 век и пора бы уже чуть быстрее шевелить лаптями.

Впрочем, никого не хочу обидеть, любая из этих программ имеет широкое распространение, а, значит, устраивает многих пользователей.
У меня же была еще и третья (основная) причина — «свой собственный» дисплей я делал отчасти потому, что нужно было освоить для заказчика относительно новый цветной графический индикатор, который поставлялся нашими китайскими коллегами по отличной цене, а отчасти — из-за конкурса моддинга, проводимого в прошлом году украинским журналом «Домашний ПК».
Я собирал на этот конкурс небольшой компьютер, стараясь упаковать «средне-игровое» железо в небольшой объем.
Ворклог изготовления этого компьютера есть на modding.ru.
Если очень кратно — размеры корпуса 22х26х8см, внутри находятся E8400 и HD5770.
И на его лицевой панели ну никак не смотрелся ни один из доступных на тот момент заводских дисплеев.

Что выводить ?
Честно говоря, во время сборки компьютера меня не оставляла мысль, что железо в таком маленьком корпусе перегреется, задохнется и помрет. Поэтому в первую очередь должны были мониториться температуры. Также меня интересовала производительность связки CPU и GPU, и их загруженность в наиболее распространенных на тот момент играх. Ах, да — часы. Геймером я никогда не был, ночи напролет не просиживал, но текущее время где-нибудь на видном месте или на передней панели корпуса — это уже традиция.

Как выводить ?
Среди прочего софта, предназначенного для тестов и мониторинга железа особое место занимает AIDA64 (бывший Everest). Звезд с неба эта программа никогда не хватала, но и откровенно плохой ее назвать нельзя.
Что же выделяет ее? Возможность работы с внешними приложениями. Т.е. эта программа — не «вещь в себе», собирающая данные и выводящая их в лог/на монитор, но и охотно делящаяся этими данными с другими программами. Взаимодействие происходит либо через общую область оперативной памяти, либо через реестр Windows.

Т.о. для того, чтобы «подглядывать» за данными из AIDA64, достаточно создать программу, которая бы просматривала определенную область памяти и считывала эти данные оттуда. Кроме того, она же и будет отсылать их на индикатор.
К слову, сама AIDA64 занимает в оперативной памяти и на жестком диске не так уж и мало — 27 и 20МБ соответственно. Но зато не требует для себя .Net и очень слабо (не более 1%) нагружает процессор. На практике, во время прогона 3DMark разница в «попугаях» составляет и того меньше — ок. 0,1%.

Как вариант — можно самостоятельно написать полнофункциональную программу одновременно для мониторинга железа и индикации. Но я посчитал, что это будет еще один велосипед, долгий в своем создании и тяжеловесный в работе.

Индикатор.
Сам дисплей представляет собой TFT-панель диагональю 2,4″ и разрешением 320х240.
Имеет светодиодную подсветку.
Его название – TM240320, контроллер дисплея — ILI9325.
Интерфейс — параллельный, 8/16 бит данных и 5 бит — управление.
Разумеется, напрямую подключить к компьютеру такое количество выводов индикатора через распространенные порты невозможно (LPT — не в счет, он и отсутствует порой на современных компьютерах, и не обладает необходимой скоростью). Поэтому непосредственно для управления ЖКИ был применен микроконтроллер PIC18F2520 производства Microchip. Своего собственного интерфейса для работы с USB у него нет, поэтому его последовательный порт был переведен в скоростной режим, а для связи с компьютером использовался мост USB-RS232. Почему так сложно ? Одним из условий заказчиков было обеспечение работы модуля именно через последовательный порт, а проявлять инициативу и делать ему универсальное подключение у меня не было времени (да, если честно, и желания).
В любом случае, скорость обмена данными с компьютером составила 6MBs.
Частота обновления экрана — 4кадра/сек. Этого мало для живого видео, но вполне достаточно для вывода статичной информации.

Микроконтроллер с минимальной обвязкой был распаян на макетной плате, к индикатору он подключался парой тонких шлейфов от кабелей PATA. Это первоначальный вид макета —

Программа.
Да не прогневаются на меня профессиональные программисты, но программа-«прослойка» между AIDA64 и моим дисплеем писалась на Delphi. Ее размер — 730кБ, объем занимаемой оперативной памяти — 4МБ.
Она выступает еще и launcher-ом, т.е. при своем старте запускает сначала АИДУ, ожидает от нее первых данных, а потом сворачивается в трей. Это позволяет полностью автоматизировать процесс авто-загрузки этих программ.

В окне настройки можно выбрать необходимые для отображения параметры (8 из почти 40 доступных), выводить их в виде числовых значений и/или полос. Цвет и масштаб этих полос, шрифты надписей, их размеры, взаимное расположение и пр. — все это можно менять.
Таким образом, отметив галками нужные параметры, можно выводить их на дисплей с достаточно высокой скоростью и независимо от задач, выполняемых компьютером в данное время.

Конечно, в плане дизайнерских изысков программа значительно уступает своим заводским собратьям, но все нужные МНЕ функции она выполняет:

«У меня лежит индикатор от убитой мобилы/фотоаппарата/etc.
Какие провода надо замкнуть, чтобы подключить его к компьютеру ?» (с)

Основная сложность при «запуске» этого и подобных ему индикаторов состоит в его инициализации — перед тем, как отсылать на него непосредственно графику, надо прописать во внутренних регистрах видеоконтроллера свыше десятка различных параметров — напряжения вольтодобавки, яркость/контрастность, направление развертки, ширину шины управления и ее тип и т.д. При этом надо соблюдать определенную очередность в их подаче и временные интервалы. Например, после установки напряжений вольтодобавки необходимо выдержать паузу в пару сотен миллисекунд, только после этого двигаться далее. Иначе на каком-то этапе контроллер дисплея просто не успеет обработать текущую команду и все последующие просто проигнорирует.

Хорошо, если производитель указывает в тех.документации на свой дисплей порядок команд, которые нужно отправить на индикатор, чтобы он просто «загорелся». Отлично, если эта документация вообще существует — в противном случае ЖКИ так и остается «прикольной стекляшкой», лежащей у своего хозяина долгие годы без особых надежд на ее использование.

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

Содержание

Содержание

Компьютеры настолько плотно вошли в нашу повседневную жизнь, что стали необходимостью. Они предназначены не только для развлечения и отдыха, но также для работы и учебы. Компьютеры, как и любое другое устройство, могут работать некорректно. Вы можете столкнуться с такими проблемами, как синий экран смерти, частые сбои системы (BSoD), запаздывающий интерфейс и т. д.

Большинство из этих сбоев в работе является следствием проблем, связанных с оборудованием. Если не предпринимать никаких мер, последствия могут быть очень печальными.

Устранение неполадок и ремонт компьютера не всегда являются легкой задачей. Правильно диагностировать проблему и собрать системную информацию — залог успеха в данном вопросе. Существуют различные средства диагностики оборудования, которые помогут найти неисправную деталь компьютера и устранить проблему.

В этой статье мы рассмотрим подборку аппаратных средств по сбору информации, диагностике и мониторингу различных компонентов вашей системы.

AIDA64

Начнем с одной из самых известных и комплексных программ для получения информации о компонентах системы, проверке стабильности и тесте производительности. Конечно же, это AIDA64. Интерфейс программы предельно понятен и прост, все разделено на группы.

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

Также вы можете сравнить производительность своих комплектующих с уже протестированными.

Помимо этого, в программе имеются различные тесты на проверку стабильности компонентов компьютера.

Программа OCCT предназначена для комплексной проверки комплектующих компьютера на стабильность (CPU, GPU, RAM, Power).

Помимо наборов тестов, программа отображает общую информацию о компонентах и позволяет мониторить температуру, энергопотребление и многое другое.

Известная, а главное, полностью бесплатная программа CPU-Z,в которой можно посмотреть подробную информацию о процессоре, материнской плате, оперативной памяти и видеокарте. Тут также присутствует тест производительности процессора для сравнения с наиболее популярными моделями.

Есть возможность проверки процессора на стабильность, однако лучше это делать сторонними программами. Как, например, Linx, Prime95 или упомянутые ранее AIDA64 и OCCT.

Работает по аналогии с CPU-Z, только все заточено на работу с видеокартами. Поможет досконально узнать все про аппаратные характеристики видеокарты и информацию, зашитую в биос.

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

Есть возможность проверки на стабильность, но, как и с CPU-Z, имеются специальные программы, которые справляются с этим намного лучше. Например, MSI Kombustor.

MSI Kombustor

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

MSI Afterburner

Самая известная и широко используемая утилита для разгона видеокарт. Кроме разгона, присутствует возможность мониторить информацию о видеокарте и системе в целом, а также выводить эту информацию на экран поверх игры.

Thaiphoon Burner

Нужно узнать всю подноготную о планках оперативной памяти? Thaiphoon Burner считывает данные SPD, в которой хранится вся информация об оперативной памяти.

Вы получите полную информацию о памяти и производителе чипов памяти. Это одна из лучших программ подобного рода.

Коль речь зашла о памяти, и вам требуется узнать тайминги оперативной памяти, причем не только первичного порядка, на помощь придут несколько программ. Программы различаются по производителю процессоров (или лучше платформ) AMD или Intel.

Чтобы узнать всю информацию о таймингах для процессоров AMD Zen 1000-2000 серии, можно воспользоваться программами ZenTimings и Ryzen Timing Checker.

С процессорами Zen 3000 лучше воспользоваться программой Ryzen Master или ZenTimings.

Для процессоров Intel есть свои программы для получения информации о таймингах — это Asrock Timing Configurator и Asus MemTweakIt.

Пусть вас не пугает название Asrock и Asus в названии программ. Они работают на материнских платах любых производителей. Главное, чтобы был процессор от Intel.

Не будем вдаваться в подробности по поводу проверки памяти. Недавно на эту тему вышла отдельная статья — «Как проверить оперативную память на ошибки».

CrystalDiskInfo

Узнать о состоянии жесткого диска или SSD поможет программа CrystalDiskInfo.

Можно оценить состояние жёстких дисков при помощи считывания S.M.A.R.T, проверить температуру, количество включений и общее время работы накопителя. А в случае с дисками SSD — еще и объём данных, записанных на устройство за все время работы.

Оценить производительность диска можно при помощи программы CrystalDiskMark.

Victoria HDD

Лучшая программа для поиска и исправления ошибок жесткого диска. Досконально проверяет поверхность винчестера, обнаруживает повреждённые блоки и затирает их, чтобы в дальнейшем не записать туда файлы и не повредить их. Victoria HDD теперь работает и с SSD-дисками.

HWiNFO

Во время тестирования на стабильность главное — уделять внимание температуре компонентов. И тут наилучшее решение — это программа HWiNFO.

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

Перечисленные программы помогут полноценно оценить состояние комплектующих, узнать детальную информацию, а также протестировать их на стабильность и сравнить производительность с другими моделями. С их помощью вы сможете провести первичную диагностику и найти виновника нестабильной работы компьютера.

Почти все приложения, рассмотренные сегодня, распространяются совершенно бесплатно. Даже не обладая обширными знаниями в области компьютерного железа, можно самостоятельно проверить работу комплектующих, не прибегая к услугам шарлатанов из компьютерных мастерских.

Если же не выходит диагностировать неисправность самостоятельно, можно обратиться в DNS, где стоимость этой услуги составляет всего 500 рублей.

Zabbix настройка мониторинга температуры

Появилась у меня потребность мониторить температуру windows серверов в Zabbix. Из систем мониторинга он мне больше всего нравится, поэтому смотрел в его сторону. Решение задачи оказалось неожиданно простым, о чем я и хочу вам рассказать.

Введение

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 10, если предпочитаете его:

Текущая статья писалась для версии 2.4, все скриншоты приведены из нее. В настоящее время уже вышли более новые версии, но вся нижеизложенная инструкция не потеряла актуальности. Все будет работать и в новой версии.

Подготовка к мониторингу в Zabbix

Описанным мной способом можно мониторить температуру не только windows серверов, но и любых рабочих станций, если будет такая необходимость. Схема мониторинга следующая:

Существует бесплатная утилита Open Hardware Monitor, которая может показывать температуру некоторых датчиков сервера. Вообще говоря, она много чего может показывать (напряжение, скорость вентиляторов, загрузку процессора), но в данном случае нас интересует только температура. У этой утилиты есть версия, работающая в командной строке. Из командной строки показания датчиков можно записывать в файл. Этот файл можно анализировать и забирать из него необходимую для мониторинга информацию. Дальше эта информация передается в сервер Zabbix с помощью опции UserParameter. Все достаточно просто и в то же время эффективно.

Приступим к реализации. Скачиваем GUI версию утилиты по ссылке, приведенной ранее и консольную версию OpenHardwareMonitorReport. Запускаем GUI на сервере и смотрим, какие датчики нам доступны для мониторинга.

Программа увидела несколько датчиков. С процессором все понятно, а вот три других датчика не ясно, чью температуру показывают. Я хотел мониторить температуру процессора и материнской платы. Узнать, какая температура относится к материнской плате можно несколькими способами. Конкретно в данной ситуации я просто запустил портированную версию AIDA64 и посмотрел, какие показания у датчика материнской платы:

Оказалось — 45 градусов. Я запомнил, что датчик Temperature #3 отображает температуру материнской платы.

Можно было пойти другим путем, зайти в IPMI панель, если она есть, и посмотреть там. Я работал с серверами SuperMicro, там она есть. Я на всякий случай зашел и проверил:

Почему-то в этой панели не оказалось информации с датчика температуры процессора. Но нам это не важно. Самое главное, что мы узнали параметры, за которыми будем следить — это CPU Packege и Temperature #3. Теперь запускаем консольную версию и смотрим вывод информации. Я для удобства положил OpenHardwareMonitorReport.exe в папку с основной программой и все это хозяйство скопировал в корень диска C:

Открываем файл 1.txt. Ищем там строки

Нас интересует выделенный текст. По нему мы будем вычленять температуру для мониторинга и передавать ее на Zabbix сервер. Создаем в этой же папке 2 bat файла следующего содержания:

CPUTemperature.bat

MotherTemperature.bat

Запускаем эти батники в командной строке и проверяем вывод. Там должны быть только цифры температуры:

Отлично, на выходе готовые цифры, которые мы будем передавать в Zabbix. Займемся его настройкой.

Настройка Zabbix agent в Windows

Предполагается, что у вас уже настроен сервер мониторинга Zabbix и подключены клиенты, которые ему передают информацию. В данном материале я не буду касаться непосредственно установки и настройки сервера Zabbix, это будет отдельный материал. Сейчас же мы берем готовый файл конфигурации агента zabbix_agentd.win.conf и добавляем в самый конец файла следующие строки:

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

Настройка мониторинга на Zabbix сервере

Теперь идем на сервер. У меня Zabbix установлен на сервере CentOS, хотя это не принципиально. Добавляем новый Item. Пойти можно двумя путями:

  • Создать template, в него добавить все items, создать триггеры, графики и назначить этот шаблон нужным серверам.
  • К каждому серверу отдельно добавлять только необходимые итемы и вручную добавлять триггеры и графики.

Очевидно, что первым путем идти удобнее и разумнее. Я так и поступил, но в процессе реализации столкнулся с проблемой. Не все сервера имеют одинаковый набор датчиков. Где-то я не смог снять температуру с материнской платы, где-то вместо одного процессора, стояло два и хотелось снимать температуру с обоих камней. Как будет в вашем случае — не знаю. Если все серверы однотипные, то создавайте template, если все разные, то вручную добавляйте каждый итем на сервер. Я в итоге сделал и шаблон для одинотипных серверов, и вручную добавлял итемы туда, где имелись отличия от шаблона.

Итак, сначала создадим шаблон. Идем в ConfigurationsTemplatesCreate Template. Шаблон я назвал Temperature Windows. Добавил в него ApplicationTemperature, затем Item CPU Temperatue. Заполняем поля итема как у меня на картинке:

Параметр Temperature.CPU тот же самый, что и в файле конфигурации агента.

По аналогии создаем итем Mother Temperatue:

Сохраняем шаблон. По желанию создаем для него триггеры и графики. Можно и без них. Добавляем шаблон к серверу, который хотим мониторить. Ждем некоторое время и идем проверять входящие данные. Открываем MonitoringLatest data:

Нажимаем graph и смотрим график:

Теперь добавим в Zabbix еще один сервер для мониторинга, который будет отличаться по конфигурации от предыдущего. На его примере я покажу, как менять настройки клиента и сервера. С этого сервера я не могу снять данные с датчика температуры материнской платы, по какой причине — не знаю, но не AIDA64 ни OpenHardwareMonitor мне температуру не показывают. Ее можно взять по SNTP с этого сервера, но это отдельная тема. В этом сервере 2 процессора и я хочу мониторить температуру обоих.

Запускаем GUI интерфейс и смотрим, какие датчики мы сможем мониторить:

Нас будет интересовать температура обоих ядер процессора. Теперь запускаем OpenHardwareMonitorReport.exe с выводом информации в текстовый файл. Смотрим, как выглядят строки с интересующей нас информацией:

Создаем два bat файла следующего содержания:

CPU1Temperature.bat

CPU2Temperature.bat

Редактируем конфигурационный файл zabbix_agentd.win.conf агента Zabbix на клиенте. Добавляем в конец две строки:

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

Дальше идем на сервер Zabbix и по аналогии с предыдущим сервером создаем там Итемы мониторинга. Причем итемы создаем не в шаблоне, а в конкретном сервере, который будем мониторить. Параметр key в этих итемах будет соответственно Temperature.CPU1 и Temperature.CPU2 Ждем некоторое время и проверяем результат.

item became not supported

Во время отладки работ я столкнулся с проблемами. Периодически Item отваливались и получали статус: Not Supported. При этом в логах сервера были следующие записи:

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

Я обратил внимание, что при запуске батника из командной строки, вывод данных происходит с приличной задержкой в 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды. Если за это время данные не поступают, то итем переходит в статус Not Supported и данные с него не собираются.

Чтобы избавиться от этой ошибки, необходимо увеличить таймаут до 15-ти секунд. Меняем параметр в конфиге на клиентах и на сервере. Он и там и там один и тот же:

Потом перезапускаем сервер и агентов и ждем результатов. Больше ошибок быть не должно.

На этом, собственно настройка мониторинга температуры окончена. Можно дальше все оформить как полагается: настроить тригеры, оповещения, графики красивые нарисовать. Кому что нужно. Я себе вывел вот такую картинку для наглядности: