Linux & Raspberry树莓派4B——添加三极管使用Python脚本开机自动化温度控制风扇运行

前言

之前树莓派服务器装好了,顺便买了个风扇。但是风扇只有正负极,没有控制线。树莓派5V针时直连usb的,无论是否开机、温度高低都会转,这带来了不必要的花销

正好树莓派引脚能输出控制信号,根据查询到的资料:只需加一个三极管就能达到效果,因此就打算自己DIY一个控制端

所需材料数量
5v风扇1
S8550 PNP三极管1
杜邦线+母头2
热缩管3
焊锡+电烙铁1

以下操作是靠物理入门知识和数电入门知识完成的,有不妥之处请多多包涵:

一、焊接三极管

S8550是PNP三极管,因此用它控制负极,当基极为低电平0时,导通负极

在这里插入图片描述
将风扇正极直插在5V针脚,三极管基级(最中间的)和任意一级(左右均可)焊接上杜邦线母头,余下的一极和风扇负极用焊锡完成焊接,最后用热缩管固定,防止脱落

得到成品如下:

在这里插入图片描述

二、插线

参照树莓派4B的引脚图 (来源见水印)

  1. 风扇正极插入02、04的任意一个引脚,接入+5V
  2. 三极管基极(中间的)插入任意GPIO引脚,例如12
  3. 三极管剩下的一级任意GND引脚,例如14

在这里插入图片描述

三、测试

wiringPi是树莓派IO控制库,使用C语言开发,用它可以控制引脚输入和输出。首先安装wringPi,对于树莓派4B,安装的版本要>=2.25

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

运行查看版本号,有显示即可

gpio -v

对照引脚图:基极(控制线)插入了第12号引脚,对应GPIO的ID是1号,要使这个引脚输出为0时,风扇才会开始工作,设置输出低电平

#设置1号引脚为输出模式
gpio mode 1 out
#设置1号引脚信号为低电平
gpio write 1 0

键入完毕后,如果操作、设置全部正确,风扇就会开始旋转,测试完毕,关闭风扇

gpio write 1 1

四、编写Python自动温控脚本并运行

脚本中引脚的编号是BOARD编码,是物理编号,请区分GPIO编号

自动化温度控制风扇Python脚本:

# -*- coding: utf-8 -*-

# 引入的库函数
import RPi.GPIO as GPIO
from time import sleep

# 控制线的板载BOARD编码引脚号
FAN = 12
# 风扇开始工作的温度,单位摄氏度
ON = 49
# 风扇停止工作的温度,单位摄氏度
OFF = 40
# 连续两次之间停顿的时间(while循环,小了可能会吃资源)
GAP = 60
# GAP = 5

# GPIO的基础设置,设置错误提示关闭、使用BOARD编码、初始化引脚输出低电平
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(FAN,GPIO.OUT)
GPIO.output(FAN,GPIO.LOW)

# 无限循环检测温度
while 1 :	
	file = open("/sys/class/thermal/thermal_zone0/temp")
	# 读取的温度单位是毫摄氏度,转化成摄氏度
	temp = float(file.read()) / 1000
	# print(temp)
	if temp >= ON:
		# 开
		GPIO.output(FAN,0)
		# print("ON")
	elif temp < OFF:
		# 关
		GPIO.output(FAN,1)
		# print("OFF")
	sleep(GAP)

手动运行检查bug,可以将间隔时间调短、并加入显示温度,以便于查错

python /xxx/xxx.py

一切完成后,接下来设置开机自启动

打开文件rc.local

sudo nano /etc/rc.local

在exit前面(最好是前几行),输入:

#你的脚本路径
python /xxx/xxx.py &

切记:不要忘记最后的与运算符!

在这里插入图片描述
切记:不要忘记最后的与运算符!,如果没有与运算符,系统会等待当前语句执行完毕才会启动,而当前指令是死循环,造成错误

现在已经完成了自动化温控,重启即可查看效果

感谢浏览,快使用评论区与我交流8~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值