Temperatursensor Wert auf LCD ausgeben

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich hab versuch als totaler Python-Anfänger mir ein Script zu basteln, welches mir die Temperatur eines Sensors (DS18S20) auf meinem 16x2 Char LCD ausgibt. Die Ausgabe der Temperatur in der Konsole funktioniert, allerdings funktioniert das gebastelte Skript für das Display nicht. Hoffe ihr könnt mir da helfen...

    Ziel der Sache ist das in der ersten Zeile Datum und Uhrzeit stehen und in der 2. Zeile die aktuelle Raumtemperatur angezeigt wird.

    Script 1 (Uhr):

    Script 2 (Temperatur-Messung):


    [font="Helvetica Neue, Helvetica, Arial, sans-serif"]"Fertiges"-Script:[/font]


    [font="Helvetica Neue, Helvetica, Arial, sans-serif"]MfG c3ntry[/font]

    Einmal editiert, zuletzt von c3ntry (6. Oktober 2013 um 00:21)

  • Oke, ich hab das jetzt geändert:

    Und beim Start kommt diese Fehlermeldung in der Konsole:

    Code
    Traceback (most recent call last):
      File "Uhr.py", line 61, in <module>
        lcd.message('Temp read_temp'(read_temp) )
    TypeError: 'str' object is not callable
    • Offizieller Beitrag

    Das sie blinkt ist ja normal, es läuft ne schleife die jede sekunde den wert holt und die anzeige aktualisiert ;)



    In Python gibst du aber die Variablen ohne "%" an (auch bei einer Ausgabe).

    Das stimmt bei normalen variablen, wenn diese in einen string eingebunden werden sollen brauch man das %

  • Ich hab mir dazu eine kleine lib gebastelt, in der ich dann festgelegt habe ob ich ein String oder ein Float zurück bekommen möchte.

    Ordner angelegt: libThermometer
    dadrin:

    Python
    # __init__.py
    from Thermometer import ThermometerClass


    Im Hauptprogramm:

    Das kann man natürlich auch noch in einen Subprozess packen :)
    Den Ausgabeteile kann ich bei Interesse auch noch posten ( HD44780 direkt angeschlossen oder per AdaFruit Plate).

    Einmal editiert, zuletzt von picker (6. Oktober 2013 um 13:31)

  • Hallo, guten Tag,

    mein Name ist Karsten, 45, ich bin neu hier im Forum. Seit ein paar Tagen experimentiere ich mit dem Raspberry und diversen Sensoren. Nun habe ich hierher ins Forum gefunden.... icon_smile.gif
    Da ich nun aber noch nicht viel Ahnung von der Materie hab, habe ich die vorhergehenden Beiträge gelesen, denn ich möchte auch einige Wetterdaten auf mei 16x2 Display angezeigt bekommen. Nur da will nicht so recht klappen - bin mit Python noch neu....

    Ich habe versucht die Daten vom BMP085 auf das Display zu bekommen, funktioniert aber nicht. :s


    Ich habe schon beim "Adafruit Learning System" das 16x2 schon zum Anzeigen der IP meines Wlan gebracht, auch zeigt der BMP085 Luftdruck und Temperatur am Monitor an. Auch hab ich versucht anhand der hier beschriebenen Weise beide Codes (vom 16x2 Display und vom BMP085) zu kombinieren, damit Temperatur und Lufdruck in je einer Zeile angezeigt werden. Da habe ich sicherlich so einiges falsch gemacht....

    Adafruit Display Code:

    Adafruit BMP085 Code:

    Mein "Code":


    Hat jemand von euch einen Tip wie ich da weiter vorgehen könnte, um ein Ergebnis zu bekommen?

    Vielen Dank erstmal, und sorry wegen der vielen Fragen
    Karsten

  • Also ich hab das jetzt weder getestet oder viel Ahnung von der Materie, aber:

    Code
    lcd.message("Temp: %.2f C" % temp)

    braucht glaube ich am Ende einen Zeilenumbruch.

    Code
    lcd.message("Temp: %.2f \n" % temp)

    Und ich würde das ja so machen:

    Code
    lcd.message("Temp:" + temp + " C\n")


    und eventuell (ja nach dem wie viele Kommastellen der BMP085 ausgibt) noch runden:

    Code
    temp = round(temp,1) #Die Zahl gibt die Nachkommastellen an
  • dbv - Oh sorry, war mein Fehler, hab die Datei nicht gespeichert.
    Ich habe jetzt den code folgendermaßen mit den Vorschlöägen von c3ntry ergänzt:

    Code
    lcd.message("Temp: %.2f \n" % temp)


    jetzt kommt die Meldung:

    File "./LCD2.py" , line 29
    sleep(2)
    (ein kleiner Pfeil zeigt von unten auf das p vom Wort sleep)
    SyntaxError: invalid syntax

    Und angezeigt wird nichts auf dem Display...

    Danke,
    Karsten

  • Hallo dbv,

    danke für den Hinweis, aber jetzt wird das Wort "time" markiert und wieder SyntaxError: invalid syntax...

    Hab ich denn vorher in Code evtl. was vergessen oder falsch gemacht?

    Danke,
    Karsten

Jetzt mitmachen!

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