热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

华硕路由器AC86u,加装树莓派zero温控

1、前记,AC86U梅林系统提供强大的功能的同时,发热也是很厉害的。加装的5V风扇,声音呼呼的,放在电视柜上感觉很吵,手头有个树莓派zero,遂想到用树莓派来做个温控风扇,同时也能

1、前记,AC86U 梅林系统 提供强大的功能的同时,发热也是很厉害的。加装的5V风扇,声音呼呼的,放在电视柜上感觉很吵,手头有个树莓派zero,遂想到用树莓派来做个温控风扇,同时也能提供一个低电压的电源给风扇。

  应该刚开始对梅林系统 不太了解,第一版勾想用selenium 无ui执行抓取页面的温度数据来达到目的。但是路由器只能有一个账号单点登陆,这个方法太过笨拙。思考一下页面有温度显示,那么系统里可能有一个临时文件或者日志来存储这个温度数据,经过研究终于在/sys/devices/virtual/thermal/thermal_zone0/temp 找到到了温度的数据。既然有原始数据了,那就好办了:

  1)树莓派捞取原始数据

   2)通过python控制GPIO

  这样就可以了。具体实现看下面的步骤....

2、因为原temp文件权限限制无法直接分享,所有编写shell脚本wd.sh读取temp温度文件,并重写到挂载的usb里面,设置10秒一次,方便其他设备使用。

 


while true;
do
for wd in `cat /sys/devices/virtual/thermal/thermal_zone0/temp`
do
echo $wd > /tmp/mnt/sda1/temp
sleep 10
done
done

  


nohup ./tmp/home/root/wd.sh & # 后台运行wd.sh

 



3、在树莓派zero中挂载路由器smb文件夹,并且加入到开机启动中: 命令写到 /etc/rc.local


sudo mount -t cifs //10.1.1.1/sda1 /home/ac86_smb -o username=**,password=**@123,vers=1.0



 

4、编写python脚本控制gpio输出,gpio输出的电压虽然是3.3v,但是直接接风扇,风扇转不起来,可能是电流太小,所以加了一个两组3.3v触发的继电器,使用zero的3.3v针脚通过继电器常来给电。python脚本通过gpio控制继电器是否触发。

风扇3.3v供电,比usb的5v静音很多


# -*- coding: utf-8 -*-
from loguru import logger as do_log
import time,os,random
import RPi.GPIO as GPIO
base_dir = os.path.split(os.path.split(os.path.abspath(__file__))[0])[0]
LOG_FILE_PATH = os.path.join(os.path.join(os.path.join(base_dir,"pi"),"logs"),"all.log")
do_log.add(LOG_FILE_PATH,format="{time}|{level}|{message}",rotation="1 week")
GPIO.setmode(GPIO.BOARD)
GPIO.cleanup()
IN1 = 11
IN2 = 12
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
num = random.randint(11, 12)
while True:
with open(‘/home/ac86_smb/temp‘,"r",encoding="utf-8") as f:
wd =f.read()
if len(wd)==0:
continue
else:
wd = int(wd)/1000
if wd >70:
do_log.info(f"CPU {wd}°C , open the two fan")
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.HIGH)
do_log.info(f"CPU温度{wd}°C , keep two fan runing")
time.sleep(300)
if wd >= 55 and wd <=70:
if num == 11:
do_log.info(f"CPU {wd}°C, open the one fan of 1#")
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.LOW)
do_log.info(f"CPU温度{wd}°C , keep one fan runing")
else:
do_log.info(f"CPU {wd}°C, open the one fan of 2#")
GPIO.output(IN2, GPIO.HIGH)
GPIO.output(IN1, GPIO.LOW)
do_log.info(f"CPU温度{wd}°C , keep one fan runing")
time.sleep(300)
elif wd <55:
do_log.info(f"CPU温度{wd}°C , keep runing 5 min")
time.sleep(300)
do_log.info(f"CPU温度{wd}°C , close the fan")
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.LOW)
# 温度降到55左右就降不下去了,所以小于55,就关闭风扇,等待10分钟再执行
time.sleep(600)
# 更换风扇运行
if num == 11:
num =12
else:
num = 11
time.sleep(5)
GPIO.cleanup()

 



 

技术图片

5、再写一个进程守护的shell脚本开机启动,保证python脚本始终后台运行。


while true;
do
server=`ps aux | grep python3| grep -v wd.py`
if [ ! "$server" ]; then
./home/chick_wd/run.sh
fi
sleep 5
done

 



 

华硕路由器AC86u,加装树莓派zero温控



推荐阅读
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 题目 E. DeadLee:思维导图与拓扑结构的深度解析问题描述:给定 n 种食物,每种食物的数量由 wi 表示。同时,有 m 位朋友,每位朋友喜欢两种特定的食物 x 和 y。目标是通过合理分配食物,使尽可能多的朋友感到满意。本文将通过思维导图和拓扑排序的方法,对这一问题进行深入分析和求解。 ... [详细]
  • Flutter 屏幕适配解决方案与最佳实践
    Flutter 屏幕适配解决方案与最佳实践 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • MySQL数据库安装图文教程
    本文详细介绍了MySQL数据库的安装步骤。首先,用户需要打开已下载的MySQL安装文件,例如 `mysql-5.5.40-win32.msi`,并双击运行。接下来,在安装向导中选择安装类型,通常推荐选择“典型”安装选项,以确保大多数常用功能都能被正确安装。此外,文章还提供了详细的图文说明,帮助用户顺利完成整个安装过程,确保数据库系统能够稳定运行。 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
author-avatar
康师傅摸-你丶擦_489
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有