Browse Source

Repository erstellt

fstange 5 years ago
commit
1b7127f382
1 changed files with 38 additions and 0 deletions
  1. 38 0
      Wassermelder.py

+ 38 - 0
Wassermelder.py

@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+#coding: utf8
+
+### 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()
+