树莓派监控CPU温度以及使用率

树莓派查看CPU温度的命令很简单

1
2
3
4
#查看温度
cat /sys/class/thermal/thermal_zone0/temp
#树莓派返回的温度
39546

这个返回的温度除以1000就是当前树莓派CPU的温度了。

补充

树莓派除了Zero系列,发热量都很大,为了防止板子或SD卡被烧坏,我在网上找到一段python脚本,专用用来监控树莓派CPU温度、使用率,顺便也观察一下内存以及硬盘的占用情况,我将其命名为monitor.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python
import os

# Return CPU temperature as a character string
def getCPUtemperature():
res = os.popen('vcgencmd measure_temp').readline()
return(res.replace("temp=","").replace("'C\n",""))

# Return RAM information (unit=kb) in a list
# Index 0: total RAM
# Index 1: used RAM
# Index 2: free RAM
def getRAMinfo():
p = os.popen('free')
i = 0
while 1:
i = i + 1
line = p.readline()
if i==2:
return(line.split()[1:4])

# Return % of CPU used by user as a character string
def getCPUuse():
return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))

# Return information about disk space as a list (unit included)
# Index 0: total disk space
# Index 1: used disk space
# Index 2: remaining disk space
# Index 3: percentage of disk used
def getDiskSpace():
p = os.popen("df -h /")
i = 0
while 1:
i = i +1
line = p.readline()
if i==2:
return(line.split()[1:5])


# CPU informatiom
CPU_temp = getCPUtemperature()
CPU_usage = getCPUuse()

# RAM information
# Output is in kb, here I convert it in Mb for readability
RAM_stats = getRAMinfo()
RAM_total = round(int(RAM_stats[0]) / 1000,1)
RAM_used = round(int(RAM_stats[1]) / 1000,1)
RAM_free = round(int(RAM_stats[2]) / 1000,1)

# Disk information
DISK_stats = getDiskSpace()
DISK_total = DISK_stats[0]
DISK_used = DISK_stats[1]
DISK_perc = DISK_stats[3]

if __name__ == '__main__':
print('')
print('CPU Temperature = '+CPU_temp)
print('CPU Use = '+CPU_usage)
print('')
print('RAM Total = '+str(RAM_total)+' MB')
print('RAM Used = '+str(RAM_used)+' MB')
print('RAM Free = '+str(RAM_free)+' MB')
print('')
print('DISK Total Space = '+str(DISK_total)+'B')
print('DISK Used Space = '+str(DISK_used)+'B')
print('DISK Used Percentage = '+str(DISK_perc))

然后修改一下这段脚本的权限

1
chmod +x monitor.py

将其放到/usr/local/bin目录下,接下来就可以全局使用了

1
sudo cp monitor.py /usr/local/bin

最后输出结果如下:

CPU Temperature = 53.5
CPU Use = 0.3
RAM Total = 443.0 MB
RAM Used = 30.0 MB
RAM Free = 381.0 MB
DISK Total Space = 3.6GB
DISK Used Space = 1.1GB
DISK Used Percentage = 31%

avatar

chilihotpot

You Are The JavaScript In My HTML