• 修改树莓派的风扇,使风扇能够随温度变化而启停


    <2018.2.3笔>18.10.26转移自wordpress

    树莓派3b 发热量很大,需要使用风扇散热,为了使风扇既能散热又不浪费电能,我使用一个三极管,一个树莓派自带的gpio接口,一段python脚本,实现了风扇启停的自动控制。

    另有我的另一篇记录:树莓派风扇散热自动控制 记录有完成这个工作所参考的资料

    硬件部分

    三极管使用的是 s8550
    是pnp型三极管

    发射级接风扇黑线 基级接 gpio 14 集电极接 GDN 风扇红线接+5v

    以下是最后的成品

    驱动代码部分

    软件部分借助了wiringpi 因此想要使gpio工作起来,需要安装wiringpi。

    <

    以下是一个网友写的方法,我只摘了方法一 原文地址http://blog.csdn.net/xukai871105/article/details/17737005

    wiringPi安装wiringPi的安装存在方案A和方案B

    。wiringPi使用GIT工具维护个更新代码,但是如果处于一些其他原因不能使用GIT,那么也可以使用方案B下载和安装wiringPi。

    方案A——使用GIT工具如果在你的平台上还没有安装GIT工具,可以输入以下命令:

    sudo apt-get install git-core

    如果在这个过程中出现错误,尝试更新软件,

    例如输入以下指令:

    sudo apt-get update sudo apt-get upgrade

    紧接着可以通过GIT获得wiringPi的源代码

    git clone git://git.drogon.net/wiringPi

    若需要更新wiringPi。

    cd wiringPi git pull origin

    进入wiringPi目录并安装wiringPi

    cd wiringPi ./build

    build脚本会帮助你编译和安装wiringPi

    >

    python代码缩进要求很严格,在这里代码缩进是错误的,所以附上正确代码的截图。

    以下是驱动代码 缩进有问题

    注意: gpio 14所对应的wiringpi 编码是15

     1 #!/usr/bin/python2
     2 #coding:utf8
     3 #自动风扇控制程序,使用wiringPi的gpio命令来操作GPIO
     4 import commands,time
     5 #控制风扇的GPIO
     6 FAN_GPIO = 15
     7 commands.getoutput('sudo gpio mode '+str(FAN_GPIO)+' OUTPUT')
     8 while True:
     9         # 获取CPU温度
    10         tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
    11         cpu_temp_raw = tmpFile.read() tmpFile.close()
    12         cpu_temp = round(float(cpu_temp_raw)/1000, 1)
    13         print (cpu_temp)
    14         #如果温度大于47`C,就启动风扇
    15         if cpu_temp >= 47 :
    16                 commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 0')
    17         #如果温度小于42`C,就关闭风扇
    18         if cpu_temp <= 42 :
    19                 commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 1')
    20 time.sleep(10)

    配置部分

    我把这个脚本命名为 fan-speed.py

    把它存放在/root/x.py 目录下

    我希望它能够开机就执行。而不需要人来控制它。

    让Python随Linux开机自动运行

    准备好要自启的脚本fan-speed.py

    用root权限编辑以下文件

    sudo vim /ect/rc.local

    在exit 0上面编辑启动脚本的命令

    /usr/bin/python /root/x.py/fan-speed.py > /root/x.py/fan-speed.log
    最后重启Linux,脚本就能自动运行并打印日志了。

    风扇也就能够自动控制了。
    <对于脚本开机自启动,貌似可以做成一个服务的样子,便于管理。还没试过>

  • 相关阅读:
    Python爬虫 | re正则表达式解析html页面
    Python爬虫 | lxml解析html页面
    Python爬虫 | Beautifulsoup解析html页面
    Python爬虫 | requests模拟浏览器发送请求
    http和https协议
    Python爬虫 | 简介
    对于python 作用域新的理解
    这是我的第一篇博客
    No module named HTMLTestRunner
    ImportError: No module named MySQLdb问题的解决
  • 原文地址:https://www.cnblogs.com/WeiG/p/9856194.html
Copyright © 2020-2023  润新知