컴퓨터 온도를 측정하는 PC 리소스 모니터링 유틸리티 개발
컴퓨터 등 각종 전자기기의 하드웨어에는 내구성이라는 개념이 있어, 온도와 습도가 높은 환경에서 사용 및 관리할 경우 내구성이 닳는 속도가 현저히 높아집니다.
따라서 장기간 효율적으로 사용하려면 해당 하드웨어가 위치한 환경을 확인해야 한다.
그러나 하드웨어 장치가 위치한 오프라인 환경이 아무리 좋아도 하드웨어 설치 구조나 운영체제 등의 요소에 오류가 있는 경우에는 하드웨어의 온도 관리가 어려워질 수 있으며, 하드웨어가 근처에 있으면 온도는 눈으로만 볼 수 있습니다.
이해하기 어렵습니다.
따라서 이번 포스팅에서는 컴퓨터 온도 측정 기능과 하드웨어 리소스를 모니터링할 수 있는 유틸리티 소프트웨어를 Python으로 개발해 보겠습니다.
컴퓨터 온도 측정 및 PC 리소스 모니터링 유틸리티 개발에 대한 포스팅을 시작합니다.
1. 계획 이 유틸리티 소프트웨어도 Python을 기반으로 개발됩니다.
사용되는 Python 외부 라이브러리의 유형은 psutil과 wmi로 구분됩니다.
Python의 표준 라이브러리는 platform과 tkinter를 사용하므로 pip를 사용하여 psutil과 wmi를 미리 다운로드했습니다.
pip 설치 psutilpip 설치 wmi
각 라이브러리에 대한 개요는 아래 설명을 참고하시기 바랍니다.
psutil : CPU, 메모리(RAM), 디스크(HDD, SSD) 등 사양의 실시간 사용량을 확인하는데 사용됩니다.
wmi : 하드웨어에 대한 다양한 정보를 조회하는데 사용됩니다.
(온도 측정 등) 플랫폼 : 시스템 정보(운영체제 버전, 하드웨어 사양)를 조회하는 과정에서 사용 tkinter : 소프트웨어 기능 실행에 필요한 기본 GUI 개발에 사용
2. 코드를 작성하기 전에 작성한 중복 파일 제거 및 프로그램 찾기에 대한 게시글을 보고 댓글을 남긴 한 분은 어떻게든 코드를 작성했지만 각 코드가 수행하는 기능과 알고리즘을 이해하지 못했다고 하여 이렇습니다.
그 사람이 댓글을 썼을 때. 제가 작성한 코드에는 댓글이 많으니 참고해주세요.
# 필요한 라이브러리를 가져옵니다import psutil # CPU, 메모리, diskimport 플랫폼 등 시스템 리소스 사용량을 모니터링하는 라이브러리 # 운영체제 및 시스템 정보 등을 가져오는 Python 표준 라이브러리.import wmi # Windows 하드웨어 정보, CPU에 액세스하는 라이브러리 import tkinter as tk # tkinter에서 GUI 생성을 위한 Python 표준 라이브러리 import ttk # Tkinter에서 스타일 위젯을 사용하기 위한 라이브러리 # 하드웨어를 검색하기 위한 WMI 객체 생성 Windows 환경의 정보c = wmi.WMI(namespace= ”root\\wmi”)gpu = wmi.WMI().Win32_VideoController() # 그래픽 카드 정보 가져오기# GUI 설정window = tk.Tk()window.title(“PC 시스템 리소스 모니터링”)window.geometry(“ 700×500″) # 창 크기 설정 # 시스템 정보를 표시할 텍스트 변수 생성sys_info = tk.StringVar()cpu_temp = tk.StringVar()resource_usage = tk.StringVar()ram_info = tk.StringVar()gpu_info = tk. StringVar()# 시스템 정보 가져오기 functiondef get_system_info(): uname = platform.uname() # 운영 체제 정보 가져오기 processor_name = platform.processor() # 프로세서 이름 가져오기 sys_info.set(f”System: {uname.system } {uname .node}\n버전: {uname.release} {uname.version}\n프로세서: {processor_name}”)# CPU 온도 함수 가져오기 def get_cpu_temp():try: # WMI를 통해 CPU 온도 가져오기(단위: Kelvin) temp_info = c.MSAcpi_ThermalZoneTemperature()(0) temp_celsius = temp_info.CurrentTemperature / 10.0 – 273.15 # 켈빈을 섭씨로 변환 cpu_temp.set(f”CPU 온도: {temp_celsius:.2f} °C”)제외: cpu_temp.set(“CPU 온도 정보를 얻을 수 없습니다.
”)# 시스템 리소스 사용량을 가져오는 함수 def get_resource_usage(): cpu_usage = psutil.cpu_percent(interval=1) # CPU 사용량(%) memory = psutil.virtual_memory( ) # 메모리 정보 disk = psutil.disk_usage(‘/’) # 디스크 정보 resource_usage.set(f”CPU 사용량: {cpu_usage}%\n메모리 사용량: {memory.percent}%\n디스크 사용량: {disk.percent }%”)# RAM 정보를 가져오는 함수def get_ram_info(): memory = psutil.virtual_memory() total_memory_gb = memory.total / ( 1024 ** 3) # 바이트를 GB로 변환 available_memory_gb = memory.available / (1024 * * 3) ram_info.set(f”총 RAM: {total_memory_gb:.2f} GB\n사용 가능한 RAM: {available_memory_gb:.2f} GB”)# GPU 정보 가져오기 함수 def get_gpu_info():try: gpu_name = gpu (0) .Name # 첫 번째 GPU의 이름을 가져옵니다.
gpu_info.set(f”그래픽 카드: {gpu_name}”)제외: gpu_info.set(“그래픽 카드 정보를 가져올 수 없습니다.
”)# 주기적으로 시스템 정보를 가져옵니다.
def update_info():get_system_info()get_cpu_temp()get_resource_usage()get_ram_info()get_gpu_info() 창을 업데이트하는 함수입니다.
after(5000, update_info) # 5초마다 정보 업데이트# 시스템 정보를 표시하는 라벨 ttk.Label(window, textvariable=sys_info, 글꼴=(“Arial”, 14)).pack(pady=10)# CPU 온도를 표시하는 레이블ttk.Label(window, textvariable=cpu_temp, 글꼴=(“Arial”, 14)).pack (pady= 10)# 리소스 사용량을 표시하는 라벨ttk.Label(window, textvariable=resource_usage,font=(“Arial”, 14)).pack(pady=10)# RAM 정보를 표시하는 레이블ttk.Label( window, textvariable=ram_info,font=(“Arial”, 14)).pack(pady=10)# GPU 정보를 표시하는 레이블ttk.Label (window, textvariable=gpu_info,font=(“Arial”, 14)) .pack(pady=10)# 정보 업데이트 시작update_info()# 시작 GUIwindow.mainloop()
3. 실행 결과 위의 코드를 작성하고 실행하면 위와 같이 하드웨어 사양과 CPU 온도가 표시됩니다.
그래픽 카드의 온도도 확인할 수 있도록 개발하고 싶었지만 소프트웨어로 개발해서 사무용 컴퓨터에서 실행하는 것이기 때문에 그래픽 카드를 사용하지 않습니다.
참고로 통합 그래픽 카드인데 호환되는 라이브러리를 찾을 수 없어서 그래픽 카드 이름만 표시하도록 코드를 작성하여 그래픽 카드의 온도가 표시되지 않습니다.
4. EXE 파일 변환 Python과 라이브러리가 설치되지 않은 PC에서 사용할 수 있도록 EXE 파일로 변환하려면 위에서 언급한 대로 pip를 통해 pyinstaller 라이브러리를 설치하고 명령 프롬프트를 실행한 후 코드를 실행합니다.
cd 명령을 통해. 생성된 py 파일이 저장된 디렉터리로 이동한 후, 아래 명령어를 입력합니다.
그러면 위 오른쪽 이미지와 같이 dist 디렉터리에 exe 파일이 생성됩니다.
pyinstaller –onefile 파일 이름.py
5. 결론 이번에 개발한 유틸리티 소프트웨어(컴퓨터 온도 측정 PC 리소스 모니터링 프로그램)도 이전과 마찬가지로 내 Git 계정에 업로드되어 있으니 참고하시기 바랍니다.
GitHub – woong980623/Utility_CollectionGitHub.github.com에 계정을 만들어 woong980623/Utility_Collection 개발에 기여하세요.
이상으로 컴퓨터 온도 측정을 위한 PC 리소스 모니터링 유틸리티 개발 포스팅을 마치겠습니다.