专栏首页物联网IOT安全树莓派3B添加温控散热风扇

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

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

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,就停止转动。

#!/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 测试工作

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

sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 run

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

nohup python2 fan-speed_py2.py &

0x04 最后工作

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

/home/pi/fan-fpeed_py2.py >> /var/log/fan_log/fan_log

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

0x05 总结

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

参考链接:

http://blog.csdn.net/qq_15947947/article/details/79178032
http://www.cnblogs.com/WeiG/p/9856194.html

本文分享自微信公众号 - 物联网IOT安全(IOTsafety),作者:0neOfU4

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 移动物联网模块之FOTA更新攻击

    嵌入式GPRS/EDGE、3G、4G和5G模块通常用于很多用途,包括连接设备,如对讲机、警报器、汽车ECU、车载信息娱乐系统(IVI)、租赁汽车的开锁箱(Get...

    用户7021283
  • 刺向巴勒斯坦的致命毒针——双尾蝎 APT 组织的攻击活动分析与总结

    双尾蝎APT组织(又名:APT-C-23),该组织从 2016 年 5 月开始就一直对巴勒斯坦教育机构、军事机构等重要领域展开了有组织、有计划、有针对性的长时间...

    用户7021283
  • Cobalt Strike 上线微信提醒

    或者百度云下载:https://pan.baidu.com/s/15LPGaTLkdWWgVZW8A1E82g 提取码:nm1y

    用户7021283
  • SAP成都研究院李三郎:SCP Application Router简介

    作为成都研究院里同时精通Java, JavaScript和ABAP这三门编程语言的数位同事之一,Ben曾经先后担任了成都CRM Fiori开发团队,S4CRM开...

    Jerry Wang
  • SAP成都研究院李三郎:SCP Application Router简介

    作为成都研究院里同时精通Java, JavaScript和ABAP这三门编程语言的数位同事之一,Ben曾经先后担任了成都CRM Fiori开发团队,S4CRM开...

    Jerry Wang
  • json-lib简单使用之微信公众平台(三)

    以下是简单的AccessToken类,返回String类型的access_token

    lpe234
  • HTML5 网络拓扑图性能优化

    HT_hightopo
  • HTML5 网络拓扑图性能优化

    HTML5 中的 Canvas 对文本的渲染(fillText,strokeText)性能都不太好,比如设置字体(font)、文本旋转(rotation),如果...

    HT for Web
  • win10 UWP 蜘蛛网效果 在 Canvas 画一个点指定添加到 Canvas 的 Element 的位置随机移动点画线自动移动全部代码

    那么我来告诉大家如何做这个效果。 第一步是在 Canvas 画点,第二步是让点移动,第三步是画线

    林德熙
  • R语言空间可视化:绘制英国脱欧投票地图

    拓端

扫码关注云+社区

领取腾讯云代金券