📜  如何在 Linux 终端树莓派中获取 cpu 的温度 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:24:16.605000             🧑  作者: Mango

如何在 Linux 终端树莓派中获取 CPU 温度 - Shell-Bash

在树莓派上运行 CPU 相关任务时,了解 CPU 温度对于避免过热非常重要。本文将介绍如何在 Linux 终端上使用 Shell / Bash 脚本来获取树莓派的 CPU 温度。

使用 Raspberry Pi 命令行工具

Raspberry Pi 包含用于获取 CPU 信息的命令行工具。

在终端中输入以下命令:

vcgencmd measure_temp

输出结果将类似于:

temp=50.0'C

这表明 CPU 温度为 50 摄氏度。

可以将此命令包含在脚本中,并使用以下方式获取结果:

temp=$(vcgencmd measure_temp | egrep -o '[0-9]*\.[0-9]*')
echo $temp

这将提取结果中的数字,并将其存储在名为 “temp” 的变量中。然后可以使用 echo 命令显示温度。

使用 sysfs 接口

sysfs 接口是 Linux 内核提供的一个伪文件系统,可以让用户空间访问内核内部数据结构的接口。

在树莓派上,CPU 温度可以通过 sysfs 接口访问。这需要使用以下命令:

cat /sys/class/thermal/thermal_zone0/temp

输出结果将类似于:

50436

这表示温度为 50.436 摄氏度。

此命令可以通过以下方式包含在 Shell / Bash 脚本中:

temp=$(cat /sys/class/thermal/thermal_zone0/temp)
echo "scale=1; $temp/1000" | bc

这里使用了“bc”命令将温度值从千分之一摄氏度转换为摄氏度,并将其显示到终端上。

定期监控 CPU 温度

为了避免 CPU 过热,可以定期监控 CPU 温度,如果温度变高,则可以采取措施来降低 CPU 温度。

以下是一个示例 Shell / Bash 脚本:

#!/bin/bash

while true; do
    temp=$(cat /sys/class/thermal/thermal_zone0/temp)
    temp_c=$(echo "scale=1; $temp/1000" | bc)

    if [[ $(echo "$temp_c >= 60" | bc) -eq 1 ]]; then
        echo "WARNING: CPU temperature is $temp_c°C"
    fi

    sleep 5s
done

此脚本将每五秒钟检查一次 CPU 温度。如果温度超过 60 摄氏度,则将显示一个警告消息。

结论

使用 Shell / Bash 脚本在树莓派上获取 CPU 温度非常简单。你可以使用 Raspberry Pi 命令行工具或 sysfs 接口来获取 CPU 温度。从而可以根据温度变化来采取必要的措施,防止过热的情况发生。