#!/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()