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.
    • 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

                                  536
                                  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