1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- ### Dieses Programm soll einen Alarm ausgeben, wenn es zu einem Wassereinbruch kommt.
- ### Dazu müssen zwei Kontakte in geringem Abstand auf dem Boden positioniert werden.
- ### Bei Kontakt mit Wasser schließt sich der Stromkreis und der High-Pegel des Ausgangspins wird auf den Eingangspin übertragen.
- import time
- import RPi.GPIO as GPIO
- # Zählweise der Pins festlegen
- GPIO.setmode(GPIO.BOARD)
- # Ausgang festlegen und einschalten
- Output = 22 # GPIO25 = Pin 22
- GPIO.setup(Output, GPIO.OUT)
- GPIO.output(22, GPIO.HIGH) # High-Pegel dauerhaft ausgeben
- # Eingang festlegen
- Input = 18 # GPIO24 = Pin 18
- GPIO.setup(Input, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
- time.sleep(1)
- print GPIO.input(Input) # Startzustand abfragen
- # Ereignis-Funktion für Eingang HIGH
- def Wassermeldung(Input):
- print ("Wasseralarm!")
- # Ereignis deklarieren
- # Fallende Flanke: GPIO.FALLING, steigende Flanke: GPIO.RISING, beide Flanken: GPIO.BOTH
- GPIO.add_event_detect(Input, GPIO.RISING, callback = Wassermeldung, bouncetime = 200)
- # Eigentlicher Programmablauf
- while 1:
- time.sleep(1)
- GPIO.cleanup()
|