AHT10 капризный к уровню сигналов.
Была аналогичная проблема на ESP32C3. I2C делал на
//#define I2C_MASTER_SCL_IO GPIO_NUM_10 /*!< GPIO number used for I2C master clock */
//#define I2C_MASTER_SDA_IO GPIO_NUM_9 /*!< GPIO number used for I2C master data */
Уровень сигнала по SDA не доходил полностью до нуля.
Не работало пока не сделал I2C на другие выводы:
#define I2C_MASTER_SCL_IO GPIO_NUM_6 /*!< GPIO number used for I2C master clock */
#define I2C_MASTER_SDA_IO GPIO_NUM_5 /*!< GPIO number used for I2C master data */
Уровни по SDA стали нормальные.
И добавить
vTaskDelay(pdMS_TO_TICKS(30));
после i2c_driver_install(i2c_master_port, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
Частоту I2C делал на 50000.
Так работает.