很多小伙伴還不了解樹莓派是什么東西,這里首先進(jìn)行一下科普
Raspberry Pi(中文名為“樹莓派”,簡寫為RPi,(或者RasPi / RPI)是為學(xué)習(xí)計算機(jī)編程教育而設(shè)計,只有信用卡大小的微型電腦,載有一顆BroadCom的CPU,可以運行各種Linux For ARM,Windows 10 IoT,CPU與現(xiàn)代智能手機(jī)相同的ARM架構(gòu),運行Android也是完全沒有問題。
其功耗低,身材小,板載的插座可以提供3/5V直流供電,具有SPI、I2C、UART串行通信接口,新版本的3B+還提供了PoE的功能,通過操作系統(tǒng)提供的RPi.GPIO庫或其他封裝庫可以使用高階語言快速實現(xiàn)不同的功能,比如你可以驅(qū)動一個LED,或者是驅(qū)動一塊屏幕,甚至接一個攝像頭用opencv打造一個人臉識別智能門鎖。
購買樹莓派時賣家送了一個殼子和一個極為普通的風(fēng)扇,接在5V和GND上由輸入電源直接供電,導(dǎo)致風(fēng)扇一直運轉(zhuǎn),甚至在poweroff之后還在轉(zhuǎn),這怎么符合我的geek精神,于是決定改裝他。
首先,改裝需要杜邦線兩根(剪斷使用),杜邦線插座兩個,一個三極管,NPN、PNP都行,如果是3B+以前的版本建議用NPN,或者PNP加個電阻,因為gpio輸出的電平可能壓降不夠控制三極管通斷,如果想做PWM也可以,但是需要用一個電容,不然風(fēng)扇會由于PWM信號的方波導(dǎo)致發(fā)出滋滋的聲音。
我這里用的是一個PNP,可以成功控制通斷,估計是3b+的版本電平輸出是5V。
將杜邦線剪短,長度適中
杜邦線插座一根焊到三極管的C極--接風(fēng)扇正極,一根焊到剪開的杜邦線上接主板GND
三極管的B/E分別焊兩根剪短的杜邦線,B接gpio,E接主板5V
下面是我的接線圖
另外附上百度百科的照片
用透明膠固定,插到主板上
做好了之后大概是這個樣子
然后寫一段簡單的Python
這里附上我的腳本,小伙伴們可以自己發(fā)揮
pi@raspberrypi:~$cat /opt/smartfan.py
#!/usr/bin/env python3
import RPi.GPIO as g
from time import sleep
TEMP=50
g.setmode(g.BCM)
channel = 18
g.setwarnings(False)
g.setup(channel, g.OUT)
g.output(channel, g.HIGH)
is_closed = True
try:
while True:
with open('/sys/class/thermal/thermal_zone0/temp') as f:
temp = int(f.read()) / 1000
if temp >= TEMP and is_closed == True:
g.output(channel, g.LOW)
is_closed = False
sleep(10)
elif temp < TEMP and is_closed == False:
g.output(channel, g.HIGH)
is_closed = True
sleep(1)
except:
g.output(channel, g.HIGH)
print("\nExit Programm Fan is Trun off")
然后用寫一個服務(wù)讓systemd管理
pi@raspberrypi:~$ cat /etc/systemd/system/smartfan.service
[Unit]
Description=smartfan
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/bin/python3 /opt/smartfan.py
PrivateTmp=true
[Install]
WantedBy=multi-user.target
啟動風(fēng)扇
pi@raspberrypi:~$ systemctl start smartfan
查看狀態(tài)
pi@raspberrypi:~$ systemctl status smartfan
smartfan.service - smartfan
Loaded: loaded (/etc/systemd/system/smartfan.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-05-22 22:47:19 CST; 1h 17min ago
Main PID: 322 (python3)
CGroup: /system.slice/smartfan.service
└─322 /usr/bin/python3 /opt/smartfan.py
May 22 22:47:19 raspberrypi systemd[1]: Started smartfan.
pi@raspberrypi:~$
讓他開機(jī)自啟動
pi@raspberrypi:~$ systemctl enable smartfan
到這里我們的智能風(fēng)扇就可以根據(jù)溫度自動開關(guān)了。
如果覺得不夠智能,可以再找一顆電容,用pwm控制風(fēng)扇轉(zhuǎn)速,這樣就更完美了。