玩转树莓派
标签: 树莓派CPU温度
前言
本文通过文件操作读取树莓派CPU温度,在linux系统中任何设备的操作都被抽象成为文件读写,通过读取/sys/class/thermal/thermal_zone0/temp文件中的内容便获得树莓派CPU的温度。本文通过以下几个部分说明如何读取和应用该温度参数——1.shell脚本操作;2linux文件IO操作
shell操作
先通过shell操作热身一下。登录树莓派之后使用指令查看CPU温度,依次输入以下指令:
# 进入目录
cd /sys/class/thermal/thermal_zone0
# 查看温度
cat temp
# 树莓派返回
48692
从以上操作可以获得以下几点
【1】树莓派的CPU温度信息位于文件 /sys/class/thermal/thermal_zone0/temp中,该文件为一个只读文件。
【2】根据网上的资料和实际情况,返回的温度参数应该除以1000,单位为摄氏度。
2 C语言文件IO操作
新建一个名为cpu-temp.c文件,文件的具体内容如下:
#include
#include
#include
#include
#include
#define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"
#define MAX_SIZE 32
int main(void)
{
int fd;
double temp = 0;
char buf[MAX_SIZE];
// 打开/sys/class/thermal/thermal_zone0/temp
fd = open(TEMP_PATH, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "failed to open thermal_zone0/temp\n");
return -1;
}
// 读取内容
if (read(fd, buf, MAX_SIZE) < 0) {
fprintf(stderr, "failed to read temp\n");
return -1;
}
// 转换为浮点数打印
temp = atoi(buf) / 1000.0;
printf("temp: %.2f\n", temp);
// 关闭文件
close(fd);
}
【运行代码】
在cpu-temp.c目录下输入以下指令生成可执行文件,接着执行该文件。
# 编译链接
gcc -o test cpu-temp.c
# 执行
./test
# 执行返回
temp: 49.2