最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Raspberry Pi 偽智能散熱風(fēng)扇控制腳本

2021-04-07 12:20 作者:28283844972_bili  | 我要投稿

我們知道樹莓派4B在各大性能方面有較大提升的同時,其發(fā)熱量同樣也是驚人的,普通室溫環(huán)境下,樹莓派空載溫度都可以穩(wěn)定地維持在40+℃,所以通過加裝一般的2pin散熱風(fēng)扇,以達到溫控的目的。缺點就是風(fēng)扇只要加電就會一直處于啟動狀態(tài),不僅會長時間產(chǎn)生擾人的噪音,也會浪費多余的電能、縮短風(fēng)扇電機壽命等問題。

因此,能夠像普通個人計算機那樣、根據(jù)當(dāng)前CPU溫度選擇是否開啟風(fēng)扇散熱的需求就產(chǎn)孕育而生了。該怎么實現(xiàn)呢?有沒有現(xiàn)成的解決方案呢?想起剛剛?cè)胧謽漭?B、配置開發(fā)板初始環(huán)境(Raspberry pi os)的時候,在raspi-config工具中遇到的一個風(fēng)扇控制功能:

在命令行中輸入: sudo raspi-config ,隨即進入了一個模擬圖形配置界面

選擇 Performance Options -> Fan -> Enable fan temperature control -> Pin -> Temperature?

raspi-config工具主界面
選擇設(shè)置GPIO風(fēng)扇行為
開啟風(fēng)扇溫控設(shè)置
設(shè)置風(fēng)扇使用的GPIO針腳
設(shè)置閥值溫度后開啟風(fēng)扇進行散熱

設(shè)置過程很簡單不是嗎?看我一頓操作猛如虎,最初是直接將風(fēng)扇接口接在pin6(GND)和pin8(GPIO)兩個針腳上,按照如上步驟設(shè)置好散熱風(fēng)扇。加電開機,隨便跑一個高算力腳本,期待風(fēng)扇能夠如期運行。。。后來通過查閱官方文檔才知道GPIO接口提供的電壓無法滿足5v的負(fù)載需求,風(fēng)扇自然是轉(zhuǎn)不起來的,第一次嘗試失?。?/p>

遇事不決就得面向瀏覽器學(xué)習(xí),僅有一個散熱風(fēng)扇是無法實現(xiàn)溫控啟動功能,另外需要簡單的電路支持,直接放圖(手繪的原理圖不好意思擺上臺面):

圖片來源:https://blog.chaos.run/images/posts/MjmRXrA.jpg

對于我這樣很少接觸硬件電路的小白來說,還算是比較簡單的電路。花個億點點時間應(yīng)該可以仿一個出來。

需要的材料有:

  1. s8050 NPN型三極管1個

  2. 公對母杜邦線2根

  3. 母對母杜邦線2根

  4. 散熱風(fēng)扇1個

  5. 透明膠帶 絕緣膠布

參考資料?-> 三極管起到開關(guān)作用,風(fēng)扇負(fù)載連接方式

https://zhidao.baidu.com/question/602167737.html

咚,花了億點點時間,做出來了一個“工匠級藝術(shù)品”:

雖然自己也不太清楚,但是不同接線的選色不要學(xué)我,不符合規(guī)范!

接線選色很迷惑我也是知道的,手頭上材料并不是很充裕,有什么就用什么,根據(jù)示意圖“施工”就對了(或者按照其他方式連接,異曲同工),最后在接到樹莓派板子上,發(fā)射極跳線接在5v針腳,比如說pin4(5v);基極跳線接在GPIO,比如說pin8(GPIO14);風(fēng)扇負(fù)極接地,比如說pin6(GND)。這個步驟需要小心行事,接錯針腳可能會燒壞板子上的GPIO接口。

在命令行中輸入 pinout ,查看樹莓派的GPIO針腳布局。

如果沒有這個命令,隨便上網(wǎng)搜一下也行

電路布置完成后,接下來就是按照最開始的設(shè)置操作,利用現(xiàn)成工具開啟溫控風(fēng)扇功能了,而且默認(rèn)還是開機自啟動,非常方便。

