读取树莓派4B处理器(CPU)的实时温度
读取树莓派4B处理器(CPU)的实时温度
树莓派发布4B后,性能提升了不少,但是温度也是高的不行,所以最好配置一个小风扇和散热片还是比较好的
俩种办法都可以实现
1.Shell命令读取
打开终端
cd /sys/class/thermal/thermal_zone0
查看温度
cat temp
树莓派的返回值
53069
返回值除以1000为当前CPU温度值。即当前温度为53摄氏度。如下图所示
2.编写一段c语言程序读取
在这里,我基本抄的https://blog.csdn.net/xukai871105/article/details/38349209的代码,
修改了下增加了循环1s中读取打印一次,总共打印了100次程序退出,这样的话看得时候方便实时刷新
程序源代码
温度是在 /sys/class/thermal/thermal_zone0/temp 文件下看的
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 #include<sys/types.h> 5 #include<sys/stat.h> 6 #include<fcntl.h> 7 8 #define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp" 9 #define MAX_SIZE 32 10 11 int main(void) 12 { 13 int fd; 14 double temp = 0; 15 char buffer[MAX_SIZE]; 16 int i; 17 18 while(i < 100) 19 { 20 i+=1; 21 22 //延时1s 23 sleep(1); 24 25 //打开文件 26 fd = open(TEMP_PATH,O_RDONLY); 27 if(fd < 0) 28 { 29 fprintf(stderr,"Failed to open thermal_zone0/temp\n"); 30 return - 1; 31 } 32 33 //读取文件 34 if(read(fd,buffer,MAX_SIZE) < 0) 35 { 36 fprintf(stderr,"Failed to read temp\n"); 37 return -1; 38 } 39 40 //计算温度值 41 temp = atoi(buffer) / 1000.0; 42 43 //打印输出温度 44 printf("Temp:%.4f\n",temp); 45 46 //关闭文件 47 close(fd); 48 } 49 }
编写代码
创建程序文件ReadTemp.c 并打开编写代码
编译运行结果
gcc -o ReadTemp ReadTemp.c 编译程序出现三个警告,可以不用管它,生成可以执行文件ReadTemp 输入./ReadTemp运行程序
(我安装了风扇和散热片以及外壳,大概平均在53摄氏度左右)
硬件信息
cpu信息 及内存信息