读取树莓派的CPU和GPU温度

参考文章 用Python小程序获取树莓派的CPU和GPU温度

1. Python 程序

<span style="font-family:Microsoft YaHei;font-size:18px;">import commands

def get_cpu_temp():
    tempFile = open( "/sys/class/thermal/thermal_zone0/temp" )
    cpu_temp = tempFile.read()
    tempFile.close()
    return float(cpu_temp)/1000
    # Uncomment the next line if you want the temp in Fahrenheit
    #return float(1.8*cpu_temp)+32

def get_gpu_temp():
    gpu_temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )
    return  float(gpu_temp)
    # Uncomment the next line if you want the temp in Fahrenheit
    # return float(1.8* gpu_temp)+32

def main():
    print "CPU temp: ", str(get_cpu_temp())
    print "GPU temp: ", str(get_gpu_temp())

if __name__ == '__main__':
    main()</span>

运行结果如下,

$ sudo python read_cpu_temp.py
CPU temp:  49.768
GPU temp:  50.8

2. 直接读取文件

$ cat /sys/class/thermal/thermal_zone0/temp
49768

3. C 程序

#include <stdio.h>
#include <errno.h>
#include <fcntl.h>

#define CPU_THERMAL_FILE "/sys/class/thermal/thermal_zone0/temp"
int main(int argc, char **argv)
{
    int fd = 0;
    unsigned char temp;
    int i = 0;

    fd = open(CPU_THERMAL_FILE, O_RDONLY);
    if (fd < 0) {
        fprintf(stderr, "%s: %s\n", CPU_THERMAL_FILE, strerror(errno));
        return 1;
    }

        printf("CPU temp: ");
    for (i = 0; i < 6; i++) {
        read(fd, &temp, 1);
        printf("%c", temp);
        if (i == 1)
            printf(".");
    }
    printf("\n");

    return 0;
}

编译运行,结果如下,

$ gcc -o read_cpu_temp read_cpu_temp.c
$ ./read_cpu_temp

CPU temp: 50.306



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值