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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PO模式 – 目录结构

    PO模式 – 目录结构前言:我们为什么要用到PO模式?因为随着时间的迁移。测试套件将持续的增长,脚本也将变得越来越多。如果需要维护10个页面,100个页面,甚至1000个呢?那么页面元素的任何改变都会让我们的脚本维护变得繁琐复杂,而且变得耗时易出错那怎么解决呢?ui自动化中,常用的一种方式,引入PageObject(PO):页面对象模式来解决,po能让我们的测试代码变得可读性更好,可维护性高,复用性高。PO是…

    2022年4月30日
    54
  • 电力通信网体系结构图_电力通信技术

    电力通信网体系结构图_电力通信技术电力通信网体系的分层可以从水平和垂直两个方面去理解:水平方向上可以划分两层,即骨干通信网、接入通信网;垂直方向上骨干网又可以分为传输网、数据网、支撑网。其中接入通信网可分为输变电通信网与配电通信网。一、骨干通信网1.1传输网:是由线路设施、传输设施等组成的为传送新消息业务提供所需传送承载能力的通道,它是通信网络的基础,它为整个通信网络上所承载的业务提供传输通道和平台。1.2

    2025年12月4日
    3
  • 串口调试助手fx2n_PLC串口调试助手「建议收藏」

    串口调试助手fx2n_PLC串口调试助手「建议收藏」PLC串口通信调试是一款免费的单片机串口调试的小工具,主要用于进行plc和计算机的串口通信调试,帮助用户快速发现是哪一方出现了问题,为单片机调试提供了新的解决方案,需要的朋友可以下载!软件功能(1)可以用3种数据格式输入要发送的帧和显示收、发的帧,各数据格式可以相互转换。(2)可以计算常用的校验码(异或、求和、CRC和LRC),生成PLC通信中常用的多种协议格式的帧,适用范围广。(3)具有记…

    2022年6月6日
    151
  • 13项美德—富兰克林

    13项美德—富兰克林

    2021年4月24日
    154
  • Spring batch批量处理框架最佳实践

    Spring batch批量处理框架最佳实践springbatch精选,一文吃透springbatch批量处理框架前言碎语批处理是企业级业务系统不可或缺的一部分,springbatch是一个轻量级的综合性批处理框架,可用于开发企业信息系统中那些至关重要的数据批量处理业务.SpringBatch基于POJO和Spring框架,相当容易上手使用,让开发者很容易地访问和利用企业级服务.springbatch具有高可扩展性的框架…

    2022年5月23日
    36
  • jetbrains 教育版申请_哪些域名能申请教育版

    jetbrains 教育版申请_哪些域名能申请教育版JetBrains产品教育版申请Pycharm和IntelliJ都是申请的JetBarins官方edu版,功能上应该和professional一样。(虽然咱不一定能用得到pro)以下内容以申请Pycharm为例。事实上,只要能认证成功,所有的产品都可以免费下载激活的。1在官网找到edu版JetBrains官网:https://www.jetbrains.com在主页LeaningTools中找到PyCharmEdu。进入后点击Download,进入如下界面:一般来说下载.exe即可

    2022年8月27日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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