diff --git a/Python/Computer-Status.py b/Python/Computer-Status.py index a41688f..82786ae 100644 --- a/Python/Computer-Status.py +++ b/Python/Computer-Status.py @@ -1,65 +1,63 @@ -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() +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开发板的UDP服务器 + host = '192.168.1.42' # ESP8266开发板的IP地址 + port = 8888 + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + + while True: + cpu_usage = get_cpu_usage() + memory_usage = get_memory_usage() + disk_usage = get_disk_usage() + gpu_usage = get_gpu_usage() + + # 将数据封装成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.sendto(json_data.encode(), (host, port)) + + # 打印发送的JSON数据 + print(f"Sent data: {json_data}") + + # 等待一段时间再进行下一次数据采集和发送 + time.sleep(1) + + +if __name__ == '__main__': + main()