|
@@ -0,0 +1,70 @@
|
|
|
+import time
|
|
|
+import multiprocessing
|
|
|
+import Adafruit_BBIO.GPIO as GPIO
|
|
|
+import Adafruit_BBIO.PWM as PWM
|
|
|
+
|
|
|
+inPinIR = "P9_12"
|
|
|
+inPinPIR = "P9_23"
|
|
|
+inPinMAG = "P8_7"
|
|
|
+myPWMLAUT = "P8_13"
|
|
|
+outPinROT = "P9_27"
|
|
|
+GPIO.setup(inPinIR, GPIO.IN)
|
|
|
+GPIO.setup(inPinPIR, GPIO.IN)
|
|
|
+GPIO.setup(inPinMAG, GPIO.IN)
|
|
|
+GPIO.setup(outPinROT, GPIO.OUT)
|
|
|
+GPIO.add_event_detect(inPinIR,GPIO.RISING)
|
|
|
+GPIO.add_event_detect(inPinPIR,GPIO.RISING)
|
|
|
+GPIO.add_event_detect(inPinMAG,GPIO.BOTH)
|
|
|
+
|
|
|
+a=1
|
|
|
+
|
|
|
+try:
|
|
|
+ time.sleep(2)
|
|
|
+ while True:
|
|
|
+ if GPIO.event_detected(inPinIR):
|
|
|
+ print("Motion detected from IR Sensor...")
|
|
|
+ for i in range(0,60):
|
|
|
+ PWM.start(myPWMLAUT, 50, 10000)
|
|
|
+ GPIO.output(outPinROT,GPIO.HIGH)
|
|
|
+ time.sleep(0.5)
|
|
|
+ GPIO.output(outPinROT,GPIO.LOW)
|
|
|
+ time.sleep(0.5)
|
|
|
+ PWM.stop(myPWMLAUT)
|
|
|
+ time.sleep(2)
|
|
|
+
|
|
|
+ if GPIO.event_detected(inPinPIR):
|
|
|
+ print("Motion detected from PIR Sensor...")
|
|
|
+ for i in range(0,60):
|
|
|
+ PWM.start(myPWMLAUT, 50, 10000)
|
|
|
+ GPIO.output(outPinROT,GPIO.HIGH)
|
|
|
+ time.sleep(0.5)
|
|
|
+ GPIO.output(outPinROT,GPIO.LOW)
|
|
|
+ time.sleep(0.5)
|
|
|
+ PWM.stop(myPWMLAUT)
|
|
|
+ time.sleep(2)
|
|
|
+
|
|
|
+ if GPIO.event_detected(inPinMAG):
|
|
|
+ if a==0:
|
|
|
+ print("Fenster ist zu---")
|
|
|
+ a=1
|
|
|
+ time.sleep(2)
|
|
|
+ continue
|
|
|
+ if a==1:
|
|
|
+ print("Fenster ist geoeffnet...")
|
|
|
+ a=0
|
|
|
+ print("Motion detected from Magnet Sensor...")
|
|
|
+ for i in range(0,60):
|
|
|
+ PWM.start(myPWMLAUT, 50, 10000)
|
|
|
+ GPIO.output(outPinROT,GPIO.HIGH)
|
|
|
+ time.sleep(0.5)
|
|
|
+ GPIO.output(outPinROT,GPIO.LOW)
|
|
|
+ time.sleep(0.5)
|
|
|
+ PWM.stop(myPWMLAUT)
|
|
|
+ time.sleep(2)
|
|
|
+ continue
|
|
|
+ else:
|
|
|
+ print("...")
|
|
|
+ time.sleep(2)
|
|
|
+except:
|
|
|
+ GPIO.cleanup()
|
|
|
+ PWM.cleanup()
|