Hallo
[code=php]#!/usr/bin/python
import time
import RPi.GPIO as GPIO
import Adafruit_DHT
import datetime
# Zuordnung der GPIO Pins (ggf. anpassen)
sensor = Adafruit_DHT.DHT11
pin = 27
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
LCD_RS = 4
LCD_E = 17
LCD_DATA4 = 18
LCD_DATA5 = 22
LCD_DATA6 = 23
LCD_DATA7 = 24
LCD_WIDTH = 16 # Zeichen je Zeile
LCD_LINE_1 = 0x80 # Adresse der ersten Display Zeile
LCD_LINE_2 = 0xC0 # Adresse der zweiten Display Zeile
LCD_CHR = GPIO.HIGH
LCD_CMD = GPIO.LOW
E_PULSE = 0.0005
E_DELAY = 0.0005
def lcd_send_byte(bits, mode):
# Pins auf LOW setzen
GPIO.output(LCD_RS, mode)
GPIO.output(LCD_DATA4, GPIO.LOW)
GPIO.output(LCD_DATA5, GPIO.LOW)
GPIO.output(LCD_DATA6, GPIO.LOW)
GPIO.output(LCD_DATA7, GPIO.LOW)
if bits & 0x10 == 0x10:
GPIO.output(LCD_DATA4, GPIO.HIGH)
if bits & 0x20 == 0x20:
GPIO.output(LCD_DATA5, GPIO.HIGH)
if bits & 0x40 == 0x40:
GPIO.output(LCD_DATA6, GPIO.HIGH)
if bits & 0x80 == 0x80:
GPIO.output(LCD_DATA7, GPIO.HIGH)
time.sleep(E_DELAY)
GPIO.output(LCD_E, GPIO.HIGH)
time.sleep(E_PULSE)
GPIO.output(LCD_E, GPIO.LOW)
time.sleep(E_DELAY)
GPIO.output(LCD_DATA4, GPIO.LOW)
GPIO.output(LCD_DATA5, GPIO.LOW)
GPIO.output(LCD_DATA6, GPIO.LOW)
GPIO.output(LCD_DATA7, GPIO.LOW)
if bits&0x01==0x01:
GPIO.output(LCD_DATA4, GPIO.HIGH)
if bits&0x02==0x02:
GPIO.output(LCD_DATA5, GPIO.HIGH)
if bits&0x04==0x04:
GPIO.output(LCD_DATA6, GPIO.HIGH)
if bits&0x08==0x08:
GPIO.output(LCD_DATA7, GPIO.HIGH)
time.sleep(E_DELAY)
GPIO.output(LCD_E, GPIO.HIGH)
time.sleep(E_PULSE)
GPIO.output(LCD_E, GPIO.LOW)
time.sleep(E_DELAY)
def display_init():
lcd_send_byte(0x33, LCD_CMD)
lcd_send_byte(0x32, LCD_CMD)
lcd_send_byte(0x28, LCD_CMD)
lcd_send_byte(0x0C, LCD_CMD)
lcd_send_byte(0x06, LCD_CMD)
lcd_send_byte(0x01, LCD_CMD)
def lcd_message(message):
message = message.ljust(LCD_WIDTH," ")
for i in range(LCD_WIDTH):
lcd_send_byte(ord(message[i]),LCD_CHR)
while __name__ == '__main__':
# initialisieren
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LCD_E, GPIO.OUT)
GPIO.setup(LCD_RS, GPIO.OUT)
GPIO.setup(LCD_DATA4, GPIO.OUT)
GPIO.setup(LCD_DATA5, GPIO.OUT)
GPIO.setup(LCD_DATA6, GPIO.OUT)
GPIO.setup(LCD_DATA7, GPIO.OUT)
display_init()
lcd_send_byte(LCD_LINE_1, LCD_CMD)
lcd_message('{0:0.1f}*C {1:0.1f}%'.format(temperature, humidity))
lcd_send_byte(LCD_LINE_2, LCD_CMD)
lcd_message('{:%d.%m.%Y %H:%M}'.format(datetime.datetime.now()))
time.sleep(5)
[/php]
erstmal vorweg dies ist mein Code, das wichtige steht jedoch ganz am Ende.
Ich bin relativ frisch in Python und im Pi möchte aber gerne bzw habe schon gesteckt auf einem Breadboard:
DH11 Temp & Humidity Messen
LCD Display 16x2 + Poti für Helligkeit
Alles per Cobbler Connector aufm Board
Läuft alles mit diesem Code sobald er bootet. Habe dies in rc.loc irgendwas rein geschrieben
Leider aktualisiert er nur die Zeit aber nicht die Temperatur und Humidity die bleiben gleich.
Was muss ich in die Schleife mit rein nehmen damit es klappt?
Viele Grüße
Zakuma