Hallo liebe Community ,
ich habe da ein kleines Problem mit meinem AZ-Delivery DHT20 Temperature and Humidity
Sensor.
Den würde ich gerne in esphome mit meinem AZ-Delivery NodeMCU ESP32S per i2c einbinden.
Das Problem ist das i2c sagt das er an der Adresse 0x38 eine Hardware gefunden hat.
Aber Egal welchen Sensor Typ ich ausprobiere funktioniert es nicht.
Auf der esphomePage steht das der DHT20 eienn AHT20 Chip besitzt.
" The DHT20 (datasheet) sensor has the packaging of the DHT Temperature+Humidity Sensor series, but has the AHT20 inside and is speaking I²C as well."
@Lice
ohne Code/Logs wird Dir keiner helfen können!
Hast Du schonmal das Forum mit dem Suchbegriff “DHT…” durchsucht? … es gab da schon einige Beiträge.
Wie geschrieben er findet am i2c an der Adresse 0x38 auch etwas aber den DHT20 kann ich nicht direkt als Platform bestimmen.
Und bei AHT10 sagt er das er ihn nicht findet.
Und aht20 oder dht20 kann ich als Platform nicht eintragen. Da ich dann nicht flashen kann.
by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)
ahhh , ok werde ich mal testen , ist sogar mit der frequency: 200kHz mit drin
Ich hatte gelesen das der DHT20 mit der standart Frequenz nicht zurecht kommt und das man diese anpassen müsste. Hatte aber bei mir auch nicht geklappt.
Ich teste es gleich mal. Ob Dieser Code funktioniert.
Danke erstmal
Beim code eingeben gibt es schon Probleme bei der variant: ath20
esphome meint das variant is a invalid option
Mit diesem Code bekomme ich jetzt schonmal werte vom Sensor.
Im Log steht jetzt aber noch drin das der Sensor Busy sei. Aber er schickt Werte.
INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.0.202 using esphome API
INFO Successfully connected to 192.168.0.202 in 7.134s
INFO Successful handshake with 192.168.0.202 in 0.048s
[19:11:58][I][app:102]: ESPHome version 2023.11.6 compiled on Dec 7 2023, 19:11:31
[19:11:58][C][wifi:559]: WiFi:
[19:11:58][C][wifi:391]: Local MAC: 64:B7:08:C9:AD:0C
[19:11:58][C][wifi:396]: SSID: 'HOME - MineLice'[redacted]
[19:11:58][C][wifi:397]: IP Address: 192.168.0.202
[19:11:58][C][wifi:399]: BSSID: 98:9B:CB:DE:17:51[redacted]
[19:11:58][C][wifi:400]: Hostname: 'esp32-bad-oben'
[19:11:58][C][wifi:402]: Signal strength: -39 dB ▂▄▆█
[19:11:58][C][wifi:406]: Channel: 6
[19:11:58][C][wifi:407]: Subnet: 255.255.255.0
[19:11:58][C][wifi:408]: Gateway: 192.168.0.240
[19:11:58][C][wifi:409]: DNS1: 192.168.0.240
[19:11:58][C][wifi:410]: DNS2: 0.0.0.0
[19:11:58][C][logger:416]: Logger:
[19:11:58][C][logger:417]: Level: DEBUG
[19:11:58][C][logger:418]: Log Baud Rate: 115200
[19:11:58][C][logger:420]: Hardware UART: UART0
[19:11:58][C][i2c.arduino:053]: I2C Bus:
[19:11:58][C][i2c.arduino:054]: SDA Pin: GPIO21
[19:11:58][C][i2c.arduino:055]: SCL Pin: GPIO22
[19:11:58][C][i2c.arduino:056]: Frequency: 50000 Hz
[19:11:58][C][i2c.arduino:059]: Recovery: bus successfully recovered
[19:11:58][I][i2c.arduino:069]: Results from i2c bus scan:
[19:11:58][I][i2c.arduino:075]: Found i2c device at address 0x38
[19:11:58][C][aht10:149]: AHT10:
[19:11:58][C][aht10:150]: Address: 0x38
[19:11:58][C][aht10:154]: Temperature 'Bad Oben Temperatur'
[19:11:58][C][aht10:154]: Device Class: 'temperature'
[19:11:58][C][aht10:154]: State Class: 'measurement'
[19:11:58][C][aht10:154]: Unit of Measurement: '°C'
[19:11:58][C][aht10:154]: Accuracy Decimals: 2
[19:11:58][C][aht10:155]: Humidity 'Bad Oben Luftfeuchtigkeit'
[19:11:58][C][aht10:155]: Device Class: 'humidity'
[19:11:58][C][aht10:155]: State Class: 'measurement'
[19:11:58][C][aht10:155]: Unit of Measurement: '%'
[19:11:58][C][aht10:155]: Accuracy Decimals: 2
[19:11:58][C][captive_portal:088]: Captive Portal:
[19:11:58][C][mdns:115]: mDNS:
[19:11:58][C][mdns:116]: Hostname: esp32-bad-oben
[19:11:58][C][ota:097]: Over-The-Air Updates:
[19:11:58][C][ota:098]: Address: 192.168.0.202:3232
[19:11:58][C][ota:101]: Using Password.
[19:11:58][C][api:139]: API Server:
[19:11:58][C][api:140]: Address: 192.168.0.202:6053
[19:11:58][C][api:144]: Using noise encryption: NO
[19:12:09][D][aht10:096]: AHT10 is busy, waiting...
[19:12:09][D][sensor:094]: 'Bad Oben Temperatur': Sending state 10.48775 °C with 2 decimals of accuracy
[19:16:50][D][esp32.preferences:114]: Saving 1 preferences to flash...
[19:16:50][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[19:17:09][D][aht10:096]: AHT10 is busy, waiting...
[19:17:09][D][sensor:094]: 'Bad Oben Temperatur': Sending state 10.16808 °C with 2 decimals of accuracy
[19:17:09][D][sensor:094]: 'Bad Oben Luftfeuchtigkeit': Sending state 53.77216 % with 2 decimals of accuracy
[19:17:09][W][component:214]: Component aht10.sensor took a long time for an operation (0.09 s).
[19:17:09][W][component:215]: Components should block for at most 20-30ms.
@Lice
das ist ja schonmal erfreulich, Werte!
Schön, das wir das lösen konnten. Mann muss sich manchmal einfach darüber austauschen können.
Das “Busy” wirst Du in der Praxis wohl nicht merken. Temperatur und Feuchte sind eher träge Systeme.
Allerdings verstehe ich hier das Beispiel zum AHT auf esphome nicht, dass der Beispielcode ohne Adressierung ist. i2c ist ein Adressbasiertes Protokoll.
Den Code habe ich auf github in einem PR gefunden.
Ich habe noch einen dht22 der Funktioniert mit deinem Code. Der hat aber in der Regel nur 3 Pins (+ , - und datenport). und kann somit per pin: abgefragt werden.
Der DHT20 (AHT20) hat 4 Pins und kann nur per i2c abgefragt werden.
Und das war halt mein Problem.
Aber das Funktioniert jetzt ja.
DHT20 DHT22
Nachtrag: @FrankS
Vielen lieben Dank .
du hast mir mit dem Code und Link zur Github Seite echt weiter geholfen !!!
Interessante Korrespondenz, vielen Dank dafür . Ich versuche gerade den DHT20 mit einem ESP8266-S01 ans Laufen zu bringen, und es will mir noch nicht gelingen.
Vielleicht habt ihr ja dazu noch eine Idee .
Hier mein Code :
[adress] is an invalid option for [sensor.aht10]. Did you mean [address]?
adress: 56
temperature:
name: DHT20 Temperature
humidity:
name: DHT20 Humidity
update_interval: 60s