【Alu-case】控制风扇自动运行
本帖最后由 unveiling 于 2013-9-29 09:46 编辑上一次加了风扇,具体见链接http://www.shumeipai.net/thread-19559-1-1.html
一直开着不够环保啊。于是想利用继电器控制风扇在cpu温度超过50摄氏度后自动运行,低于50摄氏度则停止。
树莓派的GPIO接口提供了这种可能。
所需材料:
[*]4cm风扇一只
[*]3v继电器一只
[*]导线若干
[*]松香
[*]焊锡丝
继电器图片
继电器接口图
所需工具:
[*]烙铁
[*]镊子
GPIO控制:使用python程序。
硬件连接:
[*]风扇正极接继电器公共端
[*]继电器长开端接pin4
[*]风扇负极接pin6
[*]继电器控制端一端接pin11
[*]另一端与风扇负极合并
完工图,比较糙。各位看官将就一下。
Python控制程序:
import RPi.GPIO as GPIO
import time
import os
#创建日志文件,记录温度变化
fanlog=open('/home/pi/fanlog.log','w')
# GPIO setup
GPIO.setmode(GPIO.BOARD) #设置GPIO针脚指定方式
GPIO.setup(11,GPIO.OUT) #设定pin11为信号输出
while True:
#获取cpu温度
res=os.popen('vcgencmd measure_temp').readline()
res=res.replace("temp=","").replace("'C\n","")
res=float(res)
fanlog.write('%-5.2f\n' %res)
fanlog.write(time.strftime('%Y/%m/%d %H:%M:%S',time.localtime()))
fanlog.write("\n")
if res>50: #如果温度高于50,pin11输出高电平,风扇启动
GPIO.output(11,True)
else: #如果温度低于50,pin11输出低电平,风扇关闭
GPIO.output(11,False)
time.sleep(300)#每隔5分钟,即300秒做一个温度检测将上面程序保存在/home/pi目录,命名为Fan.py
在shell中执行:sudo python Fan.py检查fanlog.log查看运行结果:
不用继电器能否直接控制风扇开关? 理论上找个3v的小风扇应该可以。 本帖最后由 fanta 于 2013-10-9 13:12 编辑
这个比较实用,不懂编程的来学习学习,问个问题,5v继电器行不~~ fanta 发表于 2013-10-9 12:53 static/image/common/back.gif
这个比较实用,不懂编程的来学习学习,问个问题,5v继电器行不~~
5v的不行吧。gpio都是3v。 裝那一版的Python 3.x (看起來是裝3.x)
有裝什麼module 嗎?
運行老是報錯~~:'( File "Fan.py", line 13, in <module>
res=os.popen('vcgencmd measure_temp').readline()
KeyboardInterrupt
一直出現這個,沒有辦法運行:'(
你這是理論還是實作,代碼我改了一點才能工作,零件只有這樣嗎?這樣接上繼電器,當工作時~pin11(GPIO17)送出電壓通過繼電器線圈到GND,會造成短路,跟本無法輸出,若在pin11(GPIO17)到繼電器中間加入二極體,也只有1.6v的電壓,3v的繼電器也跟本無法工作,難到我們的pcb不一樣嗎?還是你的pcb有改了什麼零件,我的pcb是000e版(請參考這裡http://elinux.org/RPi_HardwareHistory),你的是什麼版本,煩請解答~
页:
[1]