使用覆盆子pi的gpio引脚来控制风扇

时间:2013-06-12 20:06:52

标签: python raspberry-pi gpio

我想知道是否可以通过GPIO引脚控制我的风扇(连接到树莓派板)。

基本上,我想有一个监控芯片温度的脚本 例如,当超过45'C时打开风扇。 我的风扇外接12v AC供电。

是否可以将GPIO引脚用作开关。

3 个答案:

答案 0 :(得分:2)

正如@Fredrick所说,这个问题更适合https://raspberrypi.stackexchange.com/

由于您正在切换交流负载,因此继电器是最简单的解决方案。

您可以使用小型晶体管切换机械继电器,但是您会听到这种咔嗒声,这可能很烦人。

另一种选择是固态继电器,它将静默切换,但更昂贵

答案 1 :(得分:2)

您可以使用中继“切换”它:http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/

以下是有关如何使用Python编程的一些说明:http://lwk.mjhosting.co.uk/?p=343

正如gnibbler所说(谢谢!),第二个链接是关于rev1板。如果你有一个rev2板,一些GPIO引脚已经改变。 elinux.org/RPi_Low-level_peripherals

答案 2 :(得分:0)

您可以通过以下方式获取CPU温度:

/opt/vc/bin/vcgencmd measure_temp

上面的命令返回诸如temp=49.4'C之类的值,例如,可以将其解析为浮点数

temp=$(/opt/vc/bin/vcgencmd measure_temp | cut -f2 -d= | cut -f1 -d\')

echo $temp
### output: 49.4

下一步

  1. 获得this one之类的继电器。
  2. thisthisthis article所示连接gpio引脚。假设您使用的是GPIO引脚 21
  3. 使用这样的控制脚本:
#!/usr/bin/env python
import time
import sys
from RPi import GPIO

pin = 21

# GPIO setup; GPIO Numbers instead of board numbers
GPIO.setmode(GPIO.BCM)
GPIO.setup(chan, GPIO.OUT)


GPIO.output(chan, GPIO.HIGH)  # Turn on

time.sleep(2)
GPIO.output(chan, GPIO.LOW)  # Turn off

GPIO.cleanup()

作为替代方案,您可以使用 gpio 命令行(与wiringpi软件包一起提供):

gpio -g mode 21 out
gpio -g write 21 1   ## TURN ON
gpio -g write 21 0   ## TUNR OFF
  

注意:继电器具有三个连接器,使您可以在正常打开模式或正常关闭模式下使用它。您可以使用右侧连接器的左侧(相对于中央连接器)来切换模式。如果您使用常开模式,则继电器将在LOW 0处打开,并在HIGH 1处关闭,即即使pi为,您的继电器也将打开。断电。