This may be more of an ESP32 question. The schematic seems to imply GPIO05 and 06 but I cannot connect to my DHT20 using those in an ESPHome script. I DO have the Pro Micro flashed to ESPHome and communicating. I just can’t seem to access I2C from the Qwiic connector.
Those should be the ones; do other i2c devices connect? Can you share a photo of your setup?
Unfortunately I have no other I2C devices to play with. I do have a 2nd DHT20 - I’ll try that one as well.
Also, the logs seem to indicate an I2C bus scan is finding the DHT20 - it is just not communicating, so this might be a library issue with the ESPHome code. I’m using their AHT10 sensor platform after finding that the DHT20 is the same thing in different packaging. I hope…
[12:57:44.972][I][app:215]: ESPHome version 2026.2.4 compiled on 2026-03-18 12:54:54 -0700
[12:57:44.978][I][app:222]: ESP32 Chip: ESP32-C3 rev0.4, 1 core(s)
[12:57:44.978][C][logger:237]: Logger:
[12:57:44.978][C][logger:237]: Max Level: DEBUG
[12:57:44.978][C][logger:237]: Initial Level: DEBUG
[12:57:44.992][C][logger:244]: Log Baud Rate: 115200
[12:57:44.992][C][logger:244]: Hardware UART: USB_SERIAL_JTAG
[12:57:44.992][C][logger:254]: Task Log Buffer Size: 768 bytes
[12:57:45.001][C][i2c.idf:093]: I2C Bus:
[12:57:45.010][C][i2c.idf:094]: SDA Pin: GPIO5
[12:57:45.010][C][i2c.idf:094]: SCL Pin: GPIO6
[12:57:45.010][C][i2c.idf:094]: Frequency: 50000 Hz
[12:57:45.010][C][i2c.idf:104]: Recovery: bus successfully recovered
[12:57:45.010][C][i2c.idf:114]: Results from bus scan:
[12:57:45.021][C][i2c.idf:120]: Found device at address 0x38
[12:57:45.021][C][aht10:154]: AHT10:
[12:57:45.022][C][aht10:155]: Address: 0x38
[12:57:45.030][E][aht10:157]: Communication failed
More googling solved my problem. It was a config issue with the AHT10 platform because the DHT20 uses the AHT20 variant (probably the protocol is a bit different).
And in case anyone using ESPHome with a DHT20 wants the YAML:
i2c:
sda: GPIO05
scl: GPIO06
scan: true
id: bus_a
sensor:
- platform: aht10
variant: AHT20
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 2s
Nice! Thanks for posting your solution