但這就結(jié)束了嗎?如果我就是想學(xué)習(xí)如何使用樹莓派GPIO硬件,親自體驗一下軟件與硬件相結(jié)合的編程樂趣呢?雖然現(xiàn)成的工具確實能夠達到我們的預(yù)期,也給我們的工作帶來了極大的遍歷,但學(xué)習(xí)這種事情不能馬虎。所以,像我這樣的小白,自己親手實現(xiàn)一個Python腳本來實現(xiàn)溫控風(fēng)扇還是有可能的,說干就干。

參考文獻:

  1. https://shumeipai.nxez.com/2017/07/13/raspberry-pi-to-achieve-temperature-monitoring-and-control-fan-cooling.html

  2. https://blog.csdn.net/aexus/article/details/106037040

花了億點時間,寫了一段簡短的腳本代碼,首先是需要使用到的工具庫:

RPi.GPIO == 0.7.0

接著就是祖?zhèn)鞯墨@取樹莓派CPU當(dāng)前溫度代碼片段

簡單地獲取樹莓派CPU當(dāng)前溫度

其實上面的代碼片段,其實和我之前寫的用于監(jiān)測樹莓派狀態(tài)模塊中,有關(guān)樹莓派CPU溫度獲取方法基本上是一致的,所以導(dǎo)入我之前編寫的監(jiān)測模塊直接調(diào)用也是可以的。對腳本的限制越少越好用,為了能夠讓腳本獨立運行,索性就將代碼片段整合在一個腳本中。感興趣的朋友可以看一下這篇文章:

為了方便起見,我直接寫了一個類來實現(xiàn)偽智能溫控風(fēng)扇代碼,注釋應(yīng)該都清楚地解釋了每個屬性的作用。至于我為什么另外設(shè)置風(fēng)扇狀態(tài)屬性,在某些條件下可以避免重復(fù)設(shè)置GPIO針腳狀態(tài),這取決于風(fēng)扇控制代碼的具體實現(xiàn),但大部分實現(xiàn)都是八九不離十的:

使用Java的思想來編寫Python腳本確實有些奇怪,但有一定的意義

重點部分來了,下面是風(fēng)扇控制代碼的具體實現(xiàn),并不是特別復(fù)雜:

實現(xiàn)溫控風(fēng)扇功能

當(dāng)上面的代碼構(gòu)建完成之后,就可以編寫程序入口,將腳本單獨地跑起來了:

編寫程序入口,啟用溫控風(fēng)扇腳本

默認(rèn)情況下,風(fēng)扇GPIO跳線接在了pin8(GPIO14)針腳,正極接在了pin4(5v)針腳,負(fù)極接地pin6(GND)針腳,整整齊齊地靠在一起。為了顯示腳本的工作狀態(tài),我在上述代碼中稍微添加了一些打印代碼片段,效果如下:

定期監(jiān)測樹莓派CPU當(dāng)前溫度,控制風(fēng)扇啟停

風(fēng)扇也按照預(yù)期設(shè)想實現(xiàn)了偽智能溫控散熱的功能。呼,突然自我感覺良好了起來!雖然看似有些舍近求遠(yuǎn),但是在付出幾根頭發(fā)的代價之后,你也變強了不是嗎?[doge]

腳本源代碼我已經(jīng)提交到了Gitee公開倉庫中,有需要的朋友可以自取研究或調(diào)整

https://gitee.com/greaterunoob/raspberry-pi-monitor

文章或腳本中出現(xiàn)的各類疏漏、錯誤或者代碼不規(guī)范的地方,歡迎各位大佬在評論區(qū)批評指正!如果有更為簡便、高效的代碼片段,也歡迎在評論區(qū)分享交流,相互學(xué)習(xí)。

Raspberry Pi 偽智能散熱風(fēng)扇控制腳本的評論 (共 條)

分享到微博請遵守國家法律
济宁市| 朝阳市| 应城市| 贵港市| 普定县| 高平市| 鄂温| 芒康县| 武定县| 兰州市| 志丹县| 商洛市| 白山市| 莎车县| 黎平县| 古丈县| 如皋市| 遂昌县| 平和县| 文登市| 汽车| 咸丰县| 靖远县| 永兴县| 沁源县| 扎鲁特旗| 金阳县| 邯郸市| 北安市| 永济市| 通城县| 巴东县| 璧山县| 广河县| 云和县| 濮阳县| 漯河市| 菏泽市| 辽源市| 会理县| 黑龙江省|