Получаем данные с ПК

forfrends
Offline
Зарегистрирован: 24.02.2015

Всем привет! Имеется небольшая програмка. Она получает данные с OpenHardwareMonitor и пересылает их в сериал. Ардуино, эти данные принимает. Ну а дальше можно с ними делать все что угодно :) На пример подключить дисплей и мониторить все эти данные.

Список получаемых данных:

- температура процессора

- Общая загрузка процессора

- Загрузка отдельно каждого ядра

- Загрузка оперативной памяти (в %)

- Температура Видеокарты

- Загрузка Видеокарты

- Скосто оборотов кулеров (на процессоре + на системнике)

- Датчики температуры на материнке

Все подробности ниже:

 

 

 

forfrends
Offline
Зарегистрирован: 24.02.2015

Внимание! НЕ нажимайте кнопку "Ответить"! Это нужно для того чтобы я мог редактировать это сообщение!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

forfrends пишет:

Внимание! НЕ нажимайте кнопку "Ответить"! Это нужно для того чтобы я мог редактировать это сообщение!

Слушаюсь! Кнопку "Ответить" нажимать не стал, воспользовался кнопкой "Цитировать". Всё правильно сделал?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

forfrends, а зачем все это? Заняться нечем? Дайте денег - я што нибудь нужное изобрету)

forfrends
Offline
Зарегистрирован: 24.02.2015

Внимание! НЕ нажимайте кнопку ОТВЕТИТЬ или ЦИТИРОВАТЬ! Это нужно для того чтобы я мог редактировать это сообщение!

 
Программа нужается в тестировании! Пожалуйста, помогите мне с этим! Я протестировал на 2-х компьютерах, проблем не было, но не факт что так будет у всех! Для отладки мне нужна ваша помощь!
 
Архив со всем необходимым вы можете скачать здесь: https://drive.google.com/open?id=1d-u7u-sjtw-zqMchSEXe4A7PVVxa6kEy
 
Содержимое архива:
OpenHardwareMonitor - программа, получает данные о компьютере в реальном времени. При желании можете скачать с оф.сайта.
Клиент для компьютера - Программа-клиент. Можно настроить под свои потребности. Получает данные от OpenHardwareMonitor и пересылает их Ардуино, через COM-port.
PC-Monitor - Скетч для Ардуино
__________________________________________________
OpenHardwareMonitor:
Запустить программу и настроить автозапуск вместе с системой: Options - Run On Windows Startup
Запустите локальный сервер: Remote Web Serwer - Run
Для проверки сервера, откройте браузер и перейдите по адресу:http://localhost:8085/data.json
На открывшейся странице должны быть данные, похожие на это:
{"id": 0, "Text": "Sensor", "Children": [{"id": 1, "Text": "IGOR-ПК", "Children": [{"id": 2, "Text": "MSI 760GM-P21(FX) (MS-7641)", "Children": [{"id": 3, "Text": "Fintek F71869A", "Children": [{"id": 4, "Text": "Voltages", "Children": [{"id": 5, "Text": "VCC3V", "Children": [], "Min": "3,168 V", "Value": "3,248 V", "Max": "3,296 V", "ImageURL": "images/transparent.png"}, {"id": 6, "Text": "CPU VCore", "Children": [], "Min": "0,856 V", "Value": "1,144 V", "Max": "1,384 V", "ImageURL": "images/transparent.png"}, {"id": 7, "Text": "Voltage #3", "Children": [], "Min": "0,000 V", "Value": "0,000 V", "Max": "0,000 V", "ImageURL": "images/transparent.png"}, {"id": 8, "Text": "Voltage #4", "Children": [], "Min": "0,000 V", "Value": "0,000 V", "Max": "0,000 V", "ImageURL": "images/transparent.png"}, {"id": 9, "Text": "Voltage #5", "Children": [], "Min": "0,000 V", "Value": "0,000 V", "Max": "0,000 V", "ImageURL": "images/transparent.png"}, {"id": 10, "Text": "Voltage #6", "Children": [], "Min": "0,840 V", "Value": "0,848 V", "Max": "0,856 V", "ImageURL": "images/transparent.png"}, {"id": 11, "Text": "Voltage #7", "Children": [], "Min": "1,064 V", "Value": "1,088 V", "Max": "1,096 V", "ImageURL": "images/transparent.png"}, {"id": 12, "Text": "VSB3V", "Children": [], "Min": "3,216 V", "Value": "3,232 V", "Max": "3,248 V", "ImageURL": "images/transparent.png"}, {"id": 13, "Text": "VBat", "Children": [], "Min": "3,232 V", "Value": "3,264 V", "Max": "3,264 V", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/voltage.png"}, {"id": 14, "Text": "Temperatures", "Children": [{"id": 15, "Text": "Temperature #1", "Children": [], "Min": "40,0 °C", "Value": "41,0 °C", "Max": "42,0 °C", "ImageURL": "images/transparent.png"}, {"id": 16, "Text": "Temperature #2", "Children": [], "Min": "60,0 °C", "Value": "61,0 °C", "Max": "62,0 °C", "ImageURL": "images/transparent.png"}, {"id": 17, "Text": "Temperature #3", "Children": [], "Min": "36,0 °C", "Value": "37,0 °C", "Max": "38,0 °C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 18, "Text": "Fans", "Children": [{"id": 19, "Text": "Fan #1", "Children": [], "Min": "1561 RPM", "Value": "1931 RPM", "Max": "2216 RPM", "ImageURL": "images/transparent.png"}, {"id": 20, "Text": "Fan #2", "Children": [], "Min": "842 RPM", "Value": "854 RPM", "Max": "862 RPM", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/fan.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/chip.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/mainboard.png"}, {"id": 21, "Text": "AMD FX-6100", "Children": [{"id": 22, "Text": "Clocks", "Children": [{"id": 23, "Text": "Bus Speed", "Children": [], "Min": "200 MHz", "Value": "200 MHz", "Max": "200 MHz", "ImageURL": "images/transparent.png"}, {"id": 24, "Text": "CPU Core #1", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}, {"id": 25, "Text": "CPU Core #2", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}, {"id": 26, "Text": "CPU Core #3", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}, {"id": 27, "Text": "CPU Core #4", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}, {"id": 28, "Text": "CPU Core #5", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}, {"id": 29, "Text": "CPU Core #6", "Children": [], "Min": "1400 MHz", "Value": "1400 MHz", "Max": "3900 MHz", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/clock.png"}, {"id": 30, "Text": "Temperatures", "Children": [{"id": 31, "Text": "Core #1 - #6", "Children": [], "Min": "34,8 °C", "Value": "38,1 °C", "Max": "60,5 °C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 32, "Text": "Load", "Children": [{"id": 33, "Text": "CPU Total", "Children": [], "Min": "1,3 %", "Value": "2,8 %", "Max": "49,5 %", "ImageURL": "images/transparent.png"}, {"id": 34, "Text": "CPU Core #1", "Children": [], "Min": "0,0 %", "Value": "3,1 %", "Max": "100,0 %", "ImageURL": "images/transparent.png"}, {"id": 35, "Text": "CPU Core #2", "Children": [], "Min": "0,0 %", "Value": "0,0 %", "Max": "69,2 %", "ImageURL": "images/transparent.png"}, {"id": 36, "Text": "CPU Core #3", "Children": [], "Min": "0,0 %", "Value": "9,2 %", "Max": "92,3 %", "ImageURL": "images/transparent.png"}, {"id": 37, "Text": "CPU Core #4", "Children": [], "Min": "0,0 %", "Value": "0,0 %", "Max": "43,8 %", "ImageURL": "images/transparent.png"}, {"id": 38, "Text": "CPU Core #5", "Children": [], "Min": "0,0 %", "Value": "4,6 %", "Max": "47,7 %", "ImageURL": "images/transparent.png"}, {"id": 39, "Text": "CPU Core #6", "Children": [], "Min": "0,0 %", "Value": "0,0 %", "Max": "50,8 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/cpu.png"}, {"id": 40, "Text": "Generic Memory", "Children": [{"id": 41, "Text": "Load", "Children": [{"id": 42, "Text": "Memory", "Children": [], "Min": "47,4 %", "Value": "52,8 %", "Max": "53,1 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}, {"id": 43, "Text": "Data", "Children": [{"id": 44, "Text": "Used Memory", "Children": [], "Min": "3,8 GB", "Value": "4,2 GB", "Max": "4,2 GB", "ImageURL": "images/transparent.png"}, {"id": 45, "Text": "Available Memory", "Children": [], "Min": "3,7 GB", "Value": "3,8 GB", "Max": "4,2 GB", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/power.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/ram.png"}, {"id": 46, "Text": "NVIDIA GeForce GT 630", "Children": [{"id": 47, "Text": "Clocks", "Children": [{"id": 48, "Text": "GPU Core", "Children": [], "Min": "0 MHz", "Value": "405 MHz", "Max": "405 MHz", "ImageURL": "images/transparent.png"}, {"id": 49, "Text": "GPU Memory", "Children": [], "Min": "405 MHz", "Value": "405 MHz", "Max": "405 MHz", "ImageURL": "images/transparent.png"}, {"id": 50, "Text": "GPU Shader", "Children": [], "Min": "0 MHz", "Value": "810 MHz", "Max": "810 MHz", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/clock.png"}, {"id": 51, "Text": "Temperatures", "Children": [{"id": 52, "Text": "GPU Core", "Children": [], "Min": "39,0 °C", "Value": "39,0 °C", "Max": "42,0 °C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 53, "Text": "Load", "Children": [{"id": 54, "Text": "GPU Core", "Children": [], "Min": "0,0 %", "Value": "0,0 %", "Max": "32,0 %", "ImageURL": "images/transparent.png"}, {"id": 55, "Text": "GPU Memory Controller", "Children": [], "Min": "4,0 %", "Value": "4,0 %", "Max": "23,0 %", "ImageURL": "images/transparent.png"}, {"id": 56, "Text": "GPU Video Engine", "Children": [], "Min": "0,0 %", "Value": "0,0 %", "Max": "0,0 %", "ImageURL": "images/transparent.png"}, {"id": 57, "Text": "GPU Memory", "Children": [], "Min": "5,9 %", "Value": "6,3 %", "Max": "7,3 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}, {"id": 58, "Text": "Controls", "Children": [{"id": 59, "Text": "GPU Fan", "Children": [], "Min": "52,0 %", "Value": "52,0 %", "Max": "52,0 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/control.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/nvidia.png"}, {"id": 60, "Text": "Generic Hard Disk", "Children": [{"id": 61, "Text": "Load", "Children": [{"id": 62, "Text": "Used Space", "Children": [], "Min": "90,0 %", "Value": "90,0 %", "Max": "90,0 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/hdd.png"}, {"id": 63, "Text": "BIWIN SSD", "Children": [{"id": 64, "Text": "Temperatures", "Children": [{"id": 65, "Text": "Temperature", "Children": [], "Min": "38,0 °C", "Value": "38,0 °C", "Max": "42,0 °C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 66, "Text": "Load", "Children": [{"id": 67, "Text": "Used Space", "Children": [], "Min": "85,9 %", "Value": "85,9 %", "Max": "85,9 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/hdd.png"}, {"id": 68, "Text": "TOSHIBA DT01ACA100", "Children": [{"id": 69, "Text": "Temperatures", "Children": [{"id": 70, "Text": "Temperature", "Children": [], "Min": "34,0 °C", "Value": "34,0 °C", "Max": "37,0 °C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 71, "Text": "Load", "Children": [{"id": 72, "Text": "Used Space", "Children": [], "Min": "95,3 %", "Value": "95,3 %", "Max": "95,3 %", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/load.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/hdd.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/computer.png"}], "Min": "Min", "Value": "Value", "Max": "Max", "ImageURL": ""}

___________________________________________________

Клиент для компьютера - программа, написанная на языке Autoit. В папке найдете исходник (PC-Monitor-2.au3) и скомпилированный EXE-шник. Настройки клиента очень просты:

Страница "Settings":

Нужно выбрать данные, которые вы хотите передавать Ардуино. На пример Температура процессора и Загрузка процессора. Остальные пункты оставьте не отмеченными. Выберите Порт к которому подключена Ардуино и скорость. Также устрановите интервал передачи данных. Выбор интервалов сделан такой же как и в OpenHardwareMonitor.

Страница "Data Log":

Здесь должны быть отображены данные вашей системы на момент запуска программы (НЕ в реальном времени)! Эта вкладка нужна для того чтобы увидеть правильно ли определяет данные о вашей системе. ПРОВЕРЬТЕ ИХ! Важны ни сколько сами данные, но и правильное определение количества ядер процессора, количествао куллеров и т.д.

Внимание! Если данные о системе на странице "Data Log" и в OpenHardwareMonitor не совпадают: Нажмите кнопку "Get Data File". Программа скачает файл "data.json" с данными системы. Прикрепите этот файл (или его содержимое) к сообщению и я исправлюпрограмму!

______________________________________________

PC-Monitor:

Скетч для Ардуино. Все просто. Прошиваете любую Ардуино. Есть небольшие настройки:

#define Only_digit; - Раскоментируйте, если хотите получать ТОЛЬКО цифры: 45,9 а не 45,9 °C

#define Full_data; - Раскоментируйте если хотите получать полную строку: 45,9 °C а не 45,9

#define Only_digit; и #define Full_data; - выбирайте что-то одно!

#define W_space; - Раскоментируйте, если хотите полную строку без пробелов: 45,9°C а не 45,9 °C

Список переменных:

CPU_TEMP - Температура процессора
CPU_load - Общая загрузка процессора
CPU_load_1 - Загрузка 1-го ядра процессора
CPU_load_2 - Загрузка 2-го ядра процессора (если имеется)
CPU_load_3 - Загрузка 3-го ядра процессора (если имеется)
CPU_load_4 - Загрузка 4-го ядра процессора (если имеется)
CPU_load_5 - Загрузка 5-го ядра процессора (если имеется)
CPU_load_6 - Загрузка 6-го ядра процессора (если имеется)
RAM_load - Исвользование ОЗУ (в %)
FAN_1 - Скорость оборотов кулера процессора
FAN_2 - Скорость оборотов кулера системного блока
GPU_TEMP -  Температура видеокарты
GPU_load - Загрузка видеокарты
t_Sensor_1 - Датчик температуры на материнке №1
t_Sensor_2 - Датчик температуры на материнке №2
t_Sensor_3 - Датчик температуры на материнке №3
 
Внимание!
Если вы выбрали "#define Only_digit;" то переменные будут в формате float и int .
Если вы выбрали "#define Full_data;" то переменные будут в формате String .
 
Ну, а дальше вы сами можете решить что с можно сделать с этими переменными. Можно вывести на дисплей, или сделать что-то еще.
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Тупизм блин (
Зачем? В нормальных пк и серверах это все уже встроено.
Вы продаёте свой проект?

Update : посмотрел на ссылку json, тут же мне как сисадмину поплохело, у меня на компах java нет в принципе - как же я жить буду без этой программы (
А если винда зависнет - совсем вешаться (

sadman41
Offline
Зарегистрирован: 19.10.2016

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

forfrends
Offline
Зарегистрирован: 24.02.2015

Дело не в том чтобы узнать температуру, а втом чтобы передать ее на Ардуино.

В общем. Жду ваших тестов. Если найдете баги - буду исправлять. По мере исправления буду выкладывать исправленный результат в общий доступ.

andycat, это мой личный проект для личного использования. Если есть другой способ получить на Ардуино данные с ПК, то я с радостью выслушаю ваши варианты! И желательно с рабочим примером!

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Проекты свои для повторения и использования выкладываются в ветке Проекты.

forfrends
Offline
Зарегистрирован: 24.02.2015

Это проект готов не полностью. Мне нужна помощь в тестировании.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Тем более, вы нормальный? И реально верите верите что вашу поделку кто то поставит просто так попробовать? Впрочем мне пофиг....

forfrends
Offline
Зарегистрирован: 24.02.2015

andycat пишет:
Тем более, вы нормальный? И реально верите верите что вашу поделку кто то поставит просто так попробовать? Впрочем мне пофиг....

Тогда, что вы делаете на форуме об Ардуино?

Лучше сделайте конструктивную критику: "Здесь лучше вот так, а здесь так..."

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

forfrends пишет:

andycat пишет:
Тем более, вы нормальный? И реально верите верите что вашу поделку кто то поставит просто так попробовать? Впрочем мне пофиг....

Тогда, что вы делаете на форуме об Ардуино?

Лучше сделайте конструктивную критику: "Здесь лучше вот так, а здесь так..."


Это просто : читаю, смотрю что может пригодиться в моих проектах, при возможности пытаюсь подсказать неверным правильный путь)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Так я же в первом посте написал конструктивную критику: Зачем?

sadman41
Offline
Зарегистрирован: 19.10.2016

forfrends пишет:

andycat, это мой личный проект для личного использования. Если есть другой способ получить на Ардуино данные с ПК, то я с радостью выслушаю ваши варианты! И желательно с рабочим примером!

Если конкретно с данным OHM и прям с ардуиной:

1) PowerShell-скриптв планировщик задач, пусть через WMI берет данные, сует в Com-port в JSON-е или как угодно, ардуина парсит;
2) Cmd-скриптв планировщик задач, пусть запускает OHM CLI, stdin форвардит в порт, ардуина парсит.
3)...

forfrends
Offline
Зарегистрирован: 24.02.2015

Лично для меня: Иметь наглядный мониторинг данных системы. То есть, дополнительное устройство, которое на дисплей будет выводить те данные, которые мне нужны. + Пытаюсь сделать проект универсальным, чтобы любой мог его повторить.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Я может тупой, просветите меня: Зачем? Получать на ардуино данные о железе ПК? Есть смартфоны, есть некие системы мониторинга, есть куча всего что придумано до нас, нафига на ардуино....не понимаю.

forfrends
Offline
Зарегистрирован: 24.02.2015

sadman41, WMI - это первое с чего я начал, и, как оказалось, это работает ооочень редко. Очень мало производителей делают на своих материнках поддержку WMI. Я проверил на 2-х компьютерах, через WMI дичего получить нельзя - нет такой функии (температура и загрузка процессора). А если этих основных нет, то дальше я и не стал смотреть что там WMI еще выдать может.

sadman41
Offline
Зарегистрирован: 19.10.2016

Материнки, WMI... Вы чего? WMI-провайдера должен OHM вкрячить, если я правильно понимаю его логику. А там уже что он может считать железа, то и в WMI отдаст.

Возьмите вариант с CLI тогда - это более платформонезависимо. Не веб же поднимать из-за такой ерунды, ей-богу.

sadman41
Offline
Зарегистрирован: 19.10.2016

andycat пишет:
Я может тупой, просветите меня: Зачем? Получать на ардуино данные о железе ПК? Есть смартфоны, есть некие системы мониторинга, есть куча всего что придумано до нас, нафига на ардуино....не понимаю.

Красивый экранчик в коробочке на системнике. В начале 2000-х модно было. Zalman-ы всякие даже такие модули выпускали под дырку 5,25".

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

forfrends пишет:

Очень мало производителей делают на своих материнках поддержку WMI.

Вот это поворот!

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

DetSimen пишет:

forfrends пишет:

Очень мало производителей делают на своих материнках поддержку WMI.

Вот это поворот!

Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows. WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.

https://ru.wikipedia.org/wiki/WMI

А вдруг пользователь захочет на материнку поставить другую ось, а не конкретную винду. Ну заводятся такие извращенцы пользователи, которые не хотят платить Билу бабло.

EniSy
Offline
Зарегистрирован: 29.06.2019

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