读取树莓派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 文件下看的
#include<stdio.h>
#include<stdlib.h> #include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h> #define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"
#define MAX_SIZE 32 int main(void)
{
int fd;
double temp = ;
char buffer[MAX_SIZE];
int i; while(i < )
{
i+=; //延时1s
sleep(); //打开文件
fd = open(TEMP_PATH,O_RDONLY);
if(fd < )
{
fprintf(stderr,"Failed to open thermal_zone0/temp\n");
return - ;
} //读取文件
if(read(fd,buffer,MAX_SIZE) < )
{
fprintf(stderr,"Failed to read temp\n");
return -;
} //计算温度值
temp = atoi(buffer) / 1000.0; //打印输出温度
printf("Temp:%.4f\n",temp); //关闭文件
close(fd);
}
}
编写代码
创建程序文件ReadTemp.c 并打开编写代码
编译运行结果
gcc -o ReadTemp ReadTemp.c 编译程序出现三个警告,可以不用管它,生成可以执行文件ReadTemp 输入./ReadTemp运行程序
(我安装了风扇和散热片以及外壳,大概平均在53摄氏度左右)
硬件信息
cpu信息 及内存信息