修改樹莓派的風扇,使風扇能夠隨溫度變化而啟停


<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,腳本就能自動運行並打印日志了。

風扇也就能夠自動控制了。
<對於腳本開機自啟動,貌似可以做成一個服務的樣子,便於管理。還沒試過>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM