Add files via upload

This commit is contained in:
YYD
2023-05-31 15:44:58 +08:00
committed by GitHub
parent 40266a408e
commit 1e6572ed69

65
Python/Computer-Status.py Normal file
View File

@@ -0,0 +1,65 @@
import socket
import psutil
import time
import json
import wmi
import pynvml
def get_cpu_usage():
return psutil.cpu_percent(interval=1)
def get_memory_usage():
memory_info = psutil.virtual_memory()
return memory_info.used / memory_info.total
def get_disk_usage():
disk_info = psutil.disk_usage('C:\\')
return disk_info.free / disk_info.total
def get_gpu_usage():
pynvml.nvmlInit()
handle = pynvml.nvmlDeviceGetHandleByIndex(0)
utilization = pynvml.nvmlDeviceGetUtilizationRates(handle)
pynvml.nvmlShutdown()
return utilization.gpu
def main():
# 连接ESP8266开发板的TCP服务器
host = '192.168.1.42' # ESP8266开发板的IP地址
port = 80
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
while True:
cpu_usage = get_cpu_usage()
memory_usage = get_memory_usage()
disk_usage = get_disk_usage()
gpu_usage = get_gpu_usage()
# 将数据封装成JSON格式
# 将数据封装成JSON格式
data = {
'cpu': f"{round(cpu_usage, 1)}%", # 保留一位小数
'memory': f"{int(memory_usage * 100)}%", # 转换为整数形式并加上百分号
'disk': f"{int(disk_usage * 100)}%", # 转换为整数形式并加上百分号
'gpu': f"{int(gpu_usage)}%" # 获取电脑 GPU 使用率
}
json_data = json.dumps(data)
# 发送JSON数据到ESP8266开发板
sock.sendall(json_data.encode())
# 打印发送的JSON数据
print(f"Sent data: {json_data}")
# 等待一段时间再进行下一次数据采集和发送
time.sleep(5)
if __name__ == '__main__':
main()