RPI 樹莓派監控溫度及報警關機保護

2021-10-01 01:55:31 字數 1487 閱讀 4285

#!/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...