[RPI]树莓派监控温度及报警关机保护「建议收藏」

最近把树莓派用作了Aria2下载机+无线路由,24小时不间断工作,生怕机子有时会过热烧坏,所以写了个脚本做温度记录,以及在温度过高时能自动关机保护。下面直接上Shell脚本(/data/temperature.sh):#!/bin/sh#高温阈值hot_temp=80.0#低温阈值cold_temp=-70.0#过热预警连续出现次数hot_cnt=0#过冷预警连…

大家好,又见面了,我是你们的朋友全栈君。

最近把树莓派用作了Aria2下载机+无线路由,24小时不间断工作,生怕机子有时会过热烧坏,所以写了个脚本做温度记录,以及在温度过高时能自动关机保护。下面直接上Shell脚本(/data/temperature.sh):

#!/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= '{print $2}'|awk -F\' '{print $1}'`
	echo $temp
	# 网上有实验表明,树莓派温度达到 -78°C 的低温下会停止工作
	# http://shumeipai.nxez.com/2019/04/02/what-is-the-ideal-raspberry-pi-cpu-temperature-range.html
	if [ `expr "$temp < $cold_temp"` ]; then
		if [ $cold_cnt > 3 ]; then
			echo "太冷了,我不会是在太空中吧!" >&2
			halt -p
			break
		else
			let cold_cnt+=1
		fi
	elif [ `expr "$temp > $hot_temp"` ]; then
		if [ $hot_cnt > 3 ]; then
			echo "太热了,需要关机休息一下!" >&2
			halt -p
			break
		else
			let hot_cnt+=1
		fi
	else
		# 需要连续出现温度预警才会关机
		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
		fi
	fi

	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,这样每次开机时就会自动启动温度监控脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128631.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker开放2375端口,并添加安全传输层协议(TLS)和CA认证

    docker开放2375端口,并添加安全传输层协议(TLS)和CA认证为了更便捷地打包和部署,服务器需要开放2375端口才能连接docker,但如果开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,任何知道你IP的人,都可以管理这台主机上的容器和镜像,真的可怕。为了解决安全问题,只要使用安全传输层协议(TLS)进行传输并使用CA认证即可。制作证书及秘钥我们需要使用OpenSSL制作CA机构证书、服务端证书和客户端证书,以下操作均在安装Docker的Linux服务器上进行。创建一个目录用于存储生成的证书和秘钥mkdir

  • verilog vhdl混合_vhdl转换为verilog

    verilog vhdl混合_vhdl转换为verilog采用三步法完成混合语言RTL设计的加载。step1.用vhdlcom将所有的VHDLRTL代码编译成库1.1将所有的vhdl文件放到vhdl.f文件中,如:vhdl.f———my_design.vhdmy_lib.vhdtb_my_design.vhd1.2编译成库…

  • sql-update 用法

    sql-update 用法update表示更新,要想更新数据库的某条数据,我们通常用:update{表名}set{列名}={新的值}where{条件}以LeetCode上看到的一个简单的题目为例:问题1:将A的薪水修改为8000;答案:updateSalarysetsalarywherename=A;问题2:交换所有的’f’和’m’(即,将所有’f’变为’m’,反之亦然),仅使用单个update语句,…

    2022年10月31日
  • 今天下午借了两本Cisco的书。

    今天下午借了两本Cisco的书。

  • python的jieba库教程_python下载jieba库

    python的jieba库教程_python下载jieba库jieba是python的一个中文分词库,下面介绍它的使用方法。安装方式1:pipinstalljieba方式2:先下载http://pypi.python.org/pypi/jieba/然后解压,运行pythonsetup.pyinstall功能下面介绍下jieba的主要功能,具体信息可参考github文档:https://github.com/fxsjy/jieba分词jieba常用的三种模式:精确模式,试图将句子最精确地切开,适合文本分析; 全模式

  • springboot项目启动原理_常见的科学原理

    springboot项目启动原理_常见的科学原理1.1Springboot启动:@SpringBootApplicationpublicclassServerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ServerApplication.class,args);}}从上面代码看,调用了…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号