/** * @Author: 李建 * @Date: 2025/4/22 13:48 * Description: 温湿度传感器 * Copyright: Copyright (©) 2025 永续绿建. All rights reserved. */ #ifndef WIRE_CONTROLLER_SHT30_H #define WIRE_CONTROLLER_SHT30_H #define I2C_MASTER_SCL_IO GPIO_NUM_38 /*!< GPIO number used for I2C master clock */ #define I2C_MASTER_SDA_IO GPIO_NUM_39 /*!< GPIO number used for I2C master data */ #define I2C_MASTER_NUM 0 /*!< I2C master i2c port number, the number of i2c peripheral interfaces available will depend on the chip */ #define I2C_MASTER_FREQ_HZ 400000 /*!< I2C master clock frequency */ #define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */ #define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */ #define SHT3X_TICKS_TO_WAIT (100 / portTICK_PERIOD_MS) // I2C读写的超时等待时间 #define SHT3X_I2C_BUS I2C_NUM_1 // SHT30所在的I2C总线 #define SHT3X_SLAVE_ADDRESS 0x44 // SHT30在I2C总线上的从机器件地址 // SHT30命令列表 typedef enum { /* 软件复位命令 */ SOFT_RESET_CMD = 0x30A2, /* 单次测量模式 命名格式:Repeatability_CS_CMD CS:Clock stretching */ HIGH_ENABLED_CMD = 0x2C06, MEDIUM_ENABLED_CMD = 0x2C0D, LOW_ENABLED_CMD = 0x2C10, HIGH_DISABLED_CMD = 0x2400, MEDIUM_DISABLED_CMD = 0x240B, LOW_DISABLED_CMD = 0x2416, /* 周期测量模式 命名格式:Repeatability_MPS_CMD MPS:measurement per second */ HIGH_0_5_CMD = 0x2032, MEDIUM_0_5_CMD = 0x2024, LOW_0_5_CMD = 0x202F, HIGH_1_CMD = 0x2130, MEDIUM_1_CMD = 0x2126, LOW_1_CMD = 0x212D, HIGH_2_CMD = 0x2236, MEDIUM_2_CMD = 0x2220, LOW_2_CMD = 0x222B, HIGH_4_CMD = 0x2334, MEDIUM_4_CMD = 0x2322, LOW_4_CMD = 0x2329, HIGH_10_CMD = 0x2737, MEDIUM_10_CMD = 0x2721, LOW_10_CMD = 0x272A, /* 周期测量模式读取数据命令 */ READOUT_FOR_PERIODIC_MODE = 0xE000, } SHT30_CMD; /** * 包含数据的结构体 */ typedef struct { float temperature; float humidity; int air_quality; int co2; }sht30_data_t; extern sht30_data_t sht30Data; void sht30_init(); #endif //WIRE_CONTROLLER_SHT30_H