同步操作将从 马志良/easyio-lib-for-esp32 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
使用 FreeRTOS
的 Task
,创建两个任务:
led_task ,控制LED闪烁
i2c_aht20_task ,初始化AHT20温湿度传感器,读取温湿度
使用 i2c_config.c.h
驱动模块,对ESP32的 I2C
进行配置。
并用 i2c_aht20.c.h
驱动挂载在 I2C
总线上的AHT20
/ AHT21
温湿度传感器。
SCL | SDA | |
---|---|---|
ESP32 I2C Master | GPIO14 | GPIO4 |
AHT20 | SCL | SDA |
ESP32-IOT-KIT
没有板载AHT20,选而使用了性能更好的SHT30
,见下一个Demo。
LED闪烁。
初始化AHT20温湿度传感器,读取温湿度,并在终端中显示。
向传感器吹气,观察温湿度示数。
I2C 总线时序。
温湿度传感器功能及应用场景。
// 配置I2Cx-主机模式,(I2C端口、总线速率、SCL引脚,SDA引脚)
esp_err_t i2c_master_init(i2c_port_t i2c_num, uint32_t clk_speed, gpio_num_t scl_io_num, gpio_num_t sda_io_num);
// AHT20 设备初始化
uint8_t i2c_aht20_init(i2c_port_t i2c_num);
// AHT20 设备读取 相对湿度和温度(原始数据20Bit)
uint8_t i2c_aht20_read_ht(i2c_port_t i2c_num, uint32_t *HT);
// AHT20 温湿度信号转换(由20Bit原始数据,转换为标准单位RH=%,T=°C)
uint8_t aht20_standard_unit_conversion(struct m_AHT20* aht);
AHT20的I2C器件地址为0x38,与配套电容触摸屏的FT5206、FT5336、FT5436、FT6206、FT6236的I2C器件地址冲突。都是0x38。建议更换传感器型号,如SHT30。
ESP32-IOT-KIT
没有板载AHT20,选而使用了性能更好的SHT30
,见下一个Demo。
编译此代码不要用 IDF-V4.3
,建议使用 IDF-V4.2
。easyio库用IDF-V4.3编译I2C,运行后调试会出现许多莫名其妙的Bug,请等待乐鑫官方更新。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。