Introduction
The SHTC3 digital humidity sensor from Sensirion builds on the success of the proven SHTC1 sensor and offers consistent high accuracy within measuring range. The sensor covers a humidity measurement range of 0 to 100%RH and a temperature detection range of -40°C to 125°C with a typical accuracy of ±2%RH and ±0.2℃. The board supply voltage of 3.3V to 5V and an current consumption below 0.15mA in low power mode make the SHTC3 perfectly suitable for mobile or wireless battery-driven applications.
Features
- High Accuracy
- Low Power Comsumption
- Small Size
- Fast Response
Applications
- Intelligent Buidings and Furniture
- Weather Station
- Warehouses
- Animals and Plants Culture
- Animal Incubator
- Germinating Box for plant seed
Specification
- Operating Voltage: 3.3V~5V
- Operating Current: 0.45mA
- Communication Interface: I2C
- Humidity Measurement Range: 0~100%RH
- Humidity Measurement Accuracy: ±2%
- Temperature Measurement Range: -40~+125℃ (-40 to +275℉)
- Temperature Measurement Range: ±0.2℃
- Response Time: 8s(tau63%)
- Dimension: 14×17mm/0.55×0.67”
- Mounting Hole Size: M2 (2mm)
- Mounting Hole Pitch: 10mm
Board Overview
NO. | Silkscreen | Function |
---|---|---|
1 | VCC | Positive Pole |
2 | GND | Negative Pole |
3 | SCL | I2C ClockLine |
4 | SDA | I2C Data Line |
Tutorial
Requirements
- Hardware
- DFRduino UNO R3 (or similar) x 1
- SHTC3 Digital Temperature and Humudity Sensor x 1#
- M-M/F-M/F-F Jumper wires
- Software
- Arduino IDE
- Download and install the SHT Library (About how to install the library?)
- API Functions
/**
* @brief 初始化Wire,并且对传感器进行软件复位,然后使传感器进入睡眠状态,需要使用时,在对其进行唤醒。
*/
void begin();
/**
* @brief 获取温度数据
* @return 温度值,单位:摄氏度
*/
float getTemperature();
/**
* @brief 获取湿度数据
* @return 湿度值,单位:%RH
*/
float getHumidity();
/**
* @brief 获取温湿度数据
* @param tem 存放温度数据的引用
* @param hum 存放湿度数据的引用
*/
void getTemHum(float &tem, float &hum);
/**
* @brief 设置传感器工作模式
* @param mode 传感器的工作模式
* @n SHTC3:
* @n PRECISION_HIGH_CLKSTRETCH_ON Clock Stretching Enabled
* @n PRECISION_HIGH_CLKSTRETCH_OFF Clock Stretching Disabled
* @n PRECISION_LOW_CLKSTRETCH_ON Clock Stretching Enabled & Low Power
* @n PRECISION_LOW_CLKSTRETCH_OFF Clock Stretching Disabled & Low Power
* @n SHT40:
* @n PRECISION_HIGH_HEATER_OFF measure T & RH with high precision (high repeatability)
* @n PRECISION_MID_HEATER_OFF measure T & RH with medium precision (medium repeatability)
* @n PRECISION_LOW_HEATER_OFF measure T & RH with lowest precision (low repeatability)
* @n PRECISION_HIGH_HEATER_1S activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 1s
* @n PRECISION_HIGH_HEATER_100MS activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 0.1s
* @n PRECISION_MID_HEATER_1S activate medium heater power & high precis. meas. (typ. 110mW @ 3.3V) for 1s
* @n PRECISION_MID_HEATER_100MS activate medium heater power & high precis. meas. (typ. 110mW @ 3.3V) for 0.1s
* @n PRECISION_LOW_HEATER_1S activate lowest heater power & high precis. meas. (typ. 20mW @ 3.3V) for 1s
* @n PRECISION_LOW_HEATER_100MS activate lowest heater power & high precis. meas. (typ. 20mW @ 3.3V) for 0.1s
*/
void setMode(uint16_t mode) ;
/**
* @brief 获取传感器的唯一标识符
* @return 获取成功返回传感器的唯一标识符,失败返回0
*/
uint32_t getDeviceID();
/**
* @brief software reset
*/
void softwareReset() ;
/**
* @brief Obtain raw data of temperature and humidity
* @param temp Pointer to the address of the original value of the temperature
* @param hun Pointer to the address of the original value of the humidity
* @return Is the data obtained correct? return true The data is correct ; return false The data is incorrect
*/
bool getTandRHRawData(uint16_t *temp, uint16_t *hum);
/**
* @brief 当传感器处于睡眠模式时,在进行任何进一步的通信之前,需要唤醒
*/
void wakeup();
/**
* @brief 设置传感器为睡眠模式,设置后,在未唤醒前无法进行数据采集
*/
void sleep();
Connection Diagram
Sample Code - Read Data
Record program and read the current temperature and humidity data.
/**
* @brief 初始化Wire,并且对传感器进行软件复位,然后使传感器进入睡眠状态,需要使用时,在对其进行唤醒。
*/
void begin();
/**
* @brief 获取温度数据
* @return 温度值,单位:摄氏度
*/
float getTemperature();
/**
* @brief 获取湿度数据
* @return 湿度值,单位:%RH
*/
float getHumidity();
/**
* @brief 获取温湿度数据
* @param tem 存放温度数据的引用
* @param hum 存放湿度数据的引用
*/
void getTemHum(float &tem, float &hum);
/**
* @brief 设置传感器工作模式
* @param mode 传感器的工作模式
* @n SHTC3:
* @n PRECISION_HIGH_CLKSTRETCH_ON Clock Stretching Enabled
* @n PRECISION_HIGH_CLKSTRETCH_OFF Clock Stretching Disabled
* @n PRECISION_LOW_CLKSTRETCH_ON Clock Stretching Enabled & Low Power
* @n PRECISION_LOW_CLKSTRETCH_OFF Clock Stretching Disabled & Low Power
* @n SHT40:
* @n PRECISION_HIGH_HEATER_OFF measure T & RH with high precision (high repeatability)
* @n PRECISION_MID_HEATER_OFF measure T & RH with medium precision (medium repeatability)
* @n PRECISION_LOW_HEATER_OFF measure T & RH with lowest precision (low repeatability)
* @n PRECISION_HIGH_HEATER_1S activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 1s
* @n PRECISION_HIGH_HEATER_100MS activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 0.1s
* @n PRECISION_MID_HEATER_1S activate medium heater power & high precis. meas. (typ. 110mW @ 3.3V) for 1s
* @n PRECISION_MID_HEATER_100MS activate medium heater power & high precis. meas. (typ. 110mW @ 3.3V) for 0.1s
* @n PRECISION_LOW_HEATER_1S activate lowest heater power & high precis. meas. (typ. 20mW @ 3.3V) for 1s
* @n PRECISION_LOW_HEATER_100MS activate lowest heater power & high precis. meas. (typ. 20mW @ 3.3V) for 0.1s
*/
void setMode(uint16_t mode) ;
/**
* @brief 获取传感器的唯一标识符
* @return 获取成功返回传感器的唯一标识符,失败返回0
*/
uint32_t getDeviceID();
/**
* @brief software reset
*/
void softwareReset() ;
/**
* @brief Obtain raw data of temperature and humidity
* @param temp Pointer to the address of the original value of the temperature
* @param hun Pointer to the address of the original value of the humidity
* @return Is the data obtained correct? return true The data is correct ; return false The data is incorrect
*/
bool getTandRHRawData(uint16_t *temp, uint16_t *hum);
/**
* @brief 当传感器处于睡眠模式时,在进行任何进一步的通信之前,需要唤醒
*/
void wakeup();
/**
* @brief 设置传感器为睡眠模式,设置后,在未唤醒前无法进行数据采集
*/
void sleep();
Expected Results
Open the serial port to display the current temperature and humidity data.
FAQ
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.