用Python做一個溫控風(fēng)扇-樹莓派

很多小伙伴還不了解樹莓派是什么東西,這里首先進(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也是完全沒有問題。

image

其功耗低,身材小,板載的插座可以提供3/5V直流供電,具有SPI、I2C、UART串行通信接口,新版本的3B+還提供了PoE的功能,通過操作系統(tǒng)提供的RPi.GPIO庫或其他封裝庫可以使用高階語言快速實現(xiàn)不同的功能,比如你可以驅(qū)動一個LED,或者是驅(qū)動一塊屏幕,甚至接一個攝像頭用opencv打造一個人臉識別智能門鎖。

image

購買樹莓派時賣家送了一個殼子和一個極為普通的風(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

下面是我的接線圖

image

另外附上百度百科的照片

image

用透明膠固定,插到主板上

image

做好了之后大概是這個樣子

image

然后寫一段簡單的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)速,這樣就更完美了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容