如何在火焰传感器中添加条件语句?

时间:2019-03-29 14:04:23

标签: raspberry-pi gpio

我想输出“检测到火焰”或“未检测到火焰”,但是我不知道如何在代码中实现。我已经看到了来自Google的代码,但是他们正在使用

GPIO.add_event_detect(17,GPIO.RISING, callback = mycallback, bouncetime = 600)

仅在检测到火焰时有效。

1 个答案:

答案 0 :(得分:1)

在您的示例中,您正在检测上升边缘(引脚从低到高)。 下降边缘是相反的,因此您可以使用以下命令触发单独的回调:

GPIO.add_event_detect(17, GPIO.FALLING, callback=other_callback, bouncetime=600)

但是,我建议您使用GPIO Zero而不是RPi.GPIO,因为您可能会发现它更直观:

from gpiozero import InputDevice

sensor = InputDevice(17)

while True:
    sensor.wait_for_active()
    print("Fire!")
    sensor.wait_for_inactive()
    print("No fire")

您可能会发现逻辑是相反的(如果没有火,则说“火”),在这种情况下,请使用InputDevice(17, pull_up=True)

或者,上面的代码也可以使用if sensor.is_active或使用回调机制sensor.when_activated = callback。有关更多信息,请参见gpiozero docs