프로젝트 일지/컴퓨터 HUD

[컴퓨터 HUD] Python으로 PC 상태 받아오기

우리집공돌이곰돌을좋아해 2022. 12. 22. 09:20
반응형

이제 아두이노에 데이터를 보내기 이전에 PC 상태를 받아오는 프로그램을 작성해야 합니다. PC상태를 알아야 아두이노에 전달을 할 테니까요. 회사에서는 주로 C를 사용하지만 평소에는 Python이 더 손이 갑니다.
구글 검색창에 'Python CPU Load'라고만 검색해도 아래와 같이 수많은 자료들이 나옵니다.

가장 상단에 있는 Stackoverflow 글을 보면 psutil을 사용하라고 가이드하고 있네요.

해당 모듈을 사용하기 이전에 사전 작업이 필요합니다. 바로 해당 모듈을 깔아야 하는데요.

pip install psutil

위와 같이 CMD 창에 입력하여 해당 모듈을 다운로드합니다.

이제 VS Code를 열어 Python Script를 작성해 봅시다.

import psutil

# gives a single float value
print(psutil.cpu_percent(percpu=False))

# gives an object with many fields
print(psutil.virtual_memory())

# you can convert that object to a dictionary 
dict(psutil.virtual_memory()._asdict())

# you can have the percentage of used RAM
print(psutil.virtual_memory().percent)

# you can calculate percentage of available memory
print(psutil.virtual_memory().available * 100 / psutil.virtual_memory().total)

위와 같이 스택 오버플로우 글을 참조하여 작성해 보았습니다.

근데 위와 같이 Cpu Percent가 계속 0.0 퍼센트가 뜨는 문제가 발생합니다.
psutil.cpu_percent에 매개변수로 interval 값을 주어야 값을 CPU Percent를 반환하더라고요. 그래서 아래와 같이 필요한 정보만 걸러서 코드 수정해본 뒤 확인 결과 봅시다.

import psutil

# gives a single float value
print("CPU: ", psutil.cpu_percent(interval=1))

# gives an object with many fields
# print(psutil.virtual_memory())

# you can convert that object to a dictionary 
dict(psutil.virtual_memory()._asdict())

# you can have the percentage of used RAM
# print(psutil.virtual_memory().percent)

# you can calculate percentage of available memory
print("RAM: ", psutil.virtual_memory().available * 100 / psutil.virtual_memory().total)

Interval 파라미터는 계산 주기를 설정하는 것으로 보입니다. 단위는 초단위이며, 최소 0.1이라고 합니다. 작업 관리자와 비교해봤을 때, 다소 차이는 있지만 비슷해 보이긴 합니다.
  오늘은 여기까지 다루고 다음 시간에는 관련 정보를 어떤 식으로 아두이노에 보낼지 고민해 봅시다.

반응형