DHT22 + LCD 20x4 Modul (PCF8547T) - Heirat

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

    da mein erstes Problem von euch kompetent und zielgerecht gelöst wurde, hier ein Weiteres:

    Ich habe mein derzeitiges Vorhaben um ein LCD Display von Sainsmart, welches 4 Zeilen a20 Zeichen abbilden kann erweitert (ist die Fertigmodullösung mit dem PCF8547T hinten dran).

    Temperatur, sowie Feuchtigkeit wird von einem DHT22 Sensor ausgelesen.

    Mein Problem liegt nun daran, die Temp/Humidity-Werte des DHT22 auf dem LCD anzeigen zu lassen. Ich bekomme die Werte des Sensors an der Stelle nicht funktionsfähig implementiert.
    In Zeile 2 soll die Temperatur -in Zeile 3 der Feuchtigkeitswert stehen (ist reingeschrieben)

    Hier der Code:

    Gruß und schönen Abend, opc

    Einmal editiert, zuletzt von opc241 (7. Januar 2015 um 20:03)

  • Hallo,

    das (ungetestet)

    Code
    lcd.lcd_display_string("--------------------", 1)
    lcd.lcd_display_string("{}".format(temperature), 2)
    lcd.lcd_display_string("{}".format(humidity), 3)
    lcd.lcd_display_string("--------------------", 4)

    sollte eigentlich funktionieren...

    Gruß, noisefloor

    Hallo,

    Nachtrag zu anderer Stelle:

    Code
    if humidity is not None and temperature is not None:
            print 'Temp={0:0.1f}*C  Feuchtigkeit={1:0.1f}%'.format(temperature, humidity)
        else:
            print 'Failed to get reading. Try again!'

    Kannst du vereinfachen zu:

    Code
    if humidity and temperaure:
        print 'Temp={0:0.1f}*C  Feuchtigkeit={1:0.1f}%'.format(temperature, humidity)
    else:
        print 'Failed to get reading. Try again!'

    Dadurch fällt die doppelt Verneinung in der if-Zeile weg ;)

    Gruß, noisefloor

    Einmal editiert, zuletzt von noisefloor (7. Januar 2015 um 21:01)

  • Hallo noisefloor,

    ich habe beide deiner Tipps umgesetzt und kann hiermit deren Funktionalität bestätigen :danke_ATDE:

    Prinzipiell gefragt: Liege ich richtig in der Annahme, dass der Content der geschweiften Klammer:

    Code
    Feuchtigkeit={1:0.1f}%

    den Wert auf eine Kommastelle nach dem Komma festlegt durch 0.1f? was legt die 1: fest?

    Einmal editiert, zuletzt von opc241 (7. Januar 2015 um 21:59)

  • Danke für die Links :danke_ATDE:

    hab ich mir direkt durchgelesen. Wenn mans weiß ist es immer einfach :bravo2:

    Code
    print 'Temp={0:0.1f}*C  Feuchtigkeit={1:0.1f}%'.format(temperature, humidity)

    Bedeutet demnach also die erste Zahl der geschweiften Klammer -vor dem Doppelpunkt- {0:0.1f} gibt an, an welcher Stelle das Objekt in format() steht, welches eingesetzt wird. Und 0.1f legt fest wie viele Dezimalzahlen nach dem Punkt geschrieben werden (in meinem Fall eine) und wie viele Zeichen der String insgesamt hat (in dem Fall 0, für minimum 0). f = für Zahlentyp 'float'

    :thumbs1:

    Einmal editiert, zuletzt von opc241 (8. Januar 2015 um 19:57)

Jetzt mitmachen!

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