前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派3B添加温控散热风扇

树莓派3B添加温控散热风扇

作者头像
物联网安全小编
发布2020-04-08 15:05:34
2K0
发布2020-04-08 15:05:34
举报
文章被收录于专栏:物联网IOT安全物联网IOT安全

作者简介:在千万棵枯树下唤醒,遗忘了自由的内心;曾在墓碑上许下的诺言,用的是与生俱来的母语

0x00 思路

马上要到夏天了,给树莓派升级一下,让它可以安然过夏。

在我16年入手raspberry pi 3B的时候,就考虑做这个一个温度控制的装置,来给树莓派散热。最早是想加入一个温度传感器,来检测cpu温度,然后使用一个继电器来连接信号针脚和正极负极针脚。

后来发现一个问题,淘宝上比较流行的温控传感器读数误差在+-0.5C’,而且继电器体积过大。最后通过大量的翻阅网上帖子,使用系统调用来读取cpu的温度,通过三极管来联通各针脚比较理想,事实证明效果很好。

0x01 物理部分

参考这个帖子,包括三极管的采购(三块钱 包邮一大包)和接线。

www.cnblogs.com/WeiG/p/9856194.html

如上图,买三极管硬件共花了2.46元。树莓派亚克力外壳加树莓派风扇大概20元,所以总成本很低。

根据上图接线即可,只是在实际使用中我感觉5v有电流声,而且工作的时候噪音太大,就把5v换成3.3v接口了。

0x02 代码部分

同样参考了网上的代码,修改了部分参数。

原理就是通过读取系统中温度信息,如果达到程序设置的温度阈值1,就启动风扇散热;在风扇转动的过程中不间断进行温度判断,如果达到温度阈值2,就停止转动。

代码语言:javascript
复制
#!/usr/bin/python2
#coding:utf8
#自动风扇控制程序,使用wiringPi的gpio命令来操作GPIO
import commands,time

#控制风扇的GPIO
FAN_GPIO = 15

commands.getoutput('sudo gpio mode '+str(FAN_GPIO)+' OUTPUT')

while True:
    # 获取CPU温度
    tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
    cpu_temp_raw = tmpFile.read()
    tmpFile.close()
    cpu_temp = round(float(cpu_temp_raw)/1000, 1)
    print (cpu_temp)
    
    #如果温度大于45`C,就启动风扇
    if cpu_temp >= 45 :
        commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 0')
    #如果温度小于39`C,就关闭风扇
    if cpu_temp <= 39 :
        commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 1')
    
    time.sleep(10)

0x03 测试工作

为了达到阈值温度,使用跑分软件进行测试:

代码语言:javascript
复制
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 run

暂时使程序运行起来,使ssh终端即使退出也能运行,测试一晚上,能够根据温度启动和停止小风扇转动。退出终端风扇也能正常运转。

代码语言:javascript
复制
nohup python2 fan-speed_py2.py &

0x04 最后工作

可以让Python随Linux开机自动运行,比如注册成一个服务,每次开机都自动运行。这里为了省事,添加到/etc/rc.local中了

代码语言:javascript
复制
/home/pi/fan-fpeed_py2.py >> /var/log/fan_log/fan_log

同时加固各个引脚和三极管的物理连接,更坚固美观。

0x05 总结

虽然只是一个很简单的动手操作,但是我觉得还是挺有意义的。通过数码技术来改变自己的生活,哪怕只是小小的改变。It‘s so funny.

参考链接:

代码语言:javascript
复制
http://blog.csdn.net/qq_15947947/article/details/79178032
http://www.cnblogs.com/WeiG/p/9856194.html
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网IOT安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档