espressif/aht20

2.0.0

Latest
uploaded 1 month ago
I2C driver for AHT20 humidity and temperature sensor

readme

Component Registry

Component: AHT20

I2C driver and definition of AHT20 humidity and temperature sensor.

Components compatible with AHT30 and AHT21 (AHT21 is deprecated).

See AHT20 datasheet, AHT30 datasheet.

Usage

I2C Bus Initialization

First, initialize the I2C bus with the following configuration:

C

#define I2C_MASTER_SCL_IO   CONFIG_I2C_MASTER_SCL   /*!< GPIO number for I2C master clock */
#define I2C_MASTER_SDA_IO   CONFIG_I2C_MASTER_SDA   /*!< GPIO number for I2C master data  */
#define I2C_MASTER_NUM      I2C_NUM_0               /*!< I2C port number for master dev */
#define I2C_MASTER_FREQ_HZ  100000                  /*!< I2C master clock frequency */

const i2c_config_t i2c_bus_conf = {
    .mode = I2C_MODE_MASTER,
    .sda_io_num = I2C_MASTER_SDA_IO,
    .sda_pullup_en = GPIO_PULLUP_ENABLE,
    .scl_io_num = I2C_MASTER_SCL_IO,
    .scl_pullup_en = GPIO_PULLUP_ENABLE,
    .master.clk_speed = I2C_MASTER_FREQ_HZ
};
i2c_bus_handle_t i2c_bus = i2c_bus_create(I2C_MASTER_NUM, &i2c_bus_conf);

AHT20 Sensor Initialization

After I2C bus is ready, initialize the AHT20 sensor:

C

    aht20_i2c_config_t i2c_conf = {
        .bus_inst = i2c_bus,           // I2C bus instance
        .i2c_addr = AHT20_ADDRRES_0,   // Device address
    };
    aht20_dev_handle_t handle;
    aht20_new_sensor(&i2c_conf, &handle);

Read Temperature and Humidity

The user can periodically call the aht20_read_temperature_humidity API to retrieve real-time data:

C

    uint32_t temperature_raw, humidity_raw;
    float temperature, humidity;

    aht20_read_temperature_humidity(handle, &temperature_raw, &temperature, &humidity_raw, &humidity);
    ESP_LOGI(TAG, "%-20s: %2.2f %%", "humidity is", humidity);
    ESP_LOGI(TAG, "%-20s: %2.2f degC", "temperature is", temperature);

Resource Cleanup

When you no longer need the sensor, delete the resources:

C

    aht20_del_sensor(handle);
    i2c_bus_delete(&i2c_bus);

Links

Supports all targets

License: Apache-2.0

To add this component to your project, run:

idf.py add-dependency "espressif/aht20^2.0.0"

or download archive

Stats

  • Archive size
    Archive size ~ 11.76 KB
  • Downloaded in total
    Downloaded in total 7.9k times
  • Downloaded this version
    This version: 37 times

Badge

espressif/aht20 version: 2.0.0
|