Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. GPIO's Steuern 16chRelais12V über RasPi o. Rock64

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    GPIO's Steuern 16chRelais12V über RasPi o. Rock64

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      DiveDancer last edited by

      Wurde dann mal auf Shopping Tour geschickt.
      Bin dann mal weg

      1 Reply Last reply Reply Quote 0
      • D
        DiveDancer last edited by

        Geshopt, Gesnäckt & Rasenschnitt

        1 Reply Last reply Reply Quote 0
        • D
          DiveDancer last edited by DiveDancer

          'Value' scheint so nicht hinterlegt zu sein.

          pi@Tijger:/sys/class/gpio $ echo "in" > gpio2/direction
          pi@Tijger:/sys/class/gpio $ echo "1" > gpio2/value
          -bash: echo: Schreibfehler: Die Operation ist nicht erlaubt.
          pi@Tijger:/sys/class/gpio $ echo "0" > gpio2/value
          -bash: echo: Schreibfehler: Die Operation ist nicht erlaubt.
          pi@Tijger:/sys/class/gpio $
          
          
          
          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active last edited by

            Sieht mehr nach fehlenden Rechten (Schreibfehler) aus. Versuche es mal als root.

            1 Reply Last reply Reply Quote 0
            • D
              DiveDancer last edited by

              Stimmt, die Fehlermeldung ist weg

              Aber das Relais bleibt tot

              pi@Tijger:/sys/class/gpio $ echo "0" > gpio2/value
              pi@Tijger:/sys/class/gpio $ echo "1" > gpio2/value
              pi@Tijger:/sys/class/gpio $ sudo echo "0" > gpio2/value
              pi@Tijger:/sys/class/gpio $ sudo echo "1" > gpio2/value
              pi@Tijger:/sys/class/gpio $
              
              
              1 Reply Last reply Reply Quote 0
              • D
                DiveDancer last edited by

                115.png
                Keine Funktion

                1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active last edited by

                  Zumindest weiß ich warum der RPI-Adapter so nicht "richtig" funktioniert, der läuft nur wenn auch der ioB unter root läuft.
                  Ich nehme mal an, dass sich der Adapter und die Versuche unter der Shell beißen. Deaktiviere mal den Adapter, dann alles als root/sudo (löscht die GPIO2-Einstellungen + legt sie neu und clean wieder an):

                  echo "2" > /sys/class/gpio/unexport
                  echo "2" > /sys/class/gpio/export
                  echo "out" > /sys/class/gpio/gpio2/direction
                  echo "1" > /sys/class/gpio/gpio2/value
                  echo "0" > /sys/class/gpio/gpio2/value
                  

                  Schaltet das Relais jetzt?

                  1 Reply Last reply Reply Quote 0
                  • D
                    DiveDancer last edited by

                    Nein Es schaltet nicht.

                    Das Problem ist:
                    All die Befehle unter diesem Pfad funktionieren nur, wenn der Adapter läuft!

                    So sieht das aus wenn der Adapter deaktiviert ist!:

                    root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/unexport
                    bash: echo: Schreibfehler: Das Argument ist ungültig.
                    root@Tijger:/sys/class/gpio#
                    
                    

                    Bei aktiviertem Adpter scheint es zu funktionieren...:

                    root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/unexport
                    root@Tijger:/sys/class/gpio# echo "2" > /sys/class/gpio/export
                    root@Tijger:/sys/class/gpio# echo "out" > /sys/class/gpio/gpio2/direction
                    root@Tijger:/sys/class/gpio# echo "1" > /sys/class/gpio/gpio2/value
                    root@Tijger:/sys/class/gpio# echo "0" > /sys/class/gpio/gpio2/value
                    root@Tijger:/sys/class/gpio#
                    
                    

                    ...aber das Relais schaltet nicht.

                    1 Reply Last reply Reply Quote 0
                    • D
                      DiveDancer last edited by

                      Bei deaktiviertem rpi2.0 Adapter nach einem reboot:

                      root@Tijger:/sys/class/gpio# dir
                      export  gpiochip0  gpiochip100  gpiochip504  unexport
                      root@Tijger:/sys/class/gpio# ls -al /sys/class/gpio
                      insgesamt 0
                      drwxrwx---  2 root gpio    0 Jun 16 10:55 .
                      drwxr-xr-x 54 root root    0 Nov  3  2016 ..
                      -rwxrwx---  1 root gpio 4096 Jun 16 10:55 export
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip0 -> ../../devices/platform/so                                     c/3f200000.gpio/gpio/gpiochip0
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip100 -> ../../devices/gpiochip2                                     /gpio/gpiochip100
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip504 -> ../../devices/platform/                                     soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504
                      -rwxrwx---  1 root gpio 4096 Jun 16 10:57 unexport
                      root@Tijger:/sys/class/gpio#
                      
                      

                      Wenige Sekunden nach aktivierung des Adapters:

                      root@Tijger:/sys/class/gpio# dir
                      export  gpio11  gpio15  gpio18  gpio22  gpio24  gpio27  gpio4  gpio9      gpiochip100  unexport
                      gpio10  gpio14  gpio17  gpio2   gpio23  gpio25  gpio3   gpio8  gpiochip0  gpiochip504
                      root@Tijger:/sys/class/gpio# ls -al /sys/class/gpio
                      insgesamt 0
                      drwxrwx---  2 root gpio    0 Jun 16 11:07 .
                      drwxr-xr-x 54 root root    0 Jun 16 11:04 ..
                      -rwxrwx---  1 root gpio 4096 Jun 16 11:07 export
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio10 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio10
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio11 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio11
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio14 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio14
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio15 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio15
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio17 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio17
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio18 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio2 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio2
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio22 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio22
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio23 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio23
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio24 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio24
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio25 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio25
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio27 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio27
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio3 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio3
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio4 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio4
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio8 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio8
                      lrwxrwxrwx  1 root gpio    0 Jun 16 11:07 gpio9 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio9
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100
                      lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504
                      -rwxrwx---  1 root gpio 4096 Jun 16 10:57 unexport
                      root@Tijger:/sys/class/gpio#
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • D
                        DiveDancer last edited by DiveDancer

                        Manche Threads sind einfach zum kotzen.
                        Da findet man mal was mit genau seiner Problemstellung,
                        und wenn es spannend wird endet er und wird mal einfach so ein halben Jahrzent nicht fort geführt. 🎃

                        1 Reply Last reply Reply Quote 0
                        • D
                          DiveDancer last edited by

                          pigpio soll Stand der Technik sein:
                          https://www.elektronik-kompendium.de/sites/raspberry-pi/2006041.htm

                          Vielleicht lohnt da ein Ansatz
                          Läuft aber anscheinend auch nicht out of the Box.
                          Beißt sich aber vielleicht auch mit dem rpi Adapter.

                          1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active last edited by SBorg

                            Sieht genau aus wie es soll, nur hast du dann einen kleinen Fehler begangen 😉
                            Wenn du den Adapter anhältst und rebootest, dann darf im GPIO-Verzeichnis kein gpioxx mehr vorhanden sein, außer den gpiochipxyz

                            Wieder alles als root (ohne den Adapter gestartet zu haben!):
                            echo "2" > /sys/class/gpio/export (die "2" steht hier für GPIO2)
                            Jetzt sollte im Verzeichnis der gpio2 (und nur der, also keine weiteren gpioxx) aufgetaucht sein.
                            Wir definieren diesen GPIO als Ausgang: echo "out" > /sys/class/gpio/gpio2/direction

                            Nun sollte sich mittels

                            echo "1" > /sys/class/gpio/gpio2/value
                            echo "0" > /sys/class/gpio/gpio2/value
                            

                            das Relais an GPIO2 ein- und ausschalten lassen?

                            1 Reply Last reply Reply Quote 0
                            • D
                              DiveDancer last edited by DiveDancer

                              Ich werd jetzt nicht zugeben das ich nur noch Bahnhof verstehe,...

                              ...aber Umsetzung folgt!
                              ...
                              ...
                              ...
                              Bitte warten, ...

                              ...Ich verarbeite!!!

                              1 Reply Last reply Reply Quote 0
                              • D
                                DiveDancer last edited by DiveDancer

                                Pfad Zustand nach Deaktivierung des Adapters:

                                root@Tijger:/sys/class/gpio# ls -al /sys/class/gpio
                                insgesamt 0
                                drwxrwx---  2 root gpio    0 Jun 16 14:08 .
                                drwxr-xr-x 54 root root    0 Jun 16 11:04 ..
                                -rwxrwx---  1 root gpio 4096 Jun 16 11:07 export
                                lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
                                lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100
                                lrwxrwxrwx  1 root gpio    0 Jun 16 10:55 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504
                                -rwxrwx---  1 root gpio 4096 Jun 16 14:08 unexport
                                root@Tijger:/sys/class/gpio#
                                
                                

                                ...nach reboot:

                                root@Tijger:/home/pi# ls -al /sys/class/gpio
                                insgesamt 0
                                drwxrwx---  2 root gpio    0 Jun 16 14:13 .
                                drwxr-xr-x 54 root root    0 Nov  3  2016 ..
                                -rwxrwx---  1 root gpio 4096 Jun 16 14:13 export
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504
                                -rwxrwx---  1 root gpio 4096 Jun 16 14:13 unexport
                                root@Tijger:/home/pi#
                                
                                

                                gpiochip0 ist hoffentlich nicht als störend gemeint.

                                Nach dem Reboot werden alle Befehle, bis auf den 'unexport' angenommen:

                                root@Tijger:/home/pi# echo "2" > /sys/class/gpio/unexport
                                bash: echo: Schreibfehler: Das Argument ist ungültig.
                                root@Tijger:/home/pi# echo "2" > /sys/class/gpio/export
                                root@Tijger:/home/pi# echo "out" > /sys/class/gpio/gpio2/direction
                                root@Tijger:/home/pi# echo "1" > /sys/class/gpio/gpio2/value
                                root@Tijger:/home/pi# echo "0" > /sys/class/gpio/gpio2/value
                                root@Tijger:/home/pi# echo "1" > /sys/class/gpio/gpio2/value
                                root@Tijger:/home/pi# echo "0" > /sys/class/gpio/gpio2/value
                                root@Tijger:/home/pi#
                                
                                

                                Jetzt ist gpio2 hinzu gekommen.

                                root@Tijger:/home/pi# ls -al /sys/class/gpio
                                insgesamt 0
                                drwxrwx---  2 root gpio    0 Jun 16 14:19 .
                                drwxr-xr-x 54 root root    0 Jun 16 14:16 ..
                                -rwxrwx---  1 root gpio 4096 Jun 16 14:19 export
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:19 gpio2 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio2
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip100 -> ../../devices/gpiochip2/gpio/gpiochip100
                                lrwxrwxrwx  1 root gpio    0 Jun 16 14:13 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:expgpio/gpio/gpiochip504
                                -rwxrwx---  1 root gpio 4096 Jun 16 14:19 unexport
                                root@Tijger:/home/pi#
                                
                                

                                Nein, nein und nochmals N...
                                Das Relais schaltet nicht.
                                Und der Adapter ist aus.
                                116.png
                                ...oder muss man den Deinstallieren?

                                Vielleicht mal mit einem anderen Port probieren der vielleicht nicht noch vom I2C Bus genutzt werden kann?
                                Hab ja schließlich noch 15 weitere angeklemmt ohne was umverdrahten zu müssen.

                                Ich meine so hätte ich es beim letzten mal auch gemacht!?
                                Oder habe ich meinen kleinen Fehler wiederholt?

                                1 Reply Last reply Reply Quote 0
                                • D
                                  DiveDancer last edited by DiveDancer

                                  Wie kann ich denn nun den Zustand der Ports einsehen?

                                  readall funktioniert hier gerade nicht mehr:

                                  root@Tijger:/sys/class/gpio# readall
                                  bash: readall: Kommando nicht gefunden.
                                  root@Tijger:/sys/class/gpio# exit
                                  exit
                                  pi@Tijger:/sys/class/gpio $ sudo readall
                                  sudo: readall: Befehl nicht gefunden
                                  pi@Tijger:/sys/class/gpio $
                                  
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    DiveDancer last edited by

                                    Wobei ich vielleicht auch noch erwähnen sollte, das 3 Relais in diesem Zustand angezogen sind.
                                    WhatsApp Image 2019-06-16 at 14.48.36.jpg

                                    JD1 liegt hier auf GPIO 2

                                    SBorg 1 Reply Last reply Reply Quote 0
                                    • D
                                      DiveDancer last edited by

                                      Also folgendes...

                                      Mit weiterem Port getestet.

                                      In der ersten Runde kann unexport nicht gesetzt werden.
                                      & am Relais passiert nix.

                                      root@Tijger:/home/pi# echo "23" > /sys/class/gpio/unexport
                                      bash: echo: Schreibfehler: Das Argument ist ungültig.
                                      
                                      

                                      Der export Befehl wird geschluckt
                                      & am Relais passiert nix.

                                      root@Tijger:/home/pi# echo "23" > /sys/class/gpio/export
                                      
                                      

                                      Der 'echo "out" > /sys/class/gpio/gpio23/direction' wird angenommen.
                                      & das Relais zieht AN.

                                      root@Tijger:/home/pi# echo "out" > /sys/class/gpio/gpio23/direction
                                      
                                      

                                      0 & 1 bewirkt keine Veränderung
                                      & Das Relais bleibt unverändert ANgezogen

                                      root@Tijger:/home/pi# echo "0" > /sys/class/gpio/gpio23/value
                                      root@Tijger:/home/pi# echo "1" > /sys/class/gpio/gpio23/value
                                      

                                      Im zweiten Durchlauf wird der unexport Befehl angenommen.
                                      & Der Anker des Relais wird los gelassen.

                                      root@Tijger:/home/pi# echo "23" > /sys/class/gpio/export
                                      
                                      

                                      Der'echo "out" > /sys/class/gpio/gpio23/direction' Befehl wird angenommen.

                                      & Das Relais zieht den Anker wieder AN

                                      echo "out" > /sys/class/gpio/gpio23/direction
                                      

                                      0 & 1 bewirkt keine Veränderung
                                      & Das Relais bleibt unverändert ANgezogen

                                      So reagieren auch die anderen Ports.

                                      1 Reply Last reply Reply Quote 0
                                      • SBorg
                                        SBorg Forum Testing Most Active @DiveDancer last edited by

                                        @DiveDancer sagte in GPIO's Steuern 16chRelais12V über RasPi o. Rock64:

                                        Wobei ich vielleicht auch noch erwähnen sollte, das 3 Relais in diesem Zustand angezogen sind.
                                        JD1 liegt hier auf GPIO 2

                                        Das dünkt mich jetzt mehr als nachdenklich. Ohne den Adapter (deaktivieren genügt, deswegen sind alle GPIO-Unterverzeichnisse weg) sollten alle GPIOs "Low" sein. Je nach Relaiskarte wären dann alle Relais an oder aus. Die Betonung liegt hier auf alle... Deswegen sollten wir zum testen wirklich mal ein anderes nehmen...
                                        Zudem habe ich gerade noch gesehen, dass bei den PIs je nach Revision die GPIOs 0-3 unterschiedlich belegt sind.
                                        "4" hast du lt. Quellcode ebenfalls belegt. Das müsste der 4. Pin (gezählt) vom Header sein (bzw. PIN #7 beschriftet)

                                        ...und wieder root:

                                        echo "4" > /sys/class/gpio/export
                                        echo "out" > /sys/class/gpio/gpio4/direction
                                        echo "1" > /sys/class/gpio/gpio4/value
                                        echo "0" > /sys/class/gpio/gpio4/value
                                        

                                        Im Verzeichnis sollte nach dem Vefehl mit export (unexport brauchst du nicht, der Adapter läuft nicht und hat keine Verzeichnisse angelegt) dann der gpio4 auftauchen.
                                        Den Schaltzustand bekommst du bspw. mit cat /sys/class/gpio/gpio4/value, d.h. allerdings nicht, dass das Relais auch tatsächlich geschaltet hat. Das ist quasi nur die Aufforderung dazu.

                                        Schaltet jetzt was korrekt?

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          DiveDancer last edited by

                                          Test ist bereits durchgeführt.
                                          Ich hab dann mal noch gpio22 auf Pin 15 & gpio23 auf 16 getestet.
                                          https://forum.iobroker.net/post/271939
                                          Das relay ist angezogen wegen dem Befehl:
                                          echo "out" > /sys/class/gpio/gpio23/direction
                                          Siehe Beitrag des Links

                                          1 Reply Last reply Reply Quote 0
                                          • SBorg
                                            SBorg Forum Testing Most Active last edited by

                                            Ok, hat sich gerade überschnitten...

                                            export = legt den GPIO-Pin an
                                            unexport = löscht den GPIO-Pin (deswegen auch der Fehler, kannst nix löschen was du nicht vorher angelegt hast)

                                            unexport benötigst du aber nicht. Dass war nur wg. dem Adapter nötig.

                                            Auch das "out" benötigst du nur einmalig, zumindest bis zum reboot bleibt das erhalten.
                                            Jetzt bleibt nur zu klären warum er auf das 0/1 bei "value" nicht reagiert.
                                            Mach nach dem echo "1"... mal direkt danach ein cat /sys/class/gpio/gpio23/value, um mal bei GPIO23 zu bleiben. Steht da 0 oder 1 drin?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            960
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            70
                                            4074
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo