读取树莓派的CPU和GPU温度

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

1. Python 程序

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()

运行结果如下,

$ 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 
#include 
#include 

#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



你可能感兴趣的:(RaspberryPi)