我尝试使用rasberry PI 2的GPIO来模拟警报系统,我创建了一个回调函数来处理传感器状态何时发生变化。我想通过创建一个新的区域来实现这一目标。对于每个传感器,我创建了一个处理它的类。
我的问题是"回调"在状态改变之前被调用。我不确定是什么问题。请记住,我是python的新手。我一直在寻找答案,但我不确定该寻找什么。
感谢。
Main.py
#!/usr/bin/python
import CreateZone
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
front = 6#pin
a = CreateZone.CreateZone(front,"test")
GPIO.setup(front, GPIO.HIGH)
print GPIO.input(front)
GPIO.setup(front, GPIO.LOW)
print GPIO.input(front)
CreateZone.py
#!/usr/bin/python
import RPi.GPIO as GPIO
class CreateZone(object):
def __init__(self, pin, zone_name):
pin = pin
zone_name = zone_name
GPIO.setup(pin, GPIO.IN)
self.new_zone(pin, zone_name)
def callback(self, pin, zone_name):
print "Change!!!"
print "pin = " +str(pin)
print "zone = " +str(zone_name)
def new_zone(self, pin, zone_name):
GPIO.add_event_detect(pin, GPIO.BOTH, callback=self.callback, bouncetime=300)
输出
Change!!!
pin = 6
zone = test
1
0