树莓派&香橙派如何查看CPU温度?

2023年11月30日 787点热度 0人点赞 0条评论

在树莓派系统上查看CPU温度我们可以输入以下命令:

cat /sys/class/thermal/thermal_zone0/temp

可以使用 vcgencmd 命令

vcgencmd measure_temp

显示内容如下:

如果提示命令无效,我们则可以通过以下命令安装:

apt install libraspberrypi-bin

使用 watch 命令来自定义显示内容并且每3秒刷新一次温度显示,输入以下命令:

watch -n 3 'echo CPU温度:$(vcgencmd measure_temp | cut -c6-11)'

嵌入式系统

目前大多数嵌入式系统都是基于Debian的发行版,比如香橙派,我们可以使用以下shell命令来查看系统的CPU温度:

cat /sys/class/thermal/thermal_zone0/temp

这个命令将输出当前CPU的温度,单位是千分之一摄氏度。如果你想将它转换成摄氏度,可以将输出结果除以1000,如下所示:

awk '{printf "CPU温度:%.2f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp

这个命令使用awk工具来将温度值转换成摄氏度,并输出结果。你可以将它添加到一个shell脚本中,以便随时查看CPU温度。以下是一个简单的脚本示例:

#!/bin/bash

while true
do
    clear
    awk '{printf "温度:%.2f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp
    sleep 3
done

这个脚本会每3秒钟更新一次CPU温度信息,并清除屏幕上的旧信息,以便你可以清楚地看到最新的温度信息。

sensors 命令

可以使用lm-sensors和sensors命令来查看Ubuntu系统的CPU实时温度。首先,你需要安装lm-sensors:

sudo apt-get install lm-sensors

安装完成后,运行以下命令:

sudo sensors-detect

这个命令会探测系统硬件,并询问你是否需要加载探测到的内核模块。按照提示均选择yes即可。

完成后,运行以下命令查看CPU实时温度:

sensors

这个命令会输出当前CPU的温度信息,包括核心温度和CPU风扇的转速信息。

你可以将这个命令添加到一个shell脚本中,以便随时查看CPU温度。以下是一个简单的脚本示例:

#!/bin/bash

while true
do
    clear
    sensors
    sleep 1
done

这个脚本会每秒钟更新一次CPU温度信息,并清除屏幕上的旧信息,以便你可以清楚地看到最新的温度信息。

使用C++来显示CPU温度

新建一个cpp后缀的文件

vi cputemp.cpp

可以使用C++的sleep()函数来让程序每隔3秒更新一次温度。以下是示例程序:将以下内容粘贴进去。

#include <iostream>
#include <fstream>
#include <string>
#include <unistd.h>

using namespace std;

int main() {
    while (true) {
        system("clear"); // 清屏
        string temp;
        ifstream file("/sys/class/thermal/thermal_zone0/temp");
        if (file.is_open()) {
            getline(file, temp);
            file.close();
            int temperature = stoi(temp) / 1000;
            cout << "CPU temperature is " << temperature << "°C" << endl;
        } else {
            cout << "Unable to read CPU temperature." << endl;
        }
        sleep(3);
    }
    return 0;
}

保存退出后编译执行

g++ cputemp.cpp && ./a

如果无法编译可以先安装 C++ 环境

sudo apt install g++

该程序使用一个无限循环来不断更新温度。在每次循环中,程序打开/sys/class/thermal/thermal_zone0/temp文件,读取CPU温度,并将其转换为摄氏度。然后程序输出温度到控制台,并使用sleep()函数让程序暂停3秒钟。这样程序就会每隔3秒更新一次温度。

效果如下

暗暗

这个人很懒,什么都没留下

文章评论