ich bin zumindest was Python angeht noch relativ neu.
Ich versuche gerade mir auf einem 20x4 LCD einige
Informationen anzeigen zu lassen.
Zeile 1 & 3: ein definierter Text
Zeile 2: links das aktuelle Datum, rechts die Temperatur vom RPi
Zeile 4: die Temperaturen von zwei DHT22-Sensoren
Im Moment bekomme ich keine Anzeige zustande.
Das Display flackert nur alle paar Sekunden auf.
Richtig angeschlossen ist es wohl, da ein anderer Scipt funktioniert.
Mein Code:
Code: Alles auswählen
import Adafruit_CharLCD as LCD
import Adafruit_DHT
import subprocess
from datetime import datetime
import time
#LCD-Display
lcd = LCD.Adafruit_CharLCDPlate(0x27)
#LCD
LCD_WIDTH = 20
LCD_LINES = 4
#Zeilen 1 & 3
line1_text = "-- xxxxxXXXXXX --"
line3_text = "..Temp_IN---Temp_OUT.."
#Ermittlung der Raspberry Pi-Temperatur
def get_raspberry_pi_temperature():
temperature = subprocess.check_output(['vcgencmd', 'measure_temp']).decode('utf-8')
return temperature.split('=')[1]
#DHT22-Temperatur
def get_dht22_temperature(pin):
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, pin)
if temperature is not None and temperature >0 and temperature < 100:
return f"{temperature:.1f}°C"
else:
return "N/A"
try:
while True:
#Aktuelles Datum und Uhrzeit
current_datetime = datetime.now().strftime("%d.%b.%y")
#Raspberry Pi-Temperatur
raspberry_pi_temp = get_raspberry_pi_temperature()
#DHT22-Temperaturen
dht22_temp_pin22 = get_dht22_temperature(22)
dht22_temp_pin27 = get_dht22_temperature(27)
time.sleep(2)
#LCD Anzeigen
lcd.clear()
lcd.message(line1_text.center(LCD_WIDTH) + "\n")
lcd.message(f"{current_datetime}".ljust(LCD_WIDTH - len(raspberry_pi_temp)) + f"{raspberry_pi_temp}\n")
lcd.message(line3_text.center(LCD_WIDTH) + "\n")
lcd.message(f"Temp_IN: {dht22_temp_pin22} Temp_OUT: {dht22_temp_pin27}".ljust(LCD_WIDTH) + "\n")
time.sleep(3) # Aktualisieren alle 5 Sekunden
except KeyboardInterrupt:
pass
finally:
lcd.clear()
Vielleicht ist hier jemand so nett und findet die Zeit hier einmal drüber zu schauen?
Gruß
Klaus