Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Rock64 GPIO steuern

    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

    Rock64 GPIO steuern

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

      Hallo,

      gibt es eine Möglichkeit die GPIO's am Rock 64 ähnlich anzusprechen wie mit dem Raspberry?

      Beim Raspberry kann ich mit dem rpi2 Monitor Adapter die GPIO's mit NodeRed steuern, aber wie geht das beim Rock64?

      Auf dem Rock64 ist der rpi2 Adapter installiert und ich bekommen auch Temp Werte usw. aber die GPIO's kann ich im NodeRed Adapter nicht verwenden…

      Hat jemand eine Idee?

      Der Rock64 wurde frisch installiert, also kein Image verwendet.

      Bei den fertigen Images ist ja eine veränderte rpi2 Version drauf, ist das die Lösung?

      Besten Dank

      1 Reply Last reply Reply Quote 0
      • K
        Konti83 last edited by

        Also ich sitze seit 2 Tagen daran und verzweifel daran.

        MIt dem Rpi2-Adapter las ich bisher ich den Stand der Garage aus und schalte auch ein Relais.

        Was ich versucht habe:

        • Fertiges Image

        • Manuelle Installation und aufspielen des Adapters (mit und ohne austausch der io-package.json)

        • Hartes Überschreiben mit meiner Kopie vom Raspberry Pi (auch mit neukompilieren des Adapters)

        Im Ergebnis bekomme ich den Adapter selbst lauffähig. Die Ausgaben rund um Speicher, CPU und co sind alle da.

        Was in keiner einzigen Konstellation funktioniert hat ist das Abgreifen oder Setzen von GPIOs.

        –> Wenn es bei jemandem läuft --> Bitte helfen!! 🙂

        (Bin auch nur Hobbyschrauber mit ganz einfachen Linux Kentnissen)

        1 Reply Last reply Reply Quote 0
        • SRo769
          SRo769 last edited by

          Hi Konti83,

          die GPIO-Steuerung über den RPI2-Adapter in Verbindung mit dem Rock64 funktioniert definitiv nicht. Die Nummerierung der GPIOs als auch deren Ansteuerung ist beim Rock64 leider deutlich anders als beim Raspberry Pi. So lässt sich z.B. auch die vereinfachende WiringPi-Software nicht installieren.

          Die Schaltung einzelner Pins wird aber trotzdem möglich durch folgende Anleitung:

          https://forum.pine64.org/archive/index. … -2088.html


          Code:

          sudo -i

          echo "75" > /sys/class/gpio/export

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

          echo 1 > /sys/class/gpio/gpio75/value

          echo 0 > /sys/class/gpio/gpio75/value


          Die GPIO-Belegung kannst du dir hier ableiten:

          https://github.com/Leapo/Rock64-R64.GPI ... GPIO-Modes

          Die GPIO selbst könnendann per Befehl (z.B. Blockly Exec) ein- oder aus geschaltet werden. Den Status der GPIOs kannst du über den Adapter Systeminfo "/sys/class/gpio/gpio75/direction"abfragen. Für jeden Pin eine sep. Abfrage.

          Das mache ich an meine Rock auch so. Ist beim Rock halt etwas umständlich - im Ausgleich dafür gibts ja reichlich Ram und Power.

          F 1 Reply Last reply Reply Quote 0
          • P
            pfuhsy last edited by

            Hallo,

            ich habe aktuell genau das selbe Problem. Über die Konsole klappt das. Über Blockly bekomme ich das nicht hin. Wie funktioniert das damit.

            Gruss

            F 1 Reply Last reply Reply Quote 0
            • P
              pfuhsy last edited by

              Sobald der Rock64 neugestarte wird, wird alle einstellungen wieder weg.

              1 Reply Last reply Reply Quote 0
              • F
                Fatmax @pfuhsy last edited by

                @pfuhsy
                Genau das gleiche Problem.
                Konntest du den Fehler finden und mit Blockly schalten?

                1 Reply Last reply Reply Quote 0
                • F
                  Fatmax @SRo769 last edited by

                  @SRo769
                  Funktioniert das auch per Exec-Befehl in Blockly?
                  Ich bekomme es damit nicht hin.
                  Er schaltet nur wenn ich die Befehle in der Konsole eingebe.

                  Wie verwendest du die Befehle im Iobroker?

                  1 Reply Last reply Reply Quote 0
                  • SRo769
                    SRo769 last edited by SRo769

                    Hi, das Problem mit dem Verschwinden der GPiOs nach einem Neustart lässt sich per "rc.local" Datei lösen.
                    Diese Datei ist im Verzeichnis /etc zu finden - zumindest in Armbian. In Debian (ab Vers. 9) ist die Datei nicht mehr dabei und die Einrichtung etwas schwieriger - siehe https://www.itechlounge.net/2017/10/linux-how-to-add-rc-local-in-debian-9/.
                    Sofern ihr Armbian benutzt ist es ziemlich einfach:
                    die Datei rc.local im Verzeichnis /etc editieren als root (per nano o. auch WinSCP)
                    dann die ersten beiden Zeilen vor exit 0 einfügen
                    Beispiel:
                    echo "75" > /sys/class/gpio/export
                    echo "out" > /sys/class/gpio/gpio75/direction
                    exit 0

                    dann speichern und den Rock neustarten - jetzt sollte der GPIO75 im Verzeichnis /sys/class/gpio/ aufgebaut sein und immer zur Verfügung stehen. Für weitere GPIOs sind die Einträge ensprechend zu erweitern.

                    Nach dem Neustart könnt ihr dann die Befehle:
                    echo 1 > /sys/class/gpio/gpio75/value
                    echo 0 > /sys/class/gpio/gpio75/value

                    im Terminal testen - nun kommt keine Fehlermeldung mehr und die Schaltung funktioniert.

                    Die beiden Befehlssequenzen können dann im Script (Blockly) über den Baustein "exec - Systembefehl ausführen" getriggert werden. In das Textfeld einfach die Befehlsequenz hineinkopieren. Das Ganze könnt ihr ja dann mit einem einfachen Testschalter (Vis) testen.

                    Viel Spass beim Testen und
                    Viele Grüße SRo769

                    F 1 Reply Last reply Reply Quote 0
                    • SRo769
                      SRo769 last edited by SRo769

                      hoppla, hatte leider das falsche Verzeichnis angegeben - das Verzeichnis in dem die Datei "rc.local" zu finden ist, lautet natürlich /etc und nicht wie zuvor beschrieben /dev

                      SRo769

                      1 Reply Last reply Reply Quote 0
                      • F
                        Fatmax @SRo769 last edited by Fatmax

                        @SRo769
                        Danke für die Hilfe.
                        Das hat über die Konsole einwandfrei funktioniert.

                        Per Exec-Befehl schaltet es nicht.
                        Ich vermute es hat was mit den Rechten zu tun (iobroker-User)?

                        In der Facebook-Gruppe wurde mir geraten sudoers zu bearbeiten. -> Habe hier einiges probiert ohne Erfolg. Wirklich auskennen tue ich mich damit nicht.
                        Funktionieren bei dir die Excec-Befehle in Blockly ohne Probleme?

                        Oder musstest du sonst auch noch etwas umstellen?

                        SRo769 1 Reply Last reply Reply Quote 0
                        • SRo769
                          SRo769 @Fatmax last edited by

                          @Fatmax

                          Der Aufruf der Befehlzeile im exec muss ohne "sudo" erfolgen. Des Weiteren muss das Verzeichnis des GPIOs den du schalten willst die "richtige Berechtigung" haben. Mittels Programm WinSCP oder im Terminal muss die Berechtigung für das Verzeichnis inkl. aller Unterordner und Dateien (rekursiv) auf 0777 gesetzt werden.
                          Dann einfach mal im Blockly schalten lassen und schon ändert sich auch der Value Wert in der Datei "Value".
                          So funktioniert das bei mir ohne Probleme. Zur Kontrolle des aktuellen Zustandes kann der Wert auch mittels Systeminfo Adapter ausgelesen werden.

                          SRo769

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            Fatmax @SRo769 last edited by Fatmax

                            @SRo769
                            Danke vielmals für die Hilfe!
                            Nun läuft es endlich. Ich musste jedoch noch etwas zusätzlich machen.

                            Habe mich mittels Filezilla mit dem Rock64 verbunden und konnte dann bequem die Berechtigungen für die Verzeichnisse ändern.
                            Ich habe direkt für /sys/class/gpio/ die Berechtigung für das Verzeichnis/allen Unterverzeichnissen und Dateien auf "777" gesetzt, das passt dann zukünftig für alle GPIO's.

                            Danach hat es leider noch immer nicht funktioniert.
                            Tricky ist dabei, dass im Verzeichnis /sys/class/gpio/ dann die weiteren Unterverzeichnisse mit den GPIO-Nummern als Verknüpfungen angelegt sind.
                            Diese gehen dann weiter zu folgendem Pfad: /sys/devices/platform/pinctrl/gpio/

                            Ich habe diesem Verzeichnis/allen Unterverzeichnissen und Dateien auch Berechtigung "777" gegeben, seitdem läuft es.

                            EDIT: Musste nochmals etwas in etc/rc.local ergänzen, da nach einem Reboot die Berechtigungen für die Verzeichnisse zurückgesetzt wurden da die Verzeichnisse & Dateien ja nach jedem Neustart für die GPIO neu angelegt werden wenn man dies in etc/rc.local so einstellt ☺
                            Hier nun mein gesamter Inhalt für etc/rc.local:

                            echo "101" > /sys/class/gpio/export
                            echo "out" > /sys/class/gpio/gpio101/direction
                            echo "102" > /sys/class/gpio/export
                            echo "out" > /sys/class/gpio/gpio102/direction
                            chmod -R 777 /sys/class/gpio
                            chmod -R 777 /sys/devices/platform/pinctrl/gpio
                            exit 0
                            

                            Dies aktiviert auch nach dem Reboot GPIO A5 (=101) & GPIO A6 (102) als Ausgang und setzt auch die entprechenden Rechte auf den notwendigen Verzeichnissen, damit die GPIO's mittels Exec-Befehl im IOBroker-Blockly geschaltet werden können.
                            Wenn andere GPIO's benötigt werden müssen die Zahlen entsprechend in rc.local ergänzt werden.

                            1 Reply Last reply Reply Quote 0
                            • hg6806
                              hg6806 Most Active last edited by

                              Hallo zusammen,

                              ich hole mal den Thread hier hoch weil ich mit dem Rock64 einen GPIO einlesen möchte.
                              Und zwar den "GPIO1_D4".
                              Welche GPIO-Nr. ist das und müsste das in "rc.local" eintragen?

                              Wie kann ich den GPIO dann in Blockly auslesen und verwenden? Beim Pi habe ich das mit dem RPI2.0 Adapter gemacht, das wird wohl beim Rock nicht mehr gehen oder?

                              SRo769 1 Reply Last reply Reply Quote 0
                              • SRo769
                                SRo769 @hg6806 last edited by

                                @hg6806 Hi,

                                das müsste dann GPIO 60 sein. Wenn nur abgefragt werden soll:

                                echo "60" > /sys/class/gpio/export
                                echo "out" > /sys/class/gpio/gpio60/direction
                                chmod -R 777 /sys/class/gpio
                                chmod -R 777 /sys/devices/platform/pinctrl/gpio
                                exit 0

                                in die rc.local eintragen

                                und dann den state z. B. per Adapter "system info" auslesen:

                                Name Type source convent Role/Type schedule
                                GPIO60 file /sys/class/gpio/gpio60/value number boolean z.b. ***** für jede minute

                                Der State kann dann ganz normal im Script abgefragt werden...

                                Grüße SRo769

                                1 Reply Last reply Reply Quote 0
                                • hg6806
                                  hg6806 Most Active last edited by hg6806

                                  Tausend Dank für die ausführliche Erklärung!

                                  Reicht es nicht wenn man die Rechte nur einmal per Filezilla z.B. vergibt?

                                  @SRo769 sagte in Rock64 GPIO steuern:

                                  und dann den state z. B. per Adapter "system info" auslesen:
                                  Name Type source convent Role/Type schedule
                                  GPIO60 file /sys/class/gpio/gpio60/value number boolean z.b. ***** für jede minute
                                  Der State kann dann ganz normal im Script abgefragt werden...

                                  Das habe ich nicht wirklich verstanden.
                                  Ist der Info-Adapter damit gemeint? Und wie mache ich das in Blockly?

                                  Hintergrund ist folgender.
                                  Ich hatte mal hier einen Thread aufgemacht, weil der Pi, bzw. jetzt ein Rock64 öfters hart ausgeschaltet wird:
                                  https://forum.iobroker.net/topic/24777/raspi-hart-stromlos-schalten/22

                                  Ich habe dann mit Super-Caps die Versorgung überbrückt und über einen Optokoppler die 230V an einen GPIO gebracht.
                                  Dieser muss also wie ein Interrupt sofort erkannt werden und das System herunterfahren.
                                  Hat beim Pi gut funktioniert (zumindest das Herunterfahren von ioBroker)
                                  Bloß beim Rock ist das mit GPIOs eben nicht so einfach wie mit dem RPI2.0 Adapter.

                                  Grüße

                                  SRo769 1 Reply Last reply Reply Quote 0
                                  • SRo769
                                    SRo769 @hg6806 last edited by

                                    @hg6806 nein, mit dem Adapter ist der "systeminfo"-Adapter gemeint. Dieser kann Werte aus dem System bzw. aus dem Web auslesen. Die einzutragenden Werte hatte ich dazu geschrieben. Der Adapter bildet dann einen Datenpunkt mit dem entsprechend aktuellem State GPIO60. Dieser kann dann beliebig in Scripten verwendet werden.

                                    Grüße SRo769

                                    1 Reply Last reply Reply Quote 0
                                    • hg6806
                                      hg6806 Most Active last edited by

                                      OK, den Adapter kannte ich noch gar nicht!

                                      @SRo769 sagte in Rock64 GPIO steuern:

                                      echo "60" > /sys/class/gpio/export
                                      echo "out" > /sys/class/gpio/gpio60/direction

                                      Muss das dann nicht "in" heißen?

                                      1 Reply Last reply Reply Quote 0
                                      • SRo769
                                        SRo769 last edited by

                                        sorry, ja muss "in" heißen - war noch im Modus "schalten"😊

                                        1 Reply Last reply Reply Quote 0
                                        • hg6806
                                          hg6806 Most Active last edited by

                                          Leider bekomme ich an dem Pin keinen richtigen High Pegel, trotz 10k an 3,3V
                                          Weiß jemand wie der GLIO1_D4 konfiguriert ist? Ist da doch ein Clock Signal drauf?

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          712
                                          Online

                                          31.9k
                                          Users

                                          80.1k
                                          Topics

                                          1.3m
                                          Posts

                                          6
                                          19
                                          1634
                                          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