Hallo,
ich bin seit langem wieder einmal dazu gekommen mich mit meinem Raspberry Pico und dessen Programmierung zu beschäftigen. Momentan versuche ich gerade ein Tutorial durchzuarbeiten, welches das Messen der Temparatur und die Anzeige auf dem LCD Display beschreibt.
Leider bekomme ich bei der Ausführung des Programmes immer folgende Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "dht11.py", line 6, in <module>
AttributeError: 'module' object has no attribute 'DHT11'
Das Programm ist wie folgt geschrieben:
from lcd1602 import LCD1602
from dht11 import *
from machine import I2C,Pin,ADC
from utime import sleep
i2c = I2C(1,scl=Pin(7), sda=Pin(6), freq=400000)
d = LCD1602(i2c, 2, 16)
d.display()
dht = DHT(18)
while True:
temp,humid = dht.readTempHumid()
sleep(1)
d.clear()
d.setCursor(0,0)
d.print("Temp:"+str(temp))
d.setCursor(0,1)
d.print("Humid:"+str(humid))
sleep(1)
Die library File:
import dht11
instance = dht11.DHT11(pin = 14)
result = instance.read()
if result.is_valid():
print("Temperature: %-3.1f C" % result.temperature)
print("Humidity: %-3.1f %%" % result.humidity)
else:
print("Error: %d" % result.error_code)
Leider komme ich nicht darauf, wo der Fehler ist und hoffe Ihr könnt mir weiter helfen.
Über eine Antwort würde ich mich sehr freuen.
Viele Grüße
Patrick
Pico beginners Guide Fehler im Programm?
-
- User
- Beiträge: 61
- Registriert: Freitag 18. Februar 2022, 10:13
Müsste bei "fromdht11" import * nicht die Datei bzw. die Bibliothek (dht11) stehen?
Hallo,
was steht denn in deiner 'dht11.py'-Datei?
Bitte im Code-Block einfügen, das ist im vollständigen Editor der </>-Button.
Wieso brauchst du denn 3 Dateien um den Sensor auszulesen?
Du importierst in beiden gezeigten Programmen die 'dht11.py' einmal willst du auf DHT11 zugreifen und ein mal nur auf 'DHT' (vermute ich, durch dein *-Import muss man raten, wo die Namen herkommen.). Irgendwie ist da noch etwas verrutscht.
Grüße
Dennis
was steht denn in deiner 'dht11.py'-Datei?
Bitte im Code-Block einfügen, das ist im vollständigen Editor der </>-Button.
Wieso brauchst du denn 3 Dateien um den Sensor auszulesen?
Du importierst in beiden gezeigten Programmen die 'dht11.py' einmal willst du auf DHT11 zugreifen und ein mal nur auf 'DHT' (vermute ich, durch dein *-Import muss man raten, wo die Namen herkommen.). Irgendwie ist da noch etwas verrutscht.
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
-
- User
- Beiträge: 61
- Registriert: Freitag 18. Februar 2022, 10:13
So, hatte mal wieder ein paar Minuten Zeit und habe am Programm herumgebastelt. Nun wird es ohne Fehlermeldung ausgeführt und macht auch sonst was es soll.
Bei dem Programm werden sich wohl einige von Euch die Haare raufen, ich bin aber erstmal froh, daß ich es zum Laufen gebracht habe.
Verbesserungsvorschläge / Kritik sind willkommen.
Gruß
Patrick
Bei dem Programm werden sich wohl einige von Euch die Haare raufen, ich bin aber erstmal froh, daß ich es zum Laufen gebracht habe.
Verbesserungsvorschläge / Kritik sind willkommen.
Gruß
Patrick
-
- User
- Beiträge: 61
- Registriert: Freitag 18. Februar 2022, 10:13
Sollte mal noch den Code posten
from lcd1602 import LCD1602
from machine import Pin,I2C,ADC
from utime import sleep
import utime
from dht import DHT11
i2c =I2C(1,scl=Pin(7), sda=Pin(6), freq=400000)
d = LCD1602(i2c, 2, 16)
d.display()
dhtPin = Pin(18, Pin.IN , Pin.PULL_DOWN)
while True:
utime.sleep(2)
dhtSensor = DHT11(dhtPin)
temp = dhtSensor.temperature
hum = dhtSensor.humidity
d.setCursor(0,0)
d.print("Temp:"+str(temp))
d.setCursor(0,1)
d.print("Humid:"+str(hum))
sleep(1)
from lcd1602 import LCD1602
from machine import Pin,I2C,ADC
from utime import sleep
import utime
from dht import DHT11
i2c =I2C(1,scl=Pin(7), sda=Pin(6), freq=400000)
d = LCD1602(i2c, 2, 16)
d.display()
dhtPin = Pin(18, Pin.IN , Pin.PULL_DOWN)
while True:
utime.sleep(2)
dhtSensor = DHT11(dhtPin)
temp = dhtSensor.temperature
hum = dhtSensor.humidity
d.setCursor(0,0)
d.print("Temp:"+str(temp))
d.setCursor(0,1)
d.print("Humid:"+str(hum))
sleep(1)