树莓派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 &
中间的是你代码的绝对路径,&是后台运行,直接在后台循环就可以啦!
我就是小菜鸟,喜欢就点赞给我动力吧!
后来送的一路继电器可以用来控制风扇就简单的做了一个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 &
中间的是你代码的绝对路径,&是后台运行,直接在后台循环就可以啦!
我就是小菜鸟,喜欢就点赞给我动力吧!
相关文章推荐
- 使用树莓派红外控制空调和风扇
- 推荐x61使用nhc软件控制风扇
- 使用树莓派控制4路继电器
- VC控制WORD使用模板
- struts2中使用拦截器(Interceptor)控制登录和权限
- Laravel中使用路由控制权限(不限于Laravel,只是一种思想)
- eclipse使用github进行版本控制
- Android studio如何使用SVN进行版本控制
- 最课程阶段大作业之01:使用SVN实现版本控制
- Dos下的XMS完全控制类 --- 使用它,让你的DOS程序使用XMS不再是梦想!
- 使用spring手动控制事务
- RMAN备份-未使用catalog-控制文件丢失
- C++使用临界区来控制多线程访问同一个变量
- C#不允许使用循环语句、条件语句,在控制台中打印出1-1000这1000个数
- Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换2,使用导航栏控制,以及视图之间传值。
- 使用svn进行版本控制
- 版本控制工具-----git简单使用
- eclipse中使用svn代码管理控制
- Laravel中使用路由控制权限(不限于Laravel,只是一种思想)
- 通过使用resetlog恢复控制文件恢复数据库