#!/bin/sh
# 高溫閾值
hot_temp=80.0
# 低溫閾值
cold_temp=-70.0
# 過熱預警連續出現次數
hot_cnt=0
# 過冷預警連續出現次數
cold_cnt=0
while (true) do
temp=`/opt/vc/bin/vcgencmd measure_temp|awk -f= ''|awk -f\' ''`
echo $temp
# 網上有實驗表明,樹莓派溫度達到 -78°c 的低溫下會停止工作
# if [ `expr "$temp < $cold_temp"` ]; then
if [ $cold_cnt > 3 ]; then
echo "太冷了,我不會是在太空中吧!" >&2
halt -p
break
else
let cold_cnt+=1
fielif [ `expr "$temp > $hot_temp"` ]; then
if [ $hot_cnt > 3 ]; then
echo "太熱了,需要關機休息一下!" >&2
halt -p
break
else
let hot_cnt+=1
fielse
# 需要連續出現溫度預警才會關機
hot_cnt=0
cold_cnt=0
if [ `expr "$temp < 0.0"` ]; then # 有點冷
echo "警告:當前溫度有點冷,小心受涼!" >&2
elif [ `expr "$temp < 40.0"` ]; then # 待機溫度
sleep 0.1
elif [ `expr "$temp < 70.0"` ]; then # 正常工作溫度
sleep 0.1
elif [ `expr "$temp < $hot_temp"` ]; then # 挖礦溫度?
echo "警告:我有點熱,注意控制溫度!" >&2
fifi sleep 10
done
另外,還可以寫個服務配置檔案(/etc/systemd/system/temperature.service):
[unit]
description=temperature monitor
after=network.target
[service]
execstart=/data/temperature.sh > /data/temperature.log &
restart=on-abort
[install]
wantedby=multi-user.target
最後執行一下systemctl enable temperature,這樣每次開機時就會自動啟動溫度監控指令碼。 樹莓派 c獲取樹莓派CPU溫度
c語言檔案io操作 新建乙個名為cpu temp.c檔案,檔案的具體內容如下 include include include include include define temp path sys class thermal thermal zone0 temp define max size 3...
樹莓派 c獲取樹莓派CPU溫度
c語言檔案io操作 新建乙個名為cpu temp.c檔案,檔案的具體內容如下 include include include include include define temp path sys class thermal thermal zone0 temp define max size 3...
樹莓派 c獲取樹莓派CPU溫度
c語言檔案io操作 新建乙個名為cpu temp.c檔案,檔案的具體內容如下 include include include include include define temp path sys class thermal thermal zone0 temp define max size 3...