您的位置:首页 > 编程语言 > Python开发

树莓派3b使用一路继电器控制小风扇

2017-10-30 19:50 169 查看
1.初得树莓派3b,但是风扇声音太吵了!

后来送的一路继电器可以用来控制风扇就简单的做了一个CPU温控风扇。

第一步,认清GPIO口的区别。



这里明显可以看出有1-40的编号,这就是一种GPIO的编号方式,而我这里使用的是24接口GPIO08,这个08的编号方式也是一种,后来的代码会说到。

这里有使用三极管进行控制开关的,手上没有三极管,又是个菜鸟,慢慢的才把一路继电器使用出来。

一路继电器一边是带螺丝的,一边是使用杜邦线进行连接的,杜邦线的一端就是输入端,带螺丝的一端就是输出端,输入端的vcc和接地接好树莓派的5v和接地口,上面有说明,输出端带螺丝的一端,中间的接5v电源,两边的一个是常开口,一个是常闭口,我们选择常开口,接风扇的正极,风扇负极接地,常开口就是NO,不触发就是常开路。

下面就是使用Python来进行简单的控制啦。

代码如下:

import sys
import time
try:
import RPi.GPIO as GPIO #支持GPIO模块
except RuntimeError:
print("Error importting Rpi.GPIO")

def cpu_temp(): #这个函数就是去读取树莓派中的一个文件,里面是cpu的温度/1000就是我们熟悉的温度了,可以直接Cat该文件
f = open("/sys/class/thermal/thermal_zone0/temp",'r')
return float(f.read())/1000

def main():
channel = 8
GPIO.setmode(GPIO.BCM) #BCM就是我们上面所说的08编号方式。

# init 08 off
GPIO.setup(channel,GPIO.OUT,initial=GPIO.LOW) #设置channel=8的接口的编号方式是输出,默认是低电平。
is_close = True
while 1:
temp = cpu_temp()
if is_close:
if temp > 45.0: #温度大于45直接高电平,触发风扇端的信号。
GPIO.output(channel,GPIO.HIGH)
is_close = False
else:
if temp < 38.0:
GPIO.output(channel,GPIO.LOW)
is_close = True

time.sleep(2.0) #延时再读取

if __name__ == '__main__':
main()
直接python3 myfengshan.py
就可以直接运行了。

现在我们设置后台运行,进入/etc目录下:cd /etc,打开rc.local :nano rc.local ,再exit()前加一行:

python3  /home/pi/......./myfengshan.py &

中间的是你代码的绝对路径,&是后台运行,直接在后台循环就可以啦!

我就是小菜鸟,喜欢就点赞给我动力吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息