• Offizieller Beitrag

    [code=php]
    import RPi.GPIO as IO
    import time
    print"Programmstart"
    def Switch(channel):
    if(IO.input(Ried)):
    print"offen"
    IO.output(Pin, IO.LOW)
    else:
    print"zu"
    IO.output(Pin, IO.HIGH)
    IO.setwarnings(False)
    IO.setmode(IO.BCM)
    Ried = 3
    Pin = 4
    IO.setup(Ried, IO.IN)
    IO.setup(Pin, IO.OUT)
    IO.add_event_detect(Ried, IO.BOTH, callback=Switch, bouncetime=10)
    while True:
    time.sleep(5)[/php]

    Ich hab es mal in CodeTags geschrieben und das pass durch time.sleep ersetzt. Denn durch das pass erzeugst du 100% CPU Auslastung
    Im Moment gibt er ja "offen" und "zu" aus. und das soll jetzt ne Datei geschrieben werden? irgendein wunschformat? mit oder ohne Datums/zeitangabe?

  • Sowas wie open()?

    Ungetestet und nur schnell mal verfasst:

    Hab selber noch nie damit gearbeitet, vermute aber mal, dass das zumindest in die Richtung geht. ;)

    • Offizieller Beitrag

    [code=php]
    import RPi.GPIO as GPIO
    import time

    Pin = 4
    Ried = 3

    GPIO.setmode (GPIO.BOARD)

    GPIO.setup (Pin, GPIO.OUT)
    GPIO.setup (Ried, GPIO.IN)

    GPIO.output(Pin, GPIO.HIGH)


    def schreibe_log():

    if GPIO.input(Ried) == GPIO.LOW:
    with open("/Pfad/Zu/Deiner/Datei", "a") as f:
    f.write("Kontakt unterbrochen um %s\n" % time.asctime(time.localtime(time.time())))

    elif GPIO.input(Ried) == GPIO.HIGH:
    with open("/Pfad/Zu/Deiner/Datei", "a") as f:
    f.write("Kontakt unterbrochen um %s\n" % time.asctime(time.localtime(time.time())))

    GPIO.add_event_detect(Ried, IO.BOTH, callback=schreibe_log, bouncetime=10)

    while True:
    time.sleep(1)[/php]

    Ungefähr so?

  • TypeError: 'module' object is not callable

    Ich vermute du hast die Datei noch nicht erstellt, die muss vorhanden sein für "open("/Pfad/Zu/Deiner/Datei", "a")".

    PS: Jetzt haste übrigens 2 mal "Kontakt unterbrochen" im Beispiel ;)

    Einmal editiert, zuletzt von Nueffe (2. Juli 2015 um 16:23)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!