Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Rpi2 GPIO Zuordnung fehlerhaft?

    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

    Rpi2 GPIO Zuordnung fehlerhaft?

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

      Moin,

      ich habe versucht mit dem RPI2 (Version 0.2.1) Adapter die GPIOs zu steuern.

      Dabei ist mir aufgefallen, dass die Zuordnung der Pins den Physikalischen Pins entspricht (siehe Anhang).

      Allerdings hätte ich erwartet, das RPi2 GPIO 27 auch geht. Gibt aber eine Fehlermeldung (wie bei den Anderen, nicht funktionierenden Pins auch):

      rpi2.0	2016-11-08 09:58:56.158	error	Cannot setup port 27 as output: Error: EINVAL: invalid argument, write
      

      Kann das jemand bestätigen.

      Ich habe mir den Status der Ausgänge mit wiringPi anzeigen lassen.

      Gruß,

      Mark

      UPDATE:

      Ich habe jetzt ein wenig gestöbert und die ./iobroker-data/files/rpi2.admin/index.html angepasst:

        var allowedGPIOs = [
              3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,29,31,32,33,35,36,37,38,40
          ];
      
      

      damit lassen sich alle Pins beim Raspberry ansteuern. Die Pins 27 & 28 sind allerdings belegt.

      Ich meine mich zu erinnern, dass das "normal" ist.

      Gruß,

      Mark
      917_iobrokerrpi2adapter.png

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

        Ok, bin heute mit einer Testinstallation auf 'nem Raspi 2 B+ wieder drauf gestoßen:

        Bluefox verwendet diese GPIO-Beschreibung: https://github.com/ioBroker/iobroker.rp … 3_gpio.png

        Leider ist diese falsch da sie nicht die GPIO-Numerierung verwendet sondern die BCM-Numerierung!

        Die Numerierungen kriegt man am Raspi mit gpio readall.

        Hier das vom 2B+ (gleich mir Raspi3):

        +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
         | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
         +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
         |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
         |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |
         |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
         |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
         |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
         |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
         |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
         |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
         |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
         |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
         |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 1 | IN   | GPIO. 6 | 6   | 25  |
         |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
         |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
         |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
         |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
         |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
         |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
         |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
         |  26 |  25 | GPIO.25 |  OUT | 1 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
         |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
         +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
         | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
         +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
        
        

        Wie man dort sieht sind die GPIO-Nummern mit den BCM-Nummern ident.

        Nun hat Blufox einen bug in seiner Initialisierung: Das Interface verwendet als default wiringpi-Nummern und nicht BCM.

            if (anyEnabled) {
                try {
                    gpio = require('rpi-gpio');
                } catch (e) {
                    gpio = null;
                    console.error('cannot use GPIO: ' + e);
                }
            }
        
        

        Das muß auf:

            if (anyEnabled) {
                try {
                    gpio = require('rpi-gpio');
                    gpio.setMode(gpio.MODE_BCM);
                } catch (e) {
                    gpio = null;
                    console.error('cannot use GPIO: ' + e);
                }
            }
        
        

        geändert werden, dann funkt rpi2 bei mir auf 2B+ und auf rpi3 und die Dokumentation vom Adapter stimmt mit dem zusammen was er tut.

        Ohne diese Änderung wird z.B bei GPIO18 (laut Beschreibung physikalischer Pin#12) gar nichts angesprochen weil wPi18/GPIO.18 nicht existiert, sehr wohl aber BCM18 was aber wPi1/GPIO.1 ist.

        Ein Kommentar in der Adapter-Beschreibung dass die Numerierung BCM (= BroadComm pins am chip) ist wäre angebracht.

        Ohne meine Änderung oben müsste index.html und die Beschreibung umgebaut werden und diese Pin-Numerierung verwendet werden: http://pi4j.com/pins/model-3b-rev1.html

        Hoffe dass ich etwas zur Klärung beitragen konnte.

        p.s.: Wozu ich gpio's verwende? Um die billigsten Bewegungsmelder zu bauen! https://www.amazon.de/Foxnovo-HC-SR501- … B00PRFPY72 können direkt angeschlossen werden und funktionieren super!

        p.s.s.: Der Adapter meldet bei jedem Durchlauf (jede Minute) Zwei wifi-Fehler (wie error No Value found for wifi_send/wifi_received) . Das kommt natürlich dann wenn der wifi_adapter beim Pi3 abgeschaltet oder bei den anderen Pi's keiner angesteckt ist. Sollte geprüft werden ob ein wlan-Netz existiert und wenn nicht dann diese Abfrage unterdrückt werden.

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

          Danke für deine Anmerkungen. Probiere die Version von GIT.

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

            Ja, super, funktioniert jetzt auf Raspi 2B+ und 3B. Kannst vielleicht auch auflisten bei den getesteten im Readme!

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

              OK. Danke. Habe ich veröffentlicht.

              1 Reply Last reply Reply Quote 0
              • T
                thobastian last edited by

                Hallo !

                Ich habe den DHT22 und wollte ihn am Port 4 betreiben. Nun bin ich auf der Suche nach einer Beschreibung hier auf http://www.iobroker.de.

                Und ich finde nichts.

                Wo kann ich den Adapter für meinen Raspi3 finden und gibt es ein Blockly-Script o.ä.?

                Schöne Grüße

                Thomas

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  Hallo Thomas,

                  zur Doku für den RPI2-Adapter kommst du im Moment über das Fragezeichen im Admin - Reiter Adapter ganz rechts:

                  http://www.iobroker.net/?page_id=5379&l … stallieren

                  Dieses Fragezeichen fürhrt nach:

                  https://github.com/ioBroker/ioBroker.rp … /README.md

                  Gruß

                  Rainer

                  PS die offizielle Seite ist iobroker.net

                  1 Reply Last reply Reply Quote 0
                  • T
                    thobastian last edited by

                    Moin Rainer,

                    das hatte ich versucht und habe eine 404er Seite bekommen. 😞

                    Dazu kommt noch, dass in der Readme nicht steht, wie man den Adapter installiert. Hast Du Dir das mal angesehen?

                    muss ich den wirklich per npm starten? Geht das nicht über die Adapterliste?

                    Gruß

                    Thomas

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      @thobastian:

                      das hatte ich versucht und habe eine 404er Seite bekommen. `
                      Was hast du denn für eine Version? (js-controller (siehe host) und admin.)

                      Hintergrund:

                      Es gab mal einen Adapter der hieß iobroker.rpi. Statt dessen gibt es jetzt einen Adapter der heisst iobroker.rpi2

                      Solltest du noch den rpi in deiner Adapterliste haben ist dieser (und damit deine gesamte Installation) total veraltet!

                      beim rpi2 klappt der Link über das Fragezeichen (zumindest bei mir)

                      Und grundsätzlich lassen sich ALLE Adapter über die Weboberfläche des admin installieren.

                      Wobei um es korrekt auszudrücken die Erstellung einer Instanz gemeint ist.

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • T
                        thobastian last edited by

                        Hallo Rainer,

                        Also hier habe ich den RPI-Adapter installiert und sehe unter Instancen: RPI2.0

                        Dort habe ich die GPIO Einstellungen gefunden. endlich…

                        Jetzt habe ich den Port 4 auf IN gesetzt. Weil ich dort den DHT22 eingebunden habe. Wie kann ich die Temperatur bekommen?

                        Schöne Grüße

                        Thomas

                        1 Reply Last reply Reply Quote 0
                        • T
                          thobastian last edited by

                          Hallo !

                          hier stehe ich nun etwas auf dem Schlauch. Wie kann ich einen DHT22 einbinden ?

                          Muss ich vorweg etwas installieren ? reicht es den GPIO Adapter zu installieren?

                          und : vor allen wie mache ich das wirklich praktisch ?

                          Gruß

                          Thomas

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

                            @thobastian:

                            Jetzt habe ich den Port 4 auf IN gesetzt. Weil ich dort den DHT22 eingebunden habe. Wie kann ich die Temperatur bekommen? `
                            Der DHT22 hat eine serielle Schnittstelle. Die kann man nicht mit dem RPi2-Adapter auswerten.

                            Es gibt ein NPM-Modul https://www.npmjs.com/package/dht-sensor, das man in die Konfiguration des JS-Adapters einbinden kann.

                            1 Reply Last reply Reply Quote 0
                            • T
                              thobastian last edited by

                              okay,

                              aber wie genau?

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

                                @thobastian:

                                aber wie genau? `

                                • Javascript-Adapter installieren

                                • in der Konfiguration der JS-Instanz hinter "Zusätzliche NPM-Module" eintragen: dht-sensor

                                • im Editor-Fenster des JS-Adapters ein neues Skript anlegen (http://www.iobroker.net/?page_id=6818&lang=de#Bedienung)

                                • Folgendes Skript per copy & paste in das Editor-Fenster kopieren

                                var ordner = 'Klima';
                                var dht = require('dht-sensor');
                                var bcm = 4;      // BCM GPIO
                                var sensor = 22;  // DHT22
                                
                                // Datenpunkte erzeugen
                                createState(ordner + '.rel_Feuchte', 0, {
                                    type: 'number',
                                    desc: 'relative Luftfeuchte',
                                    read: true,
                                    write: true,
                                    min: 0,
                                    max: 100,
                                    unit: '%'
                                });
                                
                                createState(ordner + '.Temperatur', 0, {
                                    type: 'number',
                                    desc: 'Temperatur',
                                    read: true,
                                    write: true,
                                    min: -30,
                                    max: 50,
                                    unit: '°C'
                                });
                                
                                // Werte jede Minute abfragen    
                                schedule('* * * * *', function() {
                                    var values = dht.read(sensor, bcm);
                                    if(values) {
                                		setState(ordner + '.rel_Feuchte', values.humidity);
                                		setState(ordner + '.Temperatur', values.temperature);
                                	}
                                });
                                
                                
                                • Datenpunktname (ordner) anpassen

                                • Skript starten

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

                                  @paul53 said in Rpi2 GPIO Zuordnung fehlerhaft?:

                                  dht-sensor

                                  Hi ich hoffe Du kannst mir auch helfen, vor allem nach so langer Zeit. xD

                                  Ich habe Dein Script wie beschrieben benutzt, der Status bleibt bei gelb. Jedoch erhalte ich keine Daten in VIS.

                                  Auch versuchte ich diverse andere Möglichkeiten meinen DHT22 Sensor über den ioBroker auszulesen. Alles ist gescheitert.

                                  Gruß

                                  Marcel

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @DasDing1988 last edited by paul53

                                    @DasDing1988 sagte:

                                    Jedoch erhalte ich keine Daten

                                    Kommen Fehlermeldungen im Log ?
                                    Das NPM-Modul dht-sensor ist unter Zusätzliche NPM-Module in der Konfiguration der Javascript-Instanz eingetragen ?
                                    Die Datenpunkte javascript.0.Klima.Temperatur und javascript.0.Klima.rel_Feuchte sind erzeugt worden (Ordner "Objekte") ?

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    829
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    7
                                    16
                                    3362
                                    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