标签:__ 树莓 temp 继电器 风扇 GPIO 3b channel
原文链接:https://blog.csdn.net/qq_37887537/article/details/783965551.初得树莓派3b,但是风扇声音太吵了!
后来送的一路继电器可以用来控制风扇就简单的做了一个CPU温控风扇。
第一步,认清GPIO口。
这里明显可以看出有1-40的编号方式和GPIOXX+Ground等等两种方式。注意01是方的,这个在背面也是可以看清楚的。01是焊锡丝是不一样的。别反了咯、
第二步,接线
带螺丝的输出端是常开、常闭、vcc,输入端是vcc,gnd,in(数据)。
1.输入端接GPIO:
vcc和gnd接好树莓派的5v和接地口,in接GPIO08,
2. 输出端接电源风扇:
带螺丝的一端,中间的接5v电源(这里直接树莓派5V口供电)。
两边的一个是常开口,一个是常闭口,我们选择常开口,接风扇的正极,风扇负极接地。注:常开口就是NO,in不触发时候就是常开路。
第三步,代码
而我这里使用的是BCM编码方式,就是GPIO08代表的是BCM编码的这个08的编号方式。
下面就是使用Python来进行简单的控制啦。
代码如下:
#支持GPIO模块
- 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 &
中间的是你代码的绝对路径,&是后台运行,直接在后台循环就可以啦!
我就是小菜鸟,喜欢就点赞给我动力吧!
标签:__,树莓,temp,继电器,风扇,GPIO,3b,channel 来源: https://blog.csdn.net/weixin_43993151/article/details/100538438
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。