Fehler beim auslesen von Temperatur Sensor

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    habe vor kurzem mein PI neu aufgesetzt und wollte einen SHT10 Sensor zum laufen bekommen, bevor ich Raspbian auf mein PI neu installiert hatte, habe ich den Sensor auch erfolgreich in Betrieb gehabt.

    Jetzt jedoch bringt er mir immer diese Fehlermeldung:

    Traceback (most recent call last):
    File "innen.py", line 8, in <module>
    humidity = sht1x.read_humidity()
    File "/home/pi/rpiSht1x-1.2/sht1x/Sht1x.py", line 81, in read_humidity
    temperature = self.read_temperature_C()
    File "/home/pi/rpiSht1x-1.2/sht1x/Sht1x.py", line 70, in read_temperature_C
    self.__sendCommand(temperatureCommand)
    File "/home/pi/rpiSht1x-1.2/sht1x/Sht1x.py", line 107, in __sendCommand
    GPIO.setup(self.dataPin, GPIO.OUT)
    RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)

    Habe den Code zum auslesen der Sensoren von dieser Webseite: rpiSHT1x

    Bei anderen kleineren Programmen bekomme ich diese Fehlermeldung nicht. das Programm starte ich natürlich mit Sudo python ....

    Im Programm wurde der Befehl eingefügt

    Code
    try:
        import RPi.GPIO as GPIO


    und

    Code
    class Sht1x(object):
        GPIO_BOARD = GPIO.BOARD
        GPIO_BCM = GPIO.BCM

    Bin echt am verzweifeln langsam... :( Hoffe ihr könnt mir weiter helfen.

  • Hier der komplette Code

    Dann gibt es noch eine zweite Python-Datei der die ganzen Daten abfrägt:

    Ist nicht ganz so easy, aber irgendwie wird am Ende wenn man sich den Code genau durchliest "GPIO.setmode" dem "GPIO.BOARD" zugewiesen, so wie ich das lese.
    Falls ich da jetzt doch falsch liege, wo soll ich "GPIO.setmode(GPIO.BOARD)" einfügen? Egal an welche Stelle ich das platziere, es erscheint immer diese Fehlermeldung :/
    Sorry bin noch nicht so geübt in Python.. :blush:

    Einmal editiert, zuletzt von theatz (17. April 2015 um 21:35)

  • Hallo,

    ` sht1x = SHT1x(dataPin, clkPin, SHT1x.GPIO_BOARD)` ist falsch, also das `SHT1x.GPIO_BOARD` ist der Fehler.

    Das muss entweder `gpioMode = GPIO_BOARD` oder `gpio_mode=GPIO_BCM` stehen - je nach dem, was du willst.

    Ist dir klar, wie man unter Python Instanzen einer Klasse erzeugt? Also auch was Positionsargumente und optionale Argumente sind? Das ist nämlich der Fehler hier.

    Gruß, noisefloor

  • Hier in diesen Zeilen.

    Python
    class Sht1x(object):
        GPIO_BOARD = GPIO.BOARD
        GPIO_BCM = GPIO.BCM
    
    
        def __init__(self, dataPin, sckPin, gpioMode = GPIO_BOARD):
            self.dataPin = dataPin
            self.sckPin = sckPin
            GPIO.setmode(gpioMode)

    ganz unten steht GPIO.setmode(gpioMode),
    etwa bei der hälfte wird gpioMode dem GPIO_Board zugewiesen,
    und oben wird GPIO_Board dem GPIO.BOARD zugewiesen xDD

    schon ganz schön umständlich geschrieben :/ hätte man sicherlich einfacher schreiben können xD

  • Hallo,

    man kann das auch so schreiben, wenn man an anderer Stelle nicht die Klassen-weiten Variablen `GPIO_BOARD` und `GPIO_BCM` braucht:

    [code=php]class Sht1x(object):
    def __init__(self, dataPin, sckPin, gpio_mode ='BOARD'):
    self.dataPin = dataPin
    self.sckPin = sckPin
    if gpio_mode == 'BOARD':
    GPIO.setmode(GPIO.BOARD)
    elif gpio_mode == 'BCM';
    GPIO.setmode(GPIO.BCM)[/php]

    Aber in dem Code sind noch mehr Sachen komisch... ;)

    Gruß, noisefloor

    Einmal editiert, zuletzt von noisefloor (17. April 2015 um 22:10)

  • Zitat

    Hallo,

    ` sht1x = SHT1x(dataPin, clkPin, SHT1x.GPIO_BOARD)` ist falsch, also das `SHT1x.GPIO_BOARD` ist der Fehler.

    Das muss entweder `gpioMode = GPIO_BOARD` oder `gpio_mode=GPIO_BCM` stehen - je nach dem, was du willst.

    hmm nee sorry hat auch nichts gebracht...
    das darf doch echt nicht wahr sein, der Code hat sogar mal funktioniert bevor ich den Pi platt gemacht habe :/
    Könnte es evtl. auch sein, dass ich der Sht1x.py Datei besondere Rechte geben muss? glaub eigentlich nicht das es am Code selber liegt, auch wenn der wirklich sehr komisch ist ^^ aber hat ja mal funktioniert...

    Zitat

    Ist dir klar, wie man unter Python Instanzen einer Klasse erzeugt? Also auch was Positionsargumente und optionale Argumente sind? Das ist nämlich der Fehler hier.

    Naja also so ganz geheuer ist mir das noch nicht, hoffe das wird noch ^^

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!