GPIO Platine für 3x Klingeltaster (entstört)

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Da in jedem Forum ein paar Regeln eingehalten werden müssen, möchte ich diese auch vorher hier festlegen und niederschreiben. Die grundsätzliche Netiquette setze ich bei Jedem voraus. Darüber hinaus möchte ich nur spezielle Regeln ansprechen:
    - Unterlasse FullQuote sondern nutze Alternativen wie Inline-Quoting
    -> siehe auch https://de.wikipedia.org/wiki/Fullquote vs. https://de.wikipedia.org/wiki/TOFU#Alternativen_zu_TOFU
    - Unterlasse nichtssagende Antworten wie "Danke" oder "werde ich mal testen" oder ähnliches, sofern Du nicht der Threadersteller bist und einen Lösungsvorschlag angeboten bekommen hast.
    - Vermeide Doppel-Posts (zwei Beiträge von Dir hintereinander) sondern editiere wenn möglich Deine Posts.

    Danke...

    • GPIO Platine für 3x Klingeltaster (entstört)

      Hallo zusammen,

      ich habe eine neue Platine mit 3x Eingang (z.B. Klingeltaster) gelötet.
      Weiterhin habe ich eine LED für Tests oder Fehlersignalisierung aufgelötet.
      Alle Eingänge sind mit Widerständen und Kondensatoren entstört.

      1. Eingang = GPIO17
      2. Eingang = GPIO27
      3. Eingang = GPIO22
      LED = GPIO13


      Diejenigen, die kein Relay und somit kein PyFace brauchen, können dies vielleicht gebrauchen.

      [Blocked Image: http://www.gorjup.de/upload/pictures/DoorPi/platine1-1.jpg]
      [Blocked Image: http://www.gorjup.de/upload/pictures/DoorPi/platine1-2.jpg]
      [Blocked Image: http://www.gorjup.de/upload/pictures/DoorPi/platine1-3.jpg]
      [Blocked Image: http://www.gorjup.de/upload/pictures/DoorPi/doorpi-schaltung2.png]

      Materialliste:

      1x Lochraster Lötplatine 5x7cm
      1x Buchsenleiste 2x20 Pins
      3x Schraubklemme
      3x Widerstand 10 kOhm
      5x Folienkondensator 10nF (1x nur als Stützfuß)
      1x LED gelb
    • RE: GPIO Platine für 3x Klingeltaster (entstört)

      Ok, hier das Script.
      Wenn also irgend etwas nicht funktioniert, dann könnt ihr die LED blinken lassen, indem ihr das Script aufruft. Es läuft unendlich.
      Wenn Ihr die Zahl hinter "sleep" ändert, könnt ihr auch die Blinkgeschwindigkeit ändern.
      Innerhalb der while Schleife könnt ihr mehrmals die LED ein-/ausschalten und mit unterschiedlichen sleep Zeiten arbeiten und somit mit mehreren Scripten auf verschiedene Fehler hinweisen.

      blink.sh

      Shell-Script

      1. #!/bin/bash
      2. echo 13 > /sys/class/gpio/export
      3. echo out > /sys/class/gpio/gpio13/direction
      4. x=1
      5. while [ $x = 1 ]
      6. do
      7.  echo 1 > /sys/class/gpio/gpio13/value
      8.  sleep 0.2
      9.  echo 0 > /sys/class/gpio/gpio13/value
      10.  sleep 0.2
      11. done
      Display All
    • RE: GPIO Platine für 3x Klingeltaster (entstört)

      motom001 wrote:


      Das klingt nach der keep_alive LED von DoorPi - dann bräuchte man das extra Script nicht.

      Yoh, kann man machen. Aber kann man die LED mit keep_alive auch blinken lassen.
      Mit dem Script kann man zur Not sogar Morse Zeichen machen :D
      [hr]

      Nea wrote:


      Super, dafür vielen Dank.
      Aber eines fehlt mir noch wie wird das script gestartet? Aus DoorPi heraus oder im Hintergrund? Was für fehler lässt Du denn anzeigen und wie. Oder frägst Du den Status von DoorPi ab ob es läuft?


      Also man kann es für vieles nutzen. Da ist man komplett frei.
      Wie Thomas schon schrieb, direkt aus doorpi mittels keep_alive oder man fragt per cronjob ab ob DoorPi läuft oder ob die Kamera an ist, oder, oder, oder.....

      The post was edited 1 time, last by han-solo ().

    • RE: GPIO Platine für 3x Klingeltaster (entstört)

      han-solo wrote:


      Aber kann man die LED mit keep_alive auch blinken lassen.


      Genau das tut sie ja. ;)

      Eine Frage hätte ich aber schon noch. Nur bitte nicht falsch verstehen, da es keine Kritik an Deinem Board sein soll. Das PiFace-Modul bekommt man für unter 30,- €. Ist es da nicht einfacher und - rechnet man die Arbeitszeit ein - auch günstiger, statt Deiner DIY-Lösung auf die Fertiglösung zu setzen, zumal die auch noch deutlich flexibler ist? Alleine die Möglichkeit, vier der Eingänge per Taster testen zu können und an zwei Ausgängen Relais zum Schalten größerer Lasten zur Verfügung zu haben, finde ich sehr nützlich. Hinzu kommt, dass man das gesamte PiFace-Modul ja mit dem kostenlosen Emulator auf dem Desktop auch sehr einfach und schnell ausprobieren kann.

      Gruß,

      Thorsten

      The post was edited 1 time, last by dtp ().

    • RE: GPIO Platine für 3x Klingeltaster (entstört)

      @dtp
      Da gebe ich dir Recht, aber wo bleibt der Spass auch mal etwas selbst zu entwickeln? Spass beiseite, wenn man eine eigene Lösung des IO Boards erstellt hat man viel Möglichkeiten um hier schnell und effektiv Erweiterungen dran zu  hängen, als Beispiel einen Port Expander um zusätzliche IO Ports zu bekommen. Man kann auch sein selbst erstelltes Board gleich richtig entstören. Ich habe bei mir alle Ein und Ausgängen mit einem Keramikkondensator entsört. Man kann auch gleich eine stabile Stromversorgung mit auf das Board packen sowie Verstärker, level shifter, Soundkarte .......
      Mir fallen da 1000 sachen ein was man mit so einem selbst erstellten Board alles machen kann.

      Aber ich gebe Dir in sofern Recht das es viele nicht brauchen würden aber aufgeräumter und leichter veränderbarer ist so ein Eigenbau allemal.
      Mit freundlichen Grüßen

      Andreas

      The post was edited 1 time, last by Nea ().

    • RE: GPIO Platine für 3x Klingeltaster (entstört)

      dtp wrote:


      Daher sollte meine Frage die Lösung von han-solo auch in keinster Weise schmälern.


      Das wollte ich damit auch nicht sagen oder Dir unterstellen. Ich finde, und das meine persönliche Meinung, wer sich mit DoorPi auseinander setzt der sollte auch in der Lage sein so etwas auch selbst herstellen zu können. Planen und Zeichnen muss man ja nicht selbst, dafür gibt es ja das Board um sich von anderen die ihr selbsterstelltes Board hier vorstellen, Ideen und Hilfe zu holen.
      Carpe diem.
      Mit freundlichen Grüßen

      Andreas
    • Cool, erzähl mal ob deine Schaltung funzt....

      @Joker:

      Wenn du die LED blinken lassen willst wenn DoorPi nicht läuft, kannst du z.B. dieses Script alle 10 Minuten per cronjob laufen lassen:

      Shell-Script: check_doorpi.sh

      1. #!/bin/bash
      2. if [ ! -f /var/tmp/check_doorpi.lck ]; then
      3. touch /var/tmp/check_doorpi.lck
      4. if [ ! -d /sys/class/gpio/gpio13 ]; then
      5. echo 13 > /sys/class/gpio/export
      6. echo out > /sys/class/gpio/gpio13/direction
      7. fi
      8. var=`ps -eaf | grep python | wc -l`
      9. if [ $var -lt "2" ]; then
      10. echo "DoorPi läuft nicht"
      11. x=1
      12. while [ $x = 1 ]
      13. do
      14. echo 1 > /sys/class/gpio/gpio13/value
      15. sleep 0.2
      16. echo 0 > /sys/class/gpio/gpio13/value
      17. sleep 0.2
      18. done
      19. else
      20. echo "DoorPi läuft"
      21. rm -f /var/tmp/check_doorpi.lck
      22. fi
      23. else
      24. echo "script is already running!"
      25. fi
      Display All

      The post was edited 3 times, last by han-solo ().

    • @han-solo

      Ist es nicht sinnvoller wenn der rm Befehl zum Schluss steht da, wenn doorpi nicht läuft, nie die Zeile 25 abgearbeitet wird?

      So meine Ich.

      Shell-Script

      1. #!/bin/bash
      2. if [ ! -f /var/tmp/check_doorpi.lck ]; then
      3. touch /var/tmp/check_doorpi.lck
      4. if [ ! -d /sys/class/gpio/gpio13 ]; then
      5. echo 13 > /sys/class/gpio/export
      6. echo out > /sys/class/gpio/gpio13/direction
      7. fi
      8. var=`ps -eaf | grep python | wc -l`
      9. if [ $var -lt "2" ]; then
      10. echo "DoorPi läuft nicht"
      11. x=1
      12. while [ $x = 1 ]
      13. do
      14. echo 1 > /sys/class/gpio/gpio13/value
      15. sleep 0.2
      16. echo 0 > /sys/class/gpio/gpio13/value
      17. sleep 0.2
      18. done
      19. else
      20. echo "DoorPi läuft"
      21. fi
      22. else
      23. echo "script is already running!"
      24. rm -f /var/tmp/check_doorpi.lck
      25. fi
      Display All
      Mit freundlichen Grüßen

      Andreas
    • Nea wrote:

      wenn doorpi nicht läuft, nie die Zeile 25 abgearbeitet wird?


      Hmm, das stimmt wohl, aber die meisten würden dann wohl den Pi kurz stromlos machen um ihn neu zu starten.
      Oder man loggt sich ein und prüft was los ist und startet den DoorPi von Hand. Dann sollte man check_doorpi.lck auch von Hand löschen.

      Aber ich gebe dir Recht, schöner wäre es wohl so: Hier würde das .lck File gelöscht weden, wenn DoorPi wieder läuft.

      Shell-Script: check_doorpi.sh

      1. #!/bin/bash
      2. if [ ! -f /var/tmp/check_doorpi.lck ]; then
      3. touch /var/tmp/check_doorpi.lck
      4. if [ ! -d /sys/class/gpio/gpio13 ]; then
      5. echo 13 > /sys/class/gpio/export
      6. echo out > /sys/class/gpio/gpio13/direction
      7. fi
      8. var=`ps -eaf | grep python | wc -l`
      9. if [ $var -lt "2" ]; then
      10. echo "DoorPi läuft nicht"
      11. x=1
      12. while [ $x = 1 ]
      13. do
      14. echo 1 > /sys/class/gpio/gpio13/value
      15. sleep 0.2
      16. echo 0 > /sys/class/gpio/gpio13/value
      17. sleep 0.2
      18. var=`ps -eaf | grep python | wc -l`
      19. if [ $var -eq "2" ]; then
      20. echo "DoorPi läuft wieder"
      21. rm -f /var/tmp/check_doorpi.lck
      22. exit
      23. fi
      24. done
      25. else
      26. echo "DoorPi läuft"
      27. rm -f /var/tmp/check_doorpi.lck
      28. fi
      29. else
      30. echo "script is already running!"
      31. fi
      Display All