讀取樹莓派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信息 及內存信息