读取树莓派4B处理器(CPU)的实时温度

树莓派发布4B后,性能提升了不少,但是温度也是高的不行,所以最好配置一个小风扇和散热片还是比较好的

俩种办法都可以实现

1.Shell命令读取

打开终端

 cd /sys/class/thermal/thermal_zone0 

查看温度

cat temp

树莓派的返回值 

53069

返回值除以1000为当前CPU温度值。即当前温度为53摄氏度。如下图所示

读取树莓派4B处理器(CPU)的实时温度-冯金伟博客园

 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
");
30             return - 1;
31         }
32 
33         //读取文件
34         if(read(fd,buffer,MAX_SIZE) < 0)
35         {
36             fprintf(stderr,"Failed to read temp
");
37             return -1;
38         }
39     
40         //计算温度值
41         temp = atoi(buffer) / 1000.0;
42         
43         //打印输出温度
44         printf("Temp:%.4f
",temp);
45 
46         //关闭文件
47         close(fd);
48     }
49 }

编写代码

创建程序文件ReadTemp.c 并打开编写代码

读取树莓派4B处理器(CPU)的实时温度-冯金伟博客园

 编译运行结果

gcc -o ReadTemp ReadTemp.c  编译程序出现三个警告,可以不用管它,生成可以执行文件ReadTemp   输入./ReadTemp运行程序

读取树莓派4B处理器(CPU)的实时温度-冯金伟博客园

(我安装了风扇和散热片以及外壳,大概平均在53摄氏度左右) 

读取树莓派4B处理器(CPU)的实时温度-冯金伟博客园 

硬件信息

cpu信息 及内存信息

读取树莓派4B处理器(CPU)的实时温度-冯金伟博客园