雷竞技注册
项目

覆盆子PI项目:控制DC风扇

2015年10月6日经过特拉维斯船用伪造

根据当前温度用覆盆子PI控制风扇!

根据当前温度用覆盆子PI控制风扇!

要求

  • 覆盆子PI.
    • 用于文章:模型B修订版1.0与Raspbian(Debian GNU / Linux 7.6(Wheezy))
  • I2C温度传感器
  • 将Raspberry PI连接到Internet的方法
    • 在文章中使用:覆盆子PI直接连接到路由器
  • Google帐户创建和访问表格
  • NMOS或者NPN晶体管能够处理风扇的电压和电流要求
  • 肖特基二极管
  • 小直流风扇
    • 用于文章:12V / 600mA风扇

设置硬件

临时传感器

按照以下说明进行操作文章将温度传感器连接到覆盆子PI。

扇子

按照下面的接线图,将覆盆子PI连接到TEMP传感器并通过晶体管将风扇连接到风扇。二极管在有用于防止风扇由于关闭风扇时由于电位电压而损坏晶体管。此配置中的二极管有时被称为a缓冲器。您必须切割送扇的接地丝以使晶体管串联。晶体管用作低侧开关在这种配置中。

PI GPIO输出的最大电流为16mA。这意味着晶体管必须具有足够高的HFE来进行运行风扇所需的电流。尺寸基底电阻限制PI为晶体管提供电流的量以避免损坏。我使用了180欧姆,这将提供大约(3.3-0.7)/ 180 = 14.4mA的基本电流。当导电2A时,所选择的晶体管I具有150的HFE,因此切换600mA负载是没有问题。

软件

I2C.

跟随文章这里设置I2C以与TEMP传感器进行通信。

安装GPIO能力

在PI终端中键入以下内容以安装GPIO功能:sudo apt-get安装python-rpi.gpio

测试连接

将以下Python程序上传到Raspberry PI,以便从GPIO测试风扇控制。运行脚本“turn_fan_on.py”或“turn_fan_off.py”以验证连接。

turn_fan_on.py.
导入RPI.GPIO作为GPIO GPIO.SetWarnings(FALSE)GPIO.SETMODE(GPIO.BCM)FAN_PIN = 23 GPIO.SETUP(FAN_PIN,GPIO.OUT)GPIO.OUTPUT(FAN_PIN,TRUE)
turn_fan_off.py.
导入rpi.gpio作为gpio gpio.setwarnings(false)gpio.setmode(gpio.bcm)fan_pin = 23 gpio.setup(fan_pin,gpio.out)gpio.output(fan_pin,false)
基于温度控制风扇

以下脚本在温度上升到TEMP_THRESHOLD时,实现了某些逻辑,该逻辑打开风扇。风扇将保持直到温度降至阈值 - Temp_hyst。这样,当房间围绕温度阈值时,风扇不会迅速打开和关闭。

导入rpi.gpio作为GPIO导入SMBus导入时间#0 = / dev / i2c-0#1 = / dev / i2c-1 i2c_bus = 0总线= smbus.smbus(i2c_bus)#7位地址(将左移到添加读写位)device_address = 0x48 temp_threshold = 78 temp_hyst = 2 gpio.setwarnings(false)gpio.setmode(gpio.bcm)粉丝_pin = 23 gpio.setup(fan_pin,gpio.out)虽然是真:time.sleep(1)#read temp register temp_reg_12bit = bus.read_word_data(device_address,0)temp_low =(temp_reg_12bit&0xff00)>> 8 temp_high =(temp_reg_12bit&0x00ff)#convert到datasheet temp =((temp_high * 256)+ temp_low)>> 4)#handle负temps如果temp> 0x7ff:temp = temp-4096;temp_c = float(temp)* 0.0625 temp_f = temp_c * 9/5 + 32打印“temp =%3.1f c  - %3.1f f”%(temp_c,temp_f)#control基于temp(temp_f>temp_threshold):gpio.output(fan_pin,true)if(temp_f <(temp_threshold  -  temp_hyst)):gpio.output(fan_pin,false)

在下面的视频中,我正在使用塑料袋中的冰块来模拟房间的冷却。当冰块应用于TEMP传感器时,风扇关闭。当我卸下它们时,温度升高,风扇打开。

为自己提供这个项目!得到bom。

3评论
  • D.
    d0ughb0y. 2015年10月6日

    我使用Arduino Mega建造了一个风扇控制器。它通过PWM控制3个风扇,基于温度升高风扇速度并具有实时RPM读数。风扇速度也可以通过Web界面手动控制。
    https://youtu.be/dwwnl3breww

    喜欢。 回复
  • y
    Yadanar Jewel. 2015年10月22日

    风扇是否由温度传感器控制,而无需使用respberry pi和auduino?

    喜欢。 回复
  • 多米尼克杰克逊 2018年11月10日

    我可以轻松调整你的指示来控制两个粉丝一个摄入风扇,并在外出粉丝乘坐一些蔬菜我正在成长吗?

    喜欢。 回复