Taster benutzen

  • Hallo
    ich bin Alex und habe Gestern meinen Pi B+ erhalten.

    Ich stehe noch völlig am anfang was python/pi/linux angeht :)

    Nun habe ich ein Problem bei dem ich nicht so recht weiter weiß.


    zu allererst sollte ich vllt sagen was ich vorhabe:

    Ziel ist es für mein Aquarium täglich zwei verschiedene Dünger per Pi gesteuerter pumpen auf den milliliter genau dosieren zu können.
    Die Pumpenlaufzeit soll per Tastendruck (nach einem Wasserwechsel) 1/3 der täglichen Dosis sein - die dosierung soll sofort nach druck auf den jeweiligen taster erfolgen.

    Momentan scheitere ich daran dass die taster die jeweilige pumpe starten :(

    weitere Fragen hätt ich außerdem. :D

    was muss ich tun damit mein Pythonfile automatisch jeden tag um die gleiche uhrzeit gestartet wird? ich aber trotzdem jederzeit die wasserwechseltaster drücken kann?

    wie kompliziert ist es die time.sleep zeiten der pumpen per weboberfläche zu ändern?

    :danke_ATDE:
    Viele viele Grüße
    Alex

  • Zu deinem Problem selbst kann ich dir leider nicht helfen, aber wegen den Möglichkeiten des Crons und des zusätzlichen Tastendrucks würde ich persönlich 2 Scripte nehmen.
    Eins was du täglich ausführen lässt und das andere das als Daemon läuft.

    Wenn du die Zeit in den Sleep-Anweisungen mit Zahlen ersetzt, sollten die sich glaub ich ohne Probleme über Php ändern lassen.

    Dann noch ne Frage, ist es Absicht, dass du bei der zweiten If-Abfrage auf roterknopf == 0 gehst? Die sollte doch eigentlich auch bei 1 greifen, oder?

    Und noch was, ich weiß ehrlich gesagt gerade nicht, wie Python da reagiert, weil ich es noch nicht ausprobiert habe, aber die IF-Abfrage darf nicht eingerückt werden, probier mal das:

  • Hallo Alex,

    herzlich Willkommen in unserem Forum.

    Bist Du Dir sicher, dass die Pumpen so wenig Strom ziehen, dass sie vom Raspberry Pi damit versorgt werden können.

    An Deiner Stelle hätte ich statt der Pumpe erstmal eine LED und einen Widerstand genommen, um zu sehen, ob Dein Taster erkannt wird, und die LED ein-/ausschaltet.

    Das Gleiche gilt für den Taster. Hast Du hier an die Widerstände gedacht?

    Vielleicht liegt das Problem ja auch an Deiner Schaltung, dass es nicht so funktioniert, wie Du es Dir dachtest...

    Ein Programm kannst Du regelmäßig zur gleichen Zeit starten, wenn Du dafür einen "Crontab" einrichtest (==> Suchfunktion nutzen - ist recht einfach).

    Beste Grüße

    Andreas

    Hallo Alex,

    ich kann zwar kein Python, aber muss es nicht so heißen:

    Code
    if gelberknopf == 1:

    also mit Doppelpunkt am Ende?

    Beste Grüße

    Andreas
    [/code]

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (7. November 2014 um 21:45)

  • Vielen Dank schonmal für die Antworten geht ja fix hier :)

    DeadRabbit

    hast natürlich recht mit der 0 und 1 - soweit komme ich im Programmablauf garnicht.

    bekomme immer diese Fehlermeldung, egal wo ich das if schreibe

    Code
    File "1.py", line 33
        if gelberknopf == 1
        ^
    IndentationError: unexpected indent


    Andreas

    Die Pumpen sind momentan tatsächlich LEDs.
    Ich wollte euch nur verdeutlichen mit den pumpen um was es geht :)

    Wenn alles Läuft wird das ganze mit Relais und Optokopplern betrieben. Widerstände sind nur zwischen GND und LEDs

    die beiden Taster sind ohne Widerstände zwischen GND und GPIO angeschlossen - ist das nen Problem? zumindest wurde das hier auch so gemacht :D https://www.galileo-press.de/raspberry-pi_3659/

    €dit:

    der Doppelpunkt hinter der 1 bringt leider auch nicht den gewünschten erfolg :mad_GREEN:s

    Einmal editiert, zuletzt von marterstarter (7. November 2014 um 21:57)

  • Na wusste ich doch, dass ich richtig liege xD

    Du musst bei Python auf das Einrücken achten!
    Damit werden Programmblöcke definiert.

    Probier den Code aus, den ich oben gezeigt habe, damit sollte zumindest der Fehler verschwinden!

    Oh und auch ich hab die Doppelpunkte vergessen, also nochmal:

    Einmal editiert, zuletzt von DeadRabbit (7. November 2014 um 22:10)

  • Hallo Alex,


    die beiden Taster sind ohne Widerstände zwischen GND und GPIO angeschlossen - ist das nen Problem? zumindest wurde das hier auch so gemacht :D https://www.galileo-press.de/raspberry-pi_3659/

    Dann wirst Du das Problem haben, dass nicht nur Taster-Ereignisse detektiert werden, sondern alle mögliche Störsignale aufgefangen werden und vom Programm falsch gedeutet werden.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Danke für eure Hilfe,
    hatte einige Probleme mit den Tastern da sie wie schon vermutet nicht korrekt verdrahtet waren, habe nun 10k ohm auf gnd und 1k ohm vor den tastern.

    Leider gab es dann erneute Probleme da die Taster nicht "sauber" trennen.

    Der Vollständigkeithalber und für die nachwelt nun der code, der nun zuverlässig tut was er soll :thumbs1:


    Viele Grüße
    Alex

    P.S. nächste probleme zeichnen sich ab ^^ ... wie kann ich mit html, apache2 - meine gelbzeit und rotzeit ändern?

    Einmal editiert, zuletzt von marterstarter (9. November 2014 um 20:49)

Jetzt mitmachen!

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