python获取cpu温度_如何获得树莓派CPU实时温度值

本文介绍了如何通过Shell、C语言和Python三种方式读取树莓派CPU的实时温度值。通过访问/sys/class/thermal/thermal_zone0/temp文件并进行适当转换,可以轻松获取温度数据。对于初学者和开发者而言,这些方法提供了灵活的选择,其中Python实现最为简便。
摘要由CSDN通过智能技术生成

【前言】

任何的电子设备在工作过程中必定会产生发热的现象,而不控制好设备的温度的话,很有可能会损坏设备,或者照成设备的性能下降,本文将通过学习如何读取树莓派CPU温度值,方便后期对树莓派做一些相应的控制措施。

在树莓派操作系统中,有一个读取温度值的入口,通过读取这个入口返回的值来获得树莓派实时的温度值,具体入口为:

/sys/class/thermal/thermal_zone0/temp

【具体操作】

本文将通过3种操作方式来获取该温度值:

1、shell编程操作

2、C语言文件操作

3、python文件操作

1、通过shell编程获得cup温度值

进入树莓派终端控制台,依次输入以下指令获取实时温度值:

#进入根目录

cd /

#读取temp文件,获得温度值

cat sys/class/thermal/thermal_zone0/temp

#系统返回实时值

40622

[说明]

1)通过cat命令读取存放在sys/class/thermal/thermal_zone0目录下的温度文件temp获得返回值

2)返回值为一个5位数的数值,实际温度为将该值除以1000即可!单位为摄氏度!

2、通过C语言编程获得cpu温度值

选定一个目录,并在目录中创建cpu_temp.c文件,将以下代码输入:

#include

#include

//导入文件控制函数库

#include

#include

#include

#define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"

#define MAX_SIZE 20

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: %.3f\n", temp);

// 关闭文件

close(fd);

}

编译C代码,输入以下指令:

gcc -o cpu_temp cpu_temp.c

运行程序

./cpu_temp

系统返回实时值

temp : 40.622

程序解读:

1)关于open()、read()、close()函数使用,可看:【fcntl.h函数库的常用函数使用】。

2)atoi(buf)函数是将buf中的字符串数据转换层整形数。

3)gcc -o cpu_temp cpu_temp.c :gcc为编译器、 -o参数表示将cpu_temp.c文件编译成可执行文件并存放到 cpu_temp文件夹中。

3、通过python语言编程获得cpu温度值

选定一个目录,并在目录中创建cpu_temp.py文件,将以下代码输入:

#! /usr/bin/python

#! -*- coding: utf-8 -*-

# 打开文件

file = open("/sys/class/thermal/thermal_zone0/temp")

# 读取结果,并转换为浮点数

temp = float(file.read()) / 1000

# 关闭文件

file.close()

# 向终端控制台打印

print "temp : %.3f" %temp

执行脚本

Python cpu_temp.py

系统返回实时值

Temp : 41.163

【小结】

以上3总方式都可获取树莓派cpu实时的温度值,通过访问目录下的temp文件获取返回值,在程序上对返回值稍作转换变成我们需要的数,在以上的3种方式中,通过python获得数据更为简便!

喜欢 (1)or分享 (0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值